999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

雙通道異構圖神經網絡序列推薦算法

2023-06-07 08:30:50鄔錦琛楊興耀李梓楊黃擅杭孫鑫杰
計算機與生活 2023年6期
關鍵詞:用戶模型

鄔錦琛,楊興耀,于 炯,李梓楊,黃擅杭,孫鑫杰

新疆大學 軟件學院,烏魯木齊830008

在大數據時代,用戶從大量的產品和服務中想獲取自己需要的信息是極其困難的。推薦系統可以根據用戶的歷史數據了解用戶的偏好,幫助用戶做出合理的決策和選擇。隨著推薦系統的開發和對用戶數據的分析,用戶的偏好可以區分為長期偏好和短期偏好[1]。傳統的推薦系統只考慮用戶的長期偏好,而忽略了用戶偏好的轉移。例如,在電子商務平臺中,用戶購買的物品構成了用戶的行為序列,傳統的推薦系統的目的是通過物品的轉移來了解用戶的長期偏好。用戶購買物品的行為序列如圖1所示。

圖1 用戶購買物品的行為序列Fig. 1 Behavior sequence of user purchases

圖1 中描述了六件物品之間的轉換關系。傳統的推薦系統考慮項目所有用戶行為的轉換關系,以便推薦系統花費很長時間關注用戶注重的物品,但這會減弱推薦系統對用戶偏好變化的敏感度。因此,推薦系統無法快速學習用戶偏好的轉移。如,一個用戶買了很長時間的魚肉,突然喜歡上了牛肉。但是,由于用戶購買魚肉的次數比購買牛肉的次數多,傳統的推薦系統認為用戶的偏好仍然是魚肉。因此,傳統的推薦系統由于沒有考慮用戶行為的交易結構而忽略了用戶偏好的轉移。為了解決這個問題,有必要將用戶行為序列分解成更小段的序列,即會話。例如,按照時間做分割,用戶一次購買的商品、一天內瀏覽的網頁等。基于會話的推薦模型以會話作為推薦的基本單元,可以減少用戶的信息損失,并且已經得到了廣泛的研究。將用戶行為序列分割為會話的結果如圖2所示。

圖2 用戶行為序列分解Fig. 2 Decomposition of user behavior sequences

圖2描述了在電商平臺中,將圖1中的用戶的購買行為劃分為了粒度更小的會話序列集合{s1,s2,s3}。基于用戶行為序列的推薦系統將用戶行為分解為一組會話,從而賦予用戶行為事務屬性,使推薦系統能夠專注于用戶偏好的傳遞。如,用戶長期購買蘋果,但最近更喜歡西瓜,基于用戶行為序列的推薦系統可以及時捕捉用戶偏好的轉移。它不再像傳統的推薦系統那樣繼續推薦不同品種的葡萄及與葡萄相關的商品,而是推薦與西瓜相關的商品。因此,基于用戶行為序列的推薦系統忽略了用戶的長期偏好。要使基于用戶行為序列的推薦系統既關注用戶的短期偏好,又考慮用戶的長期偏好,就必須考慮會話之間的相關性。會話序列中的相關關系主要有三方面:同一會話中不同物品項之間的相關關系、不同會話中不同項之間的相關關系以及不同會話中不同物品項之間的相關關系。這就要求基于用戶行為序列的推薦系統能夠充分考慮會話的上下文,并能夠了解項與項之間的復雜轉移。

近年來,圖神經網絡(graph neural networks,GNN)被應用于基于用戶行為序列的推薦系統[2]。在基于GNN 的推薦系統中,首先將用戶行為序列集構造為一個有向圖,有向圖中的節點表示項,而項之間的轉移關系用邊來展現。其次根據構造出來的有向圖,圖神經網絡可以學習項目之間復雜的轉移關系,學習表達能力強的項目嵌入,生成包含項目間復雜轉移信息的序列嵌入[3]。如,基于會話的圖神經網絡(session-based recommendation with graph neural network,SR-GNN)[4]不僅可以捕獲短期內用戶偏好的遷移,還可以考慮遠距離物品之間的轉移關系。因此,SRGNN 可以學習正確的物品嵌入。同時,SR-GNN 增加了一個注意力網絡,關注用戶的局部會話嵌入和全局會話嵌入,這使模型可以將用戶的短期偏好和長期偏好同時考慮在內。SR-GNN 雖然考慮了用戶的長短期偏好以及項與物品間的復雜轉換,但它忽略了會話序列中的其他有效信息,如用戶信息,這會導致不同用戶的特定偏好的丟失。

目前的異構圖模型中只關注了序列內部的依賴關系,而忽略了序列之間的相關效應,本文將序列作為異構圖的節點,這樣可以通過用戶意圖和用戶行為模式計算序列之間的相似度,完成跨序列級的學習。本文考慮到在真實世界的信息中,每個信息節點的類型和每條邊的類型都是多種的,并且每一個節點也具有不同且繁多的屬性,此時同構圖就無法完全表示這些信息。同時,異構圖可以包含多種類型的節點,邊不僅可以表示不同的關系,也可以表示不同類型節點之間的相關性。因此,本文引入異構圖來構造同構圖中不能表示的用戶等信息,豐富需要表達的信息。以往的普通圖模型中,只能對成對的關系進行建模,如用戶與物品交互的關系,無法捕獲各種節點信息之間的高階關系,如相似的用戶組關系。本文將帶有異構信息的行為序列構建為異構圖的線圖來表達高階數據關系。

異構圖神經網絡(heterogeneous graph neural network,HetGNN)[5]在推薦任務中,可以學習圖中不同類型節點的潛在信息,同時將圖中不同節點嵌入到統一的向量空間中,但無法捕捉節點間的高階依賴關系。為此,本文對HetGNN 模型進行改進,提出雙通道異構圖神經網絡的用戶行為序列推薦算法(user behavior sequence recommendation with dual channel heterogeneous graph neural network,DC-HetGNN),通過構建異構圖的線圖通道,捕捉節點與節點之間高階關系,同時充分考慮了物品項目、用戶和用戶行為序列之間的相關關系,可以通過豐富的信息和復雜項目轉移學習序列嵌入,在異構圖通道中聚合局部序列和全局序列,保證同時考慮用戶的長短期偏好。本文主要貢獻如下:

(1)將異構圖神經網絡用于用戶行為序列推薦,將物品、用戶和行為序列構造成異構圖和異構圖的線圖,通過異構圖神經網絡來捕捉物品、用戶和行為序列兩兩之間的關系和跨序列信息。

(2)提出一種基于用戶行為序列的雙通道異構圖神經網絡DC-HetGNN。DC-HetGNN 可以從序列中獲取用戶的潛在信息。

(3)在公共電商用戶行為數據集上進行了大量實驗。結果表明,本文提出的模型與其他新近基線模型在相同的指標上有顯著的提升。

1 相關工作

協同過濾(collaborative filtering,CF)[6]是最流行的推薦方法之一。它根據用戶對項目的評級對用戶進行分類,并為目標用戶找到具有相似興趣的其他用戶。然后CF向目標用戶推薦其他用戶感興趣但目標用戶沒有見過或購買過的商品。矩陣分解(matrix factorization,MF)[7]是一種典型的傳統推薦方法。它可以將用戶和項目嵌入到相同的向量空間中。用戶嵌入和項嵌入的內積是用戶對項的興趣度,而MF不能學習項的序列變換。隨后,一個將貝葉斯個性化排序融入到MF中的算法出現,通過轉換圖來建模排序用戶序列行為,即隱性反饋的貝葉斯個性化排名(Bayesian personalized ranking from implicit feedback,BPR-MF)[8]。

近年來,一些利用循環神經網絡(recurrent neural network,RNN)優勢且應用于用戶行為序列推薦方法出現,如基于門控單元的循環網絡(recurrent neural network with gate recurrent unit,GRU4Rec)[9]。GRU4Rec考慮了上一個節點與當前節點之間的相關關系,該方法對用戶行為序列非常敏感,能夠及時捕捉到用戶偏好的轉移,但是無法了解用戶的長期偏好。圖神經網絡最近受到越來越多的關注,與基于RNN 的方法不同,基于GNN 的方法在序列構造的圖中學習項目間的轉換。SR-GNN 是使用門控圖神經網絡將用戶行為序列建模為圖結構數據的開創性方法。圖上下文的自注意力網絡(graph contextualized selfattention network,GC-SAN)[10]利用自我注意力機制通過圖信息聚合來捕獲物品間依賴。全圖神經網絡(full graph neural network,FGNN)[11]通過將節點分類和圖分類相結合用于學習序列嵌入。時序圖序列推薦算法(temporal graph sequential recommender,TGSRec)[12]在考慮序列內的時間動態的同時捕捉用戶和物品間的相關依賴關系。全局上下文增強的圖神經網絡(global context enhanced graph neural network,GCE-GNN)[13]在單個序列圖和全局序列圖上進行圖卷積,以學習局部序列和全局序列的嵌入。基于混合模型的圖神經網絡(graph neural network based hybrid model,GNNH)[14]融合順序模式和非順序模式,以捕獲序列內的動態興趣。雖然這些方法表明基于GNN的方法優于其他方法,包括基于RNN的模型,但是它們都沒能捕獲到復雜的高階物品間依賴關系。

異構圖(heterogeneous graph,HetG)包含了豐富的多類型節點之間的結構關系信息,以及與每個節點相關聯的非結構化內容。異構信息網絡(heterogeneous information network,HIN)[15]可以將多種類型的節點構建到一個圖中,并將這些節點用不同類型的邊連接起來,因此HIN 可以對復雜的上下文信息進行建模。由于HIN 具有不同類型的節點或邊,很難將這些節點或邊嵌入到同一個向量空間中。近年來,一些圖嵌入方法,如DeepWalk[16]、metapath2vec[17]、node2vec[18]、LINE(large-scale information network embedding)[19]、ASNE(attributed social network embedding)[20]、Pathsim[21]、Pathselclus[22]等被提出,DeepWalk算法通過隨機游走生成節點序列,將其視為一個句子,利用語言建模生成嵌入的節點表示。本文使用DeepWalk 算法將異構圖嵌入到相同的向量空間中,獲得各類節點的預嵌入表示。Ren 等人提出了一種基于信息網絡聚類的有效引文推薦方法ClusCite[23],該方法學習異構信息網絡中的引文之間的關系,并將其聚類成興趣組。Hu等人開發了一種新的具有共同注意機制的深度神經網絡——基于元路徑的上下文推薦模型(leveraging metapath based context for recommendation,MCRec)[24]。MCRec 學習了基于元路徑的用戶、對象和上下文的有效表示,實現了較好的交互功能。

2 符號定義及問題描述

本章對描述模型的符號進行定義并描述用戶行為序列的推薦問題。

2.1 符號定義

定義1(異構圖)將異構圖定義為HetG=(N,E),其中異構圖節點N是一個包含了物品集合I、用戶集合U和用戶行為序列集合S的N個節點集合,該節點集合中的節點唯一。異構圖邊E是一個包含了M條邊集合,該集合中的每條邊e∈E包含兩個或多個節點,并被賦予一個正權值We,e,所有權值構成了一個對角矩陣W∈RM×M。異構圖可以用關聯矩陣表示為H∈RN×M,其中Hi,e=1 表示邊e∈E包含一個節點ni∈N,否則Hi,e=0。每個節點和邊的度分別定義為Di,i=和,D和B是對角矩陣。上述中物品集合為I={i1,i2,…,in},其中n為物品的個數。有用戶集合為U={u1,u2,…,um},其中m為用戶個數。用戶行為序列集合為S={s1,s2,…,sj},其中j為行為序列個數。用戶行為序列集合S是由用戶集合U中用戶對物品集合I進行點擊行為組成序列。其中,每一個序列s都表示成一個集合,即s={is,1,is,2,…,is,h}。其中is,k∈I(1 ≤k≤h),表示在一個行為序列中用戶的一個行為交互項。將有交互項的節點嵌入到同一個模型中獲得節點的嵌入集合Node*={I*,S*,U*},并使有交互項的節點嵌入到同一個向量空間中。其中I*表示物品嵌入集合,S*表示用戶行為序列嵌入集合,U*表示用戶嵌入集合。異構圖轉化為矩陣表示如圖3所示。

圖3 異構圖的矩陣表示Fig. 3 Matrix representation of heterogeneous graph

在圖3中:(1)部分為異構圖的關聯矩陣;(2)部分為異構圖邊的度矩陣;(3)部分為異構圖點的度矩陣。

定義2(異構圖的線圖)給定異構圖HetG=(N,E),該圖的線圖L(HetG)=(NL,EL)中的每個節點是異構圖HetG 中的一個邊,且L(HetG)的兩個節點是連通的,即它們對應的HetG 中的邊至少共享一個公共節點。在L(HetG)中,線圖節點定義為NL={ne:ne∈E},異構圖的線圖中連接節點的邊定義為EL=E,eq∈E,|ep?eq|≥1},給每條邊賦值為Wp,q=|ep?eq|/|ep?eq|。異構圖的線圖表示如圖4所示。

圖4 異構圖的線圖表示Fig. 4 Representation of line graph of heterogeneous graph

在圖4中,邊e1與邊e2中共包含6個節點,含有1個公共節點s2,故在線圖中連接節點e1和節點e2的邊的權重為W1,2=。其他邊的權重同理。

2.2 問題描述

基于用戶行為序列的推薦系統的主要任務是通過給定一個用戶行為序列s,本文模型Fθ將用戶行為序列集合S分別構造成異構圖HetG 和異構圖的線圖L(HetG),通過異構圖通道和線圖通道學習包含了豐富信息和物品間轉換關系的物品項嵌入I*={i1,i2,…,in}。然后模型將生成最終混合序列嵌入。最后通過softmax 層獲得項目的得分,將排名前n的物品項is,h+1作為下一個項目推薦給用戶。

(1)異構圖的構建

本文將異構圖節點定義為N=(I,S,U),其中I表示物品集合,S表示用戶行為序列集合,U表示用戶集合,將以上節點的集合構造為一個異構圖HetG=(N,E)。HetG 包含三種類型的節點以及兩種類型的邊,三種類型的節點分別是物品節點、用戶行為序列和用戶節點。兩種類型的邊分別為連接兩個物品之間有向邊集合Ei和無向邊集合E。其中有向邊Ei=(is,h,is,h+1)表示用戶在購買了物品is,h之后又購買了is,h+1。無向邊E={(is,h,s),(is,h,u),(s,u)}分別表示物品與用戶行為序列、物品與用戶之間和用戶行為序列與用戶之間的關系。

(2)異構圖通道學習項目嵌入

在構建異構圖HetG 之后,本文利用異構圖神經網絡學習物品的嵌入表示,將用戶節點和行為序列節點的信息聚合成物品嵌入I*={i1,i2,…,in},其中物品嵌入項ik是節點ik的向量表示。

(3)線圖通道學習項目嵌入

在構建異構圖的線圖L(HetG)之后,本文設計了異構圖的線圖卷積模型。線圖可以看成一個簡單的圖,它包含跨序列信息并描述項與項的連通性。

3 DC-HetGNN模型

本章將介紹提出的DC-HetGNN 模型,并介紹完整的DC-HetGNN 學習算法。DC-HetGNN 模型架構圖如圖5所示。

圖5 DC-HetGNN模型框架Fig. 5 Model framework of DC-HetGNN

在圖5中可以看到,DC-HetGNN展示對用戶、物品以及用戶行為序列進行異構圖建模和異構圖線圖建模,分別將建模后的嵌入集輸入異構圖通道和線圖通道進行物品學習。通過異構圖通道和線圖通道最終會分別得到序列嵌入,最后將兩個序列嵌入聚合,用于物品推薦。異構圖通道使用異構圖神經網絡進行學習節點嵌入,異構圖神經網絡學習物品嵌入的過程如圖6所示。

圖6 中異構圖神經網絡主要分為三部分進行描述:(1)部分首先對異構圖中所有節點進行采樣,采樣完成之后,對節點中不同的數據類型使用不同的技術進行編碼,接著將編碼后的信息通過全連接層和BiLSTM 層進行特征能力累積表達,最終獲得節點的內容嵌入。(2)部分將相同類型的鄰居節點進行聚合。(3)部分采用注意力機制將不同類型的鄰居節點與當前節點進行聚合,最終獲得當前節點的內容嵌入。

3.1 構造異構圖

首先,需要將用戶行為序列集合S構造成異構圖HetG=(I,S,U,E),接著構造異構圖的線圖L(HetG)=(IL,SL,UL,EL)。HetG 創建后,利用DeepWalk 算法,收集物品、用戶和行為序列節點。然后使用Word2Vec對這些節點向量進行訓練,生成所有節點的預嵌入向量。

3.2 異構圖通道和線圖通道學習項目嵌入及序列生成

3.2.1 異構圖通道學習項目嵌入及序列生成

經過預訓練之后生成的節點嵌入向量,每個向量在相同維度空間中。但此時預嵌入的節點向量缺乏表達能力,無法表達復雜關系之間的物品間轉換。使用傳統圖神經網絡進行異構圖學習不能直接從不同類型的鄰居中獲取其特征信息,節點的嵌入可能受到弱相關鄰居的影響,冷啟動節點的嵌入不充分。異構鄰居需要不同的特征轉換來處理不同的特征類型和維度。采用異構圖神經網絡HetGNN 學習包含豐富信息和復雜轉換關系的項嵌入。采用聚合異構鄰居的思想,HetGNN主要分為以下四部分:

(1)對異構鄰居進行采樣

由于異構圖中的鄰居節點的類型和數量不同,聚合這些節點需要不同的特征轉換。例如,用戶1的3條行為序列中出現了4次商品購買行為,用戶2的4條行為序列中出現了5次商品購買行為。此時,兩位用戶的鄰居節點大小不同,為了方便使用相同的模型聚合這些異構鄰居節點,采用基于重啟的隨機游走(random walk with restart,RWR)方法對異構鄰居進行采樣。RWR的主要步驟如下:

步驟1在物品集I={i1,i2,…,in}、用戶集U={u1,u2,…,um}和行為序列集S={s1,s2,…,sj}中,對每個節點vi∈{I,U,S}開始隨機遍歷。遍歷過程中,以概率P迭代地移動到當前節點的鄰居或返回起始節點。直到固定數量的節點都被收集,RWR 運行就會停止。收集到的節點集中不同類型節點數量會有上限,確保所有節點類型都可以被采樣。

步驟2分組不同類型的鄰居。對于每個節點類型t,從步驟1中的節點集中根據出現次數進行降序排列,選取前k個節點作為節點v的t類型相關鄰居節點集合。

(2)聚合異構鄰居的節點內容

不同類型的異構鄰居具有不同的節點內容。例如,用戶節點可能包含性別、地域、角色等靜態屬性,也可能包含社交習慣、娛樂偏好、消費水平等動態屬性。而物品節點包含名稱、類型、價格等靜態屬性。HetGNN設計了一種基于雙向長短期記憶網絡(bidirectional long short-term memory,BiLSTM)的體系結構,獲取節點特征之間的交互,將節點的所有屬性聚合為節點的嵌入表示,使其具有更強的表達能力。節點v是節點vi的異構鄰居,其屬性集為Attr={attr1,attr2,…,attrn},使用不同的模型將屬性attri轉換成同維度的特征嵌入向量Att*={att1,att2,…,attn}。例如,使用One-Hot對預訓練文本進行編碼,使用卷積神經網絡(convolutional neural networks,CNN)來預訓練圖像內容等。在得到節點各屬性嵌入之后,節點嵌入f1(v)公式如下:

其中,f1(v)∈Rd×l,d表示嵌入維數;表示具有參數θx的全連接神經網絡并且無需變換的特征轉換器;⊕表示連接運算。LSTM公式如下:

其中,hi∈R(d/2)×l表示第i個隱藏層輸出狀態,°是哈達瑪積,,Wi∈R(d/2)×(d/2)和bi∈R(d/2)×l(i∈(z,f,o,c))為可學習的參數,zi、fi和oi分別為遺忘門第i層特征輸出、輸入門第i層特征輸出和輸出門第i層特征輸出。上文中f1(v)首先使用不同的帶參數的全連接層FCθx對不同內容特征進行轉換,然后利用BiLSTM捕獲深層次的特征交互,累積所有內容特征的表達能力,最后利用均值池化層處理所有隱藏狀態,最終得到節點v的一般內容嵌入。

(3)聚合相同類型的異構鄰居

聚合異構鄰居的節點內容后,每個節點有多種類型的異構鄰居且每種類型t有多個異構鄰居。使用BiLSTM將相同類型的節點聚合成一個向量嵌入,HetGNN會學習它們之間的復雜關系,從而使學習到類型嵌入f2(t)具有更強的表達能力。類型嵌入f2(t)公式如下:

(4)聚合不同的類型

在得到類型嵌入后,由于不同類型的鄰居會對節點v的最終表示產生不同的影響,在結合基于類型的鄰居嵌入與節點v的內容嵌入的過程中,采用注意力機制。此時,節點vi的最終嵌入計算表示為:

其中,T是包含異構節點的類型集合。avi j表示每種類型對節點v產生的影響值,計算表示如下:

其中,LeakyReLU為激活函數,U∈R2d×l表示注意力參數,F2(T)表示類型嵌入f2(t)的集合,t∈T表示一個異構節點的類型。

在使用HetGNN學習項目嵌入之后,進行序列嵌入的生成。對于序列s={is,1,is,2,…,is,h},預嵌入向量的過程如下:

其中,is,h是節點is,h的節點嵌入,i0是沒有固定維數的零向量,⊕表示連接操作。由于序列中的項數可能不同,需要連接i0,以便所有預嵌入的會話向量具有相同的維數。同時,考慮到用戶長短期偏好分別對結果的影響,加入注意力機制,獲得了能夠表達長短期偏好混合的序列嵌入。首先考慮到序列的局部嵌入slocal,其表達公式如下:

其中,is,n是當前序列中最后一項的嵌入向量。對于用戶長期偏好,需要重點考慮項與項之間的變換關系,同樣采用注意力機制來學習序列全局嵌入sglobal,其表達公式如下:

其中,WT∈Rd,W1,W2∈Rd×2d是用于生成物品嵌入的權重矩陣。在得到序列的全局嵌入和局部嵌入后,生成混合序列嵌入,過程如下:

其中,利用W3∈Rd×2d將slocal和sglobal融合到混合序列嵌入中。異構圖通道學習項目嵌入及序列生成算法如算法1所示。算法時間復雜度為O(nd2)。

算法1異構圖通道學習項目嵌入及序列生成算法HLearn

3.2.2 線圖通道學習項目嵌入及序列生成

線圖通道對異構圖的線圖進行編碼。線圖可以看作一個包含跨行為序列信息并描述邊連通性的簡單圖,在進行卷積操作之前,將基礎物品嵌入I(0)輸入SGU(self-gating unit)并獲得線圖通道的物品嵌入。其中獲得的過程如下:

其中,Wg∈Rd×d,bg∈Rd都是需要學習的參數。σ為激活函數。

線圖通道學習項目嵌入及序列生成算法如算法2所示。算法復雜度為O(n2d)。

算法2線圖通道學習項目嵌入及序列生成算法LLearn

3.3 雙通道異構圖神經網絡的用戶行為序列推薦

給定一個用戶行為序列s,通過分別計算I(0)和sline的點積以及I(0)和shybrid的點積為所有物品項i∈I計算一個得分,然后將兩個預測分數相加得到最終預測分數:

然后,使用softmax 函數計算每一個項目成為序列中的下一個項目的概率:

本文將學習目標定義為推薦系統中得到廣泛應用的交叉熵損失函數,并且使用Adam優化器最小化交叉熵以獲得高質量的推薦結果。記交叉熵函數的定義為:

其中,y是真實數據的One-Hot編碼向量。DC-HetGNN核心算法如算法3所示。

算法3DC-HetGNN算法

4 實驗

4.1 數據集

本文采用兩個電商數據集Tmall 和Diginetica 來評估本文提出的模型,兩個數據集中均包含了用戶的個人信息及行為信息。為了避免冗余數據對本文模型產生的影響,本文對兩個數據集均進行了預處理。其中,對數據集Diginetica 進行預處理的內容如下:刪除數據集中只包含一個物品的所有行為序列,并刪除了出現次數少于5 次的物品。由于構建異構圖需要用戶節點,需要刪除匿名用戶的行為數據。本文將數據集Diginetica 拆分為訓練集和測試集,使用最近幾周的數據作為測試集,其他數據作為訓練集。最終經過清洗的數據集如表1所示。

表1 Diginetica數據集Table 1 Diginetica dataset

本文選取的Tmall 數據集為用戶行為數據集。對此數據集預處理的內容如下:刪除產生序列行為次數少于20次的用戶項,刪除了出現次數少于10次的物品項。選取該數據集最近15天的行為數據作為測試集,其他作為訓練集。最終經過處理的數據集如表2所示。

表2 Tmall數據集Table 2 Tmall dataset

4.2 對比模型

本文將提出的DC-HetGNN 與以下新近的序列化推薦模型進行比較,并給出不同模型的時間復雜度。

SR-GNN[4]:將會話序列構造為同構圖,并利用GNN學習項嵌入。

HetGNN[5]:將會話序列構造成異構圖,通過神經網絡模塊編碼聚合采樣同構和異構圖節點,以端到端的方式訓練模型,在聚類、分類和歸納任務中有出色表現。

BPR-MF[8]:該算法利用矩陣分解學習用戶偏好,提出了一種通用的個性化排序優化準則BRP-opt,并將其應用到MF中。

GRU4Rec[9]:利用會話并行小批量訓練過程,采用基于排序的損失函數對用戶序列進行建模。

FGNN[11]:利用節點分類和圖分類學習序列最終嵌入。

TGSRec[12]:同時考慮序列中時間動態并捕捉物品與用戶之間的依賴關系。

為了方便復雜度描述,記n表示節點數,d表示隱藏層特征維度。各模型時間復雜度如表3所示。

表3 模型時間復雜度Table 3 Time complexity of model

從表3 中可以看出,本文模型DC-HetGNN 時間復雜度相較于其他基線模型沒有指數級的增長。

4.3 實驗設置

在本文模型中,嵌入維度為128,最小批大小為200,線圖通道中卷積層數為2 層,學習率設置為0.000 1。節點的異構鄰居數是一個非常重要的參數,這組參數包括用戶鄰居數、物品鄰居數和行為序列鄰居數。經過在兩個數據集中的大量實驗,在Diginetica數據集中,用戶鄰居數設置為12,物品鄰居數設置為8,行為序列鄰居數設置為1時,模型的性能最好。在Tmall數據中,用戶鄰居數設置為1,物品鄰居數為1,行為序列鄰居數設置為15,模型性能最好。在實驗過程中,通過自動更新學習率,最終在學習率lr=0.000 1 時,模型性能在數據集Diginetica 和Tmall 中都是最好的。對比模型的超參數設置除特別指出的外,其他的與原文中的設置相同。

本文在Top-n推薦場景中,采用兩個推薦系統中常用指標來評估模型,分別為Recall@n和MRR@n,其中n=10,20,50。

4.4 結果及分析

本節將給出不同對比模型和本文的模型DCHetGNN 的比較結果。表4 為本文模型在Tmall 和Diginetica 數據集中不同n值下與其他基線模型的性能對比。

表4 在兩個數據集中模型推薦性能Table 4 Recommended performance of all models on two datasets 單位:%

從表4可以看出,模型DC-HetGNN在Top-n推薦場景中較其他模型取得了較好的性能。因為DCHetGNN將用戶行為序列構造成包含項目節點、用戶節點和序列節點的異構圖。異構圖包含復雜的依賴關系,可以顯示項之間的轉換、物品間的轉換、項與用戶之間的連接關系。與HetGNN相比,大部分情況下,在相同指標下有所提升。HetGNN關注復雜物品間的轉換,但忽略了用戶行為序列之間的關系,本文在異構圖學習通道的基礎上加入異構圖的線圖學習通道,線圖通道描述了用戶行為序列級的關系,這樣可以使生成的序列嵌入更加具有表現力。在n=50時,與基準模型SR-GNN對比,在數據集Diginetica中Recall提升了8.52個百分點,MRR提升了18.49%;在數據集Tmall 中Recall 和MRR 分別提升了4.19 個百分點和16.06%。與原模型HetGNN相比,在兩個數據集中,Recall分別平均提升0.82%和2.09%,與GRU4Rec在各項指標上均有提升。SR-GNN和GRU4Rec兩個都是基于圖神經網絡的模型,其中,GRU4Rec的核心是一種RNN 的變體,RNN 對序列化數據比較敏感,但是RNN 只能模擬連續項之間的單向傳遞,不能考慮遠距離物品之間的依賴關系,從而會忽略行為序列中的一些信息。SR-GNN 將用戶行為序列構造為同構圖,這種同構圖只具有項目之間的轉換,忽略了行為序列中的其他信息,特別是用戶信息。BRP-MF使用矩陣分解MF 來學習用戶偏好,但MF 不能很好地處理序列化數據,因此最終的結果并不理想。DCHetGNN 與新近模型FGNN 相比,在指標MRR@n和Recall@n中平均分別提升2.08%和0.78%,FGNN 雖然將圖分類和節點分類相結合,但并未考慮用戶行為序列之間的關系。與TGSRec 相比,在指標MRR@n和Recall@n中平均分別提升2.70%和0.49%,TGSRec考慮了序列內部時間節點因素對于用戶偏好的影響,但缺乏用戶長期偏好的參考。

學習率lr是模型訓練中一個重要的超參數,它決定了目標函數是否收斂到局部最小值以及何時收斂到最小值。本文設置了不同的學習率對模型進行訓練,實驗結果如圖7所示。

圖7 不同n 值下的模型學習率Fig. 7 Learning rate of model under different n values

從圖7 可以看出,模型在不同n值下,當學習率lr=0.000 1時,在Tmall和Diginetica數據集上性能都是最好。因此,選擇lr=0.000 1作為本文模型的最佳參數。

在圖網絡學習過程中,特征嵌入維度的選擇對推薦結果好壞起到了重要的作用,過多特征維度嵌入設置并不一定會使推薦效果最優,甚至導致過擬合。過低的特征維度會使圖網絡學習效果變差,為了得到本模型最佳嵌入維度,本文對嵌入維度的選擇在兩個數據集中進行了大量實驗,并繪制了實驗結果圖,效果圖如圖8所示。

圖8 不同嵌入維度下各指標的值Fig. 8 Value of each indicator under different embedded dimensions

在圖8中,當嵌入維度從8到128之間變化時,在兩個指標和數據集中結果都會增加,應為隨著維度的增加,圖網絡可以更好地學習特征。但當嵌入維度進一步增加時,結果變得穩定或者下降,這可能是過擬合的原因。

在模型的訓練過程中,目標函數會在某一時刻得到最優值。此時繼續訓練模型就沒有意義,因為模型的性能很難得到明顯的提升。因此,何時停止訓練模型,節省時間很重要。本文選取常用優化器Adam和優化器SGD(stochastic gradient descent)并使用相同的環境與參數分別進行實驗,并通過繪制模型的損失曲線來判斷模型何時收斂。訓練過程中的損失曲線如圖9所示。

圖9 模型訓練的收斂過程Fig. 9 Convergence process of model

從圖9可以看出,使用Adam優化器比使用SGD優化器收斂速度更快,但是精度并沒有SGD高,為了降低大量的訓練時間,本文選取Adam作為本文模型的優化器。本文模型使用Adam優化器在Tmall數據集和Diginetica 數據集中分別在epoch 為14 和13 時達到收斂。因此可以在訓練模型時,將epoch分別設置為14 和13。使用SGD 優化器需要更多輪的訓練次數才能使模型達到收斂。

節點的鄰居數是本文模型一個重要的超參數,本文在進行大量實驗后,得到節點的鄰居數在兩個數據集中的最佳值,結果如圖10所示。

圖10 不同類型節點鄰居數下Recall@50的值Fig. 10 Recall@50 under different types of node neighbour number

從圖10 可以看出,在Tmall 數據集中,用戶鄰居數設置為1,物品鄰居數為1,行為序列鄰居數設置為15,模型性能較好。與Tmall 數據集不同的是,Diginetica數據集中,用戶鄰居數設置為12,物品鄰居數設置為8,行為序列鄰居數設置為1時,模型的性能更好。這是因為本文模型需要不同數量的鄰居來提取不同長度用戶行為序列中的信息。如,在Diginetica數據集中,用戶鄰居數的最優值為12,而在Tmall數據集中,用戶鄰居數的最優值為1,可以看出,在不同場景中,使用過多的異構鄰居來提取信息,可能會受到噪聲節點的干擾,從而降低模型的性能。

本文考慮到在現實世界中,用戶行為序列通常有不同的長度,會對本文模型產生影響,故將Tmall和Diginetica 中的序列分成兩個不同長度的組,并分別命名為短序列組和長序列組。其中,短序列組包含長度小于等于5的序列,長序列組包含長度大于5的序列。DC-HetGNN 與SR-GNN、GRU4Rec、HetGNN在Recall@20 上的短序列組和長序列組的推薦結果對比如圖11所示。

圖11 長序列和短序列的Recall@20的值Fig. 11 Recall@20 of long sequences and short sequences

從圖11可以看出,在大多數情況下,DC-HetGNN在不同序列長度下優于在Tmall 和Diginetica 上的所有基準模型。對于DC-HetGNN來說,同時關注了長序列和短序列建模,短序列更能及時地反映用戶的偏好轉移,長序列中含有用戶歷史行為序列,包含噪聲,因此本文模型在短序列上的性能表現優于長序列。

為了研究DC-HetGNN 層數對性能的影響,本文對模型設置不同層數并進行實驗對比。本文將模型的層數范圍設為layer=1,2,3,4。實驗結果如圖12所示。

圖12 模型層數性能對比Fig. 12 Performance comparison of the number of layer

從圖12可以看出,DC-HetGNN在兩個數據集上對層數的取值不是很敏感。層數設置為2 時是最好的,當層數大于2時,性能略有下降。

5 結束語

本文將異構圖神經網絡HetGNN 和轉換后的異構圖的線圖L(HetG)結合并應用于用戶行為序列的推薦。首先,將行為序列構造成包含多種類型節點的異構圖。然后,使用HetGNN和L(HetG)學習包含復雜的項目轉換和用戶信息的項目嵌入。最后,利用注意力網絡生成具有強大表達能力的序列嵌入,從而使學習到的序列嵌入能夠表達用戶的特定偏好。實驗結果表明,本文方法優于其他常用方法。

文中使用了兩個電子商務數據集,由于數據集中字段的限制,在構建異構圖時只考慮三種類型的節點。在接下來的研究中,將繼續研究具有多種類型節點的真實數據集,這樣學習到的序列嵌入將具有更強大的表達能力。

猜你喜歡
用戶模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
3D打印中的模型分割與打包
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 九九九精品视频| 国产精品性| 四虎永久在线精品国产免费| 亚洲天堂色色人体| 中日韩欧亚无码视频| 国产午夜无码片在线观看网站| 国产欧美精品午夜在线播放| 成AV人片一区二区三区久久| 无码在线激情片| 欧美亚洲另类在线观看| 亚洲天堂免费观看| 亚洲人成人无码www| 77777亚洲午夜久久多人| 亚洲av日韩av制服丝袜| 99久久精品久久久久久婷婷| 黄色一及毛片| 精久久久久无码区中文字幕| 成人自拍视频在线观看| 亚洲国产日韩一区| 五月激情婷婷综合| 国产精品免费电影| 精品午夜国产福利观看| 在线观看精品国产入口| 日韩毛片在线视频| aⅴ免费在线观看| 亚洲动漫h| 亚洲欧洲综合| 中文字幕无码av专区久久| 看国产毛片| 午夜色综合| 亚洲人成网站观看在线观看| AV片亚洲国产男人的天堂| 免费一看一级毛片| 99久久婷婷国产综合精| 尤物精品国产福利网站| 成人午夜视频网站| 国产一级在线观看www色| 国产精品亚欧美一区二区| 9久久伊人精品综合| 澳门av无码| 欧美日韩国产一级| 久久香蕉国产线看精品| 在线国产综合一区二区三区| 中国精品自拍| 欧美色图第一页| 毛片基地美国正在播放亚洲 | 国产剧情国内精品原创| 成年人国产网站| 中国成人在线视频| 国产最新无码专区在线| AV网站中文| 国产精品乱偷免费视频| 99国产精品免费观看视频| 久久亚洲国产最新网站| 天天婬欲婬香婬色婬视频播放| 成人国产精品视频频| 亚洲福利片无码最新在线播放| 亚洲精品在线影院| 91黄色在线观看| 国产成人久久综合一区| 九九久久99精品| 成年人免费国产视频| 亚洲欧美精品日韩欧美| 丁香婷婷综合激情| 亚洲不卡av中文在线| 国产白浆在线| 日韩在线第三页| 一级毛片免费的| 亚洲狼网站狼狼鲁亚洲下载| 久草网视频在线| 性喷潮久久久久久久久| 国产SUV精品一区二区6| 精品無碼一區在線觀看 | 国产成人一区免费观看| 国产无码精品在线播放| 十八禁美女裸体网站| 欧美日本不卡| 狠狠躁天天躁夜夜躁婷婷| 国产aaaaa一级毛片| 中文纯内无码H| 免费xxxxx在线观看网站| 波多野结衣二区|