a gang of bandit
TRANSCRIPT
![Page 1: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/1.jpg)
A Gang of Bandis by Nicolo Casa-Bianchi, Claudio Gentile
Yoshifumi Seki(Gunosy Inc.) 2014.1.23 NIPS読み会
![Page 2: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/2.jpg)
本日の発表で分かること • この論文で挑戦している問題
o bandit problemとは? o contextual bandit problemとは? o Gang of Banditでは何を目指しているか?
• どのように問題を解いたか? • 結果どのような成果を上げることができたか? 本日の発表で分からないこと • なぜこの方法でうまくいくのかの数学的解釈 • なぜGangなのか
![Page 3: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/3.jpg)
Bandit Problemとは
• 探索と活用 • スロットマシンが目の前にあったとき当たりやすい台にどのようにベットすべきか?
![Page 4: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/4.jpg)
Contextual Bandit Problemとは
• 調べる対象がそれぞれcontextを持つ o 特徴量から得られる報酬を予測しながら行動し,その結果から予測モデルを修正していく
![Page 5: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/5.jpg)
学習のプロセス
• ある時間tにユーザuiに対してアイテム集合C (x1,...xct)が提示される
• システムはロジックに基づいてあるアイテムを選ぶ
• ユーザの行動からシステムはその選択に関する評価値を得る(-1, 1)
• 評価値を元にユーザのfeatureを更新する
![Page 6: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/6.jpg)
LinUCB
![Page 7: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/7.jpg)
研究の概要 • 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](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/8.jpg)
提案手法: GOB.Lin
L: Graph Laplacian
クロネッカー積
![Page 9: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/9.jpg)
Graph Laplacian
• 対角成分は各ノードの次数 • エッジが存在する箇所には-1
Wikipediaより
![Page 10: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/10.jpg)
クロネッカー積 Wikipediaより
![Page 11: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/11.jpg)
更新式はどうなるのか?
• エッジがあるユーザの部分に-1が乗じられた値になる • 対象ユーザと重なる部分は次数分乗じられた値になる l 結果的に隣接ユーザに対して自身の-1/degreeの影響を与
えるような形になる • 類似ユーザの評価値がわかっていれば探索の必要性が下がるので負を乗じるのかな?
• Degreeが大きければ類似ユーザに与える影響が大きくて結果探索の重要性があがりそう
![Page 12: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/12.jpg)
実験
• 人工的なデータ • 4つのクリークと25のノード • 同じクリークの正解featureは同一
• リアルデータ • Delicious, Last.fm
• LinUCB-IND • 各ユーザに独立にLinUCBを適用
• LinUCB-SIN • ユーザ間でLinUCBのパラメータを共有
![Page 13: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/13.jpg)
graph noise: 一定確率でエッジを消す payoff noise: 提案手法はpayoff-noiseに強い Graph noiseが低いとUCB-SINは辛い
![Page 14: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/14.jpg)
比較手法
GOB.Lin.MACRO • ノードを元のグラフのクラスタとした重み付きグラフとして扱う
• エッジはinter-cluster-edgeの数 GOB.Lin.BLOCK • 各クラスタを非結合グラフとして扱う
![Page 15: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/15.jpg)
結果
• Last.fmではINDが, DeliciousではBlockが高い • Last.fmでは多くのユーザが評価しているアイテムが殆ど無くネットワークが疎であるためクラスタをノードとするのが有効
• Deliciousは多くのユーザに評価されるアイテムが存在するためクラスタごとに実行しても効果が出る
![Page 16: A gang of bandit](https://reader034.vdocument.in/reader034/viewer/2022042518/559137e01a28ab07498b4635/html5/thumbnails/16.jpg)
まとめと感想
• Banditの拡張。アイデアはヒューリスティックだけど成果がでている
• Banditの難しいところはUCBの設定でタスク依存に最終的にはなるのでは? • 現状はLinUCBの値をそのまま使っているのは多い • かなり理解するのがヘビー
• Contextual banditが実際に使えるのはもうちょっと先かも・・・