[半監(jiān)督]ALS(交替最小二乘)

ALS(交替最小二乘)

alternating least squares(ALS)
ALS(交替最小二乘)常用於推薦系統(tǒng)中,推薦使用者商品或者預測使用者的喜好等等。

Matrix factorization

假設有一家公仔店有統(tǒng)計顧客及他們一年內購買的公仔的類型及數(shù)量,有M筆資料代表顧客,每筆資料有N維的特徵代表不同公仔的類型,我們要做一個推薦系統(tǒng)。
這邊假設顧客有5位,有4種類型的公仔,表內為購買數(shù)量。

首先我們先假設顧客與公仔類型有K種相應的特質(特徵),特徵為一個K維空間,空間中的向量[k_1,k_2..k_k]代表符合特程度跟類型,但我們不知道K是多少,只能知道N種公仔類型最多能分析出N種特質。
顧客為r^A ...、公仔為r^1 ...,兩個向量相乘值越大表示顧客與公仔特質越相近。

這邊我們猜測顧客與公仔類型有2種相應的特質[k_1,k_2]
每個顧客與公仔類型對應這K種特質(特徵)有不同的程度,當顧客特質與公仔類型特質越相近所購買的數(shù)量就越高。

如何得到顧客與公仔類型的特質,我們知道假設每個顧客由K種特質組成,那麼每個顧客對應的特質可以當做一個M \times K的矩陣,每個公仔類型對應的特質可以當做一個N \times K的矩陣,當他們相乘應該要越接近原本統(tǒng)計的數(shù)量表這個矩陣越好。

列出式子,然後我們可以用SVD或GradientDescent去求解,用GradientDescent時當遇到缺省值我們可以省略不做梯度更新。

最後求出的兩個矩陣可以回去推測缺省值(missing value)。
我們有了這兩個特質矩陣我們就可以依照它們給顧客推薦商品。

實作

可以使用scikit-learning的NMF,但不能有缺值,缺值可以考慮補值或將完整data刪除一部分的值作訓練集然後拿完整資料做validation來訓練補值策略。

推薦閱讀:
MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS

參考李宏毅老師ML課程

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容