本文選自電子工業出版社博文視點新書《大數據智能:數據驅動的自然語言處理技術》。本書作者:清華大學劉知遠、薄言RSVP.ai崔安颀、騰訊張開旭、清華大學韓文弢、中國人民大學趙鑫、廈門大學蘇勁松、羅格斯大學張永鋒、北京大學嚴睿、哈爾濱工業大學(深圳)湯步洲、清華大學塗存超、哈爾濱工業大學丁效 。
本書覆蓋NLP諸多核心技術與應用場景;每章都爲初學者入門提供了詳細參考資料;針對初學者,給出追蹤前沿學術資料的方法與建議。
如何獲得這本書?請在評論區留言,根據留言質量+留言點贊數量,三位用戶可獲得本書。
活動截止時間爲1月10日晚8點。
*本活動僅限微信公衆號。
如果沒有抽中,也沒有關系,文章末尾還有更大的福利哦~~
本節,我們對常見的推薦算法進行歸類整理,分析它們的共通之處和不同點,力圖使讀者對各式各樣的個性化推薦算法及其之間的關系有一個整體的認識。
推薦算法的分類
按照不同的分類指標,推薦系統具有很多不同的分類方法,常見的分類方法有依據推薦結果是否因人而異分類、依據推薦方法的不同分類、依據推薦模型構建方式的不同分類等。
依據推薦結果是否因人而異,可以分爲大衆化推薦和個性化推薦兩類。大衆化推薦往往與用戶本身及其曆史信息無關,在同樣的外部條件下,不同用戶獲得的推薦是一樣的。大衆化推薦的一個典型的例子是查詢推薦,它往往只與當前的查詢語句有關,很少與該用戶直接相關。個性化推薦的特點則是在同樣的外部條件下,不同的人可以獲得與其興趣愛好、曆史記錄等相匹配的推薦。
依據推薦方法的不同,推薦算法大致可以分爲如下幾種:基于人口統計學的推薦(Demographic-based Recommendation)、基于內容的推薦(Content-based Recommendation)、基于協同過濾的推薦(Collaborative Filtering-based Recommendation)、混合型推薦(Hybrid Recommendation)。其中,基于協同過濾的推薦被研究人員研究得最多也最深入,它又可以分成多個子類別,包括基于用戶的推薦(User-based Recommendation)、基于物品的推薦(Item-Based Recommendation)、基于社交網絡關系的推薦(Social-based Recommendation)、基于模型的推薦(Model-based Recommendation),等等。其中,基于模型的推薦是指利用系統已有的數據,學習和構建一個模型,進而利用該模型進行推薦,這裏的模型可以是SVD、NMF等矩陣分解模型,也可以是利用貝葉斯分類器、決策樹、人工神經網絡(Neural Networks)等模型轉化的分類問題,或者基于聚類技術對數據進行預處理的結果,等等。
依據推薦模型構建方式的不同,目前的推薦算法大致可分爲基于用戶或物品本身的啓發式推薦(Heuristic-based,或稱爲Memory-based Recommendation)、基于關聯規則的推薦(Association Rule Mining for Recommendation)、基于模型的推薦,以及混合型推薦。
典型推薦算法介紹
1.基于人口統計學的推薦
基于人口統計學的推薦(Demographic-based Recommendation)雖然已經很少被單獨使用,但是理解這種方法的工作原理對于深入理解推薦系統有很大幫助。基于人口統計學的方法假設“一個用戶有可能會喜歡與其相似的用戶所喜歡的物品”。它記錄了每一個用戶的性別、年齡、活躍時間等元數據,當我們需要對一個用戶進行個性化推薦時,利用其元數據計算其與其他用戶之間的相似度,並選出與其最相似的一個或幾個用戶,利用這些用戶的購買和打分曆史記錄進行推薦。一種簡單且常見的推薦方法就是將這些(最相似的)用戶所覆蓋的物品作爲推薦列表,並以物品在這些用戶上的平均得分作爲依據進行排序。
基于人口統計學的推薦方法的優點是計算簡單,用戶的元數據相對比較穩定,相似用戶的計算可以在線下完成,便于實現實時響應。但它也有諸多問題,其主要問題之一便是計算可信度較低,因爲即便是性別、年齡等元數據屬性都相同的用戶,也很有可能在物品上有截然不同的偏好,所以這種計算用戶相似度的方法往往並不能與物品之間建立真正可靠的聯系。因此,基于人口統計學的方法在實際推薦系統中很少作爲一個特定的方法單獨使用,而常常與其他方法結合,利用用戶元數據對推薦結果進行進一步的優化。
2.基于內容的推薦
基于內容的推薦假設“一個用戶可能會喜歡和他曾經喜歡過的物品相似的物品”,而這裏提到的“相似的物品”通過商品的內容屬性確定,例如電影的主要演員、風格、時長,音樂的曲風、歌手,商品的價格、種類,等等。典型的基于內容的方法首先需要構建用戶畫像,一種較爲簡單的方法是考慮該用戶曾經購買或浏覽過的所有物品,並將這些物品的內容信息加權整合,作爲對應用戶的畫像,它描述了一個用戶對物品屬性的偏好特征。當然,構建用戶畫像的策略可以很複雜,比如可以考慮時間因素,計算用戶在不同時間段內的畫像,從而了解該用戶在曆史數據上表現出的偏好變化,等等。
有了用戶畫像,就可以開始推薦了,最簡單的推薦策略就是計算所有該用戶未嘗試過的物品與該用戶畫像之間的相似度,並按照相似度由大到小的順序生成推薦列表,作爲推薦結果。當然,推薦策略也可以很複雜,例如在數據源上,考慮本次用戶交互過程中收集到的即時交互數據來決定排序;在模型上使用決策樹、人工神經網絡等,但這些方法最核心的環節都是利用用戶畫像和物品屬性之間的相似度計算。
其實在很多基于內容的推薦算法中,並不是把用戶畫像顯式地計算出來,而是利用用戶打過分的物品,直接計算推薦列表。一種直觀的方法就是計算它與該用戶嘗試過的所有物品之間的相似度,並將這些相似度根據用戶的打分進行加權平均。這實際上也是基于內容的方法,只是繞過了計算用戶畫像的環節。實際上,很多具體的應用表明,繞過用戶畫像的計算,直接利用物品屬性計算相似度往往更靈活,能獲得更好的推薦效果,這是因爲在計算用戶畫像的過程中,一些有用的信息被丟掉以至于無法在後面的環節中被利用。
基于內容的推薦方法對于解決新物品的冷啓動問題有重要的幫助,這是因爲只要系統擁有該物品的屬性信息,就可以直接計算它與其他物品之間的關聯度,而不受用戶評分數據稀疏性的限制。另外,推薦結果也具有較好的可解釋性,一種顯然的推薦理由是“該物品與用戶曾經喜歡過的某物品相似”。然而,基于內容的推薦方法也有一些缺點:首先,系統需要複雜的模塊,甚至需要手動預處理物品信息以得到能夠代表它們的特征,然後受信息獲取技術、處理對象的複雜性高等因素的制約,這樣的工作難以達到較好的效果;其次,該方法難以發現用戶並不熟悉但有潛在興趣的物品,因爲該方法總是傾向于向用戶推薦與其曆史數據相似的物品;最後,該方法往往不具備較好的可擴展性,需要針對不同的領域構建幾乎完全不同的物品屬性,因而針對一個數據集合訓練的模型未必適合其他的數據集合。
3.基于協同過濾的推薦
基于協同過濾的推薦一般是指通過收集用戶的曆史行爲和偏好信息,利用群體的智慧(Wisdom of the Crowds)爲當前用戶個性化地推薦。根據前文所述,基于協同過濾的推薦大致包括基于用戶的推薦、基于物品的推薦,以及基于模型的推薦,等等。
基于用戶的推薦方法是最早的基于協同過濾的推薦算法(Resnick and Iacovou,1994),其基本假設與基于人口統計學的方法類似,即“用戶可能會喜歡和他具有相似愛好的用戶所喜歡的物品”,它們的不同之處在于,這裏的“相似愛好的用戶”不是利用用戶的人口統計信息直接計算出來的,而是利用用戶的打分曆史記錄進行計算的。它的基本原理爲那些具有相似偏好的用戶,他們對物品的打分情況往往具有更強的相似性。
基于用戶的推薦方法的核心是最近鄰搜索技術。我們把每一個用戶看成一個行向量,並計算其他用戶行向量與該用戶的相似度,這裏的相似度計算可以采用多種不同的指標,如Pearson相關性系數、余弦相似度等。擁有了用戶之間的兩兩相似度之後,選擇與目標用戶最相似的前k個用戶的曆史購買/浏覽行爲信息,爲目標用戶做出個性化的推薦列表。例如在Top-N推薦中,系統統計在前k個用戶中出現頻率最高且在目標用戶的曆史記錄中未出現的物品,利用這些物品構建推薦列表,並將其作爲輸出。關聯推薦的基本思想則是利用這前k個用戶的購買或打分記錄進行關聯規則挖掘,並利用挖掘出的關聯規則結合目標用戶的購買記錄完成推薦,典型的推薦結果如很多網絡購物商城中常見的“購買了某物品的用戶還購買了該物品”。
在基于用戶的推薦方法中,“個性化”體現在對不同的用戶,其最近鄰是不同的,從而得到的推薦列表也不盡相同;“協同過濾”則體現在對目標用戶進行推薦時使用了其他用戶在物品上的曆史行爲信息,這是與基于人口統計學的推薦方法的不同之處。
基于用戶的方法的優點在于在數據集完善、內容豐富的條件下能夠獲得較高的准確率,而且能夠對物品的關聯性和用戶的偏好進行隱式透明的挖掘。其缺點是隨著系統用戶數量的增大,計算用戶相似度的時間代價顯著增長,使得該方法難以勝任用戶量變化巨大的系統,從而限制了算法的可擴展性。另外,冷啓動用戶的問題也是該方法難以處理的重要問題:當新用戶加入系統時,由于其打分曆史記錄很少,難以准確計算該用戶的相似用戶,這也進一步引出數據稀疏性對系統可擴展性的限制。
鑒于基于用戶的協同過濾方法可擴展性差的問題,研究人員進一步提出了基于物品的推薦(Sarwar, et al., 2001),如圖8.6所示。在該圖所表示的矩陣中,每一行表示一個用戶,每一列表示一個物品,矩陣中每一個元素表示相應的用戶對相應的物品的打分。基于物品的推薦方法所基于的基本假設與基于內容的方法類似,也就是“用戶可能會喜歡與他之前曾經喜歡的物品相似的物品”。例如,喜歡《長尾理論:爲什麽商業的未來是小衆市場》這本書的人,很有可能去看《世界是平的》。與基于內容的推薦方法不同的是,這裏的“相似的物品”並非通過物品屬性來計算,而是通過網絡用戶對物品的曆史評分記錄來計算的。
圖8.6 基于物品的推薦
基于物品的推薦方法將矩陣的每一個列向量作爲一個物品來計算物品列向量之間的相似度,並基于物品之間的兩兩相似度進行預測和推薦。一個簡單的例子是:當用戶購買了某一個物品後,直接向其推薦與該物品相似度最高的前幾個物品;複雜一點的情況是,考慮該用戶所有的曆史打分記錄(Sarwar, et al., 2001),並根據一個用戶行向量中的0值(即用戶未購買的物品),預測用戶在該物品上可能的打分,如圖8.6所示。例如,我們可以考慮目標用戶在曆史上所有打過分的物品,並以它們與待預測的物品的相似度爲權重對這些曆史打分值進行加權平均,作爲對待預測的目標物品的預測打分,最終以預測打分的高低爲順序給出推薦列表。總體而言,基于物品的推薦方法是一種啓發式方法,對目標的擬合能力是有限的,但是把多個啓發式方法結合起來,也可以有很好的擬合能力。
基于物品的推薦方法的優點如下。
(1)計算簡單,容易實現實時響應。在常見的系統中,物品被評分的變化要比用戶低得多,因此物品相似度的計算一般可以采用離線完成、定期更新的方式,從而減少了線上計算,實現實時響應並提高效率。尤其是在用戶數遠大于商品數的情況下效果更爲顯著,例如,用戶新添加了幾個感興趣的商品之後,系統就可以立即給出新的推薦。
(2)可解釋性較好。用戶可能不了解其他人的購物情況,但是對自己的購物曆史總是很清楚的。另外,用戶總是希望自己有最後的決定權。基于物品的推薦方法很容易讓用戶理解爲什麽推薦了某個物品,並且當用戶在興趣列表裏添加或刪除物品時,可以調整系統的推薦結果,這也是其他方法最難做到的一點。
然而,基于物品的推薦也有缺點:以物品爲基礎的信息過濾系統較少考慮用戶之間的差別,因此精度較基于用戶的方法稍微遜色。
除此之外,還有許多其他的問題有待解決,最典型的就是數據稀疏性和冷啓動的問題。
基于用戶的推薦和基于物品的推薦具有某種對稱性,且均爲個性化推薦系統最基礎的入門級方法,因此我們要對這兩種最基本的協同過濾方法進行對比。
在計算複雜性上,基于用戶的推薦方法往往在線計算量大,難以實時響應。對于一個用戶數量大大超過物品數量,且物品數量相對穩定的應用,一般而言,基于物品的推薦方法從性能和複雜度上都比基于用戶的推薦方法更優,這是因爲物品相似度的計算不但計算量較小,而且不必頻繁更新;而對于諸如新聞、博客或者微內容等物品數量巨大且更新頻繁的應用,基于用戶的推薦方法往往更具優勢,推薦系統的設計者需要根據自己應用的特點選擇更合適的算法。
在適用場景上,內容之間的內在聯系是非社交型網站中很重要的推薦原則,往往比基于相似用戶的推薦原則更有效。以購書網站爲例,當用戶看一本書的時候,推薦引擎會向用戶推薦與其相關的書籍,這個推薦的重要性遠遠超過了網站首頁對該用戶的綜合推薦。在這種情況下,基于物品的推薦方法成了引導用戶浏覽的重要手段。同時,基于物品的推薦方法便于爲推薦做出解釋。以一個非社交型網站爲例,如果給某個用戶推薦圖書被解釋爲“某個與該用戶有相似興趣的人也購買了被推薦的圖書”,則很難讓目標用戶信服,因爲該用戶可能根本不認識推薦理由中“有相似興趣的”用戶;但如果解釋爲“被推薦的圖書與用戶之前看過的圖書相似”,則很容易被用戶接受,因爲用戶往往對自己的曆史行爲記錄非常熟悉且認可。相反,在社交型網站中,基于用戶的推薦方法則是更好的選擇,因爲基于用戶的推薦方法加上社交網站中的社會網絡信息,可以大大增加用戶對推薦解釋的信服度。
在一個綜合的推薦系統中,一般很少只用某一種推薦策略,考慮到基于用戶和基于物品的推薦方法之間的互補性,很多推薦系統將兩者結合起來,作爲系統的基礎推薦算法。
4.基于模型的推薦
基于用戶或基于物品的推薦方法共有的缺點是計算規模龐大,難以處理大數據量下的即時結果。以模型爲基礎的協同過濾技術則致力于改進該問題:先利用曆史數據訓練得到一個模型,再用此模型進行預測。
以模型爲基礎的協同過濾技術包括潛在語義分析(Latent Semantic Indexing)、貝葉斯網絡(Bayesian Networks)、矩陣分解(Matrix Factorization)、人工神經網絡,等等。它們收集用戶的打分數據進行分析和學習,並推斷出用戶行爲模型,進而對某個産品進行預測打分。例如,可以將用戶屬性和物品屬性中的各個特征作爲輸入,以用戶打分作爲輸出擬合回歸模型;或者將打分作爲類別,將問題轉化爲一個多分類器問題,等等。這種方式不是基于一些啓發規則進行預測計算,而是用統計和機器學習的方法對已有數據進行建模並預測。
5.混合型推薦
混合型推薦系統和算法是推薦系統的另一個研究熱點,它是指將多種推薦技術進行混合,相互彌補缺點,以獲得更好的推薦效果。最常見的是將協同過濾技術和其他技術相結合以克服冷啓動的問題。常見的混合型推薦策略有如下幾種(Burke, 2002)。
(1)加權融合(weighted):將多種推薦技術的計算結果加權混合産生推薦,最簡單的方式是基于感知器的線性混合。先將協同過濾的推薦結果和基于內容的推薦結果賦予相同的權重值,然後比較用戶對物品的評價與系統的預測是否相符,進而不斷調整權值。
(2)切換(switch):根據問題背景和實際情況采用不同的推薦技術。例如,系統先使用基于內容的推薦技術,如果它不足以産生高可信度的推薦就轉而嘗試使用協同過濾技術。因爲需要針對各種可能的情況設計轉換標准,所以這種方法會增加算法的複雜度和參數化。由于融合了多種推薦算法,並能夠根據場景自動選擇合適的推薦算法,基于切換的混合型推薦方法能夠充分發揮不同推薦算法的優勢。
(3)混合(mix):將多種不同的推薦算法推薦出來的結果混合在一起,其難點是如何進行重排序。
(4)特征組合(feature combination):將來自不同推薦數據源的特征組合起來,由另一種推薦技術采用。這種方法一般會將協同過濾的信息作爲增加的特征向量,然後在增加的數據集上采用基于內容的推薦技術。特征組合的混合方式使得系統不再僅僅考慮協同過濾的數據源,降低了用戶對物品評分數量的敏感度。相反,它允許系統擁有物品的內部相似信息,其對協同過濾系統是不透明的。
(5)級聯型(cascade):用後一個推薦方法優化前一個推薦方法。它是一個分階段的過程,先用一種推薦技術産生一個較爲粗略的候選結果,在此基礎上使用第二種推薦技術對其做出更精確地推薦。
(6)特征遞增(feature augmentation):將前一個推薦方法的輸出作爲後一個推薦方法的輸入,它與級聯型的不同之處在于,這種方法的上一級産生的並不是直接的推薦結果,而是爲下一級的推薦提供某些特征。一個典型的例子是將聚類分析環節作爲關聯規則挖掘環節的預處理,從而將聚類所提供的類別特征用于關聯規則挖掘。
(7)元層次混合(meta-level hybrid):將不同的推薦模型在模型層面上進行深度融合,而不僅僅是把一個輸出結果作爲另一個的輸入。例如,基于用戶的推薦方法和基于物品的推薦方法的一種可能的組合方式爲:先計算目標物品的相似物品集,然後刪掉所有其他(不相似的)物品,進而在目標物品的相似物品集上采用基于用戶的協同過濾算法。這種基于相似物品計算近鄰用戶的協同推薦方法,能很好地處理用戶多興趣下的個性化推薦問題,尤其是在候選推薦物品的內容屬性相差很大時,該方法可以獲得較好的性能。
基于矩陣分解的打分預測
1.矩陣上的打分預測問題及其評價
在前面的介紹中我們已經知道,一個典型的推薦系統常常把用戶和物品之間的關系形式化爲一個稀疏矩陣(如圖8.7所示),其中矩陣的每一行對應一個用戶,每一列對應一個物品,矩陣中的每一個非零值(圖8.7中以“×”标记的元素)代表相应的用户对物品的打分(一般是1~5的星級打分),而每一個零值(圖8.7中空白的部分)則代表用戶在曆史上沒有對該物品進行過評分。在這樣一個矩陣上的打分預測問題即爲根據矩陣中已有的值預測矩陣中缺失的值,也就是盡可能精確地估計一個用戶在未買過的物品上可能的打分,從而基于預測打分的高低給出推薦列表。
圖8.7 推薦系統的稀疏矩陣示例
爲了設計好的打分預測算法,我們先定義合適的評價指標來評價一個算法的預測結果,常用的評價指標爲根分均方差(Root Mean Square Error,RMSE)和平均絕對誤差(Mean Absolute Error,MAE)。設矩陣以X表示,矩陣中的每一個打分記爲rij,所有打分的集合記爲S,我們一般取部分打分(如 80%)進行模型的訓練和驗證,並用其部分(如 20%)進行評價。設
表示算法給出的預測打分,並以表示所有用于測試的打分值集合,那麽評價指標RMSE和MAE的計算如下所示:
一個評分預測算法致力于預測矩陣中未知的打分,並使RMSE或MAE評價指標最小。接下來,我們介紹在推薦系統中廣泛使用的基于矩陣分解的預測算法及其統一的形式化表示。
2.矩陣分解算法
基于矩陣分解的矩陣補全因其具有較好的預測精度和較高的可擴展性,在實際推薦系統中得到了廣泛的應用。目前,研究人員設計了諸多基于矩陣分解的矩陣補全和預測算法,例如SVD、非負矩陣分解(Non-negative Matrix Factorization,NMF)、概率化矩陣分解(Probabilistic Matrix Factorization,PMF)、最大間隔矩陣分解(Maximum Margin Matrix Factorization,MMMF),等等。圖8.8所示爲使用NMF對原始矩陣的未知值進行預測的結果。
圖8.8 基于NMF的矩陣補全示例
大部分已有的矩陣分解算法都可以用一個統一的模型進行概括。爲了幫助讀者更好地了解矩陣分解算法的本質及不同算法之間深刻的內在聯系,我們先介紹矩陣分解算法的一種統一表示形式(Singh and Gordon, 2008)。
設
是一個稀疏矩陣,並設
和
是對原始矩陣X的低秩分解,那麽一個矩陣分解算法
可以形式化地概括爲如下各個子模塊的組合:
預測函數:
。
可選的權重矩陣
,當權重矩陣存在時,它往往是損失函數的一部分。
損失函數
,它表示當我們用預測矩陣
來近似X時所引入的預測誤差。
對分解矩陣的約束條件:
。
正則化因子:
。
基于這些子模塊,原始矩陣X被近似爲
。同時,一個矩陣分解算法可以形式化爲如下最優化問題:
其中的損失函數D(·,·)對于第二個自變量一般是一個凸函數,且往往可以分解爲矩陣中各個元素上的損失之和。例如,對于常見的加權奇異值分解(Weighted Singular Value Decomposition,WSVD)算法而言,其損失函數爲:
其中,⊙表示將兩個同維度的矩陣對應元素相乘得到一個新的矩陣,
則表示矩陣的Frobenius範數,即矩陣中各個元素的平方和。
選取不同的預測函數f、權重矩陣W、損失函數Dw和正則化項R等各部分,就可以獲得很多不同的矩陣分解算法,用以解決不同背景下的個性化推薦問題。
3.常用矩陣分解算法
在如上的矩陣分解形式化描述下,我們介紹幾種常見的矩陣分解方法,從而幫助讀者對矩陣分解在個性化推薦,尤其是在矩陣的打分預測任務上的應用有更深入的了解。
1)SVD
奇異值分解在矩陣計算中具有理論上重要的基礎性意義。最原始的SVD方法具有嚴格的數學定義,設是任意一個矩陣,矩陣中的列向量是矩陣
的單位正交特征向量,矩陣中的列向量是矩陣
的單位正交特征向量,對角矩陣∑∈
中的每一個對角元素
是與矩陣U(同時也是與矩陣V)中的每一個列向量對應的特征值
的平方根,並以從大到小的順序排列,則原矩陣X可表示爲
,其中∑被稱爲奇異值矩陣。如果只保留奇異值矩陣∑中的前k個最大的奇異值,同時只保留U和V中的前k個對應的列向量,則新的矩陣
爲對原矩陣X的一個近似。可以證明,對原矩陣X所有秩爲k的近似,采用如上SVD得到的近似結果可以取得最小的平方誤差,即
當然,通過這種方式取得的近似矩陣也就具有最小的RMSE值。奇異值分解示意圖如圖8.9所示。
圖8.9 奇異值分解示意圖
在實際的推薦系統中,我們所要處理的往往是非常稀疏的矩陣,即矩陣中存在大量的未知打分(以0值表示)。需要指出的是,這些0值並不意味著用戶對相應的物品打了0分,僅表示用戶沒有進行相關的打分,或者沒有觀測到相應的打分,因此在計算預測精度時,將這些元素上的預測值也考慮在內,並以0作爲真實值進行評測是不合理的。
基于這一事實,在實際的推薦系統中使用的SVD算法並不是原始的“精確的”SVD,而是只考慮已觀測數據進行模型訓練和預測的SVD算法,並采用優化的方法求得近似矩陣以應對大規模的稀疏矩陣。
因此,我們采用低秩近似的方式,用兩個秩較低的矩陣的乘積近似一個秩較高的大規模矩陣,並考慮在已觀測的點上對矩陣進行優化,得到如下SVD算法:
其中,權重矩陣中與原矩陣的已觀測點相對應的元素取值爲1,與未觀測點相對應的元素取值爲0,也就是只考慮原矩陣中已觀測點上的預測損失,而正則化項用于最小化模型複雜度,從而減小模型過擬合帶來的影響。
2)NMF
在如上的SVD算法中,我們並沒有對分解矩陣
附加其他限制條件,只是簡單地要求其列維度爲。在很多實際應用場景中,我們希望矩陣分解得到的分解向量滿足一定的條件,最常見的就是要求分解矩陣的各個列向量由非負值組成(Lee and Seung, 2001),這是因爲在很多場景中(如圖像處理、社交網絡關系處理、文本處理、概率估計,等等),我們所處理的數據均爲非負值,采用非負的向量更符合問題的假設,往往能取得更好的效果。因此,NMF相對于SVD算法在包括推薦系統在內的很多實際系統中獲得了更廣泛的應用。典型的NMF算法的優化表達式爲:
其中,與SVD的不同之處在于我們限制分解矩陣取非負值:
(注意優化目標約束區間的不同)。
(3)PMF
PMF(Mnih and Salakhutdinov, 2007)爲矩陣分解算法提供了概率框架下的解釋,並試圖利用概率模型對原始矩陣中的已觀測點進行最大似然估計:
其中,
爲高斯分布,Wij仍然描述原始打分矩陣的數值分布情況,即對應于原始矩陣中的非零值Wij=1,否則Wij=0。同樣,也可以用概率分布來描述分解矩陣U和V:
我們在已觀測數據上最大化如下的對數似然概率:
顯然,該形式同樣可以表達爲統一的矩陣分解形式,如下面的最小化問題所示:
4)MMMF
如上所介紹的常用矩陣分解算法所隱含的基本假設均爲“低秩近似”假設:雖然一個大規模的稀疏矩陣其原始形式可能具有較高的秩,但我們認爲可以用一個秩較低的矩陣對原始矩陣進行近似和重構。
在如上的矩陣分解中,原始矩陣的行數和列數(m和n)可以高達上百萬甚至千萬的量級,但是我們所采用的分解矩陣U和V的列數被限制在k維。k在實際系統中不過是幾十至幾百的量級,而近似矩陣
的秩一定小于k,因此存儲空間相對于原始矩陣而言大大降低。其中隱含的意義在于,雖然原始矩陣的規模和維度非常龐大,但我們認爲用來描述這些數據的規律、結構和參數的數量是有限的,且最多用k個維度就可以較爲完備地刻畫出來,這k個維度的參數就用超線性參數矩陣U和V的形式描述。例如,一個化妝品購物網站所包含的用戶數量和商品數量可能非常龐大,因而對應的用戶-物品稀疏矩陣也具有龐大的規模。但是描述網站用戶對化妝品評分關系的因素可能是爲數不多的有限個,例如化妝品的品牌、價格、包裝、顔色、質量,等等。這就爲矩陣的低秩分解和近似提供了基礎。
基于低秩近似的矩陣分解算法存在的一個重要問題是在實際操作中難以確定選擇多少個維度進行分解,因爲在實際應用中,設計人員很難估計決定系統規律的參數維度到底有多少個。使用的維度過少可能無法完全描述用戶的偏好信息,從而造成預測精度的下降;使用的維度過多會帶來巨大的計算負載,甚至帶來過擬合。
MMMF(Srebro, et al., 2004)突破傳統的低秩近似假設,采用低範數近似的理念對原始矩陣進行分解和預測,從而繞過選取特定維度進行分解。爲了簡化問題描述和符號表示,我們在這裏采用兩類標簽的矩陣。假設原始矩陣
,對Y的近似矩陣爲X,則MMMF最小化如下的優化目標:
其中的正則化項
爲矩陣的核範數(Nuclear Norm),它表示一個矩陣的各個特征值之和,用來描述和控制模型的複雜度。可以證明,矩陣的核範數可以等價表示爲如下的形式:
即一個矩陣的核範數等于其所有可能的分解矩陣(不對分解的維度進行具體限制)的Frobenius範數中的最小值。正是基于這一定理,我們可以繞過顯式的矩陣分解,轉而采用直接最小化核範數的方式使在全部可能的維度下尋找最優解成爲可能。
基于神經網絡的推薦算法
深度神經網絡在個性化推薦問題上也得到了應用。例如,矩陣的打分預測問題可以看作一個基于多層神經網的擬合問題。然而,直接用多層神經網絡進行打分預測的效果並不好,谷歌提出了融合淺層網絡與多層神經網絡的推薦算法,如圖8.10所示。在該模型中,淺層網絡用于擬合系統中已有的屬性信息,從而利用明確已知的信息進行預測。深層網絡用于擬合隱藏在訓練數據中的未知信息,輔助提升推薦效果。神經網絡算法也被應用在實際的商業推薦系統中,例如,文獻(Covington, et al., 2016)將多層神經網絡與用戶物品的表示學習用在了YouTube的視頻推薦系統中,與視頻預篩選等工程手段結合,取得了不錯的效果。
圖8.10 谷歌提出的融合淺層網絡與多層神經網絡的推薦算法
需要指出的是,學術界對基于神經網絡的推薦算法到底有沒有真正提高推薦效果是有爭議的。例如,文獻(Dacrema, et al., 2019)通過系統性的實驗指出,大多數基于神經網絡的推薦算法,其實際推薦效果低于論文所彙報的結果,並且在很多情況下,傳統的基于矩陣分解的算法,甚至是基于相似度的算法,要好于神經網絡模型的推薦效果。因此,讀者或者推薦系統從業人員,應當根據自己的實際場景和業務需求,使用最合適的推薦算法。
❤更多福利❤
CSDN技術公開課年度總評選
福利前所未有!