【論文紹介】Heterogeneous Global Graph Neural Networks for Personalized Session-based Recommendation

文献情報

タイトル:Heterogeneous Global Graph Neural Networks for Personalized Session-based Recommendation
著者:Yitong Pang, Lingfei Wu, Qi Shen, Yiming Zhang, Zhihua Wei, Fangli Xu, Ethan Chang, Bo Long, Jian Pei
会議:WSDM 2022

概要

ユーザの過去のアイテム消費履歴が参照できる状況における、セッションに対するアイテム推薦手法HG-GNNを提案。ユーザのアイテムに対する長期的な好みを推定するために、ユーザとアイテムから構成されるグラフを構築してGNNを適用してユーザとアイテムのベクトル表現を求める点に特徴がある。

従来研究との差異

推薦対象となるユーザのセッション履歴を推薦に使う手法は提案されてきたが、本研究は全ユーザの全セッション履歴からアイテム間の遷移パターンを学習する点に違いがある。セッション内でのアイテム隣接関係に加えて、セッション内のアイテムの共起関係も利用している点も従来手法との差異である。

手法

グラフ構築、GNN適用、アイテムの推薦スコア計算、の3つに分けて説明する。提案手法の全体像は下図のようになっている(図は論文より引用)。

グラフ構築

全ユーザの全セッションデータをもとに、ユーザとアイテムをノードとするグラフを構築する(図の「Heterogeneous Global Graph」)。

セッション内で隣接するアイテム間にエッジを張る。エッジは隣接頻度に応じた重みを持つ。セッション内で共起するアイテム間にも共起頻度に応じた重みを持つエッジを張る。アイテム間に隣接関係に基づくエッジと共起関係に基づくエッジの両方が存在する場合は前者のみ採用する。

ユーザのアイテムに対する長期的な好みを捉えるため、ユーザと過去に消費したアイテムの間にエッジを張る。

GNN適用(図の「HGNN」)

グラフ上であるアイテムiにつながっているエッジは、最大で以下の4種類になる。

  • セッション内でiの直前に消費されたアイテムとの間のエッジ

  • セッション内でiの直後に消費されたアイテムとの間のエッジ

  • セッション内でiと共起するアイテムとの間のエッジ

  • セッション内でiを消費したユーザとの間のエッジ

エッジの種類ごとにkホップ先のノードを考慮したGNNを適用することでアイテムiの4種類のベクトル表現を求めたうえで、それらの平均をiのベクトルとする。これでkの値を0~Kとした各場合のiのベクトルが得られるので、さらにそれらの平均をiの最終的なベクトルとする。ユーザuのベクトルについても同様に求める(uとつながるエッジは「セッション内でuが消費したアイテムとの間のエッジ」の1種類のみ)。

アイテムの推薦スコア計算

ユーザuのセッションsに対して推薦する場合、uのベクトル(長期的好みを反映)とsのベクトル(短期的好みを反映)を求めて両者の重み付き和でベクトルを求める。そのベクトルと、各アイテムのベクトルの内積により推薦スコアを計算。

ユーザuのベクトル(長期的好みを反映)は、単にGNNで求まったuのベクトルを使うのではなく、s内の各アイテムのベクトルの重み付き和で求める。その際の重みは、uが好むアイテムの重みが大きくなるようにuのベクトルを使ったattentionにより求める。

sのベクトル(短期的好みを反映)は、セッション内での各アイテムの順番を考慮して、s内の各アイテムのベクトルの重み付き和で求める。その際の重みは、予測により重要な順番のアイテムの重みが大きくなるようなattentionにより求める。

実験

公開データセットであるLast.fm、Xing、Redditの3種類を使用。HRとMRRを指標とした定量評価の他、下図のように推薦対象のセッション内で同一アイテム(①~④)を消費していても、過去の消費アイテムの違いでユーザごとに異なるアイテムを推薦できている結果なども示している(図は論文より引用)。


この記事が気に入ったらサポートをしてみませんか?