Confidence Weightedで ランク学習を実装してみた
- 2. 自己紹介:徳永 拓之
●
twitter id:tkng
●
(株) Preferred Infrastructure 勤務
●
守備範囲:レコメンド・NLPなど
●
カレーを食べるのが趣味
●
上野デリーのコルマカレーが好きです
●
早売りの週刊少年ジャンプを読むのも好き
- 3. 宣伝:NLP2011で発表します
C4-6 日本語かな漢字変換における識別モデル
の適用とその考察
○徳永拓之, 岡野原大輔 (PFI)
3月10日(木) 13:00-15:30 (A1-201教室)
●
今日の発表でここが一番NLPっぽい
- 4. 発表の概要
●
ランク学習とは
●
Confidence Weightedとは
●
Confidence Weightedによるランク学習
中身の薄い発表なのでゆったりと
リラックスした気持ちで聞くのが
オススメ!
- 7. Learning to Rankの研究グループ
●
Yahoo Research, MS Researchが強い
●
要するにデータ持ってるところが強い
●
Googleは調べた頃は論文あまり出してなかった
●
今回のスライドもMS ResearchのHang Liや
Tie-Yan Liuのスライドを参考に作りました
●
日本語ではチュートリアルっぽい資料があまりない
- 8. 自然言語処理 ランク学習
●
高次元 ● (比較的)低次元
●
スパース ● デンス
- 9. 今日簡単に紹介するいろいろ
●
RankingSVM
●
このあたりがLearning to Rankの始まり?
●
RankBoost
●
Bipartite Learningの高速な学習
●
ListNet
●
Listwise Learningを提案
●
Sofia-ML
●
サンプリングしても精度はほとんど落ちない
- 10. どんな素性を使うか?
●
BM25
●
クエリに対する文書の適合度を計算する指標
●
PageRank
●
文書の重要度を表すアレ
●
文書長、タイトル文字列の長さなど
- 11. ランク学習の評価指標
● NDCGとかMAPが使われる
● NDCG (=Normalized Discounted Cumulative Gain)
– 0〜1の値を取り、大きいほど良い
- 13. Pairwise Learning
●
データはペアの形で与えられる
●
クエリQに対し、文書Aと文書Bはどっちが適切?
●
データを作るのはそこそこ簡単
●
気をつけないとおかしなデータができる
A > B, B > C, C > A みたいな三すくみ状態
- 15. 学習の簡単さで比較する
●
Bipartite, Pairwise, Listwiseの順に簡単
●
例えば、Listwiseを単純にPairwiseに直すと、
n^2個のペアができちゃう
●
n=50なら50x50=2500個のペアを見る事にな
る
- 19. Large Scale Learning to Rank
●
●
2009年のNIPSのワークショップでD. Sculley.
が発表
全部のペアを見なくても、ランダムにサンプリ
ングして数%ぐらいの数を見ればいいよ
- 21. Pairwiseでの文書の並べ替え
●
未知の文書A, B, Cの並べ替え
●
スコアで並べ替える
●
Learning to Rank的にはスコアを出す必要はない
のだが、ほぼ確実にスコアでソートする
●
w・Ψ(A), w・Ψ(B) ...
- 23. Confidence Weightedとは
●
オンライン線形学習アルゴリズムの1つ
●
サンプルを一つ読んでパラメーターを更新する
●
それぞれの素性に対して分散を考慮しながら
アップデートを行う
●
分散が小さい=自信(Confidence)がある
- 27. RankCW
●
二値分類としての学習にはollを利用
●
リストからランダムにサンプリングしてペアワ
イズで学習
●
2年ぐらい前の正月に作った
●
雑誌記事からの締切り逃避パワー
- 28. 早速実験してみよう
実験データ:LETOR
●
MS Researchが作っているデータセット群
●
Pairwise, Listwiseの2種類でデータが提供される
●
文書からあらかじめ素性が抽出されている
– 自分で素性を作らなくていい
– 逆に新しく素性を作りたくても作れない
●
データセットによっては元データが入手できる
●
今回はOHSUMEDとMQ2007を使用
- 29. 実験結果(NDCG)
● OHSUMED
● CW: 0.475 0.424 0.405 0.404 0.397
● SVM: 0.544 0.461 0.442 0.431 0.423
● MQ2007-list
● CW: 0.221 0.228 0.226 0.230 0.235
● SVM: 0.409 0.407 0.406 0.408 0.414
● ※MQ-2007のSVMの結果はLETORより引用
- 31. 調査した結果と感想
●
Confidence Weightedはノイズに弱い
●
あまりの低性能さに最初はバグかと思った
●
SVM(最適化にはFOBOSを利用)に変えると圧倒的に
よくなった
- 32. 本当は何がやりたかったか?
●
Listwiseだとデータがリストでくるので、デー
タに重み付けしてPairwise Trainingすれば実
装は簡単でいい性能が出せるのでは?
→単純にやっただけではうまくいかなかった
- 33. まとめ
●
Learning to Rankはデータの並べ替え
●
手法を選べば実装は難しくない
●
それでいて結構いい精度が出る
●
Confidence Weightedは高速だがノイズに弱い
●
適用するデータをよく考えよう!
●
伝統的な手法もとりあえず試した方がいい