本文翻譯自Koren Y, Bell R, Volinsky C. Matrix Factorization Techniques for Recommender
Systems[J]. Computer, 2009, 42(8) : 30 – 37.
現代消費者被大量的選擇所淹沒。電子零售商和內容提供商提供了大量的產品選擇,以前所未有的機會來滿足各種特殊的需求和口味。給用戶推薦最合適的產品是提高用戶滿意度和忠誠度的關鍵。因此,越來越多的零售商開始對推薦系統感興趣,這些推薦系統分析用戶對產品的興趣模式,提供適合用戶喜好的個性化推薦。由於良好的個性化建議可以爲用戶體驗增添另一個層面,電子商務領袖如Amazon.com和Netflix已經將推薦系統作爲其網站的一個顯著部分。
這種系統對娛樂產品如電影,音樂和電視節目特別有用。 許多客戶會看相同的電影,每個客戶可能會看到許多不同的電影。 客戶願意表明他們對特定電影的滿意程度,因此可以獲得關於哪些電影吸引哪些客戶的大量數據。公司可以分析這些數據,向特定的客戶推薦電影。
廣義而言,推薦系統基於兩種策略之一。內容過濾方法爲每個用戶或產品創建一個配置文件(profile)來描述其特性。 例如,電影配置文件可以包括關於其流派的屬性,參與的演員,其票房流行度等等。 用戶配置文件可能包括人口統計信息或適當調查問卷上提供的答案。 配置文件允許程序將用戶與匹配的產品相關聯。 當然,基於內容的策略需要收集外部信息,這些信息可能不可用或不易收集。
內容過濾的一個已知的成功的實現是音樂基因組項目,用於互聯網無線電服務Pandora.com。訓練有素的音樂分析師們根據數百個不同的音樂特點爲「音樂基因組計劃」中的每首歌打分。這些屬性或基因不僅捕捉到歌曲的音樂身份,還捕捉與理解聽衆的音樂偏好相關的許多重要的素質。
內容過濾的替代方案僅依賴於過去的用戶行爲,例如以前的交易或產品評級,而不需要創建明確的配置文件。 這種方法被稱爲協同過濾,這是由世界上第一個推薦系統Tapestry的開發者創造的一個術語。協作過濾分析用戶之間的關係和產品之間的相互依賴關係,以識別新的用戶 - 項目關聯。
協同過濾的主要吸引力在於它域無關的,但是它可以解決通常難以使用內容過濾進行概要分析的數據方面。儘管通常比基於內容的技術更精確,但由於協作過濾無法處理系統的新產品和新用戶,所以存在所謂的冷啓動問題。 在這方面,內容過濾是優越的。
協同過濾的兩個主要領域是鄰域方法和潛在因子模型。 鄰域方法的核心是計算項目之間或用戶之間的關係。 項目導向的方法根據同一用戶對「鄰近」項目的評分來評估用戶對項目的偏好。 一個產品的鄰居是其他產品,當被同一用戶評價時,往往會得到相似的評價。 例如,考慮電影《拯救大兵瑞恩》。 它的鄰居可能包括戰爭電影,斯皮爾伯格電影和湯姆·漢克斯電影等等。 爲了預測特定用戶對《拯救大兵瑞恩》的評價,我們會查找該用戶實際評價的、《拯救大兵瑞恩》的最近的鄰居。 如圖1所示,面向用戶的方法確定了能夠相互補充評價的志趣相投的用戶。
潛在因素模型是另一種嘗試解釋評級的方法,通過對評分模式推斷出的20到100個因素進行特徵描述。 從某種意義上說,這些因素包括一個電腦化的替代上述人類創造的歌曲基因。對於電影,發現的因素可能會測量顯着的維度,如喜劇與戲劇,行動的數量或對兒童的定位; 不太明確的維度,如性格發展的深度或怪癖; 或完全不可解釋的尺寸。對於用戶來說,每個因素都衡量了用戶喜歡相應電影因素得分高的電影的程度。
圖2以二維的形式說明了這個簡化的例子。 考慮兩個假設的維度,其特徵是女性對男性,嚴重對逃避現實。該圖顯示了幾個著名的電影和幾個虛構的用戶可能落在這兩個方面。 對於此模型,用戶對電影的預測評級(相對於電影的平均評級)將等於電影和用戶在圖表上的位置的點積。 例如,我們預測Gus喜歡Dumb和Dumber,討厭The Purple Purple,並且把Braveheart評爲平均水平。 請注意,某些電影(例如Ocean’s 11)和用戶(例如Dave)在這兩個維度的特點是相當中性。
一些最成功的潛在因子模型的實現是基於矩陣分解的。 在其基本形式中,矩陣分解通過從項目評分模式推斷的因素(factor)向量來表徵項目和用戶。 項目與用戶因素之間的高度對應導致推薦。 近幾年來,這些方法通過結合良好的可擴展性和預測準確性而變得流行起來。 另外,它們爲建模各種現實生活情況提供了很大的靈活性。
推薦系統依賴於不同類型的輸入數據,這些輸入數據通常放置在矩陣中,其中一維代表用戶,而另一維代表感興趣的項目。 最方便的數據是高質量的顯式反饋,其中包括用戶對產品興趣的明確輸入。 例如,Netflix收集電影的星級,而TiVo用戶通過按下大拇指和大拇指按鈕來指示他們對電視節目的偏好。 我們將明確的用戶反饋稱爲評分。 通常,顯式反饋包含一個稀疏矩陣,因爲任何單個用戶可能只有一小部分可能的項目。
矩陣分解的一個優點是它允許併入額外的信息。 當顯式反饋不可用時,推薦系統可以使用隱式反饋來推斷用戶偏好,其通過觀察用戶行爲(包括購買歷史,瀏覽歷史,搜索模式甚至鼠標移動)來間接反映意見。 隱式反饋通常表示事件的存在或不存在,所以它通常由密集填充的矩陣表示。
矩陣分解模型將用戶和項目映射到維度
主要的難點在於如何把用戶和物品映射到向量空間。當映射完成後,顯然可以很容易的用公式(1)估計用戶對任何物品的評分。
這種模型與奇異值分解 (SVD) 密切相關, 是識別信息檢索中潛在語義因素的一種行之有效的方法。在協同過濾域中應用 SVD 需要分解用戶——物品的評分矩陣。由於大量的的數據缺失,即稀疏性,這通常很困難。當關於矩陣的知識不完備時, 傳統的 SVD 是未定義的。而且,不經意地只處理相對較少的已知條目是非常容易過度擬合(overfitting)的。
較早的系統依靠填補缺失的評分並使得評級矩陣密集。然而,填補可能非常昂貴,因爲它顯着增加了數據量。此外,不準確的填補可能會大大扭曲數據。 因此,最近的工作建議直接對觀察到的評分進行建模,同時通過正規化模型避免過度擬合。爲了學習因子向量
系統通過擬合先前觀察到的評分來學習模型。 然而,我們的目標是以預測未來,未知評分的方式推廣以前的評分。因此,系統應該通過正規化學習的參數來避免過度擬合觀察到的數據,這些參數的大小受到懲罰。常量
兩個最小化公式(2)的方法是隨機梯度下降和交替最小二乘(ALS)。
Simon Funk普及了隨機梯度下降公式
因爲
雖然隨機梯度下降比ALS更容易和更快,但ALS至少有兩種情況是有利的。 首先是系統可以使用並行化。 在ALS中,系統獨立於其他項目因素計算每個
矩陣分解方法對於協同過濾的一個好處是它在處理各種數據方面和其他應用特定需求方面的靈活性。這需要在公式(1)中適應,同時保持在相同的學習框架內。 公式(1)嘗試捕獲產生不同評級值的用戶和項目之間的交互。 然而,觀察到的評分值的變化大部分是由於與用戶或項目相關的影響,稱爲偏差或截距,與任何相互作用無關。 例如,典型的協作過濾數據對於一些用戶來說顯示出較大的系統傾向,以給予比其他用戶更高的評價,並且對於一些項目來說,獲得比其他評價更高的評價 畢竟,有些產品被普遍認爲比其他產品更好(或更差)。
因此,直接用
偏置拓展了公式(1),得到公式(4):
通常系統都會面臨冷啓動的問題,用戶提供很少的信息,很難了解用戶口味來給他推薦。解決這個問題的一個辦法是整合更多關於用戶的信息來源。 推薦系統可以使用隱式反饋來深入瞭解用戶的偏好。事實上,無論用戶是否提供明確的評級,他們都可以收集行爲信息。 零售商可以使用客戶的購買或瀏覽歷史來了解他們的趨勢,以及客戶可能提供的評級。
爲了簡單起見,考慮具有布爾隱式反饋的情況。
歸一化通常是有利的,即
到目前爲止,所提出的模型是靜態的。 實際上,隨着新的選擇的出現,產品的感知和受歡迎程度也在不斷變化。 同樣,顧客的傾向也在發展,導致他們重新定義自己的品味。 因此,系統應考慮時間效應,反映在用戶項目交互的動態性和時間漂移性。
矩陣分解方法非常適合對時間效應進行建模,這可以顯着提高準確性。 將評分分解爲不同的術語允許系統分別處理不同的時間方面。 具體而言,下列術語隨時間變化:項目偏差
首先,時間效應表明了了一個項目的受歡迎程度可能隨時間而變化的事實。 例如,電影可以由外部事件(例如演員在新電影中出現)觸發而進入受歡迎程度。 因此,這些模型將項目偏差
到目前爲止,所提出的模型是靜態的。 實際上,隨着新的選擇的出現,產品的感知和受歡迎程度也在不斷變化。 同樣,顧客的傾向也在發展,導致他們重新定義自己的品味。 因此,系統應考慮時間效應,反映在用戶項目交互的動態性和時間漂移性。
矩陣分解方法非常適合對時間效應進行建模,這可以顯着提高準確性。 將評分分解爲不同的術語允許系統分別處理不同的時間方面。 具體而言,下列術語隨時間變化:項目偏差
首先,時間效應表明了了一個項目的受歡迎程度可能隨時間而變化的事實。 例如,電影可以由外部事件(例如演員在新電影中出現)觸發而進入受歡迎程度。 因此,這些模型將項目偏差