基于hadoop的商品推荐系统_【论文笔记】基于矩阵分解的推荐系统
本文是對經(jīng)典論文的閱讀筆記,大部分為論文的中文翻譯內(nèi)容(筆者英語水平也就六級飄過的水準(zhǔn),不喜勿噴)
論文標(biāo)題:Matrix factorization techniques for recommender systems
隨著Netflix競賽的結(jié)果所示,矩陣分解模型在商品推薦上的表現(xiàn)要優(yōu)于傳統(tǒng)的近鄰技術(shù),矩陣分解允許合并附加信息,如隱式反饋、時間效應(yīng)和置信度。
現(xiàn)代消費者被太多的選擇所困擾。電子零售商和內(nèi)容提供商提供了大量的產(chǎn)品選擇,提供了前所未有的機會來滿足各種特殊需求和品味。為消費者提供最合適的產(chǎn)品是提高用戶滿意度和忠誠度的關(guān)鍵。因此,越來越多的零售商開始對推薦系統(tǒng)感興趣。推薦系統(tǒng)通過分析用戶對產(chǎn)品的興趣模式,提供符合用戶口味的個性化推薦。因為好的個性化推薦系統(tǒng)可以增加用戶體驗的另一個維度,像亞馬遜和Netflix這樣的電子商務(wù)行業(yè)的領(lǐng)導(dǎo)者已經(jīng)將推薦系統(tǒng)作為網(wǎng)站的重要組成部分。
這種系統(tǒng)對娛樂產(chǎn)品,如電影、音樂和電視節(jié)目特別有用。許多客戶將觀看同一部電影,而每個客戶可能會觀看許多不同的電影。事實證明,客戶愿意表明他們對特定電影的滿意程度,因此網(wǎng)站可以獲得關(guān)于哪些電影吸引哪些客戶的大量數(shù)據(jù)。公司可以通過分析這些數(shù)據(jù)向特定的客戶推薦電影。
推薦系統(tǒng)策略
一般來說,推薦系統(tǒng)基于兩種策略中的一種。內(nèi)容過濾方法為每個用戶或產(chǎn)品創(chuàng)建一個配置文件來描述其性質(zhì)。例如,一個電影配置文件可以包括關(guān)于它的類型、參與的演員、票房受歡迎程度等等的屬性。用戶配置文件可能包括人口統(tǒng)計信息或在適當(dāng)?shù)膯柧砩咸峁┑拇鸢浮E渲梦募试S程序?qū)⒂脩襞c匹配的產(chǎn)品關(guān)聯(lián)起來。當(dāng)然,基于內(nèi)容的策略需要收集可能不可用或者不易收集的外部信息。
一個著名的成功實現(xiàn)內(nèi)容過濾的是Music Genome Project,它在http://Pandora.com中被用于互聯(lián)網(wǎng)廣播服務(wù)。一個訓(xùn)練好的音樂分析器根據(jù)數(shù)百種不同的音樂特征為音樂基因組計劃中的每首歌曲打分。這些屬性或基因,不僅捕獲了一首歌的音樂同一性,而且還捕獲了許多重要的品質(zhì),這些品質(zhì)與理解聽眾的音樂喜好有關(guān)。
內(nèi)容過濾的另一種方法是只依賴于過去的用戶行為——例如,以前的交易記錄或?qū)Ξa(chǎn)品的評分——而不需要創(chuàng)建明確的配置文件。這種方法稱為協(xié)同過濾,這是Tapestry(第一個推薦系統(tǒng))的開發(fā)人員創(chuàng)造的術(shù)語。協(xié)同過濾分析了用戶之間的關(guān)系和產(chǎn)品之間的相互依賴關(guān)系,以識別新的用戶-項目關(guān)聯(lián)。
協(xié)同過濾的一個主要吸引力是它是使用鄰域自由的,但它可以解決數(shù)據(jù)方面的問題,這些問題通常難以捉摸,很難用內(nèi)容過濾來描述。雖然協(xié)同過濾通常比基于內(nèi)容的技術(shù)更準(zhǔn)確,但由于它無法解決系統(tǒng)的新產(chǎn)品和新用戶,因此存在所謂的“冷啟動”問題。在這方面,內(nèi)容過濾是更好的。
協(xié)同過濾的兩個主要領(lǐng)域是鄰域模型和隱因子模型。鄰域模型關(guān)注于計算項目之間或用戶之間的關(guān)系。面向商品的方法基于同一用戶對“相鄰”商品的評分,評估用戶對商品的偏好。一個產(chǎn)品的鄰居指的是其他產(chǎn)品,這些產(chǎn)品在被同一用戶評價時往往得到相似的評價。例如,考慮電影Saving Private Ryan。它的鄰居可能包含戰(zhàn)爭電影,Spielberg的電影,和Tom Hanks的電影。為了預(yù)測特定用戶對Saving Private Ryan的評分,我們將尋找該用戶實際評價的影片的最近鄰居。正如圖1所示,以用戶為導(dǎo)向的方法識別出志同道合的用戶,他們可以互相補充評分。
圖1隱因子模型是一種替代方法,它通過根據(jù)評分模式推斷出的20到100個因子來表征商品和用戶,從而試圖解釋評分。從某種意義上說,這些因子包含了上述人為創(chuàng)造的歌曲基因的計算替代物。對于電影來說,發(fā)現(xiàn)的因子可能會衡量明顯的維度,例如喜劇與戲劇,動作量或?qū)和膶?dǎo)向;不太明確的維度例如角色發(fā)展的深度或古怪程度;或者完全無法解釋的維度。對于用戶來說,每個因子都衡量了用戶對相應(yīng)電影因子中得分高的電影的喜愛程度。
圖2展示了一個二維簡化示例的這種思想。考慮兩個假設(shè)的維度,即女性主導(dǎo)與男性主導(dǎo),嚴(yán)肅的人與逃避現(xiàn)實者。該圖顯示了這兩個維度上可能有幾部著名電影和一些虛構(gòu)用戶。對于此模型,相對于電影的平均評分,用戶對電影的預(yù)測評分將等于該電影和用戶在圖表上的位置的點積。例如,我們認(rèn)為Gus喜歡Dumb and Dumber,討厭The Color Purple,把Braveheart設(shè)為平均水平。值得注意的是一些電影例如Ocean's 11和用戶例如Dave在這兩方面都是中立的。
圖2矩陣分解模型
一些最成功的隱因子模型的實現(xiàn)是基于矩陣分解的。矩陣因子分解的基本形式是通過從項目評分推斷出的因子向量來表征項目和用戶。對項目因子和用戶因子的高相關(guān)性促成了推薦。這些方法結(jié)合了良好的可擴展性和預(yù)測精度,近年來變得流行起來。此外,它們?yōu)榻8鞣N現(xiàn)實情況提供了很大的靈活性。
推薦系統(tǒng)依賴于不同類型的輸入數(shù)據(jù),這些數(shù)據(jù)通常放在一個矩陣中,一個維度表示用戶,另一個維度表示感興趣的項目。最方便的數(shù)據(jù)是高質(zhì)量的顯式反饋,包括用戶對項目感興趣的顯式輸入。例如,Netflix收集了電影的星級評分?jǐn)?shù)據(jù),而TiVo用戶通過按下大拇指向上和向下按鈕來顯示他們對電視節(jié)目的喜好。我們將明確的用戶反饋稱為評分。通常,明確的反饋包含一個稀疏矩陣,因為任何一個用戶可能只對可能的項目的一小部分進行了評價。
矩陣因子分解的一個優(yōu)點是它允許合并額外的信息。在沒有顯式反饋的情況下,推薦系統(tǒng)可以通過隱式反饋推斷用戶的偏好,通過觀察用戶的購買歷史、瀏覽歷史、搜索模式甚至鼠標(biāo)移動等行為,間接反映用戶的意見。隱式反饋通常表示事件的存在或不存在,因此通常用密集填充的矩陣表示。
基本的矩陣分解模型
矩陣分解模型將用戶和物品映射到一個維數(shù)為f的聯(lián)合隱因子空間,用戶與物品的交互被建模為該空間的內(nèi)積。因此,每個項目i與一個向量
對應(yīng),每個用戶u與一個向量 對應(yīng)。對于一個給定的項目i, 的的元素是衡量項目擁有這些因子的程度,積極的或消極的。對于一個給定的用戶u, 的元素可以衡量用戶對項目的興趣程度,這些項目的相關(guān)因素偏高,無論是正面的還是負(fù)面的。點乘 的結(jié)果 獲得了每個用戶u和項目i的交互---用戶對項目特征的總體興趣。這近似于用戶u對項目i的評分,用 表示,從而得到估計評分如下: (1)主要的挑戰(zhàn)是計算每個項目和用戶映射的因子向量
。推薦系統(tǒng)完成這個映射后,可以很容易地根據(jù)公式1估計用戶對任何物品的評價。這種模型與奇異值分解(SVD)密切相關(guān),奇異值分解是一種用于在信息檢索中識別潛在語義因子的成熟技術(shù)。在協(xié)同過濾域中應(yīng)用SVD需要考慮用戶項目評分矩陣。由于用戶項目評分矩陣的稀疏性導(dǎo)致矩陣中的缺失值占了很大一部分,這常常會帶來困難。當(dāng)有關(guān)矩陣的知識不完全時,傳統(tǒng)的奇異值分解是無定義的。此外,如果只對相對較少的已知項目進行處理,就很容易出現(xiàn)過擬合。
較早的系統(tǒng)依靠估算來填補缺失的評分并使評分矩陣密集。但是,由于這樣進行估算會大大增加數(shù)據(jù)量,因此代價可能非常昂貴。此外,不準(zhǔn)確的估計可能使數(shù)據(jù)失真很大。因此,最近的工作建議僅直接對觀察的評分建模,同時通過正則化模型來避免過度擬合。為了學(xué)習(xí)因子向量(
和 ),系統(tǒng)將已知評分的正則化平方誤差最小化:(2)這里,K是已知評分
的用戶u與項目i的集合(u,i)。系統(tǒng)通過擬合先前觀察到的評分來學(xué)習(xí)模型。然而,我們的目標(biāo)是用一種預(yù)測未來未知評分的方式來概括之前的評分。因此,系統(tǒng)通過對學(xué)習(xí)參數(shù)進行正則化來避免對觀測數(shù)據(jù)的過擬合,學(xué)習(xí)參數(shù)要受到懲罰。常數(shù)
控制了正則化的程度,通常由交叉驗證來確定。Ruslan Salakhutdinov 和 Andriy Mnih的“Probabilistic Matrix Factorization”為正則化提供了一個概率基礎(chǔ)。學(xué)習(xí)算法
兩個方法可以來最小化(2)式,分別是隨即梯度下降和交替最小二乘法(ALS)。
隨機梯度下降
Simon Funk推廣了對(2)式的隨機梯度下降,其中,算法循環(huán)遍歷訓(xùn)練集中的所有評分。對于每個給定的訓(xùn)練案例,系統(tǒng)都會預(yù)測
并計算相關(guān)的預(yù)測誤差。然后,它在梯度的相反方向上按與r成比例的量級修改參數(shù),從而得出:
這種流行的方法易于實現(xiàn)并且獲得了相對快速的運行時間。然而,在某些情況下,使用ALS優(yōu)化是更好的。
交替最小二乘法
因為
和 是未知的,2式是非凸的。然而,如果我們固定一個未知項,則優(yōu)化問題將變成二次問題,并且可以得到最優(yōu)解。因此,ALS技術(shù)在固定 和固定 之間轉(zhuǎn)化。當(dāng)所有的 固定時,系統(tǒng)通過解決最小二乘問題重新計算 ,反之亦然。這保證了2式每一步都在減少,直到收斂。一般來說,隨機梯度下降比ALS更簡單、更快,但ALS至少在兩種情況下是有利的。首先是系統(tǒng)可以使用并行化的時間。在ALS中,系統(tǒng)獨立于其他項目因子計算每個
,獨立于其他用戶因素計算每個 。這可能會導(dǎo)致算法的大量并行化。第二種情況是針對以隱式數(shù)據(jù)為中心的系統(tǒng)。因為不能將訓(xùn)練集視為稀疏的,所以像梯度下降那樣遍歷每個單個訓(xùn)練案例將是不切實際的。ALS可以有效解決這種情況。添加偏置
矩陣分解協(xié)同過濾方法的一個優(yōu)點是它在處理各種數(shù)據(jù)的靈活性和其他具體應(yīng)用的要求。這就要求在保持相同學(xué)習(xí)框架來計算式1。式1試圖獲取用戶和產(chǎn)生不同評分值的項目之間的交互。然而,許多觀察到的評分值的變化是由于與用戶或項目相關(guān)的影響,即偏差或截距(intercepts),與任何交互無關(guān)。例如,典型的協(xié)同過濾數(shù)據(jù)表現(xiàn)出較大的系統(tǒng)趨勢,即某些用戶給予的評價要高于其他用戶,而某些項目所獲得的評價要高于其他項目。畢竟,有些項目被普遍認(rèn)為比其他項目更好(或更差)。
因此,通過
來解釋全部評分值是不明智的。取而代之的是,系統(tǒng)嘗試識別這些值中各個用戶或項目偏見可以解釋的部分,僅對數(shù)據(jù)的真實交互部分進行因子建模。一個一階的將偏置包含的評分預(yù)測模型 如下式所示: (3)包含偏置項的評分
由 進行表示并且由用戶影響和項目影響所導(dǎo)致。總體平均評分由μ表示,參數(shù) 和 分別表示用戶u和項目i與平均值的觀察偏差。例如,假設(shè)你要對用戶Joe對電影《泰坦尼克號》的評分進行一次估算。現(xiàn)在,假設(shè)所有電影的平均評分μ為3.7分。此外,泰坦尼克號比平均的電影要好,所以它的評分傾向于比平均評分高0.5分。另一方面,Joe是個挑剔的用戶,打分傾向于比平均分低0.3分。因此,Joe對《泰坦尼克號》電影的評分預(yù)估為3.9分,(3.7+0.5-0.3)。式1的偏差擴展式如下: (4)在這里,觀察到的評分被分解為四個部分:總體平均評分,項目偏置分,用戶偏置分,和用戶-項目交互項。這使得每個部分只能解釋與之相關(guān)的信號部分。系統(tǒng)通過最小化平方誤差函數(shù)來學(xué)習(xí):
(5)由于偏差往往會捕獲很多觀察到的信號,因此準(zhǔn)確的建模至關(guān)重要。因此,其他的論文有提供了更詳盡的偏差模型。
額外的輸入源
通常一個系統(tǒng)必須處理冷啟動問題,其中許多用戶提供很少的評分,使它很難就他們的口味得出一般結(jié)論。緩解這個問題的一種方法是合并關(guān)于用戶的其他信息源。推薦系統(tǒng)可以使用隱式反饋來深入了解用戶的偏好。實際上,無論用戶是否愿意提供明確的評分,他們都可以收集行為信息。零售商可以利用客戶的購買記錄或瀏覽歷史來了解他們的傾向,以及這些客戶可能提供的評級。
為簡單起見,考慮使用布爾類型隱式反饋的情況。N(u)代表用戶u表示隱式偏好的項目集。這樣,系統(tǒng)就通過用戶隱式首選的項目對用戶進行了描述。在這里,需要一組新的項目因子,其中項目i與
相關(guān)聯(lián)。因此,在N(u)中表示項目偏好的用戶由下式向量進行特征化:對求和正規(guī)化通常是有效的,例如
另一個信息源是已知的用戶屬性,例如,人口統(tǒng)計信息。再次,為簡單起見,考慮布爾屬性,其中用戶u對應(yīng)于屬性A(u)的集合,該集合可以描述性別,年齡組,郵政編碼,收入水平等。一個獨立的因子向量
對應(yīng)于每個屬性,通過一組用戶關(guān)聯(lián)的屬性來描述用戶:矩陣分解模型應(yīng)集成所有信號源,并增強用戶表示能力:
盡管前面的示例處理的是增強用戶表示能力(在這種情況下,缺少數(shù)據(jù)更為常見),但在必要時可以對項目進行類似的處理。
時間動態(tài)
到目前為止,所提出的模型都是靜態(tài)的。實際上,隨著新選擇的出現(xiàn),產(chǎn)品的感知度和受歡迎度會不斷變化。同樣,客戶的偏好也會發(fā)生變化,從而導(dǎo)致他們重新定義自己的口味。因此,系統(tǒng)應(yīng)考慮到反映用戶項交互的動態(tài),時間漂移性質(zhì)的時間效應(yīng)。
矩陣分解方法可以很好地模擬時間效應(yīng),具有很好的實時性來改善準(zhǔn)確性。將評級分解為不同的項可以使系統(tǒng)分別處理不同的時間方面。具體而言,以下的項會隨時間變化:項目偏置
;用戶偏置 以及用戶偏好設(shè)置 。第一個時間效應(yīng)解決了一個事實,即商品的受歡迎程度可能會隨著時間而改變。例如,電影可能會受到外部事件(例如演員在新電影中的露面)的觸發(fā)而變得流行或者變得不流行。因此,這些模型處理項目偏置
可以當(dāng)作是時間的函數(shù)。第二種時間效應(yīng)使用戶可以隨時間更改其基線評級。例如,傾向于將平均電影評級為“ 4星”的用戶現(xiàn)在可以將此類電影評級為“ 3星”。這可能反映了幾個因素,包括用戶評分尺度的自然漂移,用戶分配評分相對于其他近期評分的事實,以及評分者在家庭中的身份可能隨時間而改變的事實。因此,在這些模型中,參數(shù) 是時間的函數(shù)。時間動態(tài)超越了這一點。它們還會影響用戶的偏好,從而影響用戶與項目之間的交互。用戶會隨著時間改變其偏好。例如,喜歡心理刺激類型電影的粉絲可能會在一年后成為犯罪劇的粉絲。同樣,人類會改變他們對某些演員和導(dǎo)演的看法。該模型采用用戶因素(向量
)來解釋這種影響作為時間的函數(shù)。另一方面,它指定靜態(tài)項目特征 ,因為與人類不同,項目本質(zhì)上是靜態(tài)的。加入時間因素后評分預(yù)測規(guī)則如下所示:
(7)具有不同置信水平的輸入
在一些設(shè)置中,并不是所有觀察到的評分都具有相同的權(quán)重或可信度。例如,大量的廣告可能會影響對某些商品的投票,而這些商品并不能恰當(dāng)?shù)胤从抽L期特征。類似地,系統(tǒng)可能會遇到試圖傾斜某些物品的評分的敵對用戶。
另一個例子是建立在隱式反饋基礎(chǔ)上的系統(tǒng)。在這種解釋正在進行的用戶行為的系統(tǒng)中,用戶的確切偏好分?jǐn)?shù)很難量化。因此,該系統(tǒng)使用粗略的二進制表示形式工作,指出“可能喜歡該產(chǎn)品”或“可能對該產(chǎn)品不感興趣”。在這種情況下,將置信度得分與估計的偏好附加在一起很有價值。置信可以來自于可用的描述動作頻率的數(shù)值,例如,用戶觀看某個節(jié)目的時間,或者用戶購買某個商品的頻率。這些數(shù)值表示每次觀察的置信度。各種與用戶無關(guān)的因素偏好可能導(dǎo)致一次性事件;然而,重復(fù)發(fā)生的事件更有可能反映用戶的意見。
矩陣分解模型可以很容易地接受不同的置信水平,這讓它給予較少有意義的觀察較少的權(quán)重。若對觀察的評分
的置信度記為 ,則模型對成本函數(shù)(方程5)進行增強,以說明置信度如下:總結(jié)
以上是生活随笔為你收集整理的基于hadoop的商品推荐系统_【论文笔记】基于矩阵分解的推荐系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言字符指针清零,C语言中字符串的内存
- 下一篇: python灰度图像为什么显示成彩色的_