【矩陣分解七】論文閱讀MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS

總結:該論文將構造rating矩陣的多中種方式都講述了一遍。主要講ALS在優化參數時,優於SGD的方面,體現在對預測rui的組成部分的逼近。


introduction引言

推薦系統的基於兩個策略content filtering ,比如,商品本身的屬性,另一個是用戶屬性。基於內容的推薦策略,要求聚集一些額外的信息,這一班不太容易收集。

內容過濾策略的一個可替代方式是依賴於用戶過往行爲。稱之爲協同過濾,對冷啓動問題,效果不好,因爲協同過濾不能應對一個新物品或者新用戶。(新商品或者用戶而言,沒有歷史行爲,因此不能將其歸類。)

協同過濾領域有兩個基礎的方法,一個是近鄰方法(基於item的方法),一個是潛在因子模型。

近鄰方法聚焦於計算item之間或者user之間的關係。商品之間的關係計算,通過用戶過往歷史行爲過的item,計算items跟用戶沒有過行爲的item之間的相似度,來得出用戶對這個新item的喜好。

基於隱因子的方法,將item和user表示爲20~100維度的因子,來解釋評分。也就是矩陣分解後得到的k維度的向量,每一維,稱之爲一個隱因子,從某一個屬性上來解釋。對於user來說,每一個因子衡量了如何對用戶喜歡的電影根據包含有相應的item因子計算得到高分。

矩陣分解因子方法

主要將隱因子方法,其中較爲成功的獲取隱因子的方式是矩陣分解。user和item之間的相關性,使得矩陣分解大放異彩,同時,矩陣分解使得模型對多變的真實情況有更好的適應性。

對於輸入的數據,有explicit feedback ,顯式反饋,顯式表名用戶對商品的喜愛程度。比如,netflix收集了電影的評分,我們稱這種反饋形式爲顯式反饋。通常,顯式反饋是一個稀疏矩陣,因爲單個用戶喜歡的商品是有限的,且相對於全部商品而言,是非常少量的。

對於矩陣分解來說,一個強大的點在於允許添加信息來填充矩陣。當顯式反饋不適用的時候,我們引入隱式反饋implicit feedback,其中的元素由用戶的瀏覽、點擊、收藏行爲組成。隱式反饋的一個優點在於補充了缺失的元素,更容易得到一個稠密的矩陣。

基礎的矩陣分解模型

矩陣分解模型將user和item映射到一個f維的空間中,他們因子的內積表明了二者的相關程度。item i使用qi表示,user u用pu表示,這兩個向量是其隱因子,可正可負。兩者的內積q_iT* p_u,表示iu之間的相似度。

主要的挑戰是計算每一個商品和user的因子向量。上面的模型,聯繫到SVD,一個求解隱因子的方法。對於高缺失值和稀疏的矩陣來說,傳統的svd求解,有點困難。並且,的到的結果也比較容易過擬合。

爲解決缺失值問題,一種方法可是填充缺失值,但是人工填充,會增加計算代價,文獻中提供了不精確的數據填充方式,加入正則化來避免過擬合。模型如下:

關於正則化的lambda,特別的提了一嘴,Ruslan Salakhutdinov and Andriy Mnih提出了 “Probabilistic Matrix Factorization ,PMF這種概率的方式建模來添加正則化。

學習算法

公式(2)使用兩種方法來求解,一個是SGD(tochastic gradient descent ),一個是ALS(sand alternating least squares). 

SGD 

主要根據Funk-svd的優化方法,計算預測rui跟樣本rui的差:

梯度更新:

ALS

因爲p和q都未知,因此可以固定一個,可以使用最小二乘法去求解另外一個,直到方程2收斂。

SGD比ALS容易實現,更快的求解,但是ALS比SGD的優勢:1,可以並行計算qi,因爲qi的計算跟其他商品的qi獨立,每一個qi都可以並行計算。2,對於聚焦於隱數據(這裏意思,我理解是rating中的元素構成,不僅僅是q_iT* p_u,還有一些隱藏的信息,尚未添加到q_iT* p_u中,通過後面的介紹也可以看到,預測rui的構成更加多樣化,考慮的因素也更多)有優勢,因爲訓練數據不能是稀疏的,遍歷全部訓練樣本(就像SGD一樣),是不現實,ALS能解決上述兩種情況。

添加biases

添加bias指的是往預測值中添加bias。方程1中,盡力獲取user和item的交互,產生不同的rating值,但是在在觀測數據中,有值的元素依賴於用戶或者item,獨立於任何交互行爲,換句話說,rating中的元素rui的組成,不僅僅是交互行爲產生的,更加依賴於商品或者user本身。比如,有的人習慣性給高分,有的人則習慣性給低分,比較挑剔,這的rui就會收到user的影響;再比如,商品很好,人自然而然的給高分,如果商品很差勁,想給高分也難。

因此將rating矩陣中的rui解釋爲q_iT* p_u的乘積是不充分的。通過添加useritem的屬性部分去解釋交互數據之外的因子模型。bias的一階近似如下:

Ruibiasbui決定,包含了useritem的對rating的影響。Urating的平均值,bubiuseritem的觀察偏差。舉個例子,rating的平均值U=3.7item泰坦尼克號是一個非常好的電影,高於平均分0.5,而user jon是一個非常挑剔的人,給出的打分通常低於平均費0.3,綜合得分爲3.7+0.5-0.3=3.9

預測值由4部分構成:rating矩陣、itembiasuserbiasuser-item的交互。

損失函數是:

通過觀測數據捕捉bias,對精確建模比較重要,因此後續也在此工作上做了一些內容。

添加輸入源-加入隱式反饋

很多系統必須處理冷啓動問題,很多用戶有很少的評分行爲,很難對他們的喜好得到一個一般化的結論。一個解決的辦法就是給user添加信息源。推薦系統使用隱式反饋來觀察user的喜好,通過彙集用戶的行爲信息去顯示的rating。比如一個零售商會根據用戶買過的東西來推測他們喜歡什麼。

簡而言之,用一個boolean值表示隱式反饋。

N(u) :用戶u有過隱式反饋行爲的item集合;

用戶對N(u)中的商品表示爲:

添加正則化:

另一個信息源來自用戶的屬性,比如統計屬性。A(u)表示用戶的統計信息集合,比如性別,年齡,收入水平等。用隱因子ya描述用戶:

矩陣分解模型中聚合各種信息後,預測結果表示爲:

這個例子增強了用戶的表示,顯然缺少item的信息,接下來繼續看。

動態模型

目前爲止展示的模型都是靜態的,在實際生活中,商品的熱度是變化的,用戶的偏好也在變化。user-item之間的交互是收時間影響的。

那麼矩陣分解方法也趨向於添加時間因素去建模,更加精準。主要的變動,在item的bias - bi(t)和user的bias-bu(t),以及user的偏好pu(t).爲什麼沒有q(t)呢?item相對變換更緩慢一些,可以認爲是靜態的,不會在短時間內發生變化。

對輸入置信水平

不是所有觀測到的rating都有相同的權重或者置信度。比如大量的廣告,會影響某些item的rui。

置信度可以是一些數值描述行爲的頻率,比如,展示或者購買的次數。這個置信度想說明,偶然一次的行爲,可能對這些隱因子沒有貢獻,而循環多次的行爲表明了用戶的觀點喜好,對隱因子有貢獻。

Cui是觀測值rui的置信度:

Netflix大賽,以0.843勇奪number1.也不知道最近兩年有沒有人打這個比賽,超越這個論文中的第一名。

參考:

1.論文:MATRIX FACTORIZATION TECHNIQUES FOR RECOMMENDER SYSTEMS

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章