近些年,深度學習在語音識別、圖像處理、天然語言處理等領域都取得了很大的突破與成就。相對來講,深度學習在推薦系統領域的研究與應用還處於早期階段。算法
攜程在深度學習與推薦系統結合的領域也進行了相關的研究與應用,並在國際人工智能頂級會議AAAI 2017上發表了相應的研究成果《A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems》,本文將分享深度學習在推薦系統上的應用。數組
推薦系統的功能是幫助用戶主動找到知足其偏好的個性化物品並推薦給用戶。推薦系統的輸入數據能夠多種多樣,概括起來分爲用戶(User)、物品(Item)和評分(Ratings)三個層面,它們分別對應於一個矩陣中的行、列、值。對於一個特定用戶,推薦系統的輸出爲一個推薦列表,該列表按照偏好得分順序給出了該用戶可能感興趣的物品。網絡
如圖1右邊所示,推薦問題一個典型的形式化描述以下:咱們擁有一個大型稀疏矩陣,該矩陣的每一行表示一個User,每一列表示一個Item,矩陣中每一個「+」號表示該User對Item的Rating,(該分值能夠是二值化分值,喜歡與不喜歡;也能夠是0~5的分值等)。ide
如今須要解決的問題是:給定該矩陣以後,對於某一個User,向其推薦那些Rating缺失的Item(對應於矩陣中的「?」號)。有了如上的形式化描述以後,推薦系統要解決的問題歸結爲兩部分,分別爲預測(Prediction)與推薦(Recommendation)。函數
「預測」要解決的問題是推斷每個User對每個Item的偏心程度,「推薦」要解決的問題是根據預測環節所計算的結果向用戶推薦他沒有打過度的Item。但目前絕大多數推薦算法都把精力集中在「預測」環節上,「推薦」環節則根據預測環節計算出的得分按照高低排序推薦給用戶,本次分享介紹的方案主要也是」預測」評分矩陣R中missing的評分值。性能
基於協同過濾的推薦經過收集用戶過去的行爲以得到其對物品的顯示或隱式信息,根據用戶對物品的偏好,發現物品或者用戶的相關性,而後基於這些關聯性進行推薦。
其主要能夠分爲兩類:分別是memory-based推薦與model-based推薦。其中memory-based推薦主要分爲Item-based方法與User-based方法。協同過濾分類見圖2。學習
Memory-based推薦方法經過執行最近鄰搜索,把每個Item或者User當作一個向量,計算其餘全部Item或者User與它的類似度。有了Item或者User之間的兩兩類似度以後,就能夠進行預測與推薦了。優化
Model-based推薦最多見的方法爲Matrix factorization,其示意圖見圖3左邊。矩陣分解經過把原始的評分矩陣R分解爲兩個矩陣相乘,而且只考慮有評分的值,訓練時不考慮missing項的值,如圖3右邊所示。R矩陣分解成爲U與V兩個矩陣後,評分矩陣R中missing的值就能夠經過U矩陣中的某列和V矩陣的某行相乘獲得。矩陣分解的目標函數見圖3,U矩陣與V矩陣的能夠經過梯度降低(gradient descent)算法求得,經過交替更新u與v屢次迭代收斂以後可求出U與V。編碼
矩陣分解背後的核心思想,找到兩個矩陣,它們相乘以後獲得的那個矩陣的值,與評分矩陣R中有值的位置中的值儘量接近。這樣一來,分解出來的兩個矩陣相乘就儘量還原了評分矩陣R,由於有值的地方,值都相差得儘量地小,那麼missing的值經過這樣的方式計算獲得,比較符合趨勢。人工智能
協同過濾中主要存在以下兩個問題:稀疏性與冷啓動問題。已有的方案一般會經過引入多個不一樣的數據源或者輔助信息(Side information)來解決這些問題,用戶的Side information能夠是用戶的基本我的信息、用戶畫像信息等,而Item的Side information能夠是物品的content信息等。例如文獻[1]提出了一個Collective Matrix Factorization(CMF)模型,如圖4所示。
CMF模型經過分別分解評分矩陣R,User的side information矩陣,Item的side information矩陣,其中User或者Item出如今多個矩陣中,其所分解的隱向量都是一致的。
Model-based方法的目的就是學習到User的隱向量矩陣U與Item的隱向量矩陣V。咱們能夠經過深度學習來學習這些抽象表示的隱向量。
Autoencoder(AE)是一個無監督學習模型,它利用反向傳播算法,讓模型的輸出等於輸入。文獻[2]利用AE來預測用戶對物品missing的評分值,該模型的輸入爲評分矩陣R中的一行(User-based)或者一列(Item-based),其目標函數經過計算輸入與輸出的損失來優化模型,而R中missing的評分值經過模型的輸出來預測,進而爲用戶作推薦,其模型如圖5所示。
Denoising Autoencoder(DAE)是在AE的基礎之上,對輸入的訓練數據加入噪聲。因此DAE必須學習去除這些噪聲而得到真正的沒有被噪聲污染過的輸入數據。所以,這就迫使編碼器去學習輸入數據的更加魯棒的表達,一般DAE的泛化能力比通常的AE強。Stacked Denoising Autoencoder(SDAE)是一個多層的AE組成的神經網絡,其前一層自編碼器的輸出做爲其後一層自編碼器的輸入,如圖6所示。
文獻[3]在SDAE的基礎之上,提出了Bayesian SDAE模型,並利用該模型來學習Item的隱向量,其輸入爲Item的Side information。該模型假設SDAE中的參數知足高斯分佈,同時假設User的隱向量也知足高斯分佈,進而利用機率矩陣分解來擬合原始評分矩陣。該模型經過最大後驗估計(MAP)獲得其要優化的目標函數,進而利用梯度降低學習模型參數,從而獲得User與Item對應的隱向量矩陣。其圖模型如圖7所示。
在已有工做的基礎之上,攜程基礎BI算法團隊經過改進現有的深度模型,提出了一種新的混合協同過濾模型,並將其成果投稿與國際人工智能頂級會議AAAI 2017並被接受。該成果經過利用User和Item的評分矩陣R以及對應的Side information來學習User和Item的隱向量矩陣U與V,進而預測出評分矩陣R中missing的值,併爲用戶作物品推薦。
該成果中提出了一種Additional Stacked Denoising Autoencoder(aSDAE)的深度模型用來學習User和Item的隱向量,該模型的輸入爲User或者Item的評分值列表,每一個隱層都會接受其對應的Side information信息的輸入(該模型靈感來自於NLP中的Seq-2-Seq模型,每層都會接受一個輸入,咱們的模型中每層接受的輸入都是同樣的,所以最終的輸出也儘量的與輸入相等),其模型圖見圖8。
結合aSDAE與矩陣分解模型,咱們提出了一種混合協同過濾模型,見圖9所示。該模型經過兩個aSDAE學習User與Item的隱向量,經過兩個學習到隱向量的內積去擬合原始評分矩陣R中存在的值,其目標函數由矩陣分解以及兩個aSDAE的損失函數組成,可經過stochastic gradient descent(SGD)學習出U與V。
咱們利用RMSE以及RECALL兩個指標評估了咱們模型的效果性能,而且在多個數據集上和已有的方案作了對比實驗。實驗效果圖如圖10所示,實驗具體詳情可參看咱們的paper。
在今年的推薦系統頂級會議RecSys上,Google利用DNN來作YouTube的視頻推薦[5],其模型圖如圖11所示。經過對用戶觀看的視頻,搜索的關鍵字作embedding,而後在串聯上用戶的side information等信息,做爲DNN的輸入,利用一個多層的DNN學習出用戶的隱向量,而後在其上面加上一層softmax學習出Item的隱向量,進而便可爲用戶作Top-N的推薦。
此外,文獻[6]經過卷積神經網絡(CNN)提出了一種卷積矩陣分解,來作文檔的推薦,該模型結合了機率矩陣分解(PMF)與CNN模型,圖見圖12所示。該模型利用CNN來學習Item的隱向量,其對文檔的每一個詞先作embedding,而後拼接全部詞組成一個矩陣embedding矩陣,一篇文檔便可用一個二維矩陣表示,其中矩陣的行即爲文檔中詞的個數,列即爲embedding詞向量的長度,而後在該矩陣上作卷積、池化以及映射等,便可獲得item的隱向量。User的隱向量和PMF中同樣,假設其知足高斯分佈,其目標函數由矩陣分解以及CNN的損失函數組成。
引用: [1] Ajit P. Singh, Geoffrey J. Gordon. 「Relational Learning via Collective Matrix Factorization」, KDD 2008 [2] Suvash Sedhain, Aditya Krishna Menon, Scott Sanner, Lexing Xie. 「AutoRec: Autoencoders Meet Collaborative Filtering」, WWW 2015 [3] Hao Wang,Naiyan Wang, Dit-Yan Yeung. 「Collaborative Deep Learning for Recommender Systems」, KDD 2015 [4] Xin Dong, Lei Yu, ZhonghuoWu, Yuxia Sun, Lingfeng Yuan, Fangxi Zhang. 「A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems」, AAAI 2017 [5] Paul Covington, Jay Adams, Emre Sargin. 「Deep Neural Networks for YouTube Recommendations」, RecSys 2016 [6] Donghyun Kim, Chanyoung Park, Jinoh Oh, Sungyoung Lee, Hwanjo Yu. 「Convolutional Matrix Factorization for Document Context-Aware Recommendation」, RecSys 2016