spark 機器學習 ALS原理(一)

1.線性迴歸模型
線性迴歸是統計學中最經常使用的算法,當你想表示兩個變量間的數學關係時,就能夠用線性迴歸。當你使用它時,你首先假設輸出變量(相應變量、因變量、標籤)和預測變量(自變量、解釋變量、特徵)之間存在的線性關係。
(自變量是指:研究者主動操縱,而引發因變量發生變化的因素或條件,所以自變量被看做是因變量的緣由。
因變量是指:在函數關係式中,某個量會隨一個(或幾個)變更的量的變更而變更。)
線性模型可能使用於相似下面的問題:好比你正在研究一個公司的銷售額和該公司在廣告上的投入之間的關係,或者某人在社交網站上的好友數量和他天天在該社交網站上花費的時間之間的關係。
理解線性迴歸一個切入點是先肯定那條直線,咱們知道,經過斜率和截距就能夠徹底肯定一條直線
例子1:
假設 (用戶數,利潤值)
S={(x,y)=(1,25),(10,250),(100,2500)}
算法

例子2:
假設(好友數,在線時間)

看到當前圖片,很難一眼看出兩個變量之間的關係了。
咱們假設圖中是線性關係,能夠畫出多條線。
機器學習

那麼哪條線纔是咱們使用的最優線呢?這是一個擬合過程



函數

2.spark ALS
ALS中文名做交替最小二乘法,就是在最小二乘法基礎上的升級,在機器學習中,ALS特指使用最小二乘法求解的一個協同過濾算法,是協同過濾中的一種。ALS算法是2008年以來,用的比較多的協同過濾算法。從協同過濾的分類來講,ALS算法屬於User-Item CF,也叫作混合CF,由於它同時考慮了User和Item兩個方面,即便可基於用戶進行推薦又可基於物品
以下圖所示,u表示用戶,v表示商品,用戶給商品打分,可是並非每個用戶都會給每一種商品打分。好比用戶u6就沒有給商品v3打分,須要咱們推斷出來,這就是機器學習的任務。

學習

 

因爲並非每一個用戶給每種商品都打了分,能夠假設ALS矩陣是低秩的,即一個m*n的矩陣,是由m*kk*n兩個矩陣相乘獲得的,其中k<<m,n優化

 

Am×n=Um×k×Vk×n網站

 

這種假設是合理的,由於用戶和商品都包含了一些低維度的隱藏特徵,好比咱們只要知道某我的喜歡碳酸飲料,就能夠推斷出他喜歡百世可樂、可口可樂、芬達,而不須要明確指出他喜歡這三種飲料。這裏的碳酸飲料就至關於一個隱藏特徵。上面的公式中,Um×k表示用戶對隱藏特徵的偏好,Vk×n表示產品包含隱藏特徵的程度。機器學習的任務就是求出Um×kVk×n。可知uiTvj是用戶i對商品j的偏好,使用Frobenius範數來量化重構UV產生的偏差。因爲矩陣中不少地方都是空白的,即用戶沒有對商品打分,對於這種狀況咱們就不用計算未知元了,只計算觀察到的(用戶,商品)集合R
spa

 

這樣就將協同推薦問題轉換成了一個優化問題。目標函數中UV相互耦合,這就須要使用交替二乘算法。即先假設U的初始值U(0),這樣就將問題轉化成了一個最小二乘問題,能夠根據U(0)能夠計算出V(0),再根據V(0)計算出U(1),這樣迭代下去,直到迭代了必定的次數,或者收斂爲止。雖然不能保證收斂的全局最優解,可是影響不大。3d

相關文章
相關標籤/搜索