編者按:Tryolabs軟件設計師、烏拉圭共和國大學數學教授Gastón Rodríguez最近撰寫的推薦系統最新入門指南。
眾多電商網站和零售商通過推薦系統來提升其銷售成績。
簡單來說,推薦系統的目標是預測用戶的興趣,向用戶推薦可能感興趣的物品。
推薦系統所需的數據包括用戶評分、搜索查詢、購買歷史,以及其他關于用戶/物品的知識。
Spotify、YouTube、Netflix等站點大量使用推薦系統,向用戶推薦感興趣的信息。
這篇文章將介紹最流行的推薦系統類型,通過一些例子解釋它們的工作機制。
為了給這一主題增加一些動機,我們將介紹一些真實世界的案例,討論實現推薦系統的高層需求,還有如何公平地評估推薦系統。
實現推薦系統的優勢
推薦系統可以通過非常個性化的推銷和增強的用戶體驗增加銷售。
推薦系統通??梢约铀偎阉?,讓用戶更容易訪問感興趣的內容,并給用戶帶來驚喜。
商家可以通過發送包含感興趣內容鏈接的郵件來吸引新顧客,留存老顧客。
開始感覺自己被理解的用戶更可能購買更多商品,消費更多內容。了解用戶所需,使商家領先于競爭者,減少客戶流失的風險,同時逐漸提高利潤。
推薦系統的類型
推薦系統利用兩種信息:
特性信息,關于物品的信息(關鍵詞,類別等)和用戶的信息(偏好,畫像等)。
用戶-物品交互,例如評分、購買數、喜歡,等等。
因此,我們可以將推薦系統分為兩類:
基于內容(content-based),主要使用特性信息;
協同過濾(collaborative filtering),主要基于用戶-物品交互。
混合系統(hybrid system)結合了兩類信息,目標是避免單獨使用一種信息引發的問題。
下面,我們將深入介紹下基于內容的系統和協同過濾系統。
基于內容的系統
這類系統主要基于物品相似性和用戶畫像。背后的假說是,如果用戶過去曾對某物感興趣,那么以后也會對類似物品感興趣。通常根據物品的特效歸類相似物品。用戶畫像的構建則根據用戶的歷史行為,或者明確詢問用戶其興趣所在。另一些不被認為純基于內容的系統,還會利用用戶的個人數據和社交數據。
這類系統的一大問題是建議過于專門(用戶A對類別B、C、D表示了興趣,系統無法向其推薦這些類別之外的其他可能感興趣的物品)。
另一個問題是新用戶沒法定義畫像(除非明確詢問其興趣)。相比新增用戶,新增物品倒是容易得多,只需確保我們根據新物品特性將其分到了合適的分組即可。
協同過濾系統
這類系統利用用戶的交互來過濾感興趣物品。我們可以將交互的集合可視化為一個矩陣,其中每一項(i, j)代表用戶i和物品j的交互。有意思的是,我們可以將協同過濾看作是對分類和回歸的推廣。在分類和回歸中,我們的目標是預測直接依賴其他變量(特征)的變量,而在協同過濾中,并不存在特征變量和分類變量的區別。
從下圖可以看到,我們并不打算預測某列的值,而是預測任何給定項的值。
圖片來源:《推薦系統》
簡單來說,協同過濾系統基于這樣一個假定,如果用戶喜歡物品A,另一個用戶也喜歡物品A,而且另一個用戶同時喜歡物品B,那么第一個用戶可能也對物品B感興趣。因此,協同過濾系統基于歷史交互信息預測新的交互。為了達到這一目標,有兩類方法:基于內存(memory-based)和基于模型(model-based)。
基于內存
有兩種方法:第一種識別用戶的聚類,并利用某一特定用戶的交互預測其他類似用戶的交互。第二種方法識別用戶A評分的物品的聚類,并基于此預測用戶A和不同但相似的物品B的交互。這些方法通常會遇到的主要問題是巨大的稀疏矩陣,因為用戶-物品交互的數量可能會過低,無法生成高質量的矩陣。
基于模型
這些方法基于機器學習和數據挖掘技術。其目標是訓練可以做出預測的模型。例如,我們可以使用現有的用戶-物品交互來訓練一個模型,預測一個用戶可能最喜歡的5項物品。這些方法的一個優勢是,和基于內存的方法相比,可以向大量用戶推薦大量物品。我們認為,即便配合大型稀疏矩陣使用,這些方法仍有更大的覆蓋面(coverage)。
協同過濾系統的問題
協同過濾系統面對的兩個主要挑戰為:
冷啟動:我們需要有足夠的用戶-物品交互信息,才能讓系統工作。如果我們新建了一家電商網站,在用戶和相當多數量的物品交互之前,我們無法給出推薦。
新增用戶/物品:無論是新用戶還是新物品,我們都沒有關于它們的先驗知識,因為它們還不存在交互。
在注冊時詢問用戶的其他數據(性別、年齡、興趣,等等),根據物品的元信息將其與數據庫中的現有物品相關聯,可以緩解上面提到的兩個問題。
協同過濾實例
協同過濾是當前最常用的方法之一,并且通常能提供比基于內容的系統更好的結果。YouTube、Netflix、Spotify的推薦系統就用到了協同過濾。下面我們將介紹創建協同過濾系統的兩種技術。
一個經典方法是矩陣分解。其目標是補全評分矩陣(R)中的未知用戶-物品交互。想象一下,我們通過某種方式,魔法般地得到了兩個矩陣U和I,滿足U × I和R的所已知項相等。那么,U × I也為我們提供了R中未知項的值,這些值可以用來生成推薦。
圖片來源:Soumya Ghosh
找到U和I的一種時髦的方法是使用神經網絡。
首先,我們需要將用戶和物品映射為向量,維度分別為M和N。這意味著我們需要學習用戶和物品的表示,通常稱為嵌入(因為我們將這些概念嵌入一個向量空間)。由于我們尚不清楚這些向量的值,我們需要從隨機初始值開始。
接著,對每個用戶-物品交互(u, x)而言,我們將連接用戶嵌入u和物品嵌入x為單個向量。由于我們已經知道了這一用戶-物品交互的值,我們可以迫使網絡對這一向量的輸出等于已知值。接著,網絡使用反向傳播調整其權重以及嵌入,使得結果符合我們的預期。因此,網絡將學習表示用戶和物品的最佳方式,并通過傳入所得嵌入以預測未見交互。
例如,假設上圖中的用戶矩陣和物品矩陣的值是隨機初始化的嵌入。對交互(A, X)而言,我們將傳入向量[1.2, 0.8, 1.2, 0.6],并迫使輸出等于4.5。在這個例子中,我們可以使用MSE作為損失函數。如果我們的交互矩陣是二值矩陣,那么使用分類問題中常見的損失函數要更合適,比如交叉熵。
這一方法非常有趣的結果是嵌入通常包含特定的語義信息。因此,我們最后得到的并不僅僅是未知交互的預測。例如,相似用戶在用戶向量空間中會很接近,這有助于研究用戶行為。
Item2vec
Item2vec是借鑒Word2vec思想提出的用于協同過濾的物品嵌入表示。它利用購買訂單作為上下文信息,暗示在類似情況下購買的物品比較相似(相應的嵌入表示在向量空間中占據相近的位置)。
這一方法既不直接牽涉用戶,也不在做出推薦時考慮用戶。不過,如果我們的目標是顯示用戶所選物品的替代選擇,那么這個方法可能非常有用(“你買了這個電視,你也許也對這些感興趣”)。
這一方法的主要問題在于,我們需要海量數據來生成良好的嵌入。Item2vec論文用到了兩個數據集,其中一個數據集包含九百萬交互,七十三萬二千用戶,四萬九千物品,另一個數據集包含三十七萬九千交互,1706物品,用戶數未知。
何時實現推薦系統?
既然我們現在已經對推薦系統有所了解,是時候考慮下何時值得實現推薦系統。
如果你的業務運行得不錯,即使沒有推薦系統,你大概也不難生存。然而,如果你想要借助數據的力量創建更好的用戶體驗并增加利潤,你應該好好考慮下實現一個推薦系統。
投資一個良好的推薦系統是否值得?回答這一問題的一個好辦法是看看實現了這樣的系統的公司取得了怎樣的效果:
亞馬遜上35%的購買源自其推薦系統(數據來源:麥肯錫)。
2016年的雙11期間,阿里巴巴的個性化到達頁面對轉化率的提升高達20%
YouTube上的用戶觀看視頻時長的70%來自推薦。
Netflix上的用戶觀看視頻的75%來自推薦(來源:麥肯錫)。
Netflix的VP和CPO發表的論文說個性化和推薦系統為Netflix每年節約十億美元。
交叉銷售和類別滲透技術增長了20%銷售額,提高了30%利潤(來源:麥肯錫)。
構建推薦系統的先決條件
數據是唯一最重要的資產?;旧希阈枰私庥脩艉臀锲返囊恍┘毠潯H绻阒挥性畔?,那么你可以從基于內容的方法開始。如果你有大量用戶交互信息,你可以試驗更強大的協同過濾方法。
你所擁有的數據集越大,你的系統工作得就越好。此外,你需要確保你的團隊能夠理解數據,并正確地處理數據,讓數據可以被你將采用的技術所用。
關于用戶-物品交互,你需要了解:
你應該根據你的系統定義交互種類,以提取數據。例如,如果你運行的是一個電商網站,那么交互可能包括對物品的點擊,搜索,訪問,收藏夾,購買,評分,購物車中的物品,甚至是剔除掉的物品,等等。
交互可以分為顯式和隱式兩類。顯式交互中,用戶表明正面或負面的興趣,例如評分或撰寫評論。隱式交互是從用戶的行為中推導出的興趣,比如搜索或購買某物。
每個用戶和物品的交互數量越多,最終結果就越好。
典型的情況是,有些非常流行的物品有大量的用戶交互行為,而其他物品就沒有那么多交互了,也就是長尾效應。推薦系統通常在流行物品上效果相當出色,盡管用戶對此大概不是非常感興趣,因為用戶很可能已經知道這些物品了。長尾中的物品是最感興趣的,因為如果沒有推薦,用戶可能甚至不會考慮到它們。
圖片來源:dataminingapps.com
在運行一項新產品的同時,從頭實現一個推薦系統并非易事?;趦热莸姆椒ū容^方便,或者你也可以明確詢問用戶的興趣。當用戶和交互的數量增長時,就到了設想協同過濾方法的時候,從而增強你的系統的潛能。
最后,評估系統表現,思考提升其表現的不同方法,可能會是最艱巨的任務。但別打退堂鼓,你幾乎一定能從中得到樂趣,同時你也將欣賞到利潤的增長,對吧?
如何評估推薦系統?
取決于不同的目的,有不同的評估推薦系統的方法。比如,如果你只對推薦的前5項物品感興趣(用戶最可能交互的物品),那你在評估的時候就無需考慮其余的推薦。再比如,推薦的順序對你來說可能非常重要,所以你在評估的時候需要考慮它??偟膩碚f,推薦系統的評估方法分為兩類:在線和離線。
在線方法
在線方法,又稱A/B測試,通過用戶對給定推薦的反應衡量推薦系統的表現。例如,你可以衡量用戶是否點擊推薦的物品——以及相應的轉化率。這個評估方法很理想,不過難以實施。因為唯一進行試驗的方法是和部署到生產環境的系統交互。而任何失敗的試驗很可能會對利潤和用戶體驗造成直接影響。此外,使用真實客戶進行試驗,要比使用事先準備的數據慢很多。
離線方法
離線方法是試驗階段的離線方法,因為其中并不直接牽涉用戶,和在線方法不同,系統無需部署到生產環境。數據被分為訓練數據集和測試數據集,也就是說,部分數據用來構建系統,其余數據用來評估系統。使用離線方法時,需要小心,因為有些沒有恰當表示的因素可能會影響結果。例如,時令因素(季節、氣候,等等)在推薦中可能非常重要,甚至客戶在某一特定時刻的心情也可能影響結果。
結語
正如你在這篇文章中看到的那樣,在系統中加入推薦是一個很有吸引力的選擇。從用戶的視角來說,它提升了體驗和參與度。從業務的角度來說,它能創造更多利潤。
用戶量較小時,使用一個基本的推薦系統,當用戶基數增加時,再投入更強的技術,這是比較好的做法。
最不可或缺的資源是數據。如果你沒有恰當地管理、儲存數據,是時候采取必要措施了。一旦到達實現階段,深入相關主題當然是很有必要的。
業務目標將指示你需要首先關注的推薦系統類型:它是要提高已活躍用戶的參與度,還是讓那些稀客變得更活躍。
除了定義業務目標,能夠分析和理解你的站點生成的信息至關重要。有了這些,應該沒什么能夠阻止你成功實現你的推薦系統。
-
神經網絡
+關注
關注
42文章
4785瀏覽量
101275 -
機器學習
+關注
關注
66文章
8453瀏覽量
133156 -
推薦系統
+關注
關注
1文章
43瀏覽量
10098
原文標題:2018年推薦系統入門指南
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
EE-175: 仿真器與EZ-KIT Lite評估系統問題解決指南
![EE-175: 仿真器與EZ-KIT Lite<b class='flag-5'>評估</b><b class='flag-5'>系統</b>問題解決<b class='flag-5'>指南</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論