ALS(交替最小二乘)
alternating least squares(ALS)
ALS(交替最小二乘)常用於推薦系統中,推薦使用者商品或者預測使用者的喜好等等。
Matrix factorization
假設有一家公仔店有統計顧客及他們一年內購買的公仔的類型及數量,有M筆資料代表顧客,每筆資料有N維的特徵代表不同公仔的類型,我們要做一個推薦系統。
這邊假設顧客有5位,有4種類型的公仔,表內為購買數量。
首先我們先假設顧客與公仔類型有K種相應的特質(特徵),特徵為一個K維空間,空間中的向量代表符合特程度跟類型,但我們不知道K是多少,只能知道N種公仔類型最多能分析出N種特質。
顧客為、公仔為,兩個向量相乘值越大表示顧客與公仔特質越相近。
這邊我們猜測顧客與公仔類型有2種相應的特質
每個顧客與公仔類型對應這K種特質(特徵)有不同的程度,當顧客特質與公仔類型特質越相近所購買的數量就越高。
如何得到顧客與公仔類型的特質,我們知道假設每個顧客由K種特質組成,那麼每個顧客對應的特質可以當做一個的矩陣,每個公仔類型對應的特質可以當做一個的矩陣,當他們相乘應該要越接近原本統計的數量表這個矩陣越好。
列出式子,然後我們可以用SVD或GradientDescent去求解,用GradientDescent時當遇到缺省值我們可以省略不做梯度更新。
最後求出的兩個矩陣可以回去推測缺省值(missing value)。
我們有了這兩個特質矩陣我們就可以依照它們給顧客推薦商品。
實作
可以使用scikit-learning的NMF,但不能有缺值,缺值可以考慮補值或將完整data刪除一部分的值作訓練集然後拿完整資料做validation來訓練補值策略。
推薦閱讀:
MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS