Slide 1

Slide 1 text

Multi-Behavior Hypergraph-Enhanced Transformer for Sequential Recommendation (KDD'22) 読む人: @cocomoff Feb. 27, 2024 (マニアックすぎるので、数式の細かい読解まではやっていません…)

Slide 2

Slide 2 text

概要 多数の振る舞い (Multi-Behavior) が含まれる系列推薦では、長短期のアイ テム間の関係性を考慮しながら、次のアイテムを推薦する必要がある KDD'22では、アイテム間のハイパーグラフとTransformerを適用して、高精 度に推薦する手法 (MBHE) を提案した コンセプト (TKDEの別の論文より拝借)

Slide 3

Slide 3 text

結果の表 (一部) 2つの要素 (グラフ構造&Multi-Behavior) をうまく併用した コンセプト (TKDEの別の論文より拝借)

Slide 4

Slide 4 text

結果の図 (一部) ユーザ毎に振る舞いの関係性や、系列をいい感じに見る仕組み (fine- grained length )、対象とする振る舞い毎の差、などが観察できる コメント: これだけ見ても意味分からんわ… 本文図6 (いろいろな重みの観察)

Slide 5

Slide 5 text

提案手法のやりたいことのコンセプト図 (載せただけ) コメント: 特に情報量なし… 本文図1 (a)コンセプト (b)長期・短期に関する重みの違い

Slide 6

Slide 6 text

提案手法のコンセプト図 構成要素 (a) 埋め込み (b) 低次元埋め込み (Transformerなどを楽にする) (c) (ハイパー)グラフでアイテムなどの情報を集約して伝搬 本文図2

Slide 7

Slide 7 text

はじめに & やりたいタスク 注意事項 細かい数式の解説は全部やりません 無限に系列推薦の手法が世の中にあり、マニア以外興味ない… 系列推薦 ≒ 系列予測なので、 似たアイデアはどこかで使えるかも?ぐらいの気持ちで説明します 所与: 振る舞いラベル付きデータ 全アイテム 、全ユーザ ユーザ のログ 目的の振る舞い (target behav.) とそれ以外 (aux. behav.) がある タスク 入力: 出力: target behavior (e.g., 購入) なアイテム を予測する (ような モデルを得たい、ということ)

Slide 8

Slide 8 text

手法の説明(1): 埋め込み 全ては埋め込みからはじめる 系列 中のアイテム の 特徴ベクトル アイテム 、振る舞い 、位置 の要素和 それぞれ 次元に埋め込みする 長さ の を表現する行列 を料理する (e.g., Attention, Transformer) どこかで見覚えのある式 アイテム数 がヤバそうな気配がある (行列積) Transformer を軽くする提案は色々研究されている (はず) 今回も低ランクな Self-Attention モジュールを採用する

Slide 9

Slide 9 text

手法の説明(2): 低ランク Self-Attention 学習可能な行列: を用いて とかは前ページの とかの意味です (learnable weight mat.) 論文による解説 変換行列 が定義できる (省略) ( )-次元のkey/valueに相当する を ( )-次元の 低ランク埋め込み に変形して、 サイズの計算を避ける

Slide 10

Slide 10 text

手法の説明(3): 短期・長期パターンの考慮 系列の短期・長期パターンを考慮して aggregation する 簡単な例: 長さ の列に対して、 ずつ移動平均を取る 式: 論文の表記 はあまりよく分からないけど… に集約されているので、ここにもself-attentionを使う こちらのQ/K/Vの重みは適当な型でいい感じに… ( に応じて) コメント: ギュっとしたらここまではすぐできる (たぶん)

Slide 11

Slide 11 text

続き ここまでで計算したもの : 低ランク埋め込みした情報 : 短期・長期を見た情報 ノリ: 3つの行列を列方向にconcat ( ) して 学習可能な を通す これを1つのヘッドとして、複数用いる ただし 最後に FFN と活性化関数 GELU を通してエンコード完了 コメント: ここまでは Transformer しただけとも言える(?)

Slide 12

Slide 12 text

寄り道: グラフ構造の利用 トピック2: グラフ構造を利用するとは? 何らかの方法で構築したグラフ構造から、埋め込みベクトルを集約したりし て、新しい特徴ベクトルにする枠組み (e.g., GNN) とあるMDPI論文のグラフィカルアブストラクト (コメント: こういうタイプの研究 (e.g., グラフの作り方) も無限にあるので本当にオタク以外どうでもいい…)

Slide 13

Slide 13 text

手法の説明(4): Hypergraph-Enhanced Features 提案手法ではハイパーグラフを使う: 隣接 (普通の辺) より高次の関係性を使 いたいから (コメント: ちょっと珍しい (かも)) 提案の超辺構造 (1) 長期間の相関関係によるもの (下) (2) アイテム自身のmulti-behaviorによるもの (上) 本文図 (コメント: 図だけだと、何が言いたいのか最初まったく分からん…→次ページへ!)

Slide 14

Slide 14 text

参考: グラフとハイパーグラフ

Slide 15

Slide 15 text

続き 提案手法 列 に出現するユニークなアイテム数の超辺を考える 超辺 (ユニークなアイテム に対応) は、 別に定義する重み (略) が大きい順に 個の と超辺をつくる 二部グラフっぽい情報は隣接行列 で表現できる コメント: なので一見、どこがハイパーグラフかよく分からなかった これを2つ作る ( ) ユニークアイテムが2つ (灰色・オレンジ)なので、こうなる (たぶん)。 点線は超辺の関係性を二部グラフっぽくかいたもの (たぶん)。同じ色しかつながってないのはたまたま (たぶん)。

Slide 16

Slide 16 text

続き ( ) から2つの重み行列を持つので、くっつけて とする ハイパーグラフと行っているが、要するに2部グラフ (アイテムと超辺) グラフなので、思考停止してmessage passingする アイテム 超辺、頂点 アイテム Hypergraph conv. layer と呼ばれているらしい (なんだそりゃ…) 普通のGraph conv. layerと見た目は一緒 (数式書くのが辛くなった): 何層かpassingして、 を求める 一旦雑に振り返る 持っているもの Transformerっぽい構造から埋め込んできた ハイパーグラフから埋め込んできたもの データが2種類ある (data from different view、と呼ばれている) 2つあるので、重みつけてまとめる (cross-view aggregationと呼ぶ) 何か埋め込みベクトルが出てくるので、クロスエントロピー学習する

Slide 17

Slide 17 text

提案手法のコンセプト図 (振り返り) 構成要素 (a) 埋め込み (b) 低次元埋め込み (Transformerなどを楽にする) (c) (ハイパー)グラフでアイテムなどの情報を集約して伝搬 本文図2

Slide 18

Slide 18 text

実験 よくあるデータセットで実験

Slide 19

Slide 19 text

実験結果 (一部のみ)

Slide 20

Slide 20 text

実験結果 (ablation) それぞれを引き算した結果

Slide 21

Slide 21 text

viewの重み と のcross-view aggregation の寄与 系列的な情報 (Transformer部) と、グラフ情報でどちらが寄与したか

Slide 22

Slide 22 text

手法の性能と系列の長さの関係 正直あまりよく分からない… Groupは長さに応じて5つぐらのクラスタで実験した、という意味らしい

Slide 23

Slide 23 text

HRと学習エポック 序盤から性能が良い LightGCNとかのシンプルモデルじゃないので結構ムズそうだが、学習が 早いのは確かに良い気がする

Slide 24

Slide 24 text

ケーススタディ (再掲) 言えそうなこと 2つのaggregationパラメータ で特徴が違う behaivor間と個人間で特徴が違う コメント: 何が嬉しいのか分からん…