2021/09/09 Toward Dynamic User Intention: Temporal Evolutionary Effects of Item Relations in Sequential Recommendation 著者: CHENYANG WANG, WEIZHI MA, MIN ZHANG, CHONG CHEN, YIQUN LIU, and SHAOPING MA
大学: Tsinghua University(清華大学)
ACM Transactions on Information Systems(TOIS) , Vol. 39, No. 2, Article 16, Publication date: December 2020. (ACM Trans. Inf. Syst. 通ってるなら来年学会発表していいよ制度での発表なので,すでに論文誌掲載済 )
選んだ理由
勉強したいけどできていない推薦システム & Knowledge Graph & Self-Attention などいろいろ知りたい知識が書かれてそうだったので勉強も兼ねてみた(大変なことになりました).フーリエ変換がどう使われてるのか気になったのもある
すでにトランザクションに載ってるみたいだしそれなりの品質はあるかなーと
前提
知識グラフ Knowledge Graph (KN) について
(主語 s, 述語 r, 目的語 o) の3つのセット(トリプル / トリプレット)を「関係」と呼ぶ
e.g. ( cellphone, also_buy, cases ): スマホとスマホケースは一緒に買われる関係(補助関係)
(s) -r-> (o) というふうにノード () と辺 --> のグラフ構造として捉えられる(有向 or 無向は場合によるっぽい)
これらの要素をそれぞれうまいことアルゴリズムで有限次元のベクトル空間に落とし込むことを「埋め込み」という
ベクトル空間でどういう値を取るか,要素間の距離はどれくらいか,要素を足すとどうなるか,などのベクトル空間上の距離や演算の構造がそのままセマンティックな構造(意味の近さ,述語関係など)と対応すると嬉しいからそうする
知識グラフに限らず「意味」を扱いたいとき一般的にベクトル空間への埋め込みはよくやられる
word2vec の単語分散表現だと King - Man + Women = Queen みたいなのが有名
空間 is 集合に (距離, 演算) などの構造がはいったもののこと.そこで「良い性質」があるとさらに嬉しい
代数的性質のアレによって計算が嬉しいことになる,同じ手法でも精度が上がるなど
https://gyazo.com/54ee42bae4dd1ad9e05da9e928abb5b2
推薦システムについて
サービス内でコンテンツとして持っているアイテムのデータは膨大すぎる.ユーザにこちらから情報を伝えることで利用を促進したり,便利に使ってもらえる: 推薦が大事
Youtube には毎分 500 時間(30,000分)のビデオがアップロードされている ← 個人の時間で消費不可能.30,000 倍速の再生スピードでやっと新規コンテンツに追いつける.さらに加速していくと思われる.既存コンテンツも見るならさらに早くする必要がある
素朴な推薦: ユーザ全体の人気アイテムをランキングにして見せるなど
けどユーザごとに好みだったりが違うので,「ユーザひとりひとりに合ったランキング」を考えたい(パーソナライズ)
最近はユーザの好みよりももっと深い意図(タイトルにもなっている Intention)を捉えたいというアイデアもある
タスクとしては,次のようにいえる
入力: ユーザのいままでの履歴: いつどんなアイテム(商品・記事・メディア)をタップ・クリック・閲覧・消費したの履歴
この論文だと「インタラクション」と呼んでいる(一般的なのかな)
出力: なにかしらの形式で表示するランキング(順序を持ったコンテンツのリスト)
おすすめ商品リスト,プレイリスト,記事一覧など
イントロ+要約
本論文も推薦の新システム提案について述べている
前提として,推薦というタスクを3つのジャンルで説明している(直交してるわけではない)
Sequential Recommendation(ユーザの過去履歴遷移を用いた推薦)
ユーザの過去の行動(インタラクション)の遷移を活用して,現在のユーザの意図(何をしたくて利用しているのか・回遊しているか?など)を予測し,それにあった適切な推薦をする
素朴なのだとマルコフ連鎖とか:次は何%の確率でここに遷移しそう(ページなりアイテムなり),みたいな予測
ここの遷移履歴をうまいことベクトル空間に埋め込んでディープでポンするのが主流
RNN/CNN でベクトル列にエンコードできるとうれしい.ベクトル列を入力としてタスクを解くのはまさに Transformer などの NLP で発展してきた既存形式に帰着されるから.
表現力は非常に高いが,外部知識がない(KG との対比かな)ためユーザの意図をうまくモデル化できず,ほとんどの手法が解釈可能性の問題を抱えている
Knowledge-enhanced Recommendation(知識により精度を高める推薦)
ユーザが行動対象とするアイテム(商品なり記事なり)には,アイテム間の相互関係がある.これを知識グラフとして構築する
構築したグラフを元に埋め込みを行い,そうしてできたベクトル列を推薦タスクに用いる
たとえばユーザの履歴からアイテムをベクトルにすれば,ベクトルの列を作れる.これを入力としてタスクを解くのはまさに Transformer などの(ry
グラフにユーザを入れ込む研究もある(ほとんどはアイテム-アイテム間のみ)
推薦タスクと知識グラフの接地面がアイテムの埋め込みベクトルだけであり,アイテム間の相互関係情報が失われている
Time-aware Recommendation (ユーザの行動を時間情報まで含めて考える推薦)
ユーザの好みやアイテムの人気は動的に変化するという前提を置く(コンセプトドリフト)
そのため,履歴の時間情報を取り入れた推薦をするのが重要
主にふたつトピックがある
時間を文脈情報として捉える(ある種のクラスタリング?)
ユーザがどういう状態か・意図しているかを単位時間ごとに区切って推理していく
ただ,将来の行動予測について問題がある
時間効果を減衰関数のモデリングによって推定する
過去のアイテムの重要性・興味・価値などは減衰していくのでそれを関数として表現
事前定義された関数形式(何かしらの分布表現)が必要で,柔軟性がない
これらを総合的に踏まえて足りていないのは,次のような点であると指摘している
アイテム間の関係強度を推薦にうまく活用する点
また,それらの関係は時間によって動的に変化するという点
例えば AirPods は iPhone と「補完」的な関係にあり,かつ関係強度が強い
なので iPhone の利用は AirPods の需要を大きく促進する
HUAWEI のスマホでもポジディブな効果はあるっちゃああるだろうけど,関係強度は相対的に低い
携帯電話を新しく買えば,「補完品」のアクセサリーに関する需要は短期的に急増する
ただ,「代替品」となる携帯電話は買う必要がなくなるので,長期的にインタラクションは減ると思われる
単に時間効果,といってもアイテムの関係によって分布は違ってくるはず
提案するモデル: Knowledge-aware Dynamic Attention Model
https://gyazo.com/938a839e9a12b8b8001c0b02163e877b
ぱっと見複雑だけど,やってるのはあるユーザとその履歴があるとき,ターゲットアイテムのランキングスコア(そのユーザからみたときのいまの意図での評価みたいなもの)を出すだけ -> ターゲット候補を複数計算してスコアの高いものを並べるランキングなどにすれば推薦できる
二つのモジュールがある
1. アイテムの関係をモデリングする(図の下部分)
データから,ユーザのインタラクトするアイテムとその関係についての知識グラフを構築する
そしてグラフからアイテムをベクトル空間に埋め込むための学習をする
2. ユーザの意図をモデリングする(図の上側)
2-1. それぞれの関係に対して特化した履歴の埋め込みを導出していく(関係の数だけ埋め込みがある)
インタラクション履歴の動的効果...関係強度と時間発展モデル(真ん中の Relational Dynamic History Aggregation)
ターゲットアイテム$ i に対して履歴からある関係タイプ$ \tauに固有の履歴埋め込みが計算される( eq. (3) )
$ \bm{s}_{i,\tau} = \sum_{(j,t_j)\in S^T_u}\text{INT}(i,j,\tau)f_{\tau}(\Delta t_n)\cdot \bm{q}_j
過去のアイテムそれぞれについて,埋め込みベクトル $ \bm{q}_jに,対象としているアイテムとの関係の強さ$ \text{INT}(i,j,\tau)や時間減衰効果$ f_{\tau}(\Delta t_n)をかけて足し上げた総和
関係が強いほど$ \text{INT}(i,j,\tau)が高い
これが 1. のアイテム関係モデリングで計算されているのがポイント
時間が直近なほど $ f_{\tau}(\Delta t_n) が高い(離れるほど減衰していく)
この減衰モデルが画一的ではなく,(フーリエ変換の)周波数パラメータをいじって関係によって適応的に変化していけるというのがポイント
ターゲットアイテムと,あるアイテムとの時間間隔は対数変換で正規化(ロングテール分布を指すから)
$ \Delta t_n = \max (0,\log_2 (\Delta t/60))
↑ 2 つの重みともに大きい(関係が強く適切な推薦タイミングにある)ようなアイテムの埋め込みベクトルの和に近くなるように設計されている
履歴シーケンスからアイテムの関係という側面に基づく何かしらの意味を抽出しているといえる
2-2. Self-Attention で異なる履歴埋め込みの相互影響を見て,最終的な履歴表現を導出(上の Self-Attention & Pooling Layer)
ざっくりのお気持ちとしては,学習していくとどの関係固有の履歴埋め込み$ \bm{s}_{i,\tau}が有効かわかるようになり,その埋め込みたちからなる値が強く出るようになるイメージ
https://gyazo.com/a5dfd41d28c438b071a8dfda6bfa2f7d
2.1 について詳しく
$ \text{INT}(i,j,\tau)について
一般的に知識グラフの埋め込みタスクでは,関係 $ (i,j,\tau)の信憑性を測るスコアとして $ \text{Rel}_{r}(i,j)が学習される
$ (i,j)の組に対する値なので行列として見ていいと思う
このスコア関数を用いて関係強度を計算する.履歴の中の全アイテム中でそのアイテムが Rel スコア的にどれくらいの割合を占めるか(関係の信憑性が相対的に高いか)
$ \text{INT}(i,j,\tau) = \frac{\exp(\text{Rel}_{r}(j,i))}{\sum_{j'\in S^T_u}\exp(\text{Rel}_{r}(j',i))}
$ \text{Rel}_{r}(i,j) = \bm{q}^T_i \text{diag}(\bm{r})\bm{q}_j \qquad (\bm{r} = \bm{x}_{r} + \bm{z}_v)
行列近似計算
$ \bm{q}_i, \bm{q_j}はそれぞれアイテム$ i,jの埋め込み
$ \bm{x}_{\tau}は関係タイプの埋め込み,$ \bm{z}_vは関係値の埋め込みとしている
関係タイプ$ \tauが「ブランド」だったとして,その関係値$ vは「Apple」などの具体的な値
also_buy, also_view などの値のない関係タイプには None 値が振られる
学習としては,観測されたトリプレットは $ \text{Rel}_r (i,j)を最大化し,観測されていないトリプレットは最小化する.これに基づいてペアワイズ・ロスが最適化される(↓に説明あり)
$ \mathcal{L}_{\text{rel}} = -\sum_{(i,j,r)\in\mathcal{R}} \log \sigma (\text{Rel}_r(i,j) - \text{Rel}_r(i^-,j^-))
関係の集合 $ \mathcal{R}の要素それぞれについて,先頭または末尾のアイテムをランダムに破損し,$ (i^-,j^-,r)\notin \mathcal{R}を確認する.破損する確率は 0.5
時間進化について
各関係タイプやデータセットで時間的進化はまったく違う形になる(論文中に検証あり)
なので,関数形式を事前定義すると一般化するのが難しい
そこで関係タイプ$ \tauごとに占筮的な時間減衰関数$ f_{\tau}(\Delta t_n)があると仮定する立場をとる
固定サイズのベクトルとしてエンコードすることを考えると,フーリエ変換による複素周波数領域での表現が良さそうなベクトル埋め込みといえる(周波数埋め込みと呼んでいる)
ランダムに初期化しておいて,学習で最適化していける
実際に減衰関数が必要なときには,学習した周波数上のベクトルから IDFT (逆変換) すると時間関数 $ f_{\tau}(\Delta t_n)として利用できる(実際には離散データ)
データセット
MovieLens-100k: 映画に対するユーザの評価・ウィッシュリスト・タグ,ユーザとアイテムの側面情報
映画の年号やジャンルに基づいたアイテム関係を抽出する
Amazon Electronics: 1996/05 ~ 2014/07 までに Amazon.com から収集された,商品の評価,レビュー,およびメタデータの大規模なコーパスを含むEコマースのデータセット
also_buy, also_view, buy_together などの自然なアイテム関係を含む
RecSys2017: 仕事推薦のためのコンペティションでのデータセット.XING.com に掲載された求人情報に対するユーザのインタラクションが含まれている
コンペのオフラインフェーズでのクリックレコードを用いる.アイテム関係を生成するために,求人情報のキャリアレベル,専門分野,産業,地域など用いる
学習について
マルチタスク学習フレームワークを用いて,推薦タスクと知識グラフの埋め込みタスクを共同で学習
ペアワイズ(サンプルペアから損失を計算する)ランキングロス最適化をする
$ \mathcal{L}_{\text{rec}} = -\sum_{u\in\mathcal{U}} \sum^{N_u}_{i=2} \log \sigma (\hat{y}_{u,i} - \hat{y}_{u,i^-})
$ \sigmaはシグモイド関数.各学習インスタンスに対してネガティブ(未観測)アイテム $ i^-\notin S_uをサンプリングする.
$ \sigma(\hat{y}_{u,i} - \hat{y}_{u,i^-})が正なら「ユーザ$ uがアイテム$ i^-よりも$ iを好む」みたいなこと
これが「すべてのユーザのすべての履歴アイテムの合計値として大きくなる(既知のアイテムをランク入りさせる)」ように働く?
$ \mathcal{L}_{\text{rel}} = -\sum_{(i,j,r)\in\mathcal{R}} \log \sigma (\text{Rel}_r(i,j) - \text{Rel}_r(i^-,j^-))
$ \sigma(\text{Rel}_r(i,j) - \text{Rel}_r(i^-,j^-)) が正なら「関係タイプ$ \tauではアイテム間関係として負例$ (i^-,j^-)より既知の関係$ (i,j)のほうが信憑性がある」みたいなこと
これが「知識グラフのトリプレットの要素の合計値として大きくなる(既知の関係の信憑性が高くなる)」ように働く?
ジョイント目的関数
$ \min_{\Theta}\mathcal{L} = \mathcal{L}_{\text{rec}} + \gamma \mathcal{L}_{\text{rel}} +\lambda\| \Theta \|_2
$ \Thetaはパラメータ空間,$ \gammaは知識グラフの埋め込みタスクの係数,$ \lambdaは正則化係数
https://gyazo.com/95476026275af6f126f90e80e647cd66
データセットとその関係タイプごとに,履歴から時間間隔の分布を出す
繰り返し述べられている重要な点: この時間間隔の分布が関係タイプ・データセットで異なる
データセットにおける,インタラクション(履歴)とその近傍にある別の履歴のうち直近の関係アイテムとの間の時間間隔の分布
MovieLens-100k...指数分布っぽさ.関係性のある映画について連続でインタラクトする.自分の興味に基づいて同じジャンル・年代などで分単位での割合が高い
Amazon Electronics...歪んだ正規分布っぽい(平均は約半年).ECサイトで関連アイテムを短期間で継続して消費しないだろうから妥当
RecSys2017...複雑なパターンがある.一回のセッションで同じキャリアレベル・地域の仕事を短期的にクリックする.また,中期的には以前の求人情報を再確認したり比較したりする.長期的には何度も面接を受けた後,関連する求人情報を閲覧する
https://gyazo.com/6ba5d5359be00b1aadda5b27b8f58c54
関係タイプごとの違いもある
Amazon Electronics...also_buy, also_view だと also_view の方が負の歪度(左テール)が強い.
also_buyのピークは半年〜1年,also_view は約2年が中心
https://gyazo.com/e7267529b0a76f0638914c6b1466dd09
評価
leave-one-out 戦略に従い,各ユーザの最新インタラクションをテスト,2番目に新しいアイテムを検証に,残りのアイテムをトレーニングに使用する.ほか 99 個の履歴に含まれていない(「否定的な」)アイテムをランダムにサンプリングし,グランドトゥルースとなるアイテムの100個とあわせてランキングがどうなるかを見る.
Hit Ratio(HR@K): グランドトゥルースなアイテムが Top-K 推薦リストに表示されるかどうか
$ |\mathcal{U}|人ユーザがいたとして,何人のグランドトゥルースなアイテムがちゃんと Top-K 入りしたか
Normalized Discounted Cumulative Gain(NDCG@K): グランドトゥルースなアイテムのランキング一に関係する
$ |\mathcal{U}|人ユーザがいたとして,グランドトゥルースアイテムが Top-K 入りしたとき $ 1/\log_2(g_u+1)点もらえるとすると平均点はどうなるか
全てのモデルは、ニューラルモデルの学習に有効であることが示されている Adam optimizer によって最適化されています※。検証データセットの NDCG@5 が 10 回のエポックで改善されない場合、早期停止を採用しています。公平に比較するために,バッチサイズは256,埋め込みサイズは64,注目の隠れサイズは10とした.すべてのモデルにおいて,最大 20 個の最新のインタラクションを履歴シーケンスとみなした.
検証セットでのパフォーマンスに応じてハイパーパラメータを調整します。すべてのベースライン手法は,最適な性能を得るために注意深く調整されています.学習率 $ \eta は,$ [10^{-2}, 10^{-3},10^{-4}] の範囲で調整されています.L2 正規化係数 $ \lambda は$ [10^{-4},10^{-5},10^{-6},0] の範囲で調整されています。SASRec, TiSASRec, KDAでは、Self-Attention 層の数を $ [1,2,3,4,5] の範囲で設定しています。RCF と KDA では、知識グラフ埋め込みタスクの係数 $ \gamma を $ [0.01, 0.1, 1, 5, 10] の間で調整しています。KDA の場合、DFT のポイントは 64 に設定されています。スコア関数は DistMult、プーリング法は average pooling がデフォルトで使用される。すべてのパラメータは通常,平均値 0,標準偏差 0.01 で初期化される.いくつかの主要なハイパーパラメータの感度については、セクション 6.5 でさらに検討します。すべての実験は,1 台の GTX-1080 Ti GPU を用いて行われました.
評価1. パフォーマンス比較
既存手法たち
BPR. この手法は,ベイジアンパーソナライズドランキングという目的関数を用いて,行列分解モデルを最適化する
FISM. 因子分解に基づく逐次推薦モデルであり,インタラクトしたアイテム埋め込みの平均集約を行う
NARM. Gated Recurrent Units の隠れ状態に Attention メカニズムを適用したニューラルモデルであり,逐次依存性をより良く表現することができる
SASRec. この手法は,Self-Attention を利用して,履歴上のインタラクションの間の相互影響を利用するもので,最先端のニューラルシーケンシャルモデル
TiSASRec。SASRec を改良したもので,Self-Attention を行う際にインタラクション履歴間の時間間隔を考慮しています.
TransFM. 翻訳ベースのアプローチと既存手法 FM を組み合わせた knowledge-aware 型の手法,時間的な情報を文脈の特徴として取り入れ、時間を意識した推薦を行うことができる
Chorus. アイテムの関係性と時間的進化を持つ最新の手法である。しかし、以前に関係的な消費があったかどうかだけを考慮しており、時間的減衰関数の手作りの形が必要である。
RCF. このモデルは、2レベルのニューラル・アテンション・ネットワークを用いて、逐次推薦にアイテム関係を組み込む共同学習フレームワークを提示している
比較: 全部踏まえてるのは自分だけですよということ
https://gyazo.com/3a6fcbd9c275fd9b82a99a9eaea8a768
提案した KDA モデルの最後で得られたユーザの意図の取得方法(プーリング方法)を若干変えたものを3つ比較している
データセットごとの結果比較
https://gyazo.com/b3200e60485e668d8e47ce9c2ec119ed
https://gyazo.com/ca142904449fdfdb2a6530b0251f3a38
最も優れた手法は太字で、2番目に優れた手法には下線が引かれている。**は最強のベースラインよりも有意に優れていることを意味する(p<0.01)。"Improve. "は,対応するベースラインに対する最良のKDAモデルの相対的な改善度を意味する(すべてのメトリクスで平均化).
実験考察 (論文引用)
全てのベースラインの中で,RCF は,ターゲットを意識し,知識を強化した履歴集約により,全般的に有望な性能を達成している。密なデータセット(MovieLens-100k)では、SASRec と TiSASRec が、連続した相互作用の潜在的な影響を捉える能力が高いため、優れた結果を得た。
アイテム関係に関しては、知識認識手法(TransFM、Chorus、RCFなど)は、特に Amazon Electronics において、従来の逐次モデルを概ね上回っている。しかし、RecSys2017 では、アイテム関係はあまり役に立たないようだ。
時間情報も重要な役割を果たしており、TiSASRec の性能は 3 つのデータセットすべてにおいて顕著.TiSASRec は RecSys2017 で最強のベースラインとなったが、これはセクション 4 で示したこのデータセットの複雑な時間的パターンのためと思われる。しかし、TiSASRec は過去のインタラクション内の時間間隔のみを捉えており、ターゲットアイテムまでの時間的減衰を無視している。また、Chorus はアイテム関係と時間的ダイナミクスの両方を導入しているにもかかわらず、Amazon Electronics でしかうまく機能していないことは注目に値する。その主な理由は、Chorus の時間的減衰関数が事前に定義された関数形式を必要とし、異なるドメインに対してスケーラブルではない可能性があるから.
我々が提案する KDA モデルは、すべてのデータセットにおいて、ベースラインの最良の手法よりも大きなマージンで改善している。その理由は以下の 3 つの部分
(1) RCF のようにシーケンスを直接分割するのではなく、過去のインタラクションをソフト的に集約するために関係強度スコアを使用している
(2) 時間的進化の効果をモデル学習に適応的に組み込むために、フーリエベースの方法を考案している
(3) 関係間の相互影響は、self-attention メカニズムを用いてさらに探求される
また、プーリング法の性能はデータセットごとに異なり、最良の選択は一貫していないことに気づく。平均プーリング法は一般的に有望な結果を得るが、最大プーリングは MovieLens-100k では非常に強力.また,アテンションプーリングは,RecSys2017 では他のものより少し良いが,他の2つのデータセットではパフォーマンスが悪い(それでもベースライン法よりは良い).結果として、具体的な手法はデータセットに応じて決定する必要があり、それはデータの規模や関係数に依存する可能性がある。我々の経験によると、平均プーリングと最大プーリングは一般的に安定しているため、以下の実験ではデフォルトで平均プーリングを使用している。
評価2. 時間減衰のインパクト
時間減衰機能を外した状態のアーキテクチャの精度が落ちていることを示した
https://gyazo.com/7fcf9369d7af702b098649977a43f178
提案手法だと時間発展の分布の近似がよくできていることを示した
https://gyazo.com/910ab49cf19c27411fdb54710bbf4ac1
評価3: アイテム関係のインパクト
アイテム関係の強さを外した状態のアーキテクチャの精度が落ちていることを示した
https://gyazo.com/9ac03f924330cf4262ccc668c4959b4f
評価4: ハイパーパラメータ解析
マルチタスク学習時の $ \gamma : 知識グラフ埋め込みタスクの係数 の影響
https://gyazo.com/8a726ae231c0b58fac354bdd9c0588a3
データセットごとに 0 よりも最良のパラメタが存在する(一旦上がる,そして下がる).
つまりグラフ埋め込みタスクと共有スコア関数で緊密に結合する価値がある
どこが極かはデータセットによりけり.大規模で品質の高い Amazon Electronics だとグラフのデータの価値が大きいので大きくしたときの貢献度が高いと予想
Self-Attention 層のレイヤ数の影響
https://gyazo.com/a6446c3fe1a09c2b027ec47f4e03e79f
0 to 1 で大きな向上が見える.基本的に上げていけば精度も上がる
既存手法 SASRec だと途中から下がる
特に大規模なデータセット
DFT 点数 $ N の影響
https://gyazo.com/e291d04d7f04489db92d211aef3fe338
あまり敏感ではない.少し小さくても大きくても推定できている
議論
ユーザの長期的嗜好
本研究のメインスコープはユーザの短期的な意図のモデル化
現在のユーザの埋め込みは十分じゃなく,協力でもない
GNN が長期的なユーザ嗜好の埋め込みに有効らしいので,よりよく組み合わせられるかも
アイテム-アイテム関係の制限
本研究では,関係はアイテム-アイテム間にしか現れないとした
この仮定は少し難しい
モデル効率
本提案モデルでは,各ターゲットアイテムごとに履歴表現(ユーザの意図)を毎回作る.これは単純な内積計算に基づく方法より時間がかかる
なので KDA を用いるなら大規模なアイテムから候補を検索していくより,きめ細かな(ランキング掲載候補アイテムの限定された)ランキング構築に適している
ただ最近のターゲットを意識した RCF, Chorus などに比べても,モデルの計算複雑さはまだ許容範囲内
さらなる効率化のためのポイントは関係タイプの数 $ M
これの回数分履歴を集計するし,Self-Attention につっこむベクトルの数もこれに対応しているから.
安直に全部の関係タイプをつっこむんじゃなくて,ここも適応的に選択して絞れると効率上がるかも
感想
:benkyoninaru:
ひとつのモデルを通じて推薦へのイメージが持てた
ランキングって何に使うんだろうっていう基礎のところで引っかかっていた...
アイテムの埋め込みに関して,社内にユーザデータをもつ側としてはアイテム埋め込みを全部ディープでやるより Knowledge-aware に知識グラフを構築して関係を織り込んで埋め込むと性能が上がるというのは嬉しいかも
外部知識を Web からクロールして,それが活用できたりすると拡張性があっていいなあ
GTX-1080 Ti 一台だけでできるのは優しいのではとおもった(10万円前後?)
学習にどれくらいかかったかは書かれていないけど
画像処理とかだと地獄そうなので
ユーザの埋め込みとか,関係タイプ,関係値の埋め込みはなんか言及されずにサイレントで埋め込まれてたけどどうやったんだろう
既存の有名な手法がある or それも学習対象かなあ