原文:《A non negative matrix factorization for collaborative filtering recommender systems based on a Bayesian probabilistic model》
摘要:將評分矩陣分解為兩個非負(fù)矩陣肄扎,其component在[0,1]范圍內(nèi)无牵,使我們可以準(zhǔn)確地預(yù)測用戶的評分并找到具有相同偏好的用戶組。
一罕模、引言
(一)推薦系統(tǒng)的分類
?基于內(nèi)容的推薦系統(tǒng):要求通過一些特征或口頭描述來描述項目溯街,這種推薦系統(tǒng)需要用戶告知他們喜歡的物品種類的偏好(可以通過觀察用戶消費的項目類型來隱式獲得)诱桂。
?基于協(xié)同過濾的推薦系統(tǒng):使用評分矩陣M,其中每個用戶u提供他有多喜歡某些項目的信息呈昔。這種推薦系統(tǒng)不使用關(guān)于用戶或項目的特征的信息挥等,而是通過用戶已經(jīng)做出的評分來檢測用戶的品味。
(二)基于協(xié)同過濾的推薦系統(tǒng)的分類
根據(jù)用于預(yù)測用戶品味的算法的類型可以將基于協(xié)同過濾的推薦系統(tǒng)分為兩個大類
(1)基于記憶
基本上使用K-Nearest Neighbor算法(K-NN算法)來預(yù)測用戶的品味
優(yōu)點:直觀堤尾、可解釋性強(qiáng)肝劲、若能使用合適的相似度函數(shù)則預(yù)測質(zhì)量會很高、可衡量預(yù)測的可靠性
缺點:沒有使用可擴(kuò)展的(scalable)算法(對于要處理大量項目和用戶的推薦系統(tǒng)來說這是一個致命的缺點 T_T )
KNN的工作原理:給定與用戶u具有相同品味的一些用戶已經(jīng)對項目i給出了正向的評分郭宝,那么KNN認(rèn)為用戶u也會喜歡項目i辞槐。
反過來在KNN中也是成立的...
KNN還具有該性質(zhì):如果推薦系統(tǒng)預(yù)測用戶u會喜歡項目i,那么必定有與用戶u具有相同品味的一些用戶已經(jīng)對項目i給出了正向的評分粘室。(記作Proposition1)
(2)基于模型
使用模型來預(yù)測用戶評分榄檬,需要一個學(xué)習(xí)過程以在推薦系統(tǒng)啟動之前找出用戶和項目矩陣
優(yōu)點:1??涉及可擴(kuò)展的推薦算法,對具有大量用戶或項目的大型推薦系統(tǒng)是非秤兀可取的
? ? ? ? ? ?2??一旦學(xué)習(xí)階段結(jié)束丙号,基于模型的推薦系統(tǒng)可以非诚入快速地預(yù)測用戶的評級
Latent factor models隱因子模型
模型之一缰冤,Latent factor models隱因子模型將評分矩陣分解為用戶矩陣和項目矩陣。
通過最小化目標(biāo)函數(shù)(即學(xué)習(xí)過程)找出K個未知的隱因子喳魏,每個用戶u和每個項目i分別與具有K個components的向量和
相關(guān)聯(lián),因此刺彩,預(yù)測用戶u對項目i的評分為
?(在Yehuda-矩陣分解一文中對這個“經(jīng)典矩陣分解“模型進(jìn)行了一些拓展,如加入偏置等)
優(yōu)點:隱因子模型(或矩陣分解)是所有基于模型的協(xié)同過濾算法中accuracy in predictions最好的(也優(yōu)于基于記憶的推薦系統(tǒng))
經(jīng)典矩陣分解在學(xué)習(xí)和
時認(rèn)為
嗡害、
畦攘、
服從正態(tài)分布
缺點:1??鑒于高斯分布變量取值的特點霸妹,因此和
的components不具有直觀的概率解釋
? ? ? ? ? ?2??由于和
很難解釋叹螟,因此模型無法證明它的預(yù)測是正確的
? ? ? ? ? ?3??不滿足Proposition 1
(ps:當(dāng)為隱式反饋的矩陣時鹃骂,如矩陣中的值表示消費次數(shù),
罢绽、
和
服從泊松分布,顯然可解釋性增強(qiáng)良价,因為兩個向量都只取正值)
二寝殴、對比
(一)矩陣分解原理在基于內(nèi)容的推薦系統(tǒng)中的應(yīng)用
矩陣分解等技術(shù)也已應(yīng)用于基于內(nèi)容的推薦系統(tǒng):在表示項目的口頭描述的矩陣中,每個分量()描述每個詞
在每個項目j的描述中出現(xiàn)的次數(shù)明垢。分解此矩陣的主要技術(shù)包括:LSA杯矩、pLSA和LDA。
?潛在語義分析(LSA):基于解釋每個項目描述中每個單詞的頻率的隱因子袖外,將描述矩陣分解為與單詞相關(guān)(每行是每個單詞的單詞向量aw)和與項目的描述相關(guān)(每列bi是每個單詞的項目向量)的兩個矩陣史隆。由于這些矩陣的組成部分可能采用任意實際值,因此可能很難理解曼验。——對照經(jīng)典矩陣分解
?概率潛在語義分析(pLSA):pLSA分解的兩個矩陣的組成部分有正值約束泌射。此技術(shù)可計算單詞出現(xiàn)在文檔中的概率。實際上隱因子可被視為項目的集群鬓照,分解所得的兩個矩陣的組成部分可被視作 單詞出現(xiàn)在每個項目集群的描述中的概率 以及 項目屬于每個項目集群的概率熔酷。——對照非負(fù)矩陣分解
?隱狄利克雷分布(LDA): 通過貝葉斯概率模型拓展pLSA,解決了pLSA的過擬合問題豺裆。 與pLSA一樣拒秘,此技術(shù)可計算單詞出現(xiàn)在文檔中的概率。 分解所得的兩個矩陣的組成部分可被視作 單詞出現(xiàn)在每個項目集群的描述中的概率 以及 項目屬于每個項目集群的概率臭猜。 ——對照基于貝葉斯概率模型的非負(fù)矩陣分解
與協(xié)同過濾中使用的評分矩陣不同躺酒,該矩陣的所有項都已知(盡管包含許多0值)。若將LSA蔑歌,pLSA或LDA等技術(shù)應(yīng)用于評分矩陣羹应,則隱含地用0填充矩陣中的未知值,因此這些技術(shù)不適合預(yù)測顯式反饋(如評分)次屠。
(二)在評分預(yù)測中矩陣分解的應(yīng)用
經(jīng)典矩陣分解??非負(fù)矩陣分解??基于貝葉斯概率模型的非負(fù)矩陣分解
(1)經(jīng)典矩陣分解
(2)非負(fù)矩陣分解
(3)基于貝葉斯概率模型的非負(fù)矩陣分解
很明顯本文提出的模型滿足proposition1供汛,因此我們可以證明并理解它所產(chǎn)生的所有推薦。
隱因子表示在我們的推薦系統(tǒng)中具有相同品味的用戶組, 參數(shù)K表示組數(shù)(為了在推薦系統(tǒng)中獲得準(zhǔn)確的預(yù)測紊馏,本文的模型中的參數(shù)K小于經(jīng)典矩陣分解中的K)料饥。
該模型中和
屬于[0,1]范圍內(nèi),具有有可理解的概率意義上的解釋朱监,分別表示 用戶u屬于用戶組k的概率 以及 組k中的用戶喜歡項目i的概率岸啡,其中向量
非常稀疏,只有極少數(shù)分量值較大赫编,而許多分量的取值接近0(因此預(yù)測評分
通常很快)巡蘸。
三、本文的概率模型
(一)模型輸入
原始的評分矩陣值為?(取值為0,1,2,3,4) 擂送,歸一化的評分矩陣為
,其中R=4
(二)模型輸出
與用戶關(guān)聯(lián)的N×K矩陣()??where
?悦荒;與項目關(guān)聯(lián)的K×M矩陣(
)
?根據(jù)算法的輸出,我們可以立即計算用戶u喜歡項目i的概率,即
一旦我們計算出用戶u喜歡項目i的概率嘹吨,我們就可以對其進(jìn)行轉(zhuǎn)換以獲得用戶u對項目i的非歸一化評分
(三)模型參數(shù)
? K∈N? ?表示算法要找出來的用戶組數(shù)
? α∈(0,1) 表示 獲得overlapping用戶組的概率搬味,α接近0表示用戶往往只屬于一個組,α越大表示我們允許用戶在多個組中
? β> 1 與算法推斷出一組用戶喜歡某個項目所需的證據(jù)量有關(guān)蟀拷, β越大則所需的證據(jù)越多
(四)用戶對項目評分的概率模型
用戶u屬于哪一組是一個隨機(jī)變量X碰纬,取值為{1,...,K}
,他屬于第k組的概率為
類似地问芬,對物品i給出評分的用戶u屬于哪一組也是一個隨機(jī)變量
記作?悦析,取值為{1,...,K}
中的K個分量表示用戶u屬于每個組的概率,
由多項式分布的共軛先驗分布為狄利克雷分布可得此衅,强戴,
物品i是否被第k組的用戶喜歡是一個隨機(jī)變量,取值為0或1,
物品i被第1組用戶喜歡的概率為
其中表示第一組用戶中喜歡物品i的人數(shù),
表示第一組的用戶數(shù)
中的K個分量表示物品i被每個組的用戶喜歡的概率挡鞍,
由二項分布的共軛先驗分布為Beta分布可得骑歹,?
(Beta分布采用[0,1]內(nèi)的值,是用戶u喜歡或不喜歡項目的置信度)
是可觀測的變量匕累,服從二項分布陵刹,取值為0到R(set R=4)?
而我們要做的就是根據(jù)已知的變量默伍,找出未知的隱變量的后驗概率分布欢嘿。
使用二項分布對評分進(jìn)行建模的原因如下:
1??二項分布是離散的,推薦系統(tǒng)中的評分也是離散的也糊;2??若使用分類分布的話炼蹦,它不會考慮評分的順序關(guān)系;3??二項分布可合理地對用戶對項目的評分方式建模:用戶評估項目的R個特征狸剃,評分的數(shù)值則表示用戶喜歡的特征的數(shù)量掐隐;4??二項分布只有一個未知參數(shù)(用戶喜歡項目的某個特征的概率),這避免了模型過擬合。
(五)用變分貝葉斯推斷求解隱變量的后驗概率分布的近似解
由于我們的模型具有共軛指數(shù)結(jié)構(gòu)虑省,因此有:變量服從指數(shù)分布族中的分布匿刮,變量的后驗分布和變量的先驗分布是同分布的。
故我們用近似后驗分布來逼近真正的后驗分布
(六)求得
后探颈,計算模型的輸出
(1)目的1——找出具有相同品味的用戶群
對每個用戶u都有?
(2)目的2——預(yù)測用戶偏好
表示用戶u喜歡物品i的概率?
正確寫法? ??
(七)算法的實現(xiàn)過程
我們使用常用于變分推理技術(shù)的坐標(biāo)上升算法來計算熟丸,然后才能計算
和
(八)模型參數(shù)
對輸出的影響
參數(shù)α∈(0,1)與用戶向量的稀疏程度有關(guān),一般是α越小伪节,用戶向量越稀疏光羞,可以通過交叉驗證來選擇適當(dāng)?shù)膮?shù)α(結(jié)合我們在模型中希望的用戶向量的稀疏度)。
參數(shù)β> 1 與我們的模型推斷用戶喜歡或不喜歡某個項目所需的證據(jù)程度有關(guān)怀大,β越高則模型推斷出用戶喜歡或不喜歡某個項目需要的證據(jù)越多纱兑,可以通過交叉驗證來設(shè)定參數(shù)β。
(九)衡量模型的表現(xiàn)(從計算和內(nèi)存成本的角度)
方法1:推薦系統(tǒng)計算每個用戶u在每個項目i上的化借,以
的方式向每個用戶推薦項目i潜慎。與經(jīng)典矩陣分解不同的是,本文提出的模型
和S都具有概率意義:如果用戶u會喜歡項目i的預(yù)測概率
蓖康,則將項目i推薦用戶u勘纯。
方法2:好好利用用戶向量和項目向量的components都是0-1內(nèi)的正數(shù)
方法3:進(jìn)一步利用用戶向量很稀疏的特點
對于每個用戶u,存儲兩個長度一樣的小列表钓瞭,列表長度為
:?
中第n大的成分對應(yīng)的因子k驳遵;
:
中第n大的成分
四、算法輸出的含義
用戶向量通常是稀疏的山涡,這使我們能夠以與K-NN算法相同的方式理解和證明我們模型的預(yù)測堤结。
如果我們預(yù)測值很高(接近1),那么必然有一個k∈{1 ... K}使得
和
接近1鸭丛。
根據(jù)這些向量的含義竞穷,我們得到:
?接近1,也就是說鳞溉,用戶u與組k中的用戶具有相同的品味瘾带,用戶u很可能屬于用戶組k
?接近1,也就是說用戶組k中的許多用戶對項目i有正面評分
因此我們認(rèn)為存在與用戶u具有相同品味的用戶(因為他們屬于同一組)熟菲,他們對項目i給予了肯定的評價看政。 可以看出,這種推理是用于K-NN算法的理論抄罕,用于理解所提供的推薦允蚣。
五、模型的評價
(一)評價指標(biāo)
(1)評價預(yù)測準(zhǔn)確性
(2)評價推薦準(zhǔn)確性
集合R表示推薦系統(tǒng)提供給每個用戶的N個項目的集合呆贿。
集合S表示推薦系統(tǒng)應(yīng)該向每個用戶推薦的項目集合嚷兔。