deep learning 可以用來做推薦系統嗎?

這方面的論文目前只看到一篇RBM用於做協同過濾的,按道理說deep learning 已經火了好久了,怎麼不見有後續的使用期做推薦系統的文章?歡迎大家討論,我想把這個題目用來做我的碩士論文!


毋庸質疑,推薦系統將成為 Deep Learning 最重要的應用領域之一。


也許是最早的,算是與 Deep Learning 沾點兒邊的推薦演算法,是在 Netflix Prize 競賽後半程異軍突起的 Restricted Boltzmann Machine 演算法。當時以 SVD++ 為核心的模型幾乎已經陷入了僵局,大家基本進入到了比拼trick與融合模型數量的體力活階段了。RBM 的出現推動整個競賽上了一個新台階,相關的論文「Restricted Boltzmann Machines for Collaborative Filtering」在此[1]。但 RBM 本身大家並不認為和 Deep Learning 有太大關係,因為它太「淺」了,官方論文裡面最後也提到了 RBM 一個重要的擴展方向就是「Learning Deep Generative Models」。Netflix 在2014年發表了一篇結合使用 GPU 和 AWS 搞分散式神經網路的博客「Distributed Neural Networks with GPUs in the AWS Cloud」[2],昭告了一下除 Google 之外他們在 deep learning 領域也不容小覷,然而並沒有透露太多的應用細節。再多說幾句 Netflix Prize,有關 Netflix Prize 對 Netflix Recommendation 帶來的改變,可以看看 Netflix 自己的官方博客[3][4],這幾乎也可以看做是推薦系統領域最佳的入門資料。關於 RBM,對工業界同學們更具參考價值的是 Edwin Chen 的這篇「Introduction to Restricted Boltzmann Machines」[5],更淺顯易懂,還有開源代碼實現。然後就是最近,有人號稱使用 deep learning 取得了比 Netflix Prize 大獎方案更好的結果[6]。


其他一些值得看看的內容:

  1. 音樂是 deep learning 適合發揮優勢的領域之一,與 Spotify 相關的 deep learning 應用有兩篇報導,一篇是「Recommending music on Spotify with deep learning」[7] 很詳盡,另外一篇是把 deep learning 與經典的 collaboritive filtering 結合的嘗試,「Recurrent Neural Networks for Collaborative Filtering」[8]。

  2. Google 也發表了一篇音樂相關的 deep learning 論文,「Temporal Pooling and Multiscale Learning for Automatic Annotation and Ranking of Music Audio」[9]。

  3. Netflix 的一位演算法研究員作為作者之一的「Session-based Recommendations with Recurrent Neural Networks」[10]。

  4. 基於 deeplearning4j 的一個推薦引擎「The WellDressed Recommendation Engine」[11],據說,使用了這個玩意兒的電商網站把 ad coverage 提升了200%。

  5. 微軟同學在 WWW2015 上的一篇文章,「A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems」[12],講在新聞和應用推薦領域使用 deep learning 的一些心得。

  6. 最後重磅推薦,Netflix 前推薦引擎總監 Xavier Amatriain 在 KDD2014 上的壓軸分享,「The Recommender Problem Revisited」[13],得認真啃一啃。

今年的 RecSys 會議,將會第一次專門針對 Deep Learning 與 Recommender Systems 設立一個專門的 workshop,將於今年9月15日在 Boston 舉辦,[14]這裡是一些方向性的題目,有啟發。


另外,就是 Amazon 剛剛宣布開源了 DSSTNE -- Deep Scalable Sparse Tensor Network Engine,DSSTNE 是 Amazon 用來開發深度學習模型的一套框架,Amazon 最新的推薦引擎就在使用 DSSTNE。我在知乎專欄里發表了一篇相關介紹「關於Amazon開源的深度學習框架DSSTNE,看這一篇就夠了! - ResysChina - 知乎專欄」


參考資料:

[1] http://www.cs.utoronto.ca/~hinton/absps/netflixICML.pdf

[2] http://techblog.netflix.com/2014/02/distributed-neural-networks-with-gpus.html

[3] http://techblog.netflix.com/2012/04/netflix-recommendations-beyond-5-stars.html

[4] http://techblog.netflix.com/2012/06/netflix-recommendations-beyond-5-stars.html

[5] Introduction to Restricted Boltzmann Machines

[6] Deep learning solution for netflix prize

[7] Recommending music on Spotify with deep learning

[8] http://erikbern.com/wordpress.php?p=589

[9] http://ismir2011.ismir.net/papers/PS6-13.pdf

[10] http://arxiv.org/abs/1511.06939

[11] The WellDressed Recommendation Engine

[12] http://msr-waypoint.com/pubs/238334/frp1159-songA.pdf

[13] http://www.kdd.org/kdd2014/tutorials/KDD - The Recommender Problem Revisited.pdf

[14] Call for papers

原文發布在微信公眾號【ResysChina】,中國最專業的個性化推薦技術社區。
深度學習與推薦系統

也歡迎來「我的值乎」提問


8月11號更新:
大家熱情還蠻高的,那就再推薦一下我覺得很不錯的相關paper吧。Title叫做:"A Deep Embedding Model for Co-occurrence Learning" 思路蠻有意思的,應該有很多改進可以做的。

===============================================================
我們有一個嘗試,其實已經多次介紹過了,既然有人在問這個問題,那麼就再推薦下吧。是今年KDD的paper,title叫做「collaborative deep learning for recommender systems」。和之前rbm做推薦的那個paper不同,其實嚴格意義上來講這個paper不能算作是用deep learning做推薦,因為本質上來說是這個paper講的是怎麼用deep learning可以從user/item content中學到有用的feature給推薦系統使用,然後把這個這個學feature的過程和推薦結合在一個end to end的框架下一起優化。

PS: 其實我們這paper命運多舛,去年這個時候就在投了,不幸今年才中。。。這似乎應該最早的end to end deep learning的應用。可惜英語不好不會起這麼fancy的名字。。。


稍微歪個樓,主要是覺得這個角度可能對題主的問題

【只看到一篇RBM用於做協同過濾的,按道理說deep learning 已經火了好久了,怎麼不見有後續的使用期做推薦系統的文章?】

會有所幫助。

去年物理學界出了不少運用機器學習演算法來解決物理問題的嘗試,其中這兩篇:

amp;quot;Self-Learning Monte Carlo Methodamp;quot;, Junwei Liu, Yang Qi, Zi Yang Meng, Liang Fu, arxiv:1610.03137, Oct 2016

amp;quot;Accelerate Monte Carlo Simulations with Restricted Boltzmann Machinesamp;quot;, Li Huang, Lei Wang, arxiv:1610.02746, Oct 2016

利用RBM自動推薦出給定哈密頓量下的物理模型的構型。很顯著地節省了蒙卡演算法計算代價,得到了很漂亮的結果。

這是兩個和RBM做協同過濾有點相似的工作。只不過我們推薦的是物理模型的基態構型,比如說一堆自旋狀態而已。這個工作從完成到現在也差不多過了一年,但是物理領域目前還沒有直接利用deep learning進行跟進的工作。這裡遇到的問題我相信和用deep learning做協同過濾是相似的。

問題主要有兩點:

第一,RBM之所以可以做得很有效,一個很大的原因是我一旦給定了visible layer,那麼接下來hiden layer的條件概率兩兩獨立,整個layer的條件概率可以寫成各個neural連乘的形式。這樣只需多項式時間就能計算出整個layer的條件概率。

一旦RBM超過兩層,那麼之前二分網路結構的優勢就消失了。此後hidden的條件概率的計算代價大致正比於neural個數的指數。


第二點,多層RBM的物理意義不明顯。機器學習的input data可以類比為物理里的自旋構型。

兩層RBM可以類比物理中的hubbard-stratonovich變換,把自旋-自旋的耦合拆開成自旋-輔助場h的耦合。

條件概率sum_{v} [p(h|v)]取log之後對應於原來自旋系統的自由能。

minimize KL- divergence 對應於 minimize 自由能。

而 minimize 自由能然後得到目標統計構型實在是一件理所應當的事。

但超過兩層後,這樣物理意義良好的對應就垮了。歸其原因,其實很簡單,就是sigmoid函數(1/(1+exp(-x)))迭代了兩次,那麼指數裡面再套一個指數,無論如何都無法映射到一個簡單的統計模型了。

-------------喝口水的分界線--------------------

不過雖然有困難,但deeplearning是大勢所趨,總是要去想辦法攻克的。遲一些,對應的deep演算法還是要出來。


這個得分兩方面來說。

學術上,總體來說,deep learning (更確切地說,神經網路)不僅可以用來做推薦系統,還要比之前的手段表現要好。主要的優越性在於神經網路可以更好地表現稀疏的特徵(sparse feature)而不需要太擔心過度擬合。也正因為如此,無論是Google還是Facebook,都在逐步地把推薦系統替換成基於神經網路的(文末有附相關論文)。

不過,既然回答這個問題了,就得說說另一方面的事情。如果說這麼些年計算機科學的發展教會了我們什麼道理,那就是在這個領域很少有什麼絕對的更好或者更差,大多數時候都是trade-off(取捨),我們需要找的是收益與成本上最有效率的那個點。只不過技術進步會時常使得我們評價取捨的體系發生變化,從而導出不一樣的結果。舉例來說,互聯網時代CDN和緩存的大規模出現是由於儲存硬體的成本下降從而使我們更可能以空間換時間。而深度學習本身在學術上的再度復出也是由於基於算力的取捨發生了變化。

學術的目的在於推動人類知識的邊界,所以毫無疑問深度學習是未來的方向。然而在工業實踐上是不是應該用深度學習做推薦系統,這取決於在每個具體情況下對收益與成本的考量。

收益:

1. 有沒有必須上深度學習才能實現的提升?

正如上文所說,神經網路的優越性在於對稀疏特徵的表達。這對那些內容類型和用戶品味五花八門的內容平台極為重要,比如Google和Facebook。而對於還處在中前期,內容和用戶群調性都比較一致的產品,神經網路的獨有優勢並不是十分強。

2. 是不是只要上了深度學習就能提升?

一個明顯的因素就是feature的數量和質量。如果feature上做得不夠多,上了神經網路也沒用。

成本:

1. 用於開發神經網路的人力機會成本

把開發資源放到對基礎性工作的完善上,比如做feature上,可以有多少提升。

2. 維持額外算力的財務機會成本

把錢用來推廣/發工資/買好電腦來提高開發效率,會不會收效更好。


總之,我相信神經網路一定是未來的方向,但目前,它在工業實踐上是不是一個最優的方案,需要各家具體問題具體分析。

最後附上一篇Youtube基於深度學習的推薦系統的論文:https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45530.pd


可以的,但效果不如人工提取特徵後使用多模型混合。後面是我之前回答關於深度模型做廣告推送,原因跟這個是差不多的,不會引用 就複製過來了
「這個問題有點太複雜了,簡單說幾句吧。廣告預估和商品推薦有這很多相似的地方,都屬於行為估計的範圍,其實在這些問題中比較出色的還是多模型混合的方式。因為這類問題其實不單考驗模型,更是對特徵提取的一種考驗。不過話說回來,一切ml問題都是對特徵提取的考驗,為什麼cv裡面深度學習效果如此出色,而在這類問題中deeplearning就沒有那種壓倒性的優勢呢。我們應該回到問題和模型本身來看。
cv問題中,特徵是非常豐富的,可以說機器需要處理的問題是一個相對複雜的問題,而dl的優勢就是在此人,只要機器性能跟得上,多複雜的問題我都OK。但是在決策問題中,特徵的數量往往不多,很多特徵是需要人們來挖掘的。機器再聰明,肯定干不過人腦,因為機器沒有創造力。所以在決策問題上,其實單純運用深度模型並不會達到令人驚艷的結果」創建於 01:38


今年我在ICML上發表的文章A Neural autoregressive approach to collaborative filtering, 在Netflix 數據集上取得了SOTA效果。


可以,看我的文章

深度學習在推薦領域的應用 - 知乎專欄


這是我即將要研究的問題。Netflix Prize的RBM和DL並沒有什麼關係。DL的本質是End2End,是要通過結構catch住非線性。


建議在google scholar 中輸入 Restricted Boltzmann Machines for Collaborative Filtering

點擊「被引用次數」即可看到引用這篇文章的所有文章(google scholar 收錄的)樓主可以從引用此文章的所有文章中尋找需要的文章,共271篇。為方便可以按照年份查找。
如下圖

希望以上方法對樓主有所幫助祝好~~


用Deep Learning做推薦已經越來越受到學術界和產業界的關注了。比如Deep content-based music recommendation,該論文基於深度學習在語音處理方面的成功從音樂聲音、旋律的角度提取特徵,對於推薦準確度有很大的提升。

個人感覺深度學習和推薦系統的結合的一種方式是使用深度學習可以從之前方法不能很好處理的數據格式中提取特徵,比如音樂、圖片、視頻本身、文本等,從這些數據中提取出特徵之後再做推薦。

至於模型方面的結合目前還不是很流行。


我從產品的角度做一下解答,是不是用deep learning 要取決於業務。

我對deep learning只是知道皮毛,雖然工作中也接觸但是我並不是從事相關技術的。我說一下我的理解,在理想狀態下,用deep learning 的好處就是能夠推薦的更加準確。因為在數據樣本足夠大的情況下,deep learning的訓練層次可以很多,傳統的方式準確率在有大量訓練的情況下,很快達到了瓶頸,準確率就不會提升了。並且隨著現在大數據工程技術的發展,大樣本訓練的工程問題也被解決了,而使用deep learning可以在大量的數據下持續的提升準確率(在一個time period,因為準確率也會隨著時間衰減)。但是實際業務中,準確率只是一個方面。

大多數人聽過一個笑話,說有兩個人遇熊逃跑,一個人說跑也沒有用啊,熊比人跑得快,另一個人說,我跑的比你快就可以了。實際的業務中也是如此,推薦系統有時候並不追求非常准,而是比隨機准一些就行了。為什麼會這樣呢?這裡可能有很多原因。1,可能自己的一方數據並沒有能力採集足夠的一方數據做深層次的監督學習樣本。2,計算的時間比準確更重要。對於有些行業,能夠定位這個用戶的時間只有有限的時間,例如使用cookie的弱賬戶體系,而不是賬戶和密碼這樣的強賬戶,需要在有限的時間內快速的推薦這個用戶適合的內容。另外,對於電商來說,某些產品購買的需求持續時間是短暫的,例如襪子,可能只有半小時,而某些手機需求窗口期可能要1個多月。3,其他的原因,例如工程師水平,成本等。可見如果用deep learning 來推薦用戶買襪子,推薦可能會很准但是計算的結果卻需要1天的時間,那麼自然deep learning的方式就不適用了,用一些簡單的模型來做快速計算,這樣的推薦方法更加適合這種業務。

總之,業務狀況決定了準確率和時間之間的trade off的分配,在客觀條件一致下所以是不是用deep learning來做推薦最主要取決於業務的需求。


可以看看Google的這篇將深度學慣用到YouTube視頻推薦的文章
Deep Neural Networks for YouTube Recommendation
和網易的這篇把RNN和FNN用到考拉海購電商物品推薦的文章
Personal recommendation using deep recurrent neural networks in NetEase
個人感覺主要還是把深度神經網路和傳統的LR模型、FM模型結合用是主流。


Recommender Systems with Deep Learning 在這篇博客中作者給出了30篇論文,有需要可以參考一下。其中有一篇「 Wide amp; Deep Learning for Recommender Systems 」是google play使用的推薦演算法,還有幾篇用autoencoder做rating或者提取特徵集成到mf中,自己跑了一下效果不錯


為了kaiser的知乎鹽門票,戰戰兢兢來湊個回答。

傳統的協同過濾推薦系統和DL是否能完美結合,這個還是等專業人員回答吧。

單獨就推薦而言,DL當然是可以完成的,甚至難度高點,依賴於去年大火的的GANs(對抗神經網路),你可以只依靠文字獲得推薦。

比如:我需要一款黑色的,外型炫酷的雙肩包。來獲得實物圖片的推薦。


以下內容引用自《AI科技評論》,侵刪。

2016 年 6 月,論文《Generative Adversarial Text to Image Synthesis》(「GANs 文字到圖像的合成」)問世。它介紹了如何通過 GANs 進行從文字到圖像的轉化。比方說,若神經網路的輸入是「粉色花瓣的花」,輸出就會是一個包含了這些要素的圖像。該任務包含兩個部分:1. 利用自然語言處理來理解輸入中的描述。2. 生成網路輸出一個準確、自然的圖像,對文字進行表達。

為實現這些目標,生成器和判別器都使用了文字編碼技術:通過循環文字編碼器(recurrent text encoder)生成的文字屬性,來作為條件對 GAN 進行訓練(詳情參考論文)。這使得 GAN 能夠在輸入的文字描述和輸出圖像之間建立相關性聯繫。

原理示意


該任務中,GAN 其實完成了兩件任務:1.生成自然、說得過去的圖像;2.圖像必須與文字描述有相關性。

利用 GAN, GAN-CLS, GAN-INT,GAN-INT-CLS 生成的結果示意。GT 是真實圖像,從左到右三組圖像的任務分別是:1.全黑色的鳥,粗圓的鳥嘴;2.黃胸、棕冠、黑眉的小鳥;3. 藍冠、藍羽、黑頰的超小鳥,嘴小、踝骨小、爪小。

大神 Yan Lecun 眼裡,GANs 為什麼這麼重要:

「它為創建無監督學習模型提供了強有力的演算法框架,有望幫助我們為 AI 加入常識(common sense)。我們認為,沿著這條路走下去,有不小的成功機會能開發出更智慧的 AI 。」

以上。

-----------分割線---------------

成功拿到了知乎鹽的門票(撒花慶祝ing)


我近期完成了一篇綜述,關於深度學習在推薦系統上的應用,「Deep Learning based Recommender System: A Survey and New Perspectives」, 可以從arxiv上獲得原文https://arxiv.org/pdf/1707.07435.pdf。

文章綜述了100多篇非常新的研究成果。已經有相關媒體對這篇綜述進行報道。

學界 | 一文綜述所有用於推薦系統的深度學習方法(機器之心)

如果感興趣可以垂閱一下。


深度學習自編碼器與矩陣分解相結合的推薦演算法CDL, 發表在KDD 2015。

參考詳情轉自:LibRec 每周演算法:CDL (KDDamp;amp;#x27;15)

今天要講解的文章來自KDD"15,文章將深度學習技術中的Auto-Encoders和推薦系統中的PMF結合,融合得到模型Collaborative Deep Learning (CDL)。實驗證明,該模型可以很大程度上提升傳統PMF的推薦的精準率。

Librec: http://www.librec.net/
Github Repo: https://github.com/guoguibing/librec
Doc Link: http://wiki.librec.net/doku.php
歡迎關注公眾號


不說多餘的,直切主題。推薦系統模型追求模型可解釋性,傳統deep並不適合做真正的深度推薦系統(雖然有CDL等),只是為了用深度學習而加入到推薦系統,側重的是對side information的信息提取。真正的深度推薦系統應該是一個unified結構,VAE(變分自編碼器)與deep generative model的出現是深度學習在推薦系統上最契合的應用。所以,答案是當然的,現在的深度學習不局限於CNN,RNN,AE之類的,有很多偏向inference的,這些對推薦系統來說都是非常契合的深度學習。最近在忙另外一個工作,忙完後會仔細研究研究這方面的,歡迎討論哈!


深度學習和推薦系統的融合已經有一些進展。
典型的谷歌在TF上發布的視頻內容的推薦是很好的例子。
首先,在網路結構方面,改方案完全使用神經網路去建模。
其次,在模型效能方面,基於神經網路的模型效果已經超過現有業務的最優模型。
第三,在模型的網路單元上面,很多embeding與多層前向網路,而且模型連接結構複雜。
展望未來的發展機會,比如加入更多的卷積與遞歸結構,建模的問題從分類和特徵表達學習推廣到更多形式等等都大有可為。


照理說應該是可以的,但是現在只有RBM的一篇,單模型效果和SVD相似,只是error在不同的地方,所以結合起來可以提升效果.但是你看RBM也不過是RBM,他也沒敢拿DBN來搞吧,深度學習的結構對推薦系統來說似乎是太過複雜了……我感覺


了解用戶的行為習慣和愛好,這就是大數據的核心價值,通過這些數據加上深度學習演算法,可以大幅度的提高預測準確度和降低誤差率,其實我們自己本身已經在慢慢被量化的信息給描述出來了,看到那些數字(一年花了多少錢,花在哪),深度學習下的程序已經對這個人可以有相當粗糙的認識了,你喜歡黑色的衣服,你喜歡胸大的妹子,你比較文藝,你有高度近視,這樣的未來有利也有弊,利是我們無處不在的享受大數據帶來的便利,你的身體情況,你的家居,你看到的每一條推薦都是你喜歡的,你查看附近的人,系統甚至可以說你們是否合得來,弊在於我們的隱私暴露無遺。國內已經很多公司這方面技術比較成熟了,颸拓啊,泰迪智慧等。


推薦閱讀:

如何評價 Nature 重磅封面:谷歌人工智慧擊敗歐洲圍棋冠軍,3 月將與李世石對弈?
RL兩大類演算法的本質區別?(Policy Gradient 和 Q-Learning)
在圖像識別這一塊,目前有沒有可以移植到嵌入式設備的深度學習演算法?
深度學習調參有哪些技巧?
你有哪些deep learning(rnn、cnn)調參的經驗?

TAG:協同過濾 | 推薦系統 | 深度學習(Deep Learning) |