Finding Users Who Act Alike: Transfer Learning for Expanding Advertiser Audiences (KDD 2019) 読んだ
Finding Users Who Act Alike: Transfer Learning for Expanding Advertiser Audiences
Pinterest におけるオーディエンス拡張を説明した論文.オーディエンス拡張の論文はあまり見かけないので良かった.
オーディエンス拡張 (あるいは look-alike) は広告を配信したい人から「こういう人に配信したい」というユーザのリスト (seed) を受け取り,それらに類似したユーザに対して広告を配信するメニュー.
一般的には seed ユーザを正例, seed ではないユーザをランダムにサンプリングしたものを負例として教師あり学習を行うらしい.しかしこの方法には
- seed ごと (異なる広告配信ごと) にモデルを学習しなければならずコストが高い
- seed のサンプルサイズが小さい場合に十分な精度が出ない
という問題がある.
提案手法
提案手法では
- seed に依存せず,使い回すことができるユーザの埋め込みを学習する
- その埋め込みにもとづいて近傍探索を行うことで配信対象のユーザを得る
という二段階の手続きを行う.
埋め込みの学習
埋め込みは次の手続きによって構築する.ちなみに,埋め込みはユーザごとに計算するのではなく,「ユーザの特徴量を受け取って埋め込みを得る関数」を学習する.これにより,未知のユーザに対しても埋め込みを得ることができる.
- ユーザに関する特徴量をいくつかの pooling や layer に通すことで user embedding vector を得る
- モデル構造や特徴量について詳細な言及はなし
- Pin をその画像やテキストにもとづいて topic の集合として表現し,user embedding vector と同じ長さの topic embedding vector を得る
- こちらもモデル構造や特徴量について詳細な言及はなし
- あるユーザ が興味を持った Pin の topic の embedding を とし,興味を持ってない topic の embedding を として という損失関数を最小化する.つまりは興味を持っていないペアの内積より興味を持ったペアの内積を大きくするようにする.
- ここで学習される埋め込みを求める関数はどのようなものだろうか.実際に使う際には user embedding を返す関数だけなのでユーザの特徴量表現に行動履歴などが含まれるのだろうか.さすがに属性情報だけではないだろう.よくわからない.
配信対象ユーザの計算
埋め込みにもとづいて seed に類似するユーザを計算すれば終わり.ですが,たとえば seed に多様性がある場合,ナイーブに seed の embedding の平均を使って検索してしまうとどの seed にも似ていないユーザばかりが得られてしまう (どれぐらい差があるのかの offline での検証などは無し). そこで,
- Locality Sensitive Hashsing を用いてユーザの embedding を [tex:2m] 個の Region に分割する
- seed を各 Region に割り当て, Region に含まれる seed の数を とする
- 全ユーザが各 Region にいくつ存在するかを数え とする
- density score とする
- これを m 回繰り返し 個の density score を得る
- Region r に含まれるユーザのスコアを とする
とする.
実験の結果は
ことを示している.