鹿祥志,孫福振,王紹卿,徐上上
山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049
隨著網(wǎng)絡(luò)信息量的不斷增長(zhǎng),推薦系統(tǒng)已成為克服信息超載的有效策略[1]。傳統(tǒng)的推薦問(wèn)題通常抽象成矩陣填充問(wèn)題,這樣的方法適合應(yīng)用在擁有用戶(hù)長(zhǎng)期配置文件的情境中。當(dāng)用戶(hù)的長(zhǎng)期配置文件不存在時(shí),就需要根據(jù)用戶(hù)和站點(diǎn)交互的會(huì)話(huà)日志來(lái)做出推薦。這種僅依賴(lài)于用戶(hù)當(dāng)前進(jìn)行的會(huì)話(huà)中的動(dòng)作序列來(lái)預(yù)測(cè)用戶(hù)下一個(gè)動(dòng)作的問(wèn)題被稱(chēng)之為基于會(huì)話(huà)的推薦?;跁?huì)話(huà)的推薦系統(tǒng)(Session-based Recommender System)是個(gè)性化推薦系統(tǒng)的一個(gè)重要組成部分。會(huì)話(huà)指的是在給定時(shí)間內(nèi)發(fā)生的用戶(hù)與站點(diǎn)的交互[2]。在推薦系統(tǒng)中會(huì)話(huà)通常能體現(xiàn)用戶(hù)這段時(shí)間內(nèi)的意圖,例如,看某種類(lèi)型的新聞,買(mǎi)某類(lèi)商品等[3]。目前,基于會(huì)話(huà)的推薦主要的算法包括:基于序列模式挖掘的方法[4]、基于馬爾可夫模型的方法[5],以及基于循環(huán)神經(jīng)網(wǎng)絡(luò)的方法[6]。由于近年來(lái)深度學(xué)習(xí)技術(shù)的飛速發(fā)展,基于神經(jīng)網(wǎng)絡(luò)的會(huì)話(huà)推薦算法成為當(dāng)前研究的熱點(diǎn)。其中,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)具有可以利用歷史狀態(tài)的特點(diǎn),Hidasi 等人[7]首次將RNN應(yīng)用于推薦系統(tǒng),不僅證明了RNN能應(yīng)用于基于會(huì)話(huà)的推薦問(wèn)題,而且針對(duì)基于會(huì)話(huà)推薦的這項(xiàng)特定任務(wù),設(shè)計(jì)了帶有門(mén)控循環(huán)單元(Gated Recurrent Unit,GRU)的RNN 模型GRU4REC。Tan 等人[8]提出在GRU4REC 上引入四條優(yōu)化方法,包括數(shù)據(jù)增強(qiáng)技術(shù)、設(shè)置時(shí)間閾值來(lái)適應(yīng)變化、使用特權(quán)信息(關(guān)于點(diǎn)擊項(xiàng)目的屬性)和輸出嵌入方法。之后Hidasi 等人[9]則通過(guò)改進(jìn)排序損失函數(shù)對(duì)RNN進(jìn)行優(yōu)化。Li等人[10]提出了NARM(Neural Attentive Recurrent Model)模型,其認(rèn)為在以前的基于會(huì)話(huà)的推薦方法的工作中,大多數(shù)只關(guān)注了對(duì)于用戶(hù)會(huì)話(huà)點(diǎn)擊序列的建模,但是并沒(méi)有關(guān)注用戶(hù)在點(diǎn)擊序列中真實(shí)的興趣。Pan等人[11]提出一種具有重要性提取模塊SR-IEM的會(huì)話(huà)推薦算法,該算法考慮了用戶(hù)在會(huì)話(huà)中的長(zhǎng)期行為和近期行為。以上這些方法都沒(méi)有在基于會(huì)話(huà)的推薦任務(wù)中關(guān)注用戶(hù)的上下文信息。Smirnova 等人[12]提出一種新的情境循環(huán)神經(jīng)網(wǎng)絡(luò)推薦系統(tǒng)(CRNNs),通過(guò)將情境嵌入與項(xiàng)目嵌入相結(jié)合來(lái)修改RNN 行為,并通過(guò)參數(shù)化將隱藏的單元轉(zhuǎn)換為情境信息的函數(shù)進(jìn)行情境序列建模,此模型考慮了用戶(hù)與項(xiàng)目的交互行為作為上下文信息,但沒(méi)有將用戶(hù)的上下文信息如地理位置等考慮在內(nèi)。Song 等人[13]指出,把靜態(tài)上下文信息如地理位置、天氣融入推薦系統(tǒng)將有利于提高推薦精確度。
基于會(huì)話(huà)的推薦場(chǎng)景中,通常難以獲取和利用用戶(hù)的歷史行為記錄。伴隨著智能手機(jī)的發(fā)展,人們更愿意利用手機(jī)來(lái)瀏覽信息、購(gòu)買(mǎi)商品。相比傳統(tǒng)方式,手機(jī)更容易獲取到用戶(hù)的靜態(tài)上下文信息,如地理位置、天氣、用戶(hù)的運(yùn)動(dòng)狀態(tài)等等。因此,如何在會(huì)話(huà)推薦中更好地融合用戶(hù)的這些上下文信息是一個(gè)值得研究的問(wèn)題。
本文的主要工作就是在基于RNN的會(huì)話(huà)推薦模型基礎(chǔ)上,融入用戶(hù)的上下文信息,如用戶(hù)所在的城市或地區(qū),用戶(hù)使用的設(shè)備等,提高推薦質(zhì)量。
在循環(huán)神經(jīng)網(wǎng)絡(luò)的使用上,Hidasi等人對(duì)長(zhǎng)短期記憶模型(LSTM)和門(mén)控循環(huán)單元(GRU)結(jié)構(gòu)(如圖1 所示)進(jìn)行了實(shí)驗(yàn)對(duì)比,并最終采用門(mén)控循環(huán)單元結(jié)構(gòu)代替?zhèn)鹘y(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。GRU能夠很好地處理梯度消失問(wèn)題且復(fù)雜度相對(duì)更低。
圖1 GRU單元Fig.1 GRU unit
GRU單元在t時(shí)刻更新過(guò)程如下:
其中,xt為輸入數(shù)據(jù),σ是sigmoid函數(shù),通過(guò)這個(gè)函數(shù)可以將數(shù)值變換到0~1的范圍,Wr、Wz、Wh、Ur、Uz、Uh是權(quán)重矩陣,br、bz、bh是偏置值,⊙表示向量之間的點(diǎn)乘運(yùn)算。使用GRU隱藏層的最后一個(gè)隱藏狀態(tài)ht來(lái)表示用戶(hù)在當(dāng)前會(huì)話(huà)的序列行為特征。
本文的工作在基于循環(huán)神經(jīng)網(wǎng)絡(luò)的會(huì)話(huà)推薦模型(GRU4REC)上開(kāi)展的。模型的網(wǎng)絡(luò)結(jié)構(gòu)由三層組成,分別為輸入層、GRU層和輸出層。
輸入層,每個(gè)item 通過(guò)one-hot 進(jìn)行編碼,然后經(jīng)過(guò)嵌入層進(jìn)行嵌入,為每個(gè)item 生成一個(gè)低維的嵌入向量。
GRU層,由GRU單元組成,接受的輸入是item的嵌入向量和前一時(shí)刻GRU單元的狀態(tài)。
輸出層,輸出層包含一個(gè)前饋網(wǎng)絡(luò)層,將GRU 層的輸出作為前饋網(wǎng)絡(luò)層的輸入,最終輸出所有item 的得分。
目前有很多對(duì)上下文的定義,但在上下文感知推薦系統(tǒng)研究領(lǐng)域,上下文也沒(méi)有統(tǒng)一的定義,需要根據(jù)具體應(yīng)用系統(tǒng)或者用戶(hù)需求引入合適的上下文類(lèi)型及其具體實(shí)例。盡管對(duì)于不同應(yīng)用領(lǐng)域的不同的上下文感知推薦系統(tǒng)考慮的上下文信息是不同的,但從總體上來(lái)看,常見(jiàn)的上下文類(lèi)型包括時(shí)間、位置、外界物理環(huán)境、設(shè)備信息、活動(dòng)狀態(tài)等。
按照將上下文融入推薦生成過(guò)程哪個(gè)階段的角度,可以將上下文感知推薦結(jié)果生成方法劃分為上下文預(yù)過(guò)濾、上下文后過(guò)濾、上下文建模等三種方法[14]。其中,上下文建模將上下文信息融入推薦生成的整個(gè)過(guò)程,需要設(shè)計(jì)合適的算法、模型處理多維度上下文用戶(hù)偏好。這種范式需要處理高維數(shù)據(jù),最為復(fù)雜,但也最能有效挖掘用戶(hù)、上下文、項(xiàng)目之間的關(guān)聯(lián)關(guān)系。本文采用上下文建模的方法,即,將用戶(hù)的上下文信息融入到循環(huán)神經(jīng)網(wǎng)絡(luò)模型中。
為了考慮用戶(hù)的上下文信息,本文提出了一種基于會(huì)話(huà)的上下文感知推薦算法模型Session-based Context-Aware Recommendation(SCAR)。模型將用戶(hù)的上下文信息中的各種特征通過(guò)embedding 技術(shù)映射成隨機(jī)分布的低維實(shí)數(shù)向量,再經(jīng)過(guò)Add、Stack、MLP 等方式組合,然后將其融入到循環(huán)神經(jīng)網(wǎng)絡(luò)。推薦過(guò)程是對(duì)該會(huì)話(huà)中可能被選擇的所有下一個(gè)項(xiàng)目,對(duì)其可能性輸出一個(gè)得分,取得分最高的k個(gè)項(xiàng)目作top-k推薦。模型的總體框架如圖2所示。
圖2 SCAR模型Fig.2 Model of SCAR
本文提出一種將用戶(hù)上下文信息融入循環(huán)神經(jīng)網(wǎng)絡(luò)推薦模型的上下文感知會(huì)話(huà)推薦算法。下面給出模型的形式化描述:令S={x1,x2,…,xn} 為會(huì)話(huà)S的點(diǎn)擊序列,其中,xi∈I(1≤i≤n)是總數(shù)為M的item集合中一個(gè)被點(diǎn)擊的item。令CS為會(huì)話(huà)S的上下文信息,例如,對(duì)于會(huì)話(huà)S有如下上下文信息(deviceType=Mobile,Country=U.S.),則每種信息分別編碼為[0,0,1] 和[0,1,0,…,0] 分別記為本文的目標(biāo)是構(gòu)建一個(gè)模型M,使得對(duì)于會(huì)話(huà)S的任意前綴序列x={x1,x2,…,xt} 和上下文信息CS,通過(guò)模型得到輸出y=M(x,ES),其中,y={y1,y2,…,ym},是所有可能選擇的item的得分列表。下面詳細(xì)描述模型的構(gòu)建方式,主要分為特征映射、特征融入、輸出結(jié)果三個(gè)部分介紹。
2.1.1 特征映射
首先構(gòu)建上下文信息的嵌入矩陣。給定一個(gè)會(huì)話(huà)S和該會(huì)話(huà)對(duì)應(yīng)的用戶(hù)上下文信息CS,根據(jù)相應(yīng)上下文信息的one-hot 編碼,構(gòu)建Embedding 矩陣E,E是一個(gè)N×K的矩陣,N為one-hot 編碼的長(zhǎng)度,K是實(shí)驗(yàn)設(shè)定的嵌入向量長(zhǎng)度。Embedding 層本質(zhì)上是一個(gè)全連接層,將上下文信息的one-hot 編碼從高維稀疏向量映射為低維稠密向量,這有利于神經(jīng)網(wǎng)絡(luò)對(duì)特征的提取和抽象。
2.1.2 特征融入
得到用戶(hù)的上下文向量之后,要將這些上下文信息加入到RNN模型中。如圖3所示,本文將上下文信息融入模型的方式主要有三種。
第一種方式是在input 階段,將上下文信息與item向量共同輸入:
第二種方式是在output階段,將上下文信息與模型在當(dāng)前時(shí)間步最后的輸出進(jìn)行組合。
對(duì)于這兩種方式,θ都代表信息的組合函數(shù),對(duì)于θ函數(shù),又分為如下三種形式:
(1)Add:即直接將上下文信息向量與當(dāng)前向量相疊加,優(yōu)點(diǎn)是不會(huì)增加向量維度和模型的復(fù)雜度。缺點(diǎn)是需要兩部分信息的維度保持一致。
(2)Stack:即直接對(duì)兩個(gè)向量進(jìn)行拼接,能夠充分發(fā)揮不同的信息對(duì)結(jié)果的影響。缺點(diǎn)是由于會(huì)增大神經(jīng)網(wǎng)絡(luò)的輸入或輸出維度從而導(dǎo)致消耗較多的計(jì)算資源。
(3)MLP:即使用感知機(jī)來(lái)組合信息,這種方式需要計(jì)算權(quán)重矩陣來(lái)對(duì)兩向量進(jìn)行組合變換,優(yōu)點(diǎn)是有較強(qiáng)的擬合能力,缺點(diǎn)是需要的計(jì)算量相對(duì)較大,不容易訓(xùn)練。
這三種方式不僅用于上下文信息與GRU單元的組合,同時(shí)也用于不同上下文信息之間的組合,如圖3 的信息組合層。
圖3 上下文信息的三種融入方式Fig.3 Three ways to integrate contextual information
在input 和在output 階段融入額外信息是比較常用的方法,除此之外,本文還提出了第三種方式,在每個(gè)會(huì)話(huà)開(kāi)始階段初始化GRU隱藏狀態(tài)的方法。
其中,h0為一個(gè)會(huì)話(huà)中GRU 單元的初始隱藏狀態(tài)。這種方式同樣能將上下文信息的影響傳遞到整個(gè)會(huì)話(huà),而且只在會(huì)話(huà)的初始化階段進(jìn)行計(jì)算,可以節(jié)省計(jì)算資源。
2.1.3 輸出結(jié)果
GRU 單元的隱層狀態(tài)再經(jīng)過(guò)一個(gè)全連接層,得到每個(gè)物品被點(diǎn)擊的概率。如公式(8):
是下一個(gè)物品被點(diǎn)擊的概率。因?yàn)椴捎肂PR 作為損失函數(shù),需要計(jì)算item 的得分,因此采用tanh 作為激活函數(shù),將分?jǐn)?shù)映射成一個(gè)介于[?1,1]的數(shù)值。另外,由于item的規(guī)模一般十分巨大,訓(xùn)練時(shí)如果同時(shí)更新所有神經(jīng)單元的權(quán)重參數(shù),會(huì)造成巨大的計(jì)算資源消耗,也會(huì)嚴(yán)重影響訓(xùn)練速度。為避免此問(wèn)題,本文使用負(fù)采樣的方法。選擇同一個(gè)batch中其他會(huì)話(huà)的下一個(gè)item作為負(fù)樣本,每次訓(xùn)練只更新小部分權(quán)重,降低訓(xùn)練過(guò)程中的計(jì)算量。這種采樣方法不僅減少了計(jì)算量,而且由于負(fù)樣本取自其他會(huì)話(huà),在一定程度上保證了負(fù)樣本的流行度。
雖然推薦任務(wù)可以當(dāng)作多分類(lèi)任務(wù)來(lái)處理,但推薦算法的核心是根據(jù)用戶(hù)的偏好對(duì)item進(jìn)行排序,越符合用戶(hù)偏好的項(xiàng)目排序應(yīng)該越靠前。因此,推薦系統(tǒng)引入了排序?qū)W習(xí)的方法。經(jīng)典貝葉斯個(gè)性化排序Bayesian Personalized Ranking(BPR)是一種利用成對(duì)排序損失的矩陣因子分解方法,BPR比較的是一個(gè)正例和一個(gè)負(fù)例的得分。在損失迭代計(jì)算過(guò)程中,將正例項(xiàng)目的得分與同一個(gè)batch中其他會(huì)話(huà)的下一個(gè)item的得分進(jìn)行比較,并使用他們的平均值作為損失。在某一會(huì)話(huà)的某一時(shí)刻的損失定義為:
其中,Ns是表示采樣的負(fù)樣本數(shù),是正樣本的分?jǐn)?shù),是負(fù)樣本的分?jǐn)?shù),σ是sigmoid函數(shù)。
Adressa[15]是RecTech 項(xiàng)目中發(fā)布的一個(gè)新聞數(shù)據(jù)集,它包括各種推薦策略需要的特性,以及提供所有新聞文章的全文訪(fǎng)問(wèn)。該數(shù)據(jù)集有兩個(gè)版本,一個(gè)是Adresseavisen新聞門(mén)戶(hù)網(wǎng)站上10周流量的包含2 000萬(wàn)閱讀行為的大型數(shù)據(jù)集,另一個(gè)是只有一周流量的包含200萬(wàn)閱讀行為的小型數(shù)據(jù)集。
本文使用的是包含2 000 萬(wàn)閱讀行為的大型數(shù)據(jù)集,選取了其中一個(gè)月內(nèi)注冊(cè)用戶(hù)的共1 596 429 個(gè)會(huì)話(huà)。將其中80%作為訓(xùn)練集,20%作為測(cè)試集。訓(xùn)練集包含1 277 143個(gè)會(huì)話(huà),測(cè)試集包含319 286個(gè)會(huì)話(huà)。會(huì)話(huà)根據(jù)數(shù)據(jù)集中的會(huì)話(huà)的開(kāi)始和停止符劃分,數(shù)據(jù)集中可直接獲得的用戶(hù)上下文信息有country、city、region、deviceType、os。例如,某個(gè)用戶(hù)的上下文信息為,country=“no”,city=“trondheim”,region=“sor-trondelag”,device-Type=“Tablet”,os=“iPhone OS”。雖然,city和region隱含了country的信息,但是實(shí)驗(yàn)證明,當(dāng)同時(shí)使用這些信息的時(shí)候推薦效果更好。deviceType 和os 可以區(qū)分用戶(hù)的不同使用場(chǎng)景,提高推薦的效果。
Recall@K:由于推薦系統(tǒng)一次只能推薦幾個(gè)項(xiàng)目,用戶(hù)可能選擇的實(shí)際項(xiàng)目應(yīng)該在列表的前幾個(gè)項(xiàng)目中。因此,本文的主要評(píng)估指標(biāo)是Recall@K,這是在所有測(cè)試用例中,在前K個(gè)項(xiàng)目中擁有所需項(xiàng)目的比例。召回不考慮項(xiàng)目的實(shí)際排名。這很好地模擬了某些實(shí)際場(chǎng)景,在這些場(chǎng)景中沒(méi)有突出的建議,絕對(duì)順序也不重要。計(jì)算公式為:
其中,TP表示用戶(hù)感興趣的物品在推薦列表中的數(shù)量,F(xiàn)N表示用戶(hù)感興趣的物品不在推薦列表中的數(shù)量。
MRR@K:實(shí)驗(yàn)中使用的第二個(gè)度量是MRR(平均倒數(shù)排名)。這是所需項(xiàng)目的倒數(shù)排名的平均值。如果排名大于K,則倒數(shù)排名被設(shè)為0。MRR 考慮項(xiàng)目的等級(jí),這在注重推薦順序的情況下是很重要的。計(jì)算公式為:
其中,|Q|表示用戶(hù)感興趣的物品數(shù)量,ranki表示用戶(hù)感興趣的物品在推薦列表中的排名。
因?yàn)椴煌臅?huì)話(huà)之間會(huì)話(huà)長(zhǎng)度差別較大,本文采用了Hidasi等人[7]提出的會(huì)話(huà)并行的mini-batch訓(xùn)練方式,具體過(guò)程為,在一個(gè)batch 里,每當(dāng)一個(gè)會(huì)話(huà)結(jié)束,一個(gè)新的會(huì)話(huà)接替這個(gè)結(jié)束的會(huì)話(huà),而其他會(huì)話(huà)保持不變,在新的會(huì)話(huà)進(jìn)行接替的時(shí)候,需要重置相應(yīng)會(huì)話(huà)GRU的隱藏狀態(tài)。訓(xùn)練過(guò)程中,使用RMSProp 優(yōu)化模型,batch-size為128,雖然更小的batch-size會(huì)帶來(lái)略微更好的訓(xùn)練效果,但會(huì)使訓(xùn)練時(shí)間加長(zhǎng),為了兼顧訓(xùn)練效率與實(shí)驗(yàn)效果,將batch-size 設(shè)置為128,初始學(xué)習(xí)率為0.001,學(xué)習(xí)率衰減系數(shù)為0.96,Dropout 的keep_prob 參數(shù)為0.8,GRU單元數(shù)量為100個(gè)。
為探究在RNN 模型的基礎(chǔ)上加入上下文信息是否能夠提升推薦效果,本文提出的模型SCAR 與POP模型、BPR-MF 模型、Item KNN 模型、RSVD 模型[16]和GRU4REC模型進(jìn)行對(duì)比實(shí)驗(yàn)。
POP模型,該方法將訓(xùn)練集中用戶(hù)交互次數(shù)最多的項(xiàng)進(jìn)行推薦。
BPR-MF 模型,是一種常用的矩陣分解方法,但不能直接用于會(huì)話(huà)推薦。參考Hidasi等人的工作,可以將會(huì)話(huà)中已經(jīng)出現(xiàn)的物品表示向量與候選物品表示向量的相似度平均值作為候選物品的推薦分值。
Item KNN模型,在這個(gè)模型中,兩個(gè)物品在不同會(huì)話(huà)中共同出現(xiàn)的次數(shù)定義為兩個(gè)物品的相似度。
RSVD 模型,RSVD 是正則化奇異值矩陣分解算法。本文所用數(shù)據(jù)集沒(méi)有顯式評(píng)分,文獻(xiàn)[15]提出可以使用閱讀時(shí)長(zhǎng)代表評(píng)分。
GRU4REC 模型,該方法利用循環(huán)神經(jīng)網(wǎng)絡(luò)建模用戶(hù)會(huì)話(huà)的行為序列,并利用mini-batch 的方式訓(xùn)練得到模型參數(shù)。
從表1和表2可以看出,提出的模型在Recall和MRR兩個(gè)指標(biāo)上都優(yōu)于基線(xiàn)方法。對(duì)比POP、BPR-MF 和ItemKNN 三種模型,算法的效果提升顯著,證明了在會(huì)話(huà)推薦中,基于深度學(xué)習(xí)的推薦模型比傳統(tǒng)推薦方式有更好的推薦效果。對(duì)比RSVD模型可以發(fā)現(xiàn),傳統(tǒng)的矩陣分解方法在基于會(huì)話(huà)的推薦場(chǎng)景中沒(méi)有優(yōu)勢(shì),Recall和MRR 都遠(yuǎn)低于所提出的SCAR 模型。對(duì)比SCAR 與GRU4REC 的結(jié)果,可以發(fā)現(xiàn)SCAR 相比GRU4REC 有一定的提升,Recall@20 和MRR@20 分別提升了3.2%和27%,其中MRR的提升更為明顯,說(shuō)明加入的上下文信息能使模型推薦結(jié)果中最相關(guān)的項(xiàng)目排名更靠前。
表1 SCAR與基線(xiàn)方法在Recall上的比較Table 1 Recall data of SCAR and other models
表2 SCAR與基線(xiàn)方法在MRR上的比較Table 2 MRR data of SCAR and other models
圖4和圖5對(duì)比了在三個(gè)不同階段加入上下文信息的實(shí)驗(yàn)結(jié)果。結(jié)果表明,三種方式的推薦效果略有差別。其中在input 階段加入上下文信息的方式效果最好,在output階段加入上下文信息的方式效果最差。原因是在input階段加入的方式使得上下文信息參與到神經(jīng)網(wǎng)絡(luò)訓(xùn)練的所有階段和一個(gè)會(huì)話(huà)的所有時(shí)間步。
圖4 在不同階段融入上下文信息Recall對(duì)比Fig.4 Recall of incorporate contextual information at different stages
圖5 在不同階段融入上下文信息的MRR對(duì)比Fig.5 Comparison of MRR with contextual information at different stages
為進(jìn)一步驗(yàn)證分析不同的組合方式對(duì)推薦效果的影響,設(shè)計(jì)了不同的組合實(shí)驗(yàn),如表3 所示。這里只在之前表現(xiàn)較好的input 階段的融合方式下進(jìn)行對(duì)比實(shí)驗(yàn)。
表3 不同組合方式在Recall和MRR上的比較Table 3 Comparison of different combinations on Recall and MRR
表3 在Recall@20 和MRR@20 兩個(gè)指標(biāo)上比較了不同的組合方式對(duì)推薦結(jié)果的影響。以Input+add+stack為例,其表示在input階段融入信息,其中上下文信息之間的組合方式為add,上下文信息與GRU單元的組合方式為stack。對(duì)比1、2、4行可知,上下文信息之間的組合方式中,以MLP的方式組合,Recall@20效果最好,以add方式組合,MRR@20效果最好。由3、4、5行的數(shù)據(jù)可知,上下文信息與GRU單元的組合,stack方式的效果最優(yōu)。
本文提出了一種融合用戶(hù)上下文信息的上下文感知的推薦算法。在實(shí)際的基于會(huì)話(huà)推薦場(chǎng)景中,用戶(hù)的個(gè)人信息很難獲取到,但是地理位置、設(shè)備類(lèi)型等信息可以通過(guò)IP 地址和http 協(xié)議等方式輕松獲得。這些獲取到的信息可以作為用戶(hù)的上下文信息融入推薦模型。用戶(hù)的地理位置甚至所使用的設(shè)備類(lèi)型可以在某種程度上反映用戶(hù)的偏好,因此這些上下文信息可以在模型中對(duì)推薦結(jié)果有一定的影響進(jìn)而提高推薦的質(zhì)量,實(shí)驗(yàn)結(jié)果表明,所提算法相比基線(xiàn)算法GRU4REC,在指標(biāo)Recall@20上提高了3.2%,MRR@20上提高了27%。
未來(lái)研究工作將探索上下文信息之間的組合方式,參考特征組合相關(guān)工作如NFM對(duì)其進(jìn)行改進(jìn)。