【論文紹介】Latent Relational Metric Learning via Memory-based Attention for Collaborative Ranking (WWW2018) - 1月 09, 2020 こんにちは、ぐぐりら(@guglilac)です。 今回は、Collaborative Metric Learning (CML)を改善したLatent Relational Metric Learning (LRML) モデルの論文を読んだので、要点をまとめます。 CMLについてはこちらに詳しく解説しています。 【論文紹介】Collaborative Metric Learning (WWW2017) ## 概要 CMLは埋め込み空間先が制限的なため、ログの個数が増えるほどuser-itemペアが同じ点に埋め込まれやすくなるという欠点がある。本研究ではログに出現したuserとitemを近づけるのではなく、user vectorとlatent relation vectorの和とitem vectorを近づけるように学習するLRMLモデルを提案。latent relation vectorはMemory-basedな注意機構(LRAM)により算出。 ## Collaborative Metric Learning (CML)の問題点 CMLでは観測されたuserとitemのペアの距離より未観測のペアの距離を遠ざけるようにembeddingを学習しますが、 観測されたログが多いと近づけるべきuserとitem間の条件が多くなってしまい、観測されたuserとitemを同一の点に埋め込むようになってしまうという弱点があるとのことです。 CMLはill-posedな問題という指摘もしています。 変数の個数(embeddingの要素数)に対して、観測されるuser-itemのペアがとても多いので、近づけるべき組を制約としてみると制約の個数が多すぎてしまい、問題が退化しているような状態になるのだと考えられます。 個人的には、同一の点には埋め込まないんじゃないの?(全ての条件にマッチするような埋め込みを探すのは難しそう、局所解多そうなどの感想は持つけれど)と思うのですが、どうなんでしょうか。 実験で実際にCMLで得られるembeddingがとても制限的であること、およびLRMLがそれを解消できていることを示してくれているのかと思いきや、特に言及もないのでモヤモヤが残る論文でした... ## Latent Relational Metric Learning (LRML) LRMLでは、userとitemのembeddingをそのまま近づけるのではなく、代わりにlatent relation vectorというものを導入します。 そして、user vectorとlatent relation vectorの和とitem vectorを近づけるように学習します。 図に表すとこういう感じです。 latent relation vectorは、Memory-basedなAttention機構を用いて作ります。 NLP界隈から着想を得たといっていますが、確かによくみる形です。 userとitemのembeddingを受け取って、attentionベクトルを作ります。 具体的には二つのembeddingの要素積をとって線形変換してsoftmaxをかけます。 で、memory行列と出来上がったattentionベクトルを作用させて一本の latent relation vectorを作ります。線形の重み付き平均のようなものです。 Lossの部分はCMLの距離関数のところをuser vectorとlatent relation vectorの和とitem vectorの距離に変えただけです。あとrank-wiseにpenaltyの大きさを変えるのも今回はやっていないようです。 ## 実験 * 精度が良くなった * attentionの可視化 * relation vectorについて 精度が良くなったはまあいいとして、下二つのやっていることがイントロと噛み合ってないように見えます。 attentionはメモリ行列のどこを指しているかを表すのですが、論文中ではMovieLensを使って可視化していて、 * ratingごとにattentionベクトルの平均を並べた * ログの時刻ごとにattentionベクトルの平均を並べた という二種類の図を出しています。 言いたいこととしては、 * ログの時刻もratingも学習に使っていないのにattentionベクトルがそれぞれに応じて変化している! らしいのですが、そんなことイントロで仮説として述べていないし、その前にCMLでは本当に仮説通りembeddingが密集してしまっているのかを確認する方が先ではないかと思うのですが、何も述べられてないです。 relationベクトルについては、近いrelationベクトルをもつ二つのuser-itemペアを持ってきて、それぞれのuserやitemの特徴が似ているのかどうかを調べたそうです。 user ageであれば、その二つのペアに出てきたuserのageが一致している率を調べた、みたいな感じ。 ランダムに持ってきたペアより、relationベクトルが似ているペアの方が一致率が高い、ということがわかります。 「このageとかの特徴は学習には用いていないのに、relationベクトルが似ているとペアの特徴も似るということは、ペアごとに関係を学習できている!」ということが言いたいみたいです。 ## まとめ CMLの持つ、userとitemの埋め込み先が制限的であるという問題点に対処するために、latent relation vectorとuser embeddingの和がitem embeddingに近くなるように学習するLRMLを紹介しました。 若干問題意識と検証方法でズレがあるように思えるのですが、もし読み間違い等ありましたらご指摘よろしくお願いします。(Twitterでも、コメントでも!) ありがとうございました。 この記事をシェアする Twitter Facebook Google+ B!はてブ Pocket Feedly コメント
コメント
コメントを投稿