自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

推薦系統(tǒng)中基于深度學(xué)習(xí)的混合協(xié)同過濾模型

大數(shù)據(jù)
攜程在深度學(xué)習(xí)與推薦系統(tǒng)結(jié)合的領(lǐng)域也進行了相關(guān)的研究與應(yīng)用,并在國際人工智能頂級會議AAAI 2017上發(fā)表了相應(yīng)的研究成果《A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems》,本文將分享深度學(xué)習(xí)在推薦系統(tǒng)上的應(yīng)用,同時介紹攜程基礎(chǔ)BI團隊在這一領(lǐng)域上的實踐。

近些年,深度學(xué)習(xí)在語音識別、圖像處理、自然語言處理等領(lǐng)域都取得了很大的突破與成就。相對來說,深度學(xué)習(xí)在推薦系統(tǒng)領(lǐng)域的研究與應(yīng)用還處于早期階段。

攜程在深度學(xué)習(xí)與推薦系統(tǒng)結(jié)合的領(lǐng)域也進行了相關(guān)的研究與應(yīng)用,并在國際人工智能***會議AAAI 2017上發(fā)表了相應(yīng)的研究成果《A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems》,本文將分享深度學(xué)習(xí)在推薦系統(tǒng)上的應(yīng)用,同時介紹攜程基礎(chǔ)BI團隊在這一領(lǐng)域上的實踐。

一、推薦系統(tǒng)介紹

推薦系統(tǒng)的功能是幫助用戶主動找到滿足其偏好的個性化物品并推薦給用戶。推薦系統(tǒng)的輸入數(shù)據(jù)可以多種多樣,歸納起來分為用戶(User)、物品(Item)和評分(Ratings)三個層面,它們分別對應(yīng)于一個矩陣中的行、列、值。對于一個特定用戶,推薦系統(tǒng)的輸出為一個推薦列表,該列表按照偏好得分順序給出了該用戶可能感興趣的物品。 

 

 

推薦系統(tǒng)問題描述 

圖1. 推薦系統(tǒng)問題描述

如圖1右邊所示,推薦問題一個典型的形式化描述如下:我們擁有一個大型稀疏矩陣,該矩陣的每一行表示一個User,每一列表示一個Item,矩陣中每個“+”號表示該User對Item的Rating,(該分值可以是二值化分值,喜歡與不喜歡;也可以是0~5的分值等)。

現(xiàn)在需要解決的問題是:給定該矩陣之后,對于某一個User,向其推薦那些Rating缺失的Item(對應(yīng)于矩陣中的“?”號)。有了如上的形式化描述之后,推薦系統(tǒng)要解決的問題歸結(jié)為兩部分,分別為預(yù)測(Prediction)與推薦(Recommendation)。

“預(yù)測”要解決的問題是推斷每一個User對每一個Item的偏愛程度,“推薦”要解決的問題是根據(jù)預(yù)測環(huán)節(jié)所計算的結(jié)果向用戶推薦他沒有打過分的Item。但目前絕大多數(shù)推薦算法都把精力集中在“預(yù)測”環(huán)節(jié)上,“推薦”環(huán)節(jié)則根據(jù)預(yù)測環(huán)節(jié)計算出的得分按照高低排序推薦給用戶,本次分享介紹的方案主要也是”預(yù)測”評分矩陣R中missing的評分值。

二、基于協(xié)同過濾的推薦

基于協(xié)同過濾的推薦通過收集用戶過去的行為以獲得其對物品的顯示或隱式信息,根據(jù)用戶對物品的偏好,發(fā)現(xiàn)物品或者用戶的相關(guān)性,然后基于這些關(guān)聯(lián)性進行推薦。

其主要可以分為兩類:分別是memory-based推薦與model-based推薦。其中memory-based推薦主要分為Item-based方法與User-based方法。協(xié)同過濾分類見圖2。 

 

 

 協(xié)同過濾分類 

圖2. 協(xié)同過濾分類

Memory-based推薦方法通過執(zhí)行最近鄰搜索,把每一個Item或者User看成一個向量,計算其他所有Item或者User與它的相似度。有了Item或者User之間的兩兩相似度之后,就可以進行預(yù)測與推薦了。 

 

 

矩陣分解示意圖 

圖3. 矩陣分解示意圖

Model-based推薦最常見的方法為Matrix factorization,其示意圖見圖3左邊。矩陣分解通過把原始的評分矩陣R分解為兩個矩陣相乘,并且只考慮有評分的值,訓(xùn)練時不考慮missing項的值,如圖3右邊所示。R矩陣分解成為U與V兩個矩陣后,評分矩陣R中missing的值就可以通過U矩陣中的某列和V矩陣的某行相乘得到。矩陣分解的目標(biāo)函數(shù)見圖3,U矩陣與V矩陣的可以通過梯度下降(gradient descent)算法求得,通過交替更新u與v多次迭代收斂之后可求出U與V。

矩陣分解背后的核心思想,找到兩個矩陣,它們相乘之后得到的那個矩陣的值,與評分矩陣R中有值的位置中的值盡可能接近。這樣一來,分解出來的兩個矩陣相乘就盡可能還原了評分矩陣R,因為有值的地方,值都相差得盡可能地小,那么missing的值通過這樣的方式計算得到,比較符合趨勢。

協(xié)同過濾中主要存在如下兩個問題:稀疏性與冷啟動問題。已有的方案通常會通過引入多個不同的數(shù)據(jù)源或者輔助信息(Side information)來解決這些問題,用戶的Side information可以是用戶的基本個人信息、用戶畫像信息等,而Item的Side information可以是物品的content信息等。例如文獻[1]提出了一個Collective Matrix Factorization(CMF)模型,如圖4所示。 

 

 

Collective Matrix Factorization模型 

圖4. Collective Matrix Factorization模型

CMF模型通過分別分解評分矩陣R,User的side information矩陣,Item的side information矩陣,其中User或者Item出現(xiàn)在多個矩陣中,其所分解的隱向量都是一致的。

三、深度學(xué)習(xí)在推薦系統(tǒng)中的應(yīng)用

Model-based方法的目的就是學(xué)習(xí)到User的隱向量矩陣U與Item的隱向量矩陣V。我們可以通過深度學(xué)習(xí)來學(xué)習(xí)這些抽象表示的隱向量。

Autoencoder(AE)是一個無監(jiān)督學(xué)習(xí)模型,它利用反向傳播算法,讓模型的輸出等于輸入。文獻[2]利用AE來預(yù)測用戶對物品missing的評分值,該模型的輸入為評分矩陣R中的一行(User-based)或者一列(Item-based),其目標(biāo)函數(shù)通過計算輸入與輸出的損失來優(yōu)化模型,而R中missing的評分值通過模型的輸出來預(yù)測,進而為用戶做推薦,其模型如圖5所示。 

 

 

 Item-based AutoRec模型 

圖5. Item-based AutoRec模型

Denoising Autoencoder(DAE)是在AE的基礎(chǔ)之上,對輸入的訓(xùn)練數(shù)據(jù)加入噪聲。所以DAE必須學(xué)習(xí)去除這些噪聲而獲得真正的沒有被噪聲污染過的輸入數(shù)據(jù)。因此,這就迫使編碼器去學(xué)習(xí)輸入數(shù)據(jù)的更加魯棒的表達(dá),通常DAE的泛化能力比一般的AE強。Stacked Denoising Autoencoder(SDAE)是一個多層的AE組成的神經(jīng)網(wǎng)絡(luò),其前一層自編碼器的輸出作為其后一層自編碼器的輸入,如圖6所示。 

 

 

SDAE 

圖6. SDAE

文獻[3]在SDAE的基礎(chǔ)之上,提出了Bayesian SDAE模型,并利用該模型來學(xué)習(xí)Item的隱向量,其輸入為Item的Side information。該模型假設(shè)SDAE中的參數(shù)滿足高斯分布,同時假設(shè)User的隱向量也滿足高斯分布,進而利用概率矩陣分解來擬合原始評分矩陣。該模型通過***后驗估計(MAP)得到其要優(yōu)化的目標(biāo)函數(shù),進而利用梯度下降學(xué)習(xí)模型參數(shù),從而得到User與Item對應(yīng)的隱向量矩陣。其圖模型如圖7所示。 

 

 

Bayesian SDAE for Recommendation Sysytem 

圖7. Bayesian SDAE for Recommendation Sysytem

在已有工作的基礎(chǔ)之上,攜程基礎(chǔ)BI算法團隊通過改進現(xiàn)有的深度模型,提出了一種新的混合協(xié)同過濾模型,并將其成果投稿與國際人工智能***會議AAAI 2017并被接受。該成果通過利用User和Item的評分矩陣R以及對應(yīng)的Side information來學(xué)習(xí)User和Item的隱向量矩陣U與V,進而預(yù)測出評分矩陣R中missing的值,并為用戶做物品推薦。 

 

 

Additional Stacked Denoising Autoencoder(aSDAE) 

圖8. Additional Stacked Denoising Autoencoder(aSDAE)

該成果中提出了一種Additional Stacked Denoising Autoencoder(aSDAE)的深度模型用來學(xué)習(xí)User和Item的隱向量,該模型的輸入為User或者Item的評分值列表,每個隱層都會接受其對應(yīng)的Side information信息的輸入(該模型靈感來自于NLP中的Seq-2-Seq模型,每層都會接受一個輸入,我們的模型中每層接受的輸入都是一樣的,因此最終的輸出也盡可能的與輸入相等),其模型圖見圖8。

結(jié)合aSDAE與矩陣分解模型,我們提出了一種混合協(xié)同過濾模型,見圖9所示。該模型通過兩個aSDAE學(xué)習(xí)User與Item的隱向量,通過兩個學(xué)習(xí)到隱向量的內(nèi)積去擬合原始評分矩陣R中存在的值,其目標(biāo)函數(shù)由矩陣分解以及兩個aSDAE的損失函數(shù)組成,可通過stochastic gradient descent(SGD)學(xué)習(xí)出U與V,詳情大家可以閱讀我們的paper《A Hybrid Collaborative Filtering Model with Deep Structure for Recommender Systems》[4]。 

 

 

混合協(xié)同過濾模型 

圖9. 混合協(xié)同過濾模型

我們利用RMSE以及RECALL兩個指標(biāo)評估了我們模型的效果性能,并且在多個數(shù)據(jù)集上和已有的方案做了對比實驗。實驗效果圖如圖10所示,實驗具體詳情可參看我們的paper。 

 

 

實驗效果對比 

圖10. 實驗效果對比

在今年的推薦系統(tǒng)***會議RecSys上,Google利用DNN來做YouTube的視頻推薦[5],其模型圖如圖11所示。通過對用戶觀看的視頻,搜索的關(guān)鍵字做embedding,然后在串聯(lián)上用戶的side information等信息,作為DNN的輸入,利用一個多層的DNN學(xué)習(xí)出用戶的隱向量,然后在其上面加上一層softmax學(xué)習(xí)出Item的隱向量,進而即可為用戶做Top-N的推薦。 

 

 

YouTube推薦模型圖 

圖11. YouTube推薦模型圖

此外,文獻[6]通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)提出了一種卷積矩陣分解,來做文檔的推薦,該模型結(jié)合了概率矩陣分解(PMF)與CNN模型,圖見圖12所示。該模型利用CNN來學(xué)習(xí)Item的隱向量,其對文檔的每個詞先做embedding,然后拼接所有詞組成一個矩陣embedding矩陣,一篇文檔即可用一個二維矩陣表示,其中矩陣的行即為文檔中詞的個數(shù),列即為embedding詞向量的長度,然后在該矩陣上做卷積、池化以及映射等,即可得到item的隱向量。User的隱向量和PMF中一樣,假設(shè)其滿足高斯分布,其目標(biāo)函數(shù)由矩陣分解以及CNN的損失函數(shù)組成。 

 

 

卷積矩陣分解模型 

圖12. 卷積矩陣分解模型

四、總結(jié)

本文介紹了一些深度學(xué)習(xí)在推薦領(lǐng)域的應(yīng)用,我們發(fā)現(xiàn)一些常見的深度模型(DNN, AE, CNN等)都可以應(yīng)用于推薦系統(tǒng)中,但是針對不同領(lǐng)域的推薦,我們需要更多的高效的模型。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,我們相信深度學(xué)習(xí)將會成為推薦系統(tǒng)領(lǐng)域中一項非常重要的技術(shù)手段。

本文由攜程技術(shù)中心投遞,ID:ctriptech。作者:董鑫,攜程基礎(chǔ)業(yè)務(wù)部BI團隊高級算法工程師,博士畢業(yè)于上海交通大學(xué)計算機科學(xué)與技術(shù)系。

責(zé)任編輯:龐桂玉 來源: CSDN大數(shù)據(jù)
相關(guān)推薦

2022-07-20 23:04:59

矩陣分解算法Spark

2016-08-18 01:36:14

協(xié)同過濾推薦電影用戶

2023-10-31 16:46:45

2020-06-28 07:30:00

推薦算法推薦系統(tǒng)

2017-04-27 18:09:26

item embedd推薦系統(tǒng)算法

2021-11-15 12:45:44

協(xié)同過濾算法架構(gòu)

2024-02-05 09:30:10

推薦算法深度學(xué)習(xí)內(nèi)容過濾

2024-03-11 08:00:00

位置偏差算法矩陣分解算法

2024-11-13 14:37:30

2024-02-02 10:26:26

2023-11-17 23:02:38

模型學(xué)習(xí)

2024-07-23 08:00:00

2018-03-23 11:33:56

協(xié)同過濾程序算法

2024-10-29 09:00:00

2021-07-07 10:00:03

深度學(xué)習(xí)系統(tǒng)機構(gòu)

2023-08-22 15:37:45

深度學(xué)習(xí)人工智能

2017-02-08 09:25:16

Spark分解推薦

2022-03-28 18:59:02

DockerFlask深度學(xué)習(xí)

2019-05-05 09:00:00

數(shù)據(jù)分析算法推薦系統(tǒng)

2018-03-23 11:56:09

相似性推薦推薦算法推薦
點贊
收藏

51CTO技術(shù)棧公眾號