CIKM 2019
Please click here for GitHub link.
Introduction
作者提出的觀點:
- 如何從會話中的交互中提取具有代表性的信息來表示用戶的偏好是基于會話的RS的本質(zhì)。
- 用戶在會話中的偏好變化表明压鉴,不應(yīng)將項目簡單地視為時間序列,項目轉(zhuǎn)換模式更為復(fù)雜。
- 計算最后一個項目的相對重要性,會忽略會話中的特定項目轉(zhuǎn)換模式。
- 確定會話中項目的內(nèi)在順序非常重要。這種內(nèi)在順序既不是RNN的直接時間順序懦底,也不是自我注意的完全隨機(jī)性漠秋。
因此笙蒙,本文提出了一個全圖神經(jīng)網(wǎng)絡(luò)(FGNN)模型來學(xué)習(xí)項目轉(zhuǎn)換模式的內(nèi)在順序,并計算會話級表示來生成推薦庆锦。
為了使用圖神經(jīng)網(wǎng)絡(luò)捅位,本文為每個會話建立一個會話圖,并將推薦描述為一個圖分類問題搂抒。為了捕捉項目轉(zhuǎn)換模式的內(nèi)在順序(這對項目級特征表示至關(guān)重要)艇搀,本文提出了一個多重加權(quán)圖注意層(WGAT)網(wǎng)絡(luò)來計算會話中項目之間的信息流。在獲得項目表示之后求晶,本文使用能自動學(xué)習(xí)確定適當(dāng)?shù)捻樞虻?Readout Function 來聚集這些特征焰雕。
Model
Graph Neural Networks
大多數(shù)GNN的工作方式是迭代地聚合來自相鄰節(jié)點的信息。經(jīng)過k次更新迭代后芳杏,節(jié)點的最終表示捕獲了k跳鄰居的結(jié)構(gòu)信息和節(jié)點信息矩屁。其公式可表示為:- 是第層中節(jié)點的特征向量。
- 向第一層輸入的為特征向量爵赵。
- Agg充當(dāng)聚合器來聚合相鄰節(jié)點的特征吝秕。
- Map是將自信息和鄰域信息轉(zhuǎn)化為新的特征向量的映射。
對于圖分類空幻,Readout Function 聚合圖最后一層的所有節(jié)點特征烁峭,以生成圖形級表示:
Weighted Graph Attentional Layer
大多數(shù)的GCN、GAT等只適用于無權(quán)重的無向圖氛悬,本文提出了一種加權(quán)圖注意力層则剃,它在描述WGAT的前向傳播的同時考慮了邊的權(quán)重。其信息傳播過程如下圖所示:
第一層中輸入的特征向量由一個 embedding layer 生成如捅,其中 embedding layer 的輸入為 one-hot 編碼棍现。
首先,需要計算一個自注意力系數(shù):
接著,為了直接比較不同節(jié)點的重要性悲关,使用了一個softmax函數(shù)將系數(shù)轉(zhuǎn)換為跨越相鄰節(jié)點和自身的概率形式:
ATT的選擇十分多樣化谎僻,本文中的選擇為一個使用傾斜為的LeakyRelu作為激活函數(shù)的MLP層,因此 的計算公式為:
之后,應(yīng)用對應(yīng)鄰域的線性組合來更新節(jié)點的特征:
因為多頭注意有助于穩(wěn)定自我注意層的訓(xùn)練挎挖,因此,本文的WGAT應(yīng)用了多頭設(shè)置航夺。
Readout Function
Readout Function 的目的是在對GNN層進(jìn)行正向計算后,根據(jù)節(jié)點特征給出整個圖的表示缭保。
Recommendation
一旦得到了圖級嵌入,就可以用它以及各個item的初始嵌入向量為整個項目集上的每個項目計算得分向量:
最后彻亲,本文在上應(yīng)用softmax函數(shù)將其轉(zhuǎn)換為概率分布形式:
對于top-K推薦,基于選擇所有項目中概率最高的K個是很簡單的吮廉。
Loss Function
本文在和的 one-hot encoding 之間使用了 multi- class cross entropy loss苞尝,其公式為: