推薦系統綜述:初識推薦系統

目錄

1. 引言

2. 發展歷史

3. 研究現狀

4. 推薦方式和效果評估

4.1 評分預測

4.2 TopN推薦

5. 推薦算法

5.1 基於用戶行爲推薦

5.1.1 基於用戶的協同過濾(User-Based CF)

5.1.2 基於用戶的協同過濾(User-Based CF)

5.1.3 隱語義模型(Latent Factor Model)

5.2 基於內容推薦

5.3 混合推薦

6. 總結和展望

參考文獻


1. 引言

隨着信息技術和互聯網技術的發展,人們從信息匱乏時代步入了信息過載時代,在這種時代背景下,人們越來越難從大量的信息中找到自身感興趣的信息,信息也越來越難展示給可能對它感興趣的用戶,而推薦系統的任務就是連接用戶和信息,創造價值。

設想用戶想買一本《Recommender Systems An Introduction》,用戶只需要走進一家書店,尋找這本書即可。通過互聯網,用戶可以打開噹噹,在搜索框中輸入書名,然後就可以找到用戶想要購買的書籍,這兩種方式都需要用戶有明確的目的,如購買《Recommender Systems An Introduction》或某一類別的書籍。

但是,當用戶沒有明確目標時,比如尋找感興趣的音樂,用戶只能通過一些預先設定的類別或標籤去尋找他可能感興趣的音樂,但面對如此之多音樂,用戶很難在短時間內找出真正感興趣的音樂。這時就需要一個自動化的工具,來分析用戶曾經收聽的音樂,進而尋找出用戶可能感興趣的音樂推薦給用戶,這就是個性化推薦系統的工作。

作爲一種信息過濾系統,推薦系統具有以下兩個最顯著的特性:

(1)主動化。從用戶角度考慮,門戶網站和搜索引擎都是解決信息過載的有效方式,但它們都需要用戶提供明確需求,當用戶無法準確描述自己的需求時,這兩種方式就無法爲用戶提供精確的服務了。而推薦系統不需要用戶提供明確的需求,而是通過分析用戶和物品的數據,對用戶和物品進行建模,從而主動爲用戶推薦他們感興趣的信息。

(2)個性化。推薦系統能夠更好的發掘長尾信息,即將冷門物品推薦給用戶。熱門物品通常代表絕大多數用戶的興趣,而冷門物品往往代表一小部分用戶的個性化需求,在電商平臺火熱的時代,由冷門物品帶來的營業額甚至超過熱門物品,發掘長尾信息是推薦系統的重要研究方向。

目前,推薦系統已廣泛應用於諸多領域,其中最典型的便是電子商務領域。同時,伴隨着機器學習、深度學習的發展,工業界和學術界對推薦系統的研究熱情更加高漲,形成了一門獨立的學科。

2. 發展歷史

推薦系統是互聯網時代的一種信息檢索工具,自上世紀90年代起,人們便認識到了推薦系統的價值,經過了二十多年的積累和沉澱,推薦系統逐漸成爲一門獨立的學科在學術研究和業界應用中都取得了很多成果。

1994 年明尼蘇達大學GroupLens研究組推出第一個自動化推薦系統 GroupLens[1]。提出了將協同過濾作爲推薦系統的重要技術,這也是最早的自動化協同過濾推薦系統之一。

1997 年 Resnick 等人[2]首次提出推薦系統(recommendersystem,RS)一詞,自此,推薦系統一詞被廣泛引用,並且推薦系統開始成爲一個重要的研究領域。

1998年亞馬遜(Amazon.com)上線了基於物品的協同過濾算法,將推薦系統推向服務千萬級用戶和處理百萬級商品的規模,並能產生質量良好的推薦。

2003年亞馬遜的Linden等人發表論文,公佈了基於物品的協同過濾算法[3],據統計推薦系統的貢獻率在20%~30%之間[4]。

2005年Adomavicius 等人的綜述論文[5] 將推薦系統分爲3個主要類別,即基於內容的推薦、基於協同過濾的推薦和混合推薦的方法,並提出了未來可能的主要研究方向。

2006 年10月,北美在線視頻服務提供商 Netflix 宣佈了一項競賽,任何人只要能夠將它現有電影推薦算法 Cinematch 的預測準確度提高10%,就能獲得100萬美元的獎金。該比賽在學術界和工業界引起了較大的關注,參賽者提出了若干推薦算法,提高推薦準確度,極大地推動了推薦系統的發展。

2007年第一屆ACM 推薦系統大會在美國舉行,到2017年已經是第11屆。這是推薦系統領域的頂級會議,提供了一個重要的國際論壇來展示推薦系統在不同領域的最近研究成果、系統和方法。

2016年,YouTube發表論文[6],將深度神經網絡應用推薦系統中,實現了從大規模可選的推薦內容中找到最有可能的推薦結果。

近年來,推薦系統被廣泛的應用於電子商務推薦、個性化廣告推薦、新聞推薦等諸多領域,如人們經常使用的淘寶、今日頭條、豆瓣影評等產品。

3. 研究現狀

經過二十多年的積累和沉澱,推薦系統成功應用到了諸多領域,RecSys會議上最常提及的應用落地場景爲:在線視頻、社交網絡、在線音樂、電子商務、互聯網廣告等,這些領域是推薦系統大展身手的舞臺,也是近年來業界研究和應用推薦系統的重要實驗場景。

伴隨着推薦系統的發展,人們不僅僅滿足於分析用戶的歷史行爲對用戶進行建模,轉而研究混合推薦模型,致力於通過不同的推薦方法來解決冷啓動、數據極度稀疏等問題,國內知名新聞客戶端今日頭條採用了內容分析、用戶標籤、評估分析等方法打造了擁有上億用戶的推薦引擎。

移動互聯網的崛起爲推薦系統提供了更多的數據,如移動電商數據[6]、移動社交數據、地理數據[7]等,成爲了社交推薦的新的嘗試。

隨着推薦系統的成功應用,人們越來越多的關注推薦系統的效果評估和算法的健壯性、安全性等問題。2015年,Alan Said 等人在RecSys會議上發表論[8],闡述了一種清晰明瞭的推薦結果評價方式,同年,FrankHopfgartner等人發表論文[9],討論了基於流式數據的離線評價方式和對照試驗,掀起了推薦算法評估的研究熱潮。

近年來,機器學習和深度學習等領域的發展,爲推薦系統提供了方法指導。RecSys會議自2016年起開始舉辦定期的推薦系統深度學習研討會,旨在促進研究和鼓勵基於深度學習的推薦系統的應用。

2017年AlexandrosKaratzoglou等人在論文[10]中介紹了深度學習在推薦系統中的應用,描述了基於深度學習的內容推薦和協同過濾推薦方法,深度學習成爲當前推薦系統研究的熱點。

4. 推薦方式和效果評估

推薦系統在爲用戶推薦物品時通常有兩種方式:

4.1 評分預測

此方法一般通過學習用戶對物品的歷史評分,預測用戶可能會爲他沒有進行評分的物品打多少分,通常用於在線視頻、音樂等服務的推薦。

評分預測的效果評估一般通過均方根誤差(RMSE)和平均絕對誤差(MAE)計算。對於測試集T中的一個用戶u和物品i,令rui是用戶u對物品i的實際評分,而ȓui是推薦系統給出的預測評分,則RMSE定義爲:

MAE定義爲:

4.2 TopN推薦

此方法一般不考慮評分,而是爲用戶提供一個個性化推薦列表,通過預測用戶對物品的興趣度對列表進行排序,選取其中前N個物品推薦給用戶,通常用於電子商務、社交網絡、互聯網廣告推薦。

TopN推薦一般通過準確率(precision)、召回率(recall)和F1值(平衡分數)度量。令R(u)是爲用戶推薦的物品列表,T(u)是用戶在測試集上的行爲列表。

召回率定義爲:

準確率定義爲:

F1值定義爲:

5. 推薦算法

根據推薦系統使用數據的不同,推薦算法可分爲基於用戶行爲推薦、基於內容推薦、基於社交網絡推薦等。

主流的推薦系統算法可以分爲協同過濾推薦(Collaborative Filtering Recommendation)、基於內容推薦(Content-basedRecommendation)和混合推薦三種。

5.1 基於用戶行爲推薦

用戶行爲蘊藏着很多模式,著名的“啤酒和尿布”的故事就是用戶行爲模式的良好體現。基於用戶行爲推薦的主要思想是利用已有用戶的歷史行爲數據(顯式反饋或隱式反饋),預測當前用戶可能感興趣的物品,其中顯式反饋主要爲用戶評分,隱式反饋主要包括瀏覽、搜索等。

基於用戶行爲的推薦算法也稱爲協同過濾算法(Collaborative Filtering Recommendation),是推薦領域應用最廣泛的算法,該算法不需要預先獲得用戶或物品的特徵數據,僅依賴於用戶的歷史行爲數據對用戶進行建模,從而爲用戶進行推薦。協同過濾算法主要包括基於用戶的協同過濾(User-Based CF)、基於物品的協同過濾(Item-Based CF)、隱語義模型(Latent Factor Model)等。其中基於用戶和物品的協同過濾是通過統計學方法對數據進行分析的,因此也稱爲基於內存的協同過濾或基於鄰域的協同過濾;隱語義模型是採用機器學習等算法,通過學習數據得出模型,然後根據模型進行預測和推薦,是基於模型的協同過濾。

5.1.1 基於用戶的協同過濾(User-Based CF)

基於用戶的協同過濾(下文簡稱UserCF)的基本思想爲:給用戶推薦和他興趣相似的用戶感興趣的物品。當需要爲一個用戶A(下文稱A)進行推薦時,首先,找到和A興趣相似的用戶集合(用U表示),然後,把集合U中用戶感興趣而A沒有聽說過(未進行過操作)的物品推薦給A。算法分爲兩個步驟:首先,計算用戶之間的相似度,選取最相似的N個用戶,然後,根據相似度計算用戶評分。

(1)用戶相似度

用戶相似度計算基於用戶的協同過濾算法的重要內容,主要可以通過餘弦相似度、傑卡德係數等方式進行計算。

假設:給定用戶u和v,令N(u)表示用戶u有過正反饋的物品集合,令N(v)爲用戶v有過正反饋的物品集合,則用戶u和v之間的相似度可以通過如下方式計算:

餘弦相似度:

傑卡德係數:

(2)用戶評分

得到用戶相似度後,可以根據如下公式計算用戶評分:

其中r(u, i)代表用戶u對物品i的評分,S(u)爲與用戶u最相似的N個用戶,N(i)爲對物品i進行過操作的用戶集合, 爲用戶u與用戶v的相似度, 爲用戶v對物品i的評分。

UserCF的推薦結果反映了用戶所在的一個興趣羣體中的熱門物品,更加社會化但缺乏個性化, 能夠滿足物品的時效性,在新聞推薦領域能夠發揮很大的作用。用戶的興趣在一段時間內是相對固定的,因此用戶相似度矩陣不會實時進行更新,存在新用戶的冷啓動問題。

5.1.2 基於用戶的協同過濾(User-Based CF)

基於物品的協同過濾(下文簡稱ItemCF)是目前應用最爲廣泛的算法,該算法的基本思想爲:給用戶推薦和他們以前喜歡的物品相似的物品,這裏所說的相似並非從物品的內容角度出發,而是基於一種假設:喜歡物品A的用戶大多也喜歡物品B代表着物品A和物品B相似。基於物品的協同過濾算法能夠爲推薦結果做出合理的解釋,比如電子商務網站中的“購買該物品的用戶還購買了…”。ItemCF的計算步驟和UserCF大致相同:首先,計算物品相似度,選出最相似的N個物品,然後根據相似度計算用戶評分。

(1)物品相似度

假設:N(i)爲喜歡物品i的用戶結合,N(j)爲喜歡物品j的用戶集合,則物品相似度計算公式可以定義爲:

上述公式將物品i和物品j的相似度定義爲:同時喜歡物品i、j的用戶數佔只喜歡物品i用戶數的比例,但如果物品j十分熱門,大部分用戶都很喜歡,那麼就會造成所有物品都和j有較高的相似度,因此可以對計算公式進行如下改進:

改進後的相似度計算公式懲罰了物品j的熱門度,在一定程度上減少了熱門物品爲相似度帶來的影響。

(2)用戶評分

得到物品相似度後,可以根據如下公式計算用戶評分:

其中r(u, i)代表用戶u對物品i的評分,S(i)代表和物品i最相似的N個物品,N(u)爲用戶u曾經感興趣的物品集合, 爲物品i和物品j的相似度, 爲用戶u對物品i的評分。

ItemCF的推薦結果更加個性化,反映了用戶的個人興趣,對挖掘長尾物品有很大幫助,被廣泛應用於電子商務系統。在物品數較多時,物品相似度計算效率較差,因此通常以一定的時間間隔離線進行計算,然後將物品相似度數據緩存在內存中,這樣一來,便可以根據用戶的新行爲實時向用戶做出推薦。ItemCF同樣存在新用戶冷啓動問題。

5.1.3 隱語義模型(Latent Factor Model)

隱語義模型方法是目前應用最爲廣泛的協同過濾算法之一,在顯式反饋(如評分)推薦系統中,能夠達到很好的精度。它的基本思想是通過機器學習方法從用戶-物品評分矩陣中分解爲兩個低階矩陣,表示對用戶興趣和物品的隱含分類特徵,通過隱含特徵預測用戶評分。訓練過程中通常採用隨機梯度下降(SGD)算法最小化損失函數,最後通過模型預測用戶評分。矩陣分解(Matrix Factorization)是隱語義模型最成功的一種實現,假設訓練數據爲M個用戶對N個物品的評分矩陣Rm,n,早期矩陣分解算法BasicSvd步驟如下:

(1)給定假設函數

其中k表示矩陣分解的隱含特徵數,p和q是兩個矩陣,作爲模型的參數,分別表示用戶、物品與k個隱含特徵之間的關係。

(2)最小化損失函數

其中u爲用戶,i爲物品,R爲訓練數據評分矩陣,H爲預測評分矩陣,通過隨機梯度下降最小化cost函數,得到矩陣p和q。在最小化的過程中,還需要添加正則項防止過度擬合。

(3)通過用戶、物品和隱含特徵的關係矩陣p、q預測用戶評分。

在算法的演進過程中,還出現了FunkSVD[11]、SVD++等矩陣分解算法,它們在隱含特徵的基礎上考慮了用戶評分習慣、歷史訪問等多種因素,在一些場景中取得了更爲精確的結果。

矩陣分解算法採用機器學習的最優化方法訓練模型,計算的空間複雜度較小,在評分預測推薦中的精度較高,能夠自動挖掘用戶和物品的特徵,有非常好的擴展性,可以靈活地考慮額外因素。矩陣分解的訓練過程需要掃描整個評分矩陣,在用戶量和物品數很大的情況下比較費時,但可以離線進行訓練,在線進行評分預測,達到推薦的實時性。

5.2 基於內容推薦

基於內容推薦的基本思想是爲用戶推薦與他感興趣的內容相似的物品,比如用戶喜歡勵志類電影,那麼系統會直接爲他推薦《阿甘正傳》這部電影,這個過程綜合考慮了用戶興趣和電影內容,因此不需要提供用戶的歷史行爲數據,這能夠很好地解決新用戶的冷啓動問題。基於內容推薦的關鍵問題是對用戶興趣特徵和物品特徵進行建模,主要方法由向量空間模型、線性分類、線性迴歸等。

基於內容推薦需要預先提供用戶和物品的特徵數據,比如電影推薦系統,需要提供用戶感興趣的電影類別、演員、導演等數據作爲用戶特徵,還需要提供電影的內容屬性、演員、導演、時長等數據作爲電影的特徵,這些需要進行預處理的數據在實際應用中往往有很大的困難,尤其是多媒體數據(視頻、音頻、圖像等),在預處理過程中很難對物品的內容進行準確的分類和描述,且在數據量很大的情況下,預處理效率會很低下。針對以上不足,[25]提出了基於標籤的推薦方法,可以由專家或用戶爲物品打標籤,實現對物品的分類。

基於內容產生的推薦往往和用戶已經處理的物品具有很大的相似度,不利於用戶在推薦系統中獲得驚喜,這也是推薦系統的一個重要研究方向。

5.3 混合推薦

推薦算法雖然都可以爲用戶進行推薦,但每一種算法在應用中都有不同的效果。UserCF的推薦結果能夠很好的在廣泛的興趣範圍中推薦出熱門的物品,但卻缺少個性化;ItemCF能夠在用戶個人的興趣領域發掘出長尾物品,但卻缺乏多樣性;基於內容推薦依賴於用戶特徵和物品特徵,但能夠很好的解決用戶行爲數據稀疏和新用戶的冷啓動問題;矩陣分解能夠自動挖掘用戶特徵和物品特徵,但卻缺乏對推薦結果的解釋,因此,每種推薦方法都各有利弊,相輔相成。

實際應用的推薦系統通常都會使用多種推薦算法,比如使用基於內容或標籤的推薦算法來解決新用戶的冷啓動問題和行爲數據稀疏問題,在擁有了一定的用戶行爲數據後,根據業務場景的需要綜合使用UserCF、ItemCF、矩陣分解或其他推薦算法進行離線計算和模型訓練,通過採集用戶的社交網絡數據、時間相關數據、地理數據等綜合考慮進行推薦,保證推薦引擎的個性化,提高推薦引擎的健壯性、實時性、多樣性和新穎性。讓推薦系統更好地爲用戶服務。

6. 總結和展望

本文首先回顧了推薦系統發展的歷史,並分析了當前推薦系統的研究現狀,其次闡述了主要的推薦方式和推薦結果的評估指標,最後分析了主流的推薦算法以及它們各自的優缺點。

推薦系統的發展一方面精確的匹配了用戶與信息,降低了人們在信息過載時代獲取信息的成本,但由推薦系統主導的內容分發,如新聞推薦等,也爲用戶帶來了消極影響。2017年9月19日,人民日報點名批評國內知名內容分發平臺今日頭條,強調別以技術之名糊弄網民和羣衆,可見推薦系統的發展不僅需要滿足用戶多元化、個性化的需求,而且需要對信息進行嚴格的監管和過濾,提高推薦系統的健壯性。近年來,RecSys會議上越來越多地收錄了關於用戶隱私、推薦引擎健壯性、信息過濾等方面的論文,這是未來推薦系統發展的一個重要研究方向。

目前,深度神經網絡發展迅速,爲推薦系統提供了新的特徵提取、排序方法,越來越多的推薦引擎將深度神經網絡與傳統的推薦算法進行了結合,用於解決數據稀疏、推薦排序等問題,深度神經網絡和推薦系統的結合將是推薦系統未來的主要研究方向。

綜上所述,推薦系統是一個龐大的信息系統,它不僅僅只依賴於推薦引擎的工作,而且依賴於業務系統、日誌系統等諸多方面,並結合了網絡安全、數據挖掘等多個研究領域,能夠爲企業和用戶帶來價值,是一個值得深入研究的領域。

參考文獻

[1] Resnick P,Iacovou N, Suchak M, et al. GroupLens: an open architecture for collaborativefiltering of netnews[C] Proceedings of the 1994 ACM Conference on ComputerSupported Cooperative Work, Oct 22-26, 1994. New York, NY, USA: ACM, 1994:175-186.

[2] Resnick P, Varian H R. Recommender systems[J].Communications of the ACM, 1997, 40(3): 56-58.

[3] G. Linden, B. Smith, and J. York, “Amazon.comRecommendations: Item-to-Item Collaborative Filtering,” IEEE InternetComputing, vol. 7, no. 1, 2003, pp. 76–80.

[4] Linden G, Smith B, York J. Amazon.comrecommendations: item-to-item collaborative filtering[J]. IEEE Internet Computing,2003, 7(1): 76-80.

[5] Adomavicius G, Tuzhilin A. Toward the nextgeneration of recommender systems: a survey of the state-of-the-art and possibleextensions[J]. IEEE Transactions on Knowledge and Data Engineering, 2005,17(6): 734-749.

[6] Cremonesi P, Tripodi A, Turrin R. Cross-DomainRecommender Systems.[C] IEEE, International Conference on Data MiningWorkshops. IEEE, 2012:496-503.

[7] Huiji Gao, Jiliang Tang, Huan Liu. Personalizedlocation recommendation on location-based social networks[J]. 2014:399-400.

[8] Said A. Replicable Evaluation of RecommenderSystems[C] ACM Conference on Recommender Systems. ACM, 2015:363-364.

[9] Hopfgartner F, Kille B, Heintz T, et al.Real-time Recommendation of Streamed Data[C] ACM Conference on RecommenderSystems. ACM, 2015:361-362.

[10] Karatzoglou A, Hidasi B. Deep Learning forRecommender Systems[C] the Eleventh ACM Conference. ACM, 2017:396-397.

[11] Simon Funk. Funk-SVD [EB/OL]. http://sifter.org/~simon/journal/20061211.html,2006-12-11

[12] 朱揚勇, 孫婧. 推薦系統研究進展[J]. 計算機科學與探索, 2015, 9(5):513-525.

[13] 楊陽, 向陽, 熊磊. 基於矩陣分解與用戶近鄰模型的協同過濾推薦算法[J]. 計算機應用, 2012,32(2):395-398.

[14] 項亮. 推薦系統實踐[M]. 北京: 人民郵電出版社, 2012.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章