02.24 當推薦系統邂逅深度學習

前言

這是一篇關於講述推薦系統邂逅深度學習故事的文章。

推薦系統之於用戶的角色,有時更像是無微不至的男朋友,你口渴時遞給你符合口味的飲料,你飢餓時還你以常吃的披薩,你無聊時幫你推薦有趣的音樂亦或帶你欣賞感興趣的電影。

但男友也會有手足無措、不知如何是好的境地。由於深度學習這個大傢伙閱女無數,鬼點子太多,因此推薦系統不得不去拜見深度學習,希望能夠助之一臂之力,以期提高女友的幸福感。

注:經歷秋招的我,拖延了半年,終於又寫了一篇,此文寫的倉促,若有不妥,歡迎指教。最後提前祝大家元旦快樂呀,最後的最後,提前給大家拜個早年吧。

摘要

本文圍繞深度學習技術在推薦系統方面的研究展開介紹,首先介紹推薦系統的相關內容以及面臨的主要挑戰,然後介紹目前主流的解決方案以及應用深度學習技術的必要性;第二節介紹深度學習技術的相關概念以及它的適用場景及限制條件;最後總結深度學習技術與推薦系統相結合的具體案例,希望對大家有所幫助。更多關於推薦系統相關的內容,請移步張小磊: 。

推薦系統

推薦系統對於我們來說並不陌生,已經滲透到我們生活的方方面面,比如網易雲的音樂推薦、淘寶的商品推薦、美團的餐廳推薦、抖音的短視頻推薦等等。之所以推薦系統無處不在,是因為它可以提高用戶的駐留時間、增加網站主的效益,以此實現互利共贏。數據顯示,零售業巨頭亞馬遜(Amazon)35%的收益來自於它的推薦引擎;視頻網站網飛(Netflix)中75%的用戶都是基於推薦算法選擇影片。這也充分說明了推薦系統是整個生態系統中不可或缺的組件,可謂流量擔當、變現神器。

那麼推薦系統是如何產生推薦的呢?寬泛來講,就是系統基於用戶的歷史行為信息(評分、評論、瀏覽、點贊等)來訓練用戶的畫像,進而對每個用戶進行個性化推薦。精細闡述的話,主要分為以下兩步:召回和精排。召回的作用是從海量物品中過濾出候選集合,過濾策略可以是基於內容的推薦算法或者是基於矩陣分解的算法等,算法細節詳見拙作張小磊:推薦系統之矩陣分解家族。精排的作用是從召回層獲取的候選集合中結合用戶的興趣來進行排序,以此來給用戶產生最可能感興趣的推薦列表。

推薦系統之所以可以產生個性化推薦列表,是基於用戶的歷史行為信息,但往往用戶的歷史行為微乎其微,彌足珍貴。因此數據稀疏一直以來都是推薦系統所面臨的挑戰目前主流的緩解方案是結合除用戶-項目的交互矩陣之外的輔助邊信息,比如用戶維度的社交信息,物品維度的文檔信息、圖像信息,以及用戶-物品的上下文信息(時間、地理信息)等。對於邊信息的利用,可以利用人工特徵工程來提取想要的特徵,但由於結合的信息越多,人工付出的代價往往過高。好在深度學習在各類邊信息中都有其發揮作用的場景,使得系統可以將複雜耗時的特徵工程交給深度學習來自動提取,而推薦系統則可以更專注於如何提供更好的推薦策略,正所謂術業有專攻。更多關於推進系統的入門可參見拙作張小磊: 。

深度學習

深度學習,顧名思義,具有深層結構的特徵學習技術。它是建立在人工神經網絡基礎上發展而來的表示學習方法,又叫做表示學習。它通過構建多層表示學習結構,組合原始數據中的簡單特徵,從而得到更高層、更抽象的分佈式表示。其中的分佈式表示是指語義概念到神經元是一個多對多映射,直觀來講,即

每個語義概念由許多分佈在不同神經元中被激活的模式表示;而每個神經元又可以參與到許多不同語義概念的表示中去

傳統的機器學習技術,是一個pipeline的作業方式,需要首先進行復雜的人工特徵工程任務,同時要求人們需要掌握相對較多的領域知識,進而將整理好的特徵餵給分類器。而深度學習是一個端到端的學習技術,它將特徵工程與特定任務整合到同一框架,可以在完成特定任務的過程中完成自動的特徵提取,使得人們從複雜的人工特徵工程中擺脫出來,進而將更多的精力專注於更高層的任務。

插上深度學習翅膀的推薦系統

對於推薦系統來說存在兩大場景即評分預測與Top-N推薦。因此接下來的介紹中主要涉及以上兩方面內容。另外,由於結合的信息不同,所利用的深度學習模型也因此而異。比如對於文本信息的利用更側重於Word2vec模型,圖像信息更側重於CNN模型,序列化的數據側重於RNN模型等。接下來將一一進行介紹。

1.與MLP相關的推薦系統

  • NeuMF

He, Xiangnan et al. Neural collaborative filtering. WWW, 2017.

該文基於用戶-項目的隱式反饋信息(交互矩陣)進行建模,可以說是對於傳統協同過濾模型的改進。本文認為在經過矩陣分解模型壓縮到低維稠密空間之後,內積操作使得在原始空間中的相似性不能很好的保持,因此破壞了數據的原有結構。

通過利用神經網絡框架來取代內積操作,這樣可以從數據中學習任意的函數,可以很好的保持數據的原始特性,同時該框架可以用來實現矩陣分解。另外為了能讓該模型捕捉非線性因素,提出了利用多層感知機(MLP)來建模用戶-項目交互矩陣。該算法同時結合了GMF層和MLP層來得到更好的特徵表示,具體框架見下圖。

當推薦系統邂逅深度學習

  • EMCDR
  • Man, Tong et al. Cross-domain recommendation: an embedding and mapping approach. IJCAI, 2017.

    該文是一篇利用跨域思想來緩解推薦系統中冷啟動和數據稀疏問題的文章,思路很清晰。

    數據稀疏一直以來是推薦系統中最具挑戰性的問題之一。其中解決這一問題的有效思路是跨域推薦,即利用來自多個域的反饋或評分信息以眾包的方式來改進推薦性能。本文提出了一種跨域推薦的嵌入式映射框架,稱為EMCDR。提出的EMCDR框架從兩個方面區別於現有的跨域推薦模型。首先,在每個域中利用隱因子模型來進行Embedding學習,以此來學習每個域中實體的特定特徵。第二,在域間利用Mapping技術來補充不同域的數據稀疏。其中涉及的Mapping技術主要是線性映射和多層感知機映射(MLP),值得注意的是,由於MLP可以捕捉非線性因素以及出色的擬合能力,性能要由於線性映射。具體模型見下圖。其中對於MLP的訓練是使用的反向傳播算法(BP),算法思想詳見拙作張小磊:反向傳播之我見

    當推薦系統邂逅深度學習

    2.與AE相關的推薦系統

    • AutoRec

    Sedhain et al. Autorec: Autoencoders meet collaborative filtering. WWW, 2015.

    該文采用無監督學習的思想來進行推薦,利用AutoEncoder來進行用戶或者項目的隱特徵構建,而不像矩陣分解那樣同時去分解用戶和項目到同一隱空間中,通過最小化重構損失的同時完成預測任務,利用RMSE來指導參數優化。下圖為Item-based AutoRec。

    當推薦系統邂逅深度學習

    當然,由於AutoRec的抗噪聲能力以及對於數據稀疏和冷啟動問題不能很好解決,人們基於此也提出了一些擴展版本,在此不再一一介紹。

    ① Collaborative denoising auto-encoders for top-n recommender systems, WSDM16.

    ② Variational Autoencoders for Collaborative Filtering, WWW, 2018.

    3.與CNN相關的推薦系統

    • DeepCoNN

    Zheng et al. Joint deep modeling of users and items using reviews for recommendation. WSDM, 2017.

    該文提出了利用兩個並行的CNN來對文本信息進行處理,分別對應於用戶層面的評論以及項目層面的評論,以此來挖掘用戶的行為特點與項目的屬性特徵。最後利用FM來作為共享層,以達到利用評分標籤來監督用戶隱特徵以及項目隱特徵的訓練。整體的算法框架如下圖。

    當推薦系統邂逅深度學習

    • ConvMF

    Kim et al. Convolutional matrix factorization for document context-aware recommendation. RecSys, 2016.

    該文同樣是利用的文本信息,通過將文本信息作為輔助邊信息來緩解評分矩陣的稀疏問題。與上文DeepCoNN模型不同的是,文本將CNN學得的文本特徵作為正則項來對待,使得在擬合評分矩陣的同時能夠兼顧項目維度的文本信息。算法的框架圖如下。

    當推薦系統邂逅深度學習

    4.與RNN相關的推薦系統

    • SR-RNN

    Hidasi et al. Session-based recommendations with recurrent neural networks. ICLR, 2016.

    對於基於會話的推薦問題,較之傳統推薦問題,不同點在於如何利用用戶的短期會話交互數據來預測用戶可能感興趣的點擊行為。基於會話的推薦可以建模為序列化問題,即基於用戶的短期歷史點擊日誌來預測下一時刻可能感興趣的點擊。深度學習中的循環神經網絡模型(RNN)正是一類用於處理序列數據的神經網絡,不同於MLP,在標準的RNN結構中,隱層的神經元之間也是帶有權值的。也就是說,隨著序列的不斷推進,前面的隱層將會影響後面的隱層。於是將用戶的歷史交互數據作為輸入,經過如下多層神經網絡,達到預測用戶興趣的目的。整體框架如下圖。

    當推薦系統邂逅深度學習

    基於以上描述,後面也有許多這方面的擴展工作,參考文獻如下。

    ① Tan et al. Improved recurrent neural networks for session-based recommendations. Workshop on Deep Learning for Recommender Systems, 2016.

    ② Hidasi et al. Recurrent neural networks with top-k gains for session-based recommendations. CIKM, 2018.

    5.與NRL相關的推薦系統

    • Item2vec

    Barkan et al. Item2vec: neural item embedding for collaborative filtering. MLSP, 2016.

    受自然語言處理中的Word2vec思想的影響,人們將用戶對於項目的點擊記錄序列看做是自然語言處理領域中的句子,項目看做是單詞,然後將此作為模型的輸入,最終給出每個項目的低維表示,然後利用近鄰方法來進行推薦。

    • CUNE

    Zhang et al. Collaborative User Network Embedding for Social Recommender Systems.SDM, 2017.

    對於社交網絡數據的挖掘,傳統方法可以利用降維方法如局部線性嵌入算法(LLE),特徵值分解算法(LE)或者圖分解算法(GF)等,但隨著今年來深度學習技術的發展,受自然語言處理中Word2vec的思想影響,也提出了許多基於深度學習的網絡表示學習方法(NRL),如Deepwalk,node2vec等,更多關於該算法的介紹詳見拙作張小磊:網絡表示學習概述。因此CUNE根據用戶-項目二部圖數據抽取出用戶的隱式社交網絡,然後經過類似於Word2vec的網絡結構來提取每個用戶的低維嵌入表示,最後將此作為正則項來約束最終的優化目標,框架圖如下。

    當推薦系統邂逅深度學習

    6.與GNN相關的推薦系統

    • SR-GNN

    Wu et al. Session-based Recommendation with Graph Neural Networks. AAAI, 2019.

    對於基於會話的推薦問題,剛才提到,可以利用循環神經網絡(RNN)來進行建模。但本文作者認為之前的工作不能夠得到用戶的精確表示以及忽略了項目中負責的過渡特性,因此本文工作的創新點是將序列化問題轉換為圖的問題,然後經過圖神經網絡(GNN)來學習每個項目的低維表示,同時經過注意力網絡(Attention Network)來捕捉用戶的短期興趣,以達到捕獲長期與短期興趣共存的向量表示,算法框架圖如下。

    當推薦系統邂逅深度學習

    7.與深度特徵提取相關的推薦系統

    基於特徵提取的方法,最基本的模型是邏輯迴歸(LR),即可以通過模型學習每個特徵的權重進而起到特徵提取的作用,然後LR只能夠捕捉一階特徵的信息,後來人們發明了因子分解機(FM),以此來學習高階特徵組合的信息,並且通過矩陣分解的技巧做到了線性時間的訓練,更多關於LR展開的模型,可參見拙作張小磊:由Logistic Regression所聯想到的...。

    • Wide & Deep Model

    Cheng et al. Wide & deep learning for recommender systems. Workshop on RecSys, 2016.

    剛才提到LR可以提取一階特徵的信息(Wide Model),具有很好的解釋能力,另外,由於前饋深度神經網絡(DNN)可以挖掘深層次的特徵表示,擬合能力更強,於是Google提出了Wide & Deep learning框架,將LR和DNN網絡結合起來,這樣既發揮LR模型的優勢,又利用DNN和Embedding的自動特徵組合學習來構造了統一的學習框架。算法框架見圖中間部分。

    當推薦系統邂逅深度學習

    • DeepFM

    Huifeng et al. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction. IJCAI, 2017.

    該文同樣可以看作是對於寬度模型和深度模型相結合的例子,在此寬度模型應用的是因子分解機(FM),雖然因子分解機在理論上可以提取高階信息,但由於計算複雜的問題,一般也是用來提取最多二階的組合特徵,因此結合了深度模型來獲取更高階複雜的特徵。本文對於高階特徵與低階特徵的組合方式給出了兩種方案:並行與串行的方案。整體框架如下。

    當推薦系統邂逅深度學習

    最近,微軟亞洲研究院對於DeepFM提出了改進,提出了極深因子分解機模型(xDeepFM),不僅能同時以顯式和隱式的方式自動學習高階的特徵交互,使特徵交互發生在向量級,還兼具記憶與泛化的學習能力。

    8.工業界利用深度學習進行推薦的範例

    工業界相比於學術界對於學術研究來說,我覺得更有優勢。因為可以拿到一線的數據,並且擁有足夠的場景,因此基於以上可以設計出更靈活的算法。同時由於工業界的真實環境,可以通過A/B測試以及其他用戶問卷來進行算法效果的反饋,而對於學術界,只能根據基本的評價指標來進行測量。另外,工業界更側重於算法的效用、實時性以及用戶體驗,而學術界有時更側重於簡單指標的絕對提升。

    • Airbnb

    Grbovic et al. Real-time Personalization using Embeddings for Search Ranking at Airbnb. KDD, 2018.

    該文體現了業務理解與模型算法的完美融合,在真實環境中,沒有普適的算法,只有結合自身業務理解設計的算法才能算得上是完美的算法。該文將Embedding技術應用到推薦中,沒有過複雜的技術創新,更多的是在Word2vec模型的基礎上進行微小改進,包括比如將預定成功的list作為全局的上下文詞來指導訓練,比如通過地理元數據信息來緩解冷啟動項目,比如將該平臺的拒絕信息作為顯式的負反饋信息等。更多討論詳見。如何評價Airbnb的Real-time Personalization獲得2018 kdd最佳論文?

    • 京東

    Zhou et al. Micro behaviors: A new perspective in e-commerce recommender systems. WSDM, 2018.

    當前大多數推薦系統更注重用戶和商品之間的宏觀交互(如用戶-商品評分矩陣),很少有人會結合用戶的微觀行為數據(如瀏覽商品的時長、對商品的閱讀和評論)進行推薦。本文從微觀行為的角度對推薦系統進行改進,作者將用戶的固有數據視為用戶和商品之間的宏觀交互,並保留了宏觀交互的順序信息,同時,每個宏觀交互都包含一系列微觀行為。具體來說,論文提出了一個全新模型——RIB,它由輸入層、Embedding層(解決數據稀疏和數據高維的問題)、RNN層(建模時序信息)、Attention層(捕捉各種微觀行為影響)和輸出層組成。整體框架如下圖。

    當推薦系統邂逅深度學習

    當然,還有許多公司將深度學習應用於推薦,在此不再一一簡介,給出參考文獻如下。

    Youtube Covington et al. Deep neural networks for youtube recommendations. RecSys, 2016.

    雅虎 Okura et al. Embedding-based news recommendation for millions of users. KDD,2017.

    阿里 Wang et al. Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba. KDD, 2018.

    寫在最後

    基於深度學習技術的推薦系統的總結到此也就結束了,希望能對大家有所幫助。另外,雖然深度學習技術在當下甚是流行,但我們也應該保持冷靜,畢竟許多東西高潮過後很少有人問津,高潮過後依然堅守在這方土地的人才是最熱愛的人吧。


    分享到:


    相關文章: