糞糞糞ネット弁慶

読んだ論文についてメモを書きます.趣味の話は http://repose.hatenablog.com

DeepIntent: Learning Attentions for Online Advertising with Recurrent Neural Networks (KDD 2016) 読んだ

DeepIntent: Learning Attentions for Online Advertising with Recurrent Neural Networks

入力された検索クエリに対して最も適切な文言の広告を出すタスク.
検索クエリおよび広告を単語の系列データとして, RNN などにもとづく neural network に通して適当な空間に写像し,その空間上でのクエリ/広告の内積を計算し,その値がクリックされたペアであれば大きくなるようにする.

モデル

  • 個の単語 から検索クエリ が構成されており,総単語数は であるとする.この時各単語を one-hot-encoding するとクエリは の行列になる.
  • 各単語 次元に word embedding し, とする.これにより,行列は となる.
  • 続いて,各単語の埋め込み について bidirectional RNN (BRNN) を適用し, 次元のベクトルに変換する.これにより,行列は となる.
  • 最後に, mean pooling や max pooling, そして attention (RNNの文脈で用いられるものとは異なり,線形和) を用いて行列を 次元のベクトルにする.
  • この操作を広告 にも適用することにより,広告と検索クエリが同じ次元数のベクトルに変換される.
  • あとは,クリックされた(クエリ,広告)のペア 内積がクリックされていないペア 内積より大きくなるような目的関数 を最大化する.またこの時には 個の negative sampling を行っている.

まとめると -> word embedding -> -> BRNN -> -> pooling / attention -> という流れ.最後の pooling でクエリの単語長 を潰す.

attention の重みはこの作りでいいのだろうかという疑問がある.