孫 偉,申建芳,陳平華
(廣4東工業(yè)大學(xué) 計算機(jī)學(xué)院,廣州 510006) E-mail:3240033507@qq.com
在緩解信息過載,尤其是用戶意圖不確定時,傳統(tǒng)推薦在處理一般推薦問題時,把用戶-項目交互記錄放置在二維評分矩陣中,通過填充該矩陣的空缺來實現(xiàn)預(yù)測[1].與一般推薦不同,基于會話的推薦通過會話中的數(shù)據(jù)反映用戶行為模式和當(dāng)前偏好,將用戶的歷史紀(jì)錄視為項目序列而不是項目集,準(zhǔn)確預(yù)測與之交互的下一個項目[2].為了得到精確的推薦,基于會話的模型使用某種算法來利用會話中的順序信息.近年來,遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)以不同的方式用于學(xué)習(xí)用戶的動態(tài)和時序偏好[3,4],其表現(xiàn)優(yōu)于傳統(tǒng)方法,盡管現(xiàn)有的基于深層會話的模型已被證明有效,但仍存在以下問題.
第1個問題是缺乏利用用戶微行為的方法.以往基于會話的推薦模型僅從宏觀角度進(jìn)行建模[5],即將會話視為一系列項目,不考慮用戶對項目的不同操作.即使用戶在會話中與同一項目進(jìn)行交互,對該項目執(zhí)行不同的操作也反映用戶在此會話中的不同意圖以及對該項目的不同偏好.在本文中,將考慮用戶對某個項目的特定操作作為微行為,具有比項目級別的宏觀行為(即用戶與項目互動)更精細(xì)的粒度,并且對用戶提供更深入的理解[6].
第2個問題是項目知識對用戶-項目交互的稀疏性問題利用不足.由于大多數(shù)先前基于會話的推薦僅僅基于會話中交互項的順序?qū)捊7],因此當(dāng)歷史用戶與項目的交互稀疏時,尤其是對于冷啟動項,它們無法充分學(xué)習(xí)會話表示.將物品屬性作為輔助信息導(dǎo)入,從知識圖譜中提取出來,可以緩解數(shù)據(jù)稀疏性問題[8].但是,現(xiàn)有的基于知識圖譜(Knowledge Graph,KG)的推薦方法在很大程度上忽略了多模式信息,例如項目的圖像和文字描述.這些視覺或文字功能可能會在推薦系統(tǒng)中扮演重要角色[9].例如圖1所示,在觀看電影之前,用戶傾向于觀看預(yù)告片或閱讀一些相關(guān)的電影評論.當(dāng)去餐廳吃飯時,用戶通常先在一些在線平臺上瀏覽菜肴圖片或餐廳點評.因此,有必要將這些多模式信息引入知識圖.多模態(tài)知識圖將視覺或文本信息引入到知識圖中,并將圖像或文本視為實體或?qū)嶓w的屬性,這是獲取外部多模式知識的一種更通用的方法,而無需給出視覺或文本信息的專家定義.
圖1 多模態(tài)知識圖的一個例子Fig.1 Example of a multi-modal knowledge graph
現(xiàn)有基于會話的推薦方法都基于理想主義的假設(shè),即通過使用用戶的歷史行為(即用戶偏好的最終表示與候選項目之間的交互作用)捕獲用戶意圖[10],通常是在算法的最后一步執(zhí)行,在此之前,候選項的信息不會用于偏好學(xué)習(xí),實際上,用戶的意圖可能不確定,尤其是當(dāng)參與長期的習(xí)慣行為(例如,購買)序列時,而不是短暫的活動(例如,聽音樂)會話.判斷新項目是否可以吸引用戶的正確方法是考慮它如何引起用戶興趣的不同部分(即短期和長期)[11].基于以上分析,本文提出一種基于自注意力網(wǎng)絡(luò)的項目相似性模型,平衡用戶對每個候選項的短期和長期興趣.具體來說,即模型通過門控模塊,以此來平衡全局和局部表示.
綜上所述,本文提出基于多模態(tài)知識圖的用戶微行為會話推薦,由于操作和項目的不同特點,采用不同的學(xué)習(xí)機(jī)制,將操作序列和會話序列分別輸入門控循環(huán)單元(Gated Recurrent Unit,GRU)[12]和門控圖神經(jīng)網(wǎng)絡(luò)(Gated Graph Neural Network,GGNN)[13,14].在此過程中,引入外部知識圖譜的同時,采用一種改進(jìn)的圖注意力神經(jīng)網(wǎng)絡(luò)方法,對相鄰實體進(jìn)行聚合,完成實體信息的聚合,然后使用一個翻譯模型來模擬實體之間的推理關(guān)系,該方法不要求知識圖譜的每個實體都具有多模態(tài)信息,意味著對知識圖譜沒有特別高的數(shù)據(jù)要求,此外,該方法不獨立處理每個知識圖譜的三元組,而是將知識圖譜的鄰域信息進(jìn)行實體聚合,從而可以更好地學(xué)習(xí)融合其他模態(tài)信息的實體嵌入.并進(jìn)一步通過考慮候選項目的信息來平衡局部和全局表示模塊,設(shè)計多層感知器(Muti-Layer Perception,MLP)的選通網(wǎng)絡(luò),該網(wǎng)絡(luò)使用MLP層對候選項目最近交互的項目以及每個用戶的全局和局部偏好之間的關(guān)系進(jìn)行建模來計算權(quán)重.
總之,在這篇論文中所提出的貢獻(xiàn)如下:
為了提高會話推薦的性能,將用戶微行為納入會話建模中,以細(xì)粒度的方式獲得會話中連續(xù)項之間的關(guān)系,并進(jìn)一步研究不同算法對微行為建模的影響.
提出一種新的多模態(tài)圖注意網(wǎng)絡(luò)模型,該模型在多模態(tài)知識圖上采用信息傳播,以此獲得更好的實體嵌入進(jìn)行后續(xù)的推薦.
設(shè)計一個基于多層感知器的門控模塊,該模塊通過考慮候選項目的信息來平衡局部和全局表示,從而處理用戶意圖的不確定性.
最近,受深度神經(jīng)網(wǎng)絡(luò)(Deep neural network,DNN)在NLP中建模序列的強(qiáng)大功能啟發(fā),研究出一些基于DNN的解決方案,并顯示基于會話推薦的最新性能.特別是,基于RNN的模型(包括LSTM和GRU)被廣泛用于通過將歷史交互編碼為隱藏狀態(tài)(向量)來捕獲用戶的全局興趣和當(dāng)前興趣.作為在基于會話推薦中使用RNN的先驅(qū),Hidasi等人[3]提出一種深度基于會話的推薦模型,該模型將項目編碼為一個獨熱嵌入,然后將其傳送到GRU中以實現(xiàn)推薦.Jing等人[15]通過添加額外的機(jī)制來解決RNN固有的短存儲問題,進(jìn)一步改進(jìn)基于RNN的解決方案.此外,文獻(xiàn)[5]中的模型利用注意力網(wǎng)絡(luò)分別對用戶的一般狀態(tài)和當(dāng)前狀態(tài)進(jìn)行建模,此模型明確考慮用戶當(dāng)前操作對其下一步動作的影響.最近,文獻(xiàn)[14]中的作者采用GGNN來捕獲會話中項目之間的復(fù)雜轉(zhuǎn)換模式,而不是單向轉(zhuǎn)換模式.盡管這些模型在基于會話推薦任務(wù)中顯示出令人鼓舞的性能,但仍有改進(jìn)的空間,因為它們在會話中都忽略了用戶的微行為.文獻(xiàn)[16,17,18]是考慮微行為的常見模型,[18]僅對單調(diào)行為鏈建模,其中用戶行為應(yīng)該遵循相同的鏈,而忽略了多種類型的行為.為了解決這個問題,文獻(xiàn)[16]和文獻(xiàn)[17]都采用LSTM對微行為進(jìn)行建模.但是,他們忽略了項目和操作之間的不同過渡模式.在本文中,我們同時采用RNN和圖神經(jīng)網(wǎng)絡(luò)(graph neural network,GNN)對微行為進(jìn)行建模,該微行為不僅考慮項和操作的差異,而且還保持文獻(xiàn)[16,18]中提到的操作順序邏輯.
多模態(tài)知識圖譜(Multi-modal Knowledge Graphs,MKG)通過將其他模態(tài)信息引入傳統(tǒng)KG來豐富知識類型.實體圖像或?qū)嶓w描述可以為知識表示學(xué)習(xí)提供重要的視覺或文本信息.大多數(shù)傳統(tǒng)方法僅從結(jié)構(gòu)化三元組中學(xué)習(xí)知識表示,而忽略了知識庫中經(jīng)常使用的各種數(shù)據(jù)類型(例如文本和圖像).近年來,對多模態(tài)知識圖表示學(xué)習(xí)的研究證明,多模態(tài)知識圖在知識圖的完成和三元組分類中起著重要的作用[19,20,21].從知識圖構(gòu)造的角度來看,多模態(tài)知識圖表示學(xué)習(xí)工作可以分為兩種類型:基于特征的方法和基于實體的方法.
基于特征的方法.文獻(xiàn)[20,21]將多模態(tài)信息視為實體的輔助特征,這些方法通過考慮視覺表示來擴(kuò)展TransE[22],可以從與知識邊緣圖實體關(guān)聯(lián)的圖像中提取視覺表示.在這些方法中,根據(jù)知識圖的結(jié)構(gòu)以及實體的視覺表示來定義三元組的得分(例如TransE中三元組的評分函數(shù)),這意味著每個實體必須包含圖像屬性.在真實場景中,某些實體不包含多模式信息.因此,該方法不能被廣泛使用.
基于實體的方法.文獻(xiàn)[23]將不同的模態(tài)信息(例如文本和圖像)視為結(jié)構(gòu)化知識的關(guān)系三元組,而不是預(yù)定特征.在這些工作中,多模態(tài)信息被認(rèn)為是知識邊緣圖的一等公民,然后基于實體的方法使用基于CNN的KGE方法來訓(xùn)練知識圖嵌入.然而,現(xiàn)有的基于實體的方法忽略了多模式信息融合而獨立地處理每個三元組,并不能達(dá)到很好的效果.
在本節(jié)中,將會詳細(xì)介紹本文所提出模型的信息,包括模型中涉及的相關(guān)算法.首先將本文解決的問題形式化,然后總結(jié)本模型的流程,詳細(xì)介紹每個步驟.
本文中將會關(guān)注用戶的微行為,而不是本文會話中已完成的項目,因此使用{m1,m2,…,mL}來表示會話s中的微行為序列,其中L是序列的長度.具體而言,mt(1≤t≤L)是第t個微行為,實際上它代表著該項及其相應(yīng)操作的組合.
定義1.(知識圖譜).為了提高推薦性能,考慮知識邊緣圖中項目的邊信息,通常,此類輔助數(shù)據(jù)由現(xiàn)實世界中的實體及其之間的關(guān)系組成,以對項目進(jìn)行概要分析.KG是一個直接圖,定義為G=(V,E),其中V表示節(jié)點集,而E表示邊集.節(jié)點是實體,邊是主體屬性對象的事實,每個邊都屬于一個關(guān)系類型r∈R,其中R是一組關(guān)系類型.(頭實體,關(guān)系,尾部實體)表示為(h,r,t),其中h,t∈V,r∈R形式表示每個邊r從頭實體h到尾部實體t的關(guān)系.
定義2.(多模態(tài)知識圖).MKG是一類知識圖,它引入了多模態(tài)實體(如文本和圖像)作為知識圖的一級公民.
定義3.(協(xié)作知識圖).協(xié)作式知識圖(Collaborative knowledge graph,CKG)將用戶行為和項目知識編碼為統(tǒng)一的關(guān)系圖.一個CKG首先定義一個用戶項目二部圖,其表示為{(eu,yui,ei)|eu∈U,ei∈I)},其中eu是用戶實體,yui表示用戶u與項目i之間的鏈接.ei表示項目實體,U和I分別表示用戶和項目集.當(dāng)eu與ei之間存在相互作用時,yui=1;否則,yui=0.然后,CKG將用戶項目二分圖合并到知識圖中,其中每個用戶的行為表示為三元組(eu,Interact,ei).Interact=1表示eu和ei之間存在一個附加的相互作用關(guān)系.基于項目-實體對齊集,用戶-項目圖可以與知識圖作為一個統(tǒng)一圖無縫集成.
圖2 模型框架圖Fig.2 Model frame diagram
如前所述,項目知識圖譜有助于揭示會話中項目之間的語義相關(guān)性,知識邊緣圖嵌入模塊以協(xié)作知識圖作為輸入,利用多模態(tài)知識邊緣圖實體編碼器和多模態(tài)知識圖注意層為每個實體學(xué)習(xí)新的實體表示,新實體表示將匯總其鄰居的信息,同時保留有關(guān)其自身的信息,然后使用新的實體表示來學(xué)習(xí)知識圖嵌入,以表示知識推理關(guān)系.
對于最后的模型計算,通過設(shè)計不同損失函數(shù)的加權(quán)和,將知識學(xué)習(xí)作為輔助任務(wù)添加到多任務(wù)范式中.具體來說,通過引入TransE[22]損失函數(shù)作為知識學(xué)習(xí)的損失,由于這是一個知識嵌入模型,可以有效地建模多對多或多對一的關(guān)系,此外,采用交替訓(xùn)練策略[25]對最終模型進(jìn)行訓(xùn)練.
在本小節(jié)中,將會介紹如何獲取給定會話的表示形式,這對于模型計算最終得分至關(guān)重要.基于會話推薦[15]的基本原理,獲取會話表示的前提是學(xué)習(xí)每個對象在會話中嵌入,在本文的設(shè)置中,會話序列中的對象是微行為,根據(jù)對微行為的定義,微行為是項目和對該項目執(zhí)行的操作組合.在該模型中,首先分別學(xué)習(xí)項目嵌入和操作嵌入,然后將項目嵌入和操作嵌入串聯(lián)作為微行為的嵌入.
3.3.1 嵌入式學(xué)習(xí)
項目序列和操作序列對會話建模有不同的影響,并且表現(xiàn)出不同的轉(zhuǎn)換模式,對于項目中的會話項目序列,其轉(zhuǎn)換模式實際上比以前的基于RNN的順序模型[4]捕獲連續(xù)項目之間的單向模式更為復(fù)雜.后續(xù)項與序列中的先前項相關(guān),并且先前項也與后續(xù)項相關(guān),這也是用戶經(jīng)常與他/她以前交互過的項目交互的原因.當(dāng)前轉(zhuǎn)換模式依賴于雙向上下文(前項和后項)而不是單向上下文,后者可以通過基于圖形的模型而不是諸如GRU的單向順序模型來建模.LSTM、BERT也具有雙向特點,但在處理非歐式空間數(shù)據(jù),即對于處理圖輸入這種非順序的特征表示時,圖中節(jié)點排序沒有規(guī)律,通過這兩者來處理圖數(shù)據(jù),只能遍歷圖中節(jié)點所有可能出現(xiàn)順序作為模型輸入,對模型的計算能力難以承受.為了解決這個問題,通過引入圖神經(jīng)網(wǎng)絡(luò)分別在每個節(jié)點上傳播,忽略節(jié)點之間輸入的順序,依賴周圍狀態(tài)來更新節(jié)點狀態(tài).因此,受到文獻(xiàn)[26]靈感,采用GGNN對項目序列進(jìn)行建模,以此獲得該模型中項目的嵌入.
盡管用戶在會話中執(zhí)行的操作也可以組合一個序列,但是它們的轉(zhuǎn)換模式與項目序列中的不同.因此,GGNN不適合對操作序列進(jìn)行建模.首先,大多數(shù)平臺中獨特的操作類型非常有限,如果將一個操作序列轉(zhuǎn)換為一個有向圖,則一個操作可能會以大概率出現(xiàn)在序列中,從而導(dǎo)致大多數(shù)節(jié)點(操作)具有相似的鄰居組.因此,通過在此類圖上應(yīng)用GGNN所學(xué)習(xí)的大多數(shù)操作嵌入都非常相似,無法很好地表征用戶偏好的多樣性.另一方面,兩個連續(xù)操作之間的轉(zhuǎn)換通常表現(xiàn)出一定的順序模式.例如,用戶經(jīng)常在他/她閱讀評論后將其添加到購物車,或在他/她將其添加到購物車后購買該產(chǎn)品.因此,我們采用GRU而不是GGNN來學(xué)習(xí)操作嵌入.接下來,將依次介紹學(xué)習(xí)項目嵌入和操作嵌入的細(xì)節(jié).
3.3.2 學(xué)習(xí)項目嵌入
為了學(xué)習(xí)GGNN的項目嵌入,首先將項目序列轉(zhuǎn)換為有向圖.對于給定的微行為項目序列Si={it1,it2,…,itL},其中每個對象都是微行為中的項目,對應(yīng)的有向圖為G=(V,E).在圖G中每一個節(jié)點表示序列Si中不同的項目,并且每一個有向邊(itk-1,itk)∈E(2≤k≤L)連接序列Si中兩個連續(xù)的項目.注意,一個項目經(jīng)常在會話中重復(fù)出現(xiàn),例如,會話s1的項目序列是{i1,i1,i1,i2,i2},項目數(shù)|V|≤L并且如果itk-m=itk,(1≤m≤k-1)則在G中體現(xiàn)是此G存在自環(huán)現(xiàn)象,進(jìn)一步將G構(gòu)造為加權(quán)有向圖來解決項目嵌入表示相同的問題,邊緣的歸一化權(quán)重(itk-m,itk)計算為Si中{itk-1,itk}的出現(xiàn)頻率除以itk-1作為Si中前一項出現(xiàn)的頻率.
(1)
(2)
3.3.3 多模態(tài)知識圖嵌入
a)多模態(tài)知識圖實體編碼器
對于上文得到的項目嵌入向量,為了將多模態(tài)實體納入模型,通過學(xué)習(xí)不同模式數(shù)據(jù)的嵌入.利用深度學(xué)習(xí)中的最新技術(shù)為這些實體構(gòu)造編碼器以表示它們,本質(zhì)上為所有實體提供嵌入.如圖3所示,用于描述多模式數(shù)據(jù)的編碼器,使用不同的編碼器來嵌入每種特定的數(shù)據(jù)類型.
圖3 多模態(tài)知識圖編碼器Fig.3 Multi-modal knowledge graph encoder
結(jié)構(gòu)知識圖譜:考慮(h,r,t)形式的三元組信息,為了將頭實體h,尾部實體t和關(guān)系r表示為獨立的嵌入向量,將它們的實體id或關(guān)系id通過嵌入層以生成密集向量.
圖像:已經(jīng)開發(fā)出各種模型來緊湊地表示圖像中的語義信息,并且已經(jīng)成功地將其應(yīng)用于諸如圖像分類和問答之類的任務(wù).為了嵌入圖像以使編碼表示這樣的語義信息,使用ResNet50的最后一個隱藏層[28],該層由Imagenet[29]預(yù)訓(xùn)練.
文本:文字信息與內(nèi)容高度相關(guān),可以捕獲用戶的偏好.對于文本實體,使用Word2Vec[30]訓(xùn)練單詞向量,然后應(yīng)用平滑逆頻率(SIF)模型[31]獲得句子的單詞向量的加權(quán)平均值,將其用作句子向量來表示文本特征.為了提高模型的效率,使用句子向量技術(shù)而不是使用LSTM對句子進(jìn)行編碼. 與簡單地使用字向量的平均值相比,SIF將具有更好的性能.
最后,使用密集層將實體的所有模態(tài)統(tǒng)一為同一維,以便可以在模型上對其進(jìn)行訓(xùn)練.
b)多模態(tài)知識圖注意層
多模態(tài)圖注意層沿著高階連通性遞歸嵌入傳播[32],并通過利用圖注意力網(wǎng)絡(luò)(Graph attention network,GAT)的思想[33],生成級聯(lián)傳播的注意權(quán)重,以揭示這種注意網(wǎng)絡(luò)連通性的重要性.盡管GAT取得了成功,但由于它們忽略了KG的關(guān)系,因此不適合KG.為此考慮到KG關(guān)系的嵌入來修改GAT,注意機(jī)制的引入可以減少噪聲的影響并使模型集中于有用的信息上.
在這里,從描述一個單層開始,該層由兩個部分組成:傳播層和聚合層,然后討論如何將其歸納為多層.
傳播層.給定候選項目實體h,學(xué)習(xí)其知識圖嵌入時必須考慮兩個方面.首先,通過transE模型學(xué)習(xí)知識圖的結(jié)構(gòu)化表示,即h+r≈t.其次,對于項目實體h的多模態(tài)鄰居實體,希望將這些信息聚合到項目實體h,以豐富項目h的表示.按照[34]中的方法,使用Nh表示直接連接到項目h的三元組的集合.eagg是一個表示向量,它集合了相鄰實體的信息,它是每個三重表示形式的線性組合,可以通過公式(3)進(jìn)行計算.
(3)
其中e(h,r,t)是每個三元組(h,r,t)的嵌入,而π(h,r,t)是每個三元組e(h,r,t)的注意力得分.π(h,r,t)控制從三元組e(h,r,t)傳播多少信息.
由于關(guān)系在知識圖中重要性,因此將關(guān)系嵌入在e(h,r,t)和π(h,r,t)中,并且它們中的參數(shù)都是可學(xué)習(xí)的.對于三元組e(h,r,t),通過對頭部實體,尾部實體和關(guān)系的嵌入的串聯(lián)執(zhí)行線性變換來學(xué)習(xí)此嵌入,其表達(dá)如公式(4)所示:
(4)
其中eh和et是實體的嵌入,而er是關(guān)系的嵌入,通過關(guān)系注意力機(jī)制實現(xiàn)π(h,r,t),可以通過以下方式計算:
π(h,r,t)=LeakyReLU(W2e(h,r,t))
(5)
按照文獻(xiàn)[34]中的方法選擇LeakyReLU[35]作為非線性激活函數(shù),通過采用softmax函數(shù)對所有與h連接的三元組的系數(shù)進(jìn)行歸一化:
(6)
聚合層.此階段將聚合實體表示eh和對應(yīng)的eagg作為項目h的新表示,以免不丟失初始eh信息,在這項工作中,通過以下兩種方法實現(xiàn)聚合函數(shù)f(eh,eagg).
1)加法聚合方法考慮了eh和eagg之間的逐元素加法特征相互作用,這可以通過公式(7)獲得.
(7)
在這里對初始eh進(jìn)行線性變換并將其添加到eagg,W3是一個權(quán)重矩陣,用于將當(dāng)前表示轉(zhuǎn)移到公共空間中,該公共空間表示可訓(xùn)練的模型參數(shù),此操作類似于殘差網(wǎng)絡(luò)中的操作.
2)級聯(lián)聚合方法使用線性變換將eh和eagg級聯(lián):
(8)
其中‖是串聯(lián)操作,W4是可訓(xùn)練模型參數(shù).
高階傳播.通過堆疊更多的傳播和聚合層,探索協(xié)作知識圖中固有的高階連通性,通常,對于n層模型,傳入信息是在n跳鄰域上累積的結(jié)果.
3.3.4 學(xué)習(xí)操作嵌入
由于上述原因,采用帶有操作序列的GRU來學(xué)習(xí)操作嵌入.GRU是標(biāo)準(zhǔn)RNN的改進(jìn)版本,用于對動態(tài)時間行為進(jìn)行建模,旨在解決梯度消失問題.為了解決不同操作對項目的影響,提出一種基于GRU模塊的偏置隨機(jī)游走方法,
偏置隨機(jī)游走過程用于提取目標(biāo)實體h的操作序列,為了實現(xiàn)更廣泛的深度優(yōu)先搜索,從h重復(fù)偏向隨機(jī)游走,以獲得長度固定為L的M條路徑,該遍歷以概率p迭代到當(dāng)前實體的鄰居,定義如下:
(9)
其中tk是路徑的第k個實體,t0表示根實體h.為了進(jìn)行更廣泛的搜索,據(jù)經(jīng)驗設(shè)置0 <γ<0.5.在通過步行獲得M條路徑和M×L個實體后,按照步行的頻率將它們按降序排序,并有序地選擇一組排名靠前的實體.這些實體定義為操作對項目的不同影響程度,并用Oλ表示.實際上,一個實體出現(xiàn)在隨機(jī)游走中頻率越高,它對目標(biāo)實體的重要性就越高.
(10)
(11)
(12)
其中⊕是串聯(lián)運算,基于這樣的微行為嵌入,兩個具有相同項目序列但實體操作序列不同的會話仍具有不同的表示形式,可以捕獲用戶的細(xì)粒度意圖.
為了將局部表示和整體表示結(jié)合起來,早期的嘗試會想到級聯(lián)或求和,結(jié)果表明,求和總是比級聯(lián)更好.在文獻(xiàn)[36]中,作者提出了加權(quán)求和,通過考慮項目列表的一致性來平衡這兩種表示. 但是,這些組合方法仍僅基于歷史信息,可能會造成理想化的結(jié)果.
圖4 門控機(jī)制Fig.4 Gating mechanism
為了解決順序推薦中用戶意圖不確定性的問題,受神經(jīng)注意項目相似度(NAIS)的啟發(fā)[11],提出了一個項目相似度門控模塊,如圖4所示.該模塊通過以下方式計算局部表示和全局表示的權(quán)重:對候選項目i∈I與最近交互的項目sl之間的項目相似性以及候選項目i與歷史項目i′∈Su的集合之間的項目相似性進(jìn)行建模.為了簡化模型:1)將門函數(shù)g的輸出值確定為局部表示的權(quán)重,并將其限制為0 為了表示會話中的全局偏好,對會話中每個微行為的嵌入分配適當(dāng)?shù)臋?quán)重,不同的微行為具有不同的優(yōu)先級,具體來說,給定微行為mt(1≤t≤L),其注意力權(quán)重計算為: αt=βTσ(W1mL+W2mt+bα) (13) 其中bα,β∈R2d,W1,W2∈R2d×2d,全局會話表示為: (14) 具體來說,候選項目i∈I和最近項目sl處的交互項的表示分別取自原始項嵌入矩陣M(即mi和msl),全局偏好表示為歷史項目i′∈Su的聚合表示,這正是學(xué)習(xí)到的全局表示sg,然后,將單個級別的門控輸入入MLP,如下所示: g=σ(ISG(msl,sg,mi))=σ([msl,sg,mi]WG+bG) (15) 其中ISG(·,·,·)是項相似性選通函數(shù),[·,·,·]表示為三元級聯(lián)運算,WG∈R3d×1和bG∈R分別是要學(xué)習(xí)的權(quán)重和偏差,使用sigmoid函數(shù)σ(ξ)=1/(1+e-ξ)作為激活函數(shù),因此g的取值范圍限制為(0,1). 類似于文獻(xiàn)[37],嘗試將兩個元素的乘積(代表兩對項目的相似性)作為“[msl?mi,sg?mi]”引入MLP的輸入,這對預(yù)測性能沒有影響,理論上可能會造成一些信息損失. 通過相應(yīng)的局部表示msl和全局表示sg的加權(quán)總和,可以得出第l步序列的最終表示,如下所示: zl=msl?g+sg?(1-g) (16) 最后,預(yù)測項目i的優(yōu)先級為序列中的第(l+1)個項目,如下所示: rl+1,i=zl(mi)T (17) 通常,如果兩個學(xué)習(xí)任務(wù)相互關(guān)聯(lián),則將兩個學(xué)習(xí)任務(wù)合并到多任務(wù)中比分別實現(xiàn)各自的目標(biāo)更有效.在多任務(wù)中,一項任務(wù)的學(xué)習(xí)結(jié)果可以指導(dǎo)另一項任務(wù)更好的學(xué)習(xí),學(xué)習(xí)多模態(tài)知識的嵌入可以看作是輔助任務(wù),以預(yù)測用于基于會話推薦任務(wù)的特征(項目嵌入).因此,在基于多模態(tài)知識圖的用戶微行為序列推薦模型中,將多模態(tài)知識嵌入學(xué)習(xí)作為輔助任務(wù)導(dǎo)入多任務(wù)學(xué)習(xí)中,以輔助基于會話的推薦任務(wù). 3.5.1 訓(xùn)練集的選取 多任務(wù)學(xué)習(xí)的目標(biāo)是在給定知識三元組K和基于會話推薦的訓(xùn)練集Y的情況下,最大化模型參數(shù)Φ的后驗概率. 3.5.2 損失函數(shù) 根據(jù)貝葉斯規(guī)則,該目標(biāo)是: (18) 其中p(Φ)是Φ的先驗概率,其遵循0均值和0.1標(biāo)準(zhǔn)偏差的高斯分布.p(K|Φ)是在給定Φ的情況下觀測K的可能性,而p(Y|Φ,K)是在給定K和Φ的情況下觀測Y的可能性,其定義為伯努利分布的乘積.多任務(wù)學(xué)習(xí)的目標(biāo)綜合損失函數(shù)是: (19) 3.5.3 優(yōu)化策略 為了訓(xùn)練基于會話的推薦任務(wù),首先收集足夠的訓(xùn)練樣本,并表示為 (20) 其中S和I是訓(xùn)練樣本中的會話集和項目集. 通過多模態(tài)知識圖實體編碼器和多模態(tài)知識圖注意層后,將為每個實體學(xué)習(xí)一個新的實體表示,然后,將這些新的實體表示形式輸入到知識圖嵌入中,將實體和關(guān)系參數(shù)化為向量表示,同時保留了知識圖結(jié)構(gòu)中的關(guān)系推理.具體來說,采用知識圖嵌入中廣泛使用的平移評分函數(shù)來訓(xùn)練知識圖嵌入,當(dāng)一個三元組(h,r,t)有效時,它通過優(yōu)化翻譯原則來學(xué)習(xí)每個實體和關(guān)系的嵌入eh+er≈et,其中eh和et是來自多模態(tài)知識圖注意層的新實體嵌入,er是關(guān)系的嵌入.公式(21)描述了三元組的得分(h,r,t). (21) 知識圖嵌入的訓(xùn)練考慮了有效三元組和殘缺三元組之間的順序關(guān)系,并通過成對的等級損失來描述: (22) 其中Ω={(h,r,t,t′)|(h,r,t)∈G,(h,r,t′)?G},并且(h,r,t′)是通過隨機(jī)替換有效三元組中的一個實體而構(gòu)成的殘缺三元組.該層對三元組的粒度進(jìn)行實體和關(guān)系建模,充當(dāng)正則化函數(shù)并將直接連接注入表示中,可以提高模型的表示能力. 4.1.1 數(shù)據(jù)集 KKBOX(1)https://www.kaggle.com/c/kkbox-music-recommendation-challenge/data:這個數(shù)據(jù)集由著名的音樂服務(wù)公司KKBOX提供,包含許多用戶在某一特定時期聽音樂的歷史記錄.將“源系統(tǒng)標(biāo)簽”作為用戶操作,例如“標(biāo)簽我的書架”(對本地存儲的操作)和“標(biāo)簽搜索”.實驗中使用的音樂屬性包括藝術(shù)家(歌手)、流派、語言和發(fā)行年份.為了構(gòu)造KKBOX知識圖的圖像實體,對相應(yīng)的音樂片段進(jìn)行抓取,使用FFmpeg提取每個預(yù)告片的關(guān)鍵幀,并使用預(yù)先訓(xùn)練好的ResNet50模型從關(guān)鍵幀中提取視覺特征;為了構(gòu)造KKBOX知識圖的文本實體,從TMDB中抓取相應(yīng)的音樂描述. JDATA(2)https://jdata.jd.com/html/detail.html?id=8:來自著名的電子商務(wù)網(wǎng)站京東.包含兩個月內(nèi)用戶在京東上的一系列操作,操作類型包括點擊、訂購、評論、添加到購物車和收藏夾.實驗中使用的產(chǎn)品屬性包括品牌、商店、類別和上市年份.類似于KKBOX數(shù)據(jù)集,使用預(yù)先訓(xùn)練的ResNet50模型來提取興趣點.推薦電子商品圖片中的視覺特征.為了構(gòu)造電子商務(wù)知識圖的文本實體,對每個商品的興趣點使用用戶評論. 對于這兩個數(shù)據(jù)集,將4項屬性(關(guān)系)視為知識,并將其納入本文所提模型中.如文獻(xiàn)[3,14]所述,將JDATA中會話的持續(xù)時間閾值設(shè)置為1小時,將KKBOX中會話的索引間隔設(shè)置為2000(根據(jù)統(tǒng)計分析),以劃分不同的會話.過濾掉長度為1的會話以及在數(shù)據(jù)集中出現(xiàn)次數(shù)少于3次的項目.對于這兩個數(shù)據(jù)集,將較早的90%用戶行為作為訓(xùn)練集,并將隨后(最近)10%的用戶行為作為測試集.在模型預(yù)測中,給定一個測試會話,模型首先計算所有項目的匹配分?jǐn)?shù),然后根據(jù)分?jǐn)?shù)生成前k個列表. 4.1.2 對比方法 為了強(qiáng)調(diào)本模型在性能方面的優(yōu)越性,將其與以下基于會話推薦模型進(jìn)行比較: 表1 數(shù)據(jù)集Table 1 Dataset statistics FPMC[38]:一種基于隱馬爾可夫鏈的序列預(yù)測方法,常用作基于會話推薦的基線. GRU4REC+BPR/CE[7]:GRU4REC的改進(jìn)版本,是最新的基于會話的推薦模型.GRU4REC+BPR使用貝葉斯個性排名作為損失函數(shù),而GRU4REC+CE使用交叉熵作為損失函數(shù). NARM[15]:這是一個基于GRU的會話推薦模型,考慮用戶偏好的長期依賴性. STAMP[5]:這個基于會話的推薦模型同時考慮了用戶的當(dāng)前興趣和一般興趣.特別是,STAMP使用一個額外的神經(jīng)網(wǎng)絡(luò)來對當(dāng)前興趣進(jìn)行建模 SR-GNN[14]:利用GGNN捕獲會話中各個項目之間的復(fù)雜轉(zhuǎn)換模式,沒有包含微觀行為和知識. MKS:刪除所有與操作相關(guān)的模塊,其余組件與MMKS相同,驗證合并用戶微行為的重要性. MS:去除學(xué)習(xí)知識嵌入的輔助任務(wù),即公式(22)中LKG,其余組件與MMKS相同.以下所有變體都消除了學(xué)習(xí)知識嵌入的任務(wù),它們之間的區(qū)別在于對會話建模的操作. MS(GRU/GGNN):與MMKS不同,這兩個變體直接學(xué)習(xí)微行為嵌入,唯一區(qū)別是MS(GRU)將微行為序列饋送至GRU,而MS(GGNN)將微行為序列饋送至GGNN. 4.1.3 評估方法 使用以下指標(biāo)來評估所有模型的性能,這些指標(biāo)在以前的基于會話的推薦評估中被廣泛使用: Hit@k:這是命中樣本在前k個排名列表中具有正確的下一個交互項的所有樣本中所占比例. MRR @ k:在前k個排名列表中,正確的下一個交互項的平均倒數(shù)排名.如果正確的項目排在top-k之后,則倒數(shù)排名設(shè)置為零. 4.1.4 參數(shù)設(shè)置 為了公平比較,本模型和所有基線采用相同的操作維度和項目嵌入.由于篇幅限制,只顯示100維嵌入的結(jié)果.根據(jù)其他尺寸嵌入的實驗結(jié)果得出一致的結(jié)論.并且所有嵌入均采用高斯分布進(jìn)行初始化,該分布的平均值為0,標(biāo)準(zhǔn)差為0.1. 將GGNN的步數(shù)H設(shè)置為1,本模型是通過交替訓(xùn)練而不是聯(lián)合訓(xùn)練來學(xué)習(xí)的,其原因?qū)⒃谝韵聦嶒炛械玫津炞C.另外,使用Adam優(yōu)化器,其學(xué)習(xí)速率為0.001,批處理大小為128.對于基線,在其論文中使用了默認(rèn)的超參數(shù)設(shè)置(嵌入尺寸除外).關(guān)于控制參數(shù),在公式(19)中通過優(yōu)化實驗設(shè)置λ1取值為0.0001在每個數(shù)據(jù)集中.對于L2懲罰項λ2,將其設(shè)置為10-5作為以前的基于會話的推薦模型. 通過表2比較了所有模型在不同數(shù)據(jù)集上的基于會話推薦性能,實驗結(jié)果表明,本文所提出模型對于性能的提升起到了非常大的幫助,優(yōu)于所有數(shù)據(jù)集中的所有基線.如表1所示,KKBOX比JDATA具有更多獨特的操作,有助于更好地捕獲細(xì)粒度級別的用戶偏好.微行為操作和多模態(tài)知識圖譜結(jié)合使用,能夠改善基于會話推薦的性能.通過引入多模態(tài)實體的情況下,在結(jié)構(gòu)化知識的基礎(chǔ)上,增加了文本和視覺,對于改善推薦的性能有極大的幫助并且比其他一些方法對于多模態(tài)信息更加友好.通過單獨學(xué)習(xí)項目嵌入和學(xué)習(xí)操作嵌入對會話進(jìn)行建模比直接學(xué)習(xí)微行為嵌入更有效,如前所述,項目序列的轉(zhuǎn)換模式和操作序列的轉(zhuǎn)換模式不同,因此將項目與微行為操作結(jié)合在一起,對于性能的提升有一定程度的幫助,通過以上實驗結(jié)果證明采用微觀行為操作的效果具有顯著的優(yōu)勢. 表2 不同算法的推薦性能Table 2 Recommended performance of different algorithms 4.2.1 模型深度的影響 為了評估層堆疊的有效性,對不同數(shù)量的層進(jìn)行實驗,層數(shù)視為模型的深度.對于本模型知識圖嵌入部分,將多模態(tài)知識圖注意層數(shù)固定為2,對于知識圖嵌入中不同模型深度(不同數(shù)量的多模態(tài)知識圖注意層)的影響可總結(jié)如下:在KKBOX數(shù)據(jù)集中,隨著多模態(tài)知識圖注意層數(shù)的增加,評估指標(biāo)也隨之增加,證明領(lǐng)域信息融合在知識圖嵌入中的有效性;在KDATA數(shù)據(jù)集中,隨著多模態(tài)知識圖注意層數(shù)的增加,評估指標(biāo)先增大然后減小,這可能是由于KDATA數(shù)據(jù)的多跳信息相對稀疏造成的,結(jié)合表3的結(jié)果,與那些獨立考慮知識圖實體三元組的方法相比,本文所提方法(在進(jìn)行知識圖嵌入時考慮相鄰實體的信息)可以提供更高質(zhì)量的實體嵌入以供推薦.對于推薦部分,隨著模型層數(shù)的增加,評估指標(biāo)在兩個數(shù)據(jù)集中首先增長,這驗證了不同躍點的知識圖嵌入對推薦系統(tǒng)有幫助.但是,當(dāng)兩個數(shù)據(jù)集中的層數(shù)大于 2 時,評估指標(biāo)會下降.換句話說,當(dāng)層數(shù)增加到一定程度時,評估指標(biāo)下降,這可能是由于數(shù)據(jù)稀疏導(dǎo)致的過度擬合造成的. 表3 模型深度的影響Table 3 Effect of model depth 4.2.2 訓(xùn)練策略 如前所述,多任務(wù)學(xué)習(xí)損失方程式有兩種訓(xùn)練策略,即交替訓(xùn)練和聯(lián)合訓(xùn)練,分別用兩種策略訓(xùn)練MMKS,并比較它們的學(xué)習(xí)曲線,此外,再添加一個預(yù)訓(xùn)練變量進(jìn)行比較,在該方法中,首先通過TransE對項目嵌入進(jìn)行預(yù)訓(xùn)練,然后將其輸入到KM-SR中,僅通過公式(20)中的函數(shù)損失進(jìn)行調(diào)整.將知識學(xué)習(xí)納入3種不同策略的學(xué)習(xí)曲線表明,知識學(xué)習(xí)納入交替訓(xùn)練的多任務(wù)學(xué)習(xí)是實現(xiàn)會話推薦任務(wù)的最佳策略. 圖5 結(jié)合知識學(xué)習(xí)的3種不同策略學(xué)習(xí)曲線Fig.5 Learning curves of three different strategies to combined with knowledge learning 在圖5中,曲線表明,雖然預(yù)訓(xùn)練模型有比較好的學(xué)習(xí)起點,但在收斂階段已被其他兩個競爭對手超越,結(jié)果證明多任務(wù)學(xué)習(xí)優(yōu)于基于知識的預(yù)訓(xùn)練,訓(xùn)練集中經(jīng)常出現(xiàn)的項目將在聯(lián)合訓(xùn)練的每個時期中通過損失LK進(jìn)行調(diào)整,這樣會使得學(xué)習(xí)的嵌入內(nèi)容偏向輔助任務(wù)LK,從而縮小主要任務(wù)LS的學(xué)習(xí)效果,因此在本模型的基于會話推薦場景中,交替訓(xùn)練比聯(lián)合訓(xùn)練要好. 4.2.3 門控的輸入和輸出 在圖6中,對項目相似性門控的MLP層進(jìn)行一些更改:1)刪除全局偏好或最近交互的項目從MLP層的輸入;2)通過設(shè)置W和b,將上述單個級別的門控切換到特征級別,以獲得輸出矢量,為不同維度提供不同的權(quán)重.從圖6中可以看到,在門控函數(shù)中引入單一類型的歷史表示形式(即全局偏好和最近交互作用)通常足以實現(xiàn)出色的結(jié)果,從圖6中還可以看到,盡管希望對不同維度的權(quán)重進(jìn)行細(xì)化,但特征級門控對實驗數(shù)據(jù)集帶來的結(jié)果卻是更糟.實際上,在實驗中發(fā)現(xiàn)特征級選通使模型更加不穩(wěn)定,從而傾向于陷入局部最優(yōu)狀態(tài). 圖6 對門控MLP更改的推薦性能Fig.6 Recommendation performance for gating MLP changes 在本文中,提出一種新穎的基于會話的推薦模型,該模型同時融合多模態(tài)知識圖和用戶微行為,并根據(jù)項目相似門以及圖自注意網(wǎng)絡(luò),用于推薦.具體而言,采用不同的機(jī)制來學(xué)習(xí)用于生成細(xì)粒度會話表示的項目嵌入和操作嵌入,該模型將多模態(tài)知識圖譜引入,通過學(xué)習(xí)實體之間的推理關(guān)系并將每個實體的鄰居實體信息聚合到自身;還設(shè)計一個選通網(wǎng)絡(luò),該網(wǎng)絡(luò)考慮候選項目之間的關(guān)系,最近的交互作用以及每個用戶的整體偏好,以應(yīng)對用戶意圖的不確定性.在兩個真實數(shù)據(jù)集上的大量實驗證明所提出模型的合理性和有效性,對于傳統(tǒng)的基于會話推薦改善有很大的意義,通過一些消融和定量研究證明設(shè)計門控模塊的合理性.3.5 模型訓(xùn)練
,如果項目j是會話s之后用戶的下一個交互項目,則ysj=1,否則ysj=0.然后采用Adam優(yōu)化器通過最小化二元交叉熵?fù)p失來訓(xùn)練基于會話推薦任務(wù),損失函數(shù)如下:4 實 驗
4.1 實驗設(shè)置
4.2 實驗結(jié)果
5 結(jié) 論