a gang of bandit

16
A Gang of Bandis by Nicolo Casa-Bianchi, Claudio Gentile Yoshifumi Seki(Gunosy Inc.) 2014.1.23 NIPS読み会

Upload: yoshifumi-seki

Post on 29-Jun-2015

3.637 views

Category:

Technology


9 download

TRANSCRIPT

Page 1: A gang of bandit

A Gang of Bandis by Nicolo Casa-Bianchi, Claudio Gentile

Yoshifumi Seki(Gunosy Inc.) 2014.1.23 NIPS読み会

Page 2: A gang of bandit

本日の発表で分かること •  この論文で挑戦している問題

o  bandit problemとは? o  contextual bandit problemとは? o  Gang of Banditでは何を目指しているか?

•  どのように問題を解いたか? •  結果どのような成果を上げることができたか? 本日の発表で分からないこと •  なぜこの方法でうまくいくのかの数学的解釈 •  なぜGangなのか

Page 3: A gang of bandit

Bandit Problemとは

• 探索と活用 • スロットマシンが目の前にあったとき当たりやすい台にどのようにベットすべきか?

Page 4: A gang of bandit

Contextual Bandit Problemとは

• 調べる対象がそれぞれcontextを持つ o  特徴量から得られる報酬を予測しながら行動し,その結果から予測モデルを修正していく

Page 5: A gang of bandit

学習のプロセス

• ある時間tにユーザuiに対してアイテム集合C (x1,...xct)が提示される

• システムはロジックに基づいてあるアイテムを選ぶ

• ユーザの行動からシステムはその選択に関する評価値を得る(-1, 1)

• 評価値を元にユーザのfeatureを更新する

Page 6: A gang of bandit

LinUCB

Page 7: A gang of bandit

研究の概要 •  Contextual Bandit ProblemをSocial Networksで表現する o  複数のユーザの興味関心(feature)を特定したい

§  アイテムを推薦したい o  ユーザ間にはエッジが存在する

§  重みなし無向グラフ o  隣接するuser間でfeatureは類似していると仮定

•  LinUCBという Contextual Bandit Problemの代表的な手法をネットワークに拡張 o  network上のcontextual banditはこれまで実行されていなかった

Page 8: A gang of bandit

提案手法: GOB.Lin

L: Graph Laplacian

クロネッカー積

Page 9: A gang of bandit

Graph Laplacian

• 対角成分は各ノードの次数 • エッジが存在する箇所には-1

Wikipediaより

Page 10: A gang of bandit

クロネッカー積 Wikipediaより

Page 11: A gang of bandit

更新式はどうなるのか?

•  エッジがあるユーザの部分に-1が乗じられた値になる •  対象ユーザと重なる部分は次数分乗じられた値になる l 結果的に隣接ユーザに対して自身の-1/degreeの影響を与

えるような形になる •  類似ユーザの評価値がわかっていれば探索の必要性が下がるので負を乗じるのかな?

•  Degreeが大きければ類似ユーザに与える影響が大きくて結果探索の重要性があがりそう

Page 12: A gang of bandit

実験

•  人工的なデータ •  4つのクリークと25のノード •  同じクリークの正解featureは同一

•  リアルデータ •  Delicious, Last.fm

•  LinUCB-IND •  各ユーザに独立にLinUCBを適用

•  LinUCB-SIN •  ユーザ間でLinUCBのパラメータを共有

Page 13: A gang of bandit

graph noise: 一定確率でエッジを消す payoff noise: 提案手法はpayoff-noiseに強い Graph noiseが低いとUCB-SINは辛い

Page 14: A gang of bandit

比較手法

GOB.Lin.MACRO •  ノードを元のグラフのクラスタとした重み付きグラフとして扱う

•  エッジはinter-cluster-edgeの数 GOB.Lin.BLOCK •  各クラスタを非結合グラフとして扱う

Page 15: A gang of bandit

結果

•  Last.fmではINDが, DeliciousではBlockが高い •  Last.fmでは多くのユーザが評価しているアイテムが殆ど無くネットワークが疎であるためクラスタをノードとするのが有効

•  Deliciousは多くのユーザに評価されるアイテムが存在するためクラスタごとに実行しても効果が出る

Page 16: A gang of bandit

まとめと感想

•  Banditの拡張。アイデアはヒューリスティックだけど成果がでている

•  Banditの難しいところはUCBの設定でタスク依存に最終的にはなるのでは? •  現状はLinUCBの値をそのまま使っているのは多い •  かなり理解するのがヘビー

•  Contextual banditが実際に使えるのはもうちょっと先かも・・・