Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DSIRNLP#1 ランキング学習ことはじめ

25,518 views

Published on

DSIRNLP#1「ランキング学習ことはじめ」発表資料

Published in: Technology
  • Be the first to comment

DSIRNLP#1 ランキング学習ことはじめ

  1. 1. DSIRNLP #1ランキング学習ことはじめ 2011-07-23 Yoshihiko Suhara @sleepy_yoshi
  2. 2. 自己紹介• 数原 良彦 (すはら よしひこ) – @sleepy_yoshi – http://d.hatena.ne.jp/sleepy_yoshi/• 情報検索の研究開発ぽい仕事など – 情報検索とか機械学習とか • 特にランキング学習• 三浦半島在住 – マグロを食べる頻度が減った  – 三浦半島で地震に怯える日々  2
  3. 3. さて本題 3
  4. 4. 本発表のねらい• ねらい – ランキング学習の認知度を高める – ランキング学習をざっくり伝える – なにか实装できるようになっていただく • 理論的妥当性の説明はほとんど無し • アルゴリズムを可能な限り紹介• おねがい? – 質問は適宜お気軽にどうぞ – 手法をたくさん紹介するのはイメージづけのため • 完全に理解する必要ありません • イメージがつけば後で詳細を追える(ハズ) 4
  5. 5. おことわり• DSIRNLPのコンセプトは「实装」• そう気が付いたのは今朝の8時でした 5
  6. 6. 言い訳MLRに関する实装に踏み込んだ ハードな発表をお願いします 6
  7. 7. 目次• ランキング学習とは? (15min.) – 検索ランキングの歴史 – 検索ランキングの評価方法 – ランキング学習の概要• ランキング学習手法の紹介 (35min.) – Pointwise手法 – Pairwise手法 – Listwise手法• その他の話題とまとめ (10min.) 7
  8. 8. ランキング学習とは?• Learning to rank – 決まった訳語がない • 例) ランキング学習,ランク学習とか – 順序学習 (preference learning) とは微妙に違う • ランキング学習 ⊂ 順序学習• 教師あり機械学習の枠組みで,検索ランキン グを最適化する技術 – 最適化ってなによ? 8
  9. 9. ランキング学習とは? 9
  10. 10. 検索エンジン 10
  11. 11. 検索ランキングの歴史• 従来は単一のランキング手法を利用 – (1) クエリ・文書関連度に基づく手法 • TF-IDF, BM25, 言語モデルなど – (2) 文書重要度に基づく手法 • PageRank, HITS, SALSAなど• 最近では,上記ランキング手法(+α)を統合 的に扱ってランキングを实現 11
  12. 12. 近代的なランキングの实現方法• 多数のランキング素性を用いてランキングを实現 クエリ・文書関連度 (クエリ依存) ������1 (������, ������) e.g., BM25 クエリq ・ ・ ・ ������������ (������, ������) ランキング関数 ������ T Φ(������, ������) ������������+1 (������) e.g., PageRank ・ ・ 検索スコア ・クエリqを含む ������������ (������)文書d 文書の重要度 (クエリ非依存) = Φ(������, ������) 12
  13. 13. ランキング素性の例クエリq = “hoge” のときの文書1の例• TF-TITLE □: 1 <TITLE> hoge </TITLE> <BODY> ... hoge ....• TF-BODY □: 3 ............................... ..... hoge ................• IN-LINK: 5 ............................... hoge ......................• URL length: 12 </BODY> http://www.hoge.com/ ⇒ Φ "hoge", ������1 = 1, 3, 5, 12 ������ 13
  14. 14. G社の場合 (2009年版?) などなど...• Let’s Try to Find All 200 Parameters in Google Algorithm – http://www.searchenginejournal.com/200-parameters-in-google- algorithm/15457/#ixzz1Io4iBrJI• Googleアルゴリズム200項目全てを特別公開 – http://swat9.com/seo/google%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3% 83%A0200%E5%80%8B%E3%82%92%E5%85%AC%E9%96%8B/ 14
  15. 15. ランキング関数• (今日は) ランキング関数はランキング素性の線 形結合とする – モデルパラメータ: ������ – 文書のランキング素性ベクトル: ������ ������ ������; ������ = ������������ ������• 非線形モデルもあるが,非線形モデルであるか どうかは,ランキング学習を理解する上ではあま り重要ではない 15
  16. 16. ポイント• 現代の検索エンジンは多様な要因を用いてラ ンキングを实現• 要因が多くなると,組み合わせの調整が困難⇒教師あり機械学習の枠組みで最適化 16
  17. 17. 何を正解とするか? 17
  18. 18. 正解データ (適合性評価) の作成方法• クエリに対する検索結果集合の一部に対して,「クエリが 表す意図」に適合しているかという観点で点数を付与 – 評価点数は多段階 – 複数の被験者の適合度を平均クエリgooに対する適合度評価 クエリ:goo 適合度 gooトップ 5 1 被験者の事前知識 に依存するため, ブレなく評価するのは 2 スパムブログ 0 難しい... 3 IT記事 評価点数はクエリ・文書ペアに対して付与 4 18
  19. 19. 検索ランキングの評価方法• 正解データとランキングを比較• 検索結果上位を重視する評価指標 – (1) 順位kに高い点数>順位kに低い点数 分子 – (2) ランキング上位をより重視 分母• NDCG (Normalized Discouted Cumulative Gain) – 上記の2つを取り入れた多段階評価指標 – ������������,������ : クエリqにおける順位iの評価点数 ������ 2������������,������ − 1 ������������������������ @������ ≡ log 1 + ������ ������=1 ������������������������ @������ ������������������������������ @������ ≡ (0,1]に正規化 ������������������������������������������ @������ 19
  20. 20. ランキング学習の問題設定 20
  21. 21. 分類問題におけるモデルの生成 (������1 , ������1 )Training (������2 , ������2 ) data 未知のデータ … (������������ , ������������ ) ������������������������������ 入力 学習アルゴリズム モデル 学習/生成 出力 予測値 ������ 21
  22. 22. ランキング学習の訓練データ 素性や評価はクエリ毎に与えられる ������1 ������2 ������������Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 22
  23. 23. ランキング学習におけるモデルの生成 未知のクエリ ������������������������������ ������ (������1 , ? )Training ������ (������2 , ? ) data … ������ (������������������ , ? ) 入力 学習アルゴリズム モデル 学習/生成 出力 直接順列を出力 する手法もある 予測値 ������ = (������1 , ������1 , ..., ������������������ ) 23
  24. 24. ここまでのまとめ• ランキング素性とランキング関数• 正解データのつくり方と評価方法 – 「適合度」至上主義• ランキング学習におけるモデルと予測 24
  25. 25. 小休止ご質問ありますか? 25
  26. 26. 实装について. .: : : : : : : : :: :::: :: :: : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: . . : : : :: : : :: : ::: :: : :::: :: ::: ::: :::::::::::::::::::::::::::::::::::::: . . .... ..: : :: :: ::: :::::: :::::::::::: : ::::::::::::::::::::::::::::::::::::::::::::: Λ_Λ . . . .: : : ::: : :: ::::::::: ::::::::::::::::::::::::::::: /:彡ミ゛ヽ;)ー、 . . .: : : :::::: ::::::::::::::::::::::::::::::::: / :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . ::::::::::::::::::::::::::::::::::::::: / :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : :::::::::::::::::: ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ̄ ̄ 完全に忘れてた... 26
  27. 27. 实装のヒント? データ構造 アルゴリズムtypedef std::pair<int, float> fpair_t; class Ranker { int wvec_size; 各手法についてclass Document { float *wvec; 解説 int rel_level; std::vector<fpair_t> fvec; void train (Data *data);}; float predict (Document *doc); };class Query { 線形モデルの場合,重みベクトルだけでよい std::vector<Document> docs;};class Data { std::vector<Query> queries;}; 27
  28. 28. 以上あとで何か書いて公開します... 28
  29. 29. ランキング学習手法 29
  30. 30. ランキング学習3つのアプローチ• 教師あり機械学習 (識別学習) ≒ – どのような目的関数/損失関数を – どのように最適化するのか• ランキング学習3つのアプローチ – (1) Pointwise手法 – (2) Pairwise手法 – (3) Listwise手法 30
  31. 31. ちょっと先出し 31
  32. 32. (1) Pointwise手法 単一のデータに対して損失関数を設定 ������1 ������2 ������������Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 32
  33. 33. (2) Pairwise手法同一クエリのペアに対して損失関数を設定 ������1 ������2 ������������Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 33
  34. 34. (3) Listwise手法同一クエリのリストに対して損失関数を設定 ������1 ������2 ������������Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 34
  35. 35. 先出し終わりここまでわかればOKあとは細かい話 35
  36. 36. Pointwise手法 36
  37. 37. Pointwise手法の説明• 二値分類,多値分類や回帰によって定式化• 文書毎に損失が与えられる• Pointwise手法 – Discriminative Model for IR – PRank – Regression – ... 37
  38. 38. Discriminative Model for IR 38
  39. 39. Discriminative Model for IR [Nallapati 04] • 適合 (+1) / 非適合 (-1) の二値分類問題とし て解く – 通常の二値分類アルゴリズムが利用可能 ������1 ������2 ������������ Training data (������11 , ������1 1 ) (������12 , ������1 2 ) (������1������ , ������1 ������ ) 適合 … 1 (������2 , ������2 ) 1 2 (������2 , ������2 ) 2 ������ (������2 , ������2 ) ������ 非適合 … (������������1 , ������������1 ) … 1 1 … (������������������ , ������������������ ) (������������2 , ������������2 ������ ������ 2 2 ) 39[Nallapati 04] R. Nallapati. Discriminative Models for Information Retrieval. SIGIR ‘04, (2004).
  40. 40. 補足: Perceptron• オンライン学習手法 – 線形識別モデル ������������ ������ – 間違ったパターンに対して適切に識別できるよう に重みを修正• 細かい話にご興味がある方はTokyoNLP#5の「パーセプトロン で楽しい仲間がぽぽぽぽ~ん」をご覧ください – http://d.hatena.ne.jp/sleepy_yoshi/20110423/p1 40
  41. 41. Perceptron (二値分類) INPUT: (������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 02: FOR ������ in 0 to ������3: Obtain sample (������������ , ������������ ) from ������4: IF ������������ ������������ ������������ ≤ 0 THEN ������5: ������������+1 ← ������������ + ������ ������������ ������������6: ������ ← ������ + 17: ENDIF8: ENDFOR9: RETURN ������������ 41
  42. 42. Perceptron (二値分類) INPUT: (������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 02: FOR ������ in 0 to ������ 間違ったら重みを修正3: Obtain sample (������������ , ������������ ) from ������4: IF ������������ ������������ ������������ ≤ 0 THEN ������5: ������������+1 ← ������������ + ������ ������������ ������������6: ������ ← ������ + 17: ENDIF8: ENDFOR9: RETURN ������������ 42
  43. 43. PRank 43
  44. 44. PRank [Crammer+ 02]• 順序を考慮した多値分類アルゴリズム – 閾値を用いて離散値を出力• モデル – 線形モデル: ������������ ������ – 適合度レベルk個の閾値を用意 ������1 ≤ ⋯ ≤ ������������−1 ≤ ������������ = ∞ – ������������−1 < ������������ ������ < ������������ のとき,������と予測 ������ = min *������: ������������ ������ − ������������ < 0+ ������∈*1,…������+• 学習方法 – Perceptronと同様に1サンプルずつ学習 – 誤った予測をした場合,重み������と閾値������の両方を修正*Crammer+ 02+ K. Crammer and Y. Singer. Pranking with Ranking. NIPS ‘01, (2002) 44
  45. 45. PRankの学習訓練データ (������, ������) ������1 ������2 ������3 ������4 ������1 ������2 ������3 ������4 ������ ������ ������ +1x 1 2 3 4 5������������ : 自分より -1 -1 +1 +1 左側 -1 右側 +1 +1 -1 -1������������ : -1 0 +1 +1 自分がいる エリアを0とする 重みと閾値を修正 修正幅 ������������������������ = ������������������������ + ������������ ������ ������ ������������������ ������������������ ������������ = ������������ − ������������ 45
  46. 46. PRank 46
  47. 47. PRank ラベルの予測 ������������ の計算������������ の計算 重みと閾値の 更新 47
  48. 48. Pairwise手法 48
  49. 49. Pairwise手法の説明• 文書ペアで損失を設定し,二値分類問題として解く• 一般的にPointwise手法より高精度な学習が可能とさ れている• Pairwise手法 – Stochastic Pairwise Descent – RankingSVM – IR-SVM – RankBoost – RankNet – ... 49
  50. 50. Pairwise → 二値分類• 同一クエリ内の文書Aと文書Bに着目 ������������ ������������ > ������������ ������������ ⇒ ������������ ������������ − ������������ > 0 ������������ ������������ < ������������ ������������ ⇒ ������������ ������������ − ������������ < 0• 以下のようにすると,二値分類問題として解ける ������������������ = ������������ − ������������ ������������������ = sign(������������ − ������������ ) 50
  51. 51. 再掲: Perceptron (二値分類) INPUT: (������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 02: FOR ������ in 0 to ������3: Obtain sample (������������ , ������������ ) from ������4: IF ������������ ������������ ������������ ≤ 0 THEN ������5: ������������+1 ← ������������ + ������ ������������ ������������6: ������ ← ������ + 17: ENDIF8: ENDFOR9: RETURN ������������ 51
  52. 52. Perceptron (ペアワイズ) INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 02: FOR ������ in 0 to ������3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������ , where ������������ = ������������ AND ������������ ≠ ������������4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������5: IF ������������ ������������ ������������ ≤ 0 THEN ������6: ������������+1 ← ������������ + ������ ������������ ������������7: ������ ← ������ + 18: ENDIF9: ENDFOR10: RETURN ������������ 52
  53. 53. Perceptron (ペアワイズ) INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 02: FOR ������ in 0 to ������3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������ , where ������������ = ������������ AND ������������ ≠ ������������4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������5: IF ������������ ������������ ������������ ≤ 0 THEN ������6: ������������+1 ← ������������ + ������ ������������ ������������7: ������ ← ������ + 18: ENDIF9: ENDFOR10: RETURN ������������ 53
  54. 54. Stochastic Pairwise Descent [Sculley 09]• ランダムランプリングした文書ペアに対して重み 更新を行う – 更新手法はいろいろ • SVM • Passive-Aggressive • Margin-Perceptron • など• 实装: sofia-ml – http://code.google.com/p/sofia-ml/ 54
  55. 55. Stochastic Pairwise Descent INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 02: FOR ������ in 0 to ������3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������ , where ������������ = ������������ AND ������������ ≠ ������������4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������5: IF ������������ ������������ ������������ ≤ 0 THEN ������6: ������������+1 ← ������������ + ������ ������������ ������������7: ������ ← ������ + 1 この部分を変更8: ENDIF9: ENDFOR10: RETURN ������������ 55
  56. 56. Stochastic Pairwise Descent (PA-I) INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 02: FOR ������ in 0 to ������3: Obtain two samples (������������ , ������������ , ������������ ), (������������ , ������������ , ������������ ) from ������ , where ������������ = ������������ AND ������������ ≠ ������������4: Let ������������ = sign(������������ − ������������ ), ������������ = ������������ − ������������5: IF ������������ ������������ ������������ ≤ 0THEN ������ ℓ������ ������������ = min ������,6: ������������+1 ← ������������ + ������������2������������ ������������ ������7: ������ ← ������+1 =1 ������ + ������������ ������������ ������ ������ + ������ みんな大好きPassive-Aggressive8: ENDIF9: ENDFOR10: RETURN ������������ 56
  57. 57. RankingSVM• 先ほどと同様に考えると,SVMも二値分類と 同様の枠組みで解ける 2 ������ – minimize ������ + ������ ������ ������,������ ������������,������ ������ ������ ������ ������ ������ – s.t. sign ������������ − ������������ ������������ ������������ − ������������ ≥ 1 − ������������,������ ∀������, ������, ������• 最適化の方法は色々 57
  58. 58. Pairwise手法がやっていること • ペア誤りの最小化 = Kendallの順位相関の最適化 (≠ 検索評価指標の最適化) • Kendallの順位相関 – P: 順序が一致しているペアの数 2������ 2������ Kendall = ������ −1= −1 2 1/2������ ������ − 1 Pairwise損失は検索評価指標損失の 上界になってるで[Chen+ 09] W. Chen, T.-Y. Liu, Y. Lan, Z. Ma, H. Li. Ranking Measures and Loss Functions in 58Learning to Rank. NIPS ’09 (2009).
  59. 59. 参考: Pair 0-1 lossと他の損失関数通常の二値分類と同じアナロジー f(x)=sign(yA-yB) wT (xA-xB) 59
  60. 60. Pairwise手法そんなに悪くない? • RSVM (Pairwise) vs. ListNet, AdaRank (Listwise)MQ2007 NDCG@1 NDCG@5 NDCG@10dataset RSVM .4096 .4143 .4439 ListNet .4002 .4170 .4440 AdaRank-NDCG .3876 .4102 .4369 AdaRank-MAP .3821 .4070 .4335MQ2008 NDCG@1 NDCG@5 NDCG@10dataset RSVM .3627 .4695 .2279 ListNet .3754 .4747 .2303 AdaRank-NDCG .3826 .4821 .2307 AdaRank-MAP .3754 .4794 .2288 60
  61. 61. Pairwise手法の問題点• ペアワイズ手法では,順序ペアの誤りのみ考慮 4 0 = ? 5 1 評価点数の違いを考慮すべきでは? 61
  62. 62. IR-SVM [Cao+ 06]• (1) ペア毎に異なる損失重みを利用 – 評価指標に影響を与えるペアの誤りに対して大きな 損失を与える (ヒンジロスの傾き)• (2) クエリ毎のペアの偏りを排除 – 多くのペアを持つクエリに対して損失を小さくする loss ������������ ������ ������ ������������ 62
  63. 63. PARank (手前味噌) [数原+ 11] • 重要度をマージンに反映 • PAで更新 ������2 (������, ������) ○ 重要度 ○ r=4 △ 小 △ r=3 ○ △ ○ □ r=2 □ ○ × r=1 △ 重要度 □ △ 大 □ × ������������ Φ(q, d) × × ������1 (������, ������) 63[数原+ 11] 数原, 鈴木, 安田, 小池, 片岡. 評価指標をマージンに反映したオンラインランキング学習. NLP2011.
  64. 64. 小休止ご質問ありますか? 64
  65. 65. Listwiseアプローチ 65
  66. 66. Listwise手法の概要• クエリ毎に損失を設定 – 検索評価指標を直接/間接的に最適化することが 可能• 一般的にPairwiseよりも精度が高いとされている• Listwise手法 – ListNet – AdaRank – SVM_MAP – SmoothRank – ... 66
  67. 67. ListNet 67
  68. 68. ListNet [Cao+ 07]• 今までペアを考慮 – Kendallの順位相関 ≠ 検索評価指標• “順列 (リスト)”の観点で最適化をしたい – 訓練データとモデルを順列の確率分布で表現し, 分布間の距離を最小化する • 順列の確率分布にPlackett-Luceモデルを利用 • 分布間の距離はみんな大好きKL-divergenceを利用[Cao+ 07] Z. Cao, T. Qin, T.-Y. Liu, M.-F. Tsai, H. Li. Learning to rank: frompairwise approach to listwise approach. ICML ’07, (2007). 68
  69. 69. Plackett-Luceモデル ������ exp(������������ ������ ) • 順列の確率モデル: ������ ������|������ = ������=1 ������ exp ������ ������=������ ������ ������ 順列1  doc1 exp(3) exp 2 評価データ = ⋅ exp 3 + exp(2) + exp(1) exp 2 + exp 1 doc2 exp 1doc1 3点 ⋅ = ������. ������������������ doc3 exp 1doc2 2点doc3 1点 順列2  doc2 exp(2) exp 1 = ⋅ exp 2 + exp(1) + exp(3) exp 1 + exp 3 doc3 exp 3 ⋅ = ������. ������������������ doc1 exp 3 69
  70. 70. ListNetのパラメータ学習 • 評価データとモデルの出力が近づける – Plackett-Luceモデルの分布の観点で (クロスエントロピー) − ������������������ ������ log ������������ (������) ������∈Π������直感的なイメージ 評価データ 順列の全候補って?! モデル出力 doc1 n文書に対してO(n!) ������������ ������1 3点 doc2 2点 ������������ ������2 類似度が最大に doc3 1点 なるように������を調整 ������������ ������3 70
  71. 71. 計算の効率化• 上位k件 (k=1) に対するPlackett-Luceモデル の分布を計算 [Cao+ 08] – k=1の際,クエリiのクロスエントロピーの������に関す る微分は以下のように求まる ������������ ������������ , ������ ������������ ������������ ������������ ������ ������ 1 ������ ������ =− ������������������ ������������ ������������ + ������������ ������ exp(������������ ������������ ) ������������ ������=1 ������=1 exp ������������ ������������ ������=1 71
  72. 72. ListNet INPUT:(������ ������ , ������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 02: FOR ������ in 0 to ������3: FOR i = 1 to m ������������ ������������ ,������4: Compute ������������ ������������ ������������ ,������5: Update ������ = ������ − ������ ������������6: ENDFOR7: ENDFOR8: Return ������ 72
  73. 73. ListNet INPUT:(������ ������ , ������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������1: Initialize ������0 = ������, ������ = 0 各クエリ毎に勾配を求めて2: FOR ������ in 0 to ������ 最急降下法で更新3: FOR i = 1 to m ������������ ������������ ,������4: Compute ������������ ������������ ������������ ,������5: Update ������ = ������ − ������ ������������6: ENDFOR7: ENDFOR8: Return ������ 73
  74. 74. ListNet余談• Pairwise手法であるRankNetでは,多層ニュー ラルネットでランキング関数を实現 – 多層ニューラルネットワークで表現される非線形 関数は最急降下法で解ける • 誤差逆伝播を用いることで勾配を求めることができる ため (詳しくはPRMLを!)• けれど,ListNet論文では線形モデルを利用 – List “Net” なのに? 74
  75. 75. AdaRank 75
  76. 76. AdaRank• 検索評価指標を直接最適化するブースティン グ手法 – 線形モデル • WeakRanker次第 – 实装が簡単  – 任意の評価指標を最適化することが可能  – 性能はそれほどよくない?  76
  77. 77. AdaRankのイメージ試行回数 訓練データ 弱学習器 クエリ1 ... クエリn 1 × g1 重み付き訓練データ g1が苦手とする 重み変更 クエリに有効 2 × × g2 … … N個の弱学習器を … 重み付け和 … 重み付き訓練データ … N gN ランキング関数 77
  78. 78. AdaRank INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������OUTPUT: ������(������) 11: Initialize ������1 ������ = ������ ������������������ ������������������ℎ ������2: FOR ������ in 1 to ������3: Create weak ranker ℎ������ with weighted distribution ������������4: Calculate ������ 1 ������=1 ������������ ������ *1 + ������(������(������������ , ������������ , ℎ������ ), ������������ ) ������������ = ln ������ 2 ������=1 ������������ ������ *1 − ������(������(������������ , ������������ , ℎ������ ), ������������ )5: Create ������ ������������ ������ = ������������ ℎ������ (������) ������=16: Update ������������+1 exp*−������(������ ������������ , ������������ , ������������ , ������������ )+ ������������+1 ������ = ������ ������=1 exp*−������(������ ������������ , ������������ , ������������ , ������������ )+7: ENDFOR8: Return ������������ (������) 78
  79. 79. AdaRank (解説) INPUT: (������������ , ������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������(������) クエリiの重み 1 1: Initialize ������1 ������ = ������ ������������������ ������������������ℎ ������ WeakRankerの生成 2: FOR ������ in 1 to ������ WeakRankerのクエリi 3: Create weak ranker ℎ������ with weighted distribution ������������ に対する評価値WeakRankerの重要度 4: Calculate ������ 1 ������=1 ������������ ������ *1 + ������(������(������������ , ������������ , ℎ������ ), ������������ ) ������������ = ln ������ 2 ������=1 ������������ ������ *1 − ������(������(������������ , ������������ , ℎ������ ), ������������ ) 5: Create ������ これまでのWeakRanker の重みづけ和 ������������ ������ = ������������ ℎ������ (������) ������=1 6: Update ������������+1 クエリの重みの更新 exp*−������(������ ������������ , ������������ , ������������ , ������������ )+ ������������+1 ������ = ������ ������=1 exp*−������(������ ������������ , ������������ , ������������ , ������������ )+ 7: ENDFOR 8: Return ������������ (������) 79
  80. 80. 再掲: 検索ランキングの評価方法• 正解データとランキングを比較• 検索結果上位を重視する評価指標 – (1) 順位kに高い点数>順位kに低い点数 分子 – (2) ランキング上位をより重視 分母• NDCG (Normalized Discouted Cumulative Gain) – 上記の2つを取り入れた多段階評価指標 – ������������,������ : クエリqにおける順位iの評価点数 ������ 2������������,������ − 1 ������������������������ @������ ≡ log 1 + ������ ������=1 ������������������������ @������ ������������������������������ @������ ≡ (0,1]に正規化 ������������������������������������������ @������ 80
  81. 81. AdaRank: WeakRankerの生成方法• クエリ重み付け評価指標が最大になるようなひとつ のランキング素性 – 例: BM25, PageRank, etc... ������ max ������������ ������ ������(������ ������������ , ������������ , ������������ , ������������ ) k ������=1• この場合,最終的なランキング関数������������ (������)も線形関数 81
  82. 82. その他のListwise手法 82
  83. 83. その他のListwise手法• 評価指標の近似を用いる手法 – SoftRank, SmoothRank• 構造学習を用いる手法 – SVM_MAP, SVM_NDCG• 勾配情報を利用しない方法 – NDCG-Annealing, RankPSO 83
  84. 84. 3つの手法の違い 84
  85. 85. 再掲: (1) Pointwise手法 単一のデータに対して損失関数を設定 ������1 ������2 ������������Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 85
  86. 86. 再掲: (2) Pairwise手法同一クエリのペアに対して損失関数を設定 ������1 ������2 ������������Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 86
  87. 87. 再掲: (3) Listwise手法同一クエリのリストに対して損失関数を設定 ������1 ������2 ������������Training 1 1 2 2 ������ ������ (������1 , ������1 ) (������1 , ������1 ) (������1 , ������1 ) data 1 1 2 2 … ������ ������ (������2 , ������2 ) (������2 , ������2 ) (������2 , ������2 ) … 1 1 … … (������������1 , ������������1 ) ������ ������ 2 2 (������������������ , ������������������ ) (������������2 , ������������2 ) 87
  88. 88. その他の話題 88
  89. 89. その他の話題• Click-through logs• Query-dependent ranking• Feature selection• Transfer learning/Domain adaptation• Diversity/Novelty 「ことはじめ」なので割愛... 89
  90. 90. 公開Dataset• LETOR3.0/4.0 Dataset – http://research.microsoft.com/en-us/um/beijing/projects/letor/default.aspx• MSLR-WEB Dataset – http://research.microsoft.com/en-us/projects/mslr/• Yahoo! Learning to Rank Challenge – http://learningtorankchallenge.yahoo.com/datasets.php – 大学のみ? (+学部長のサインが必要?) 90
  91. 91. 实装• RankingSVM – svm_rank by T. Joachims • http://www.cs.cornell.edu/People/tj/svm_light/svm_rank.html• Stochastic Pairwise Descent – sofia-ml by D. Sculley • http://code.google.com/p/sofia-ml/ 91
  92. 92. Learning to Rank教科書• Tie-Yan Liu. Learning to Rank for Information Retrieval. Springer (2011).• Tie-Yan Liu. Learning to Rank for Information Retrieval (Foundations and Trends(R) in Information Retrieval), Now Publishers (2009)• Hang Li, Learning to Rank for Information Retrieval and Natural Language Processing, Morgan & Claypool (2011) 92
  93. 93. 情報検索の教科書• Christopher D. Manning, Prabhakar Raghavan, Hinrich Schuetze, “Introduction to Information Retrieval”, Cambridge University Press (2008). – Webで全ページ公開されている.情報検索全般的にバランスよく書かれている• Bruce Croft, Donald Metzler, Trevor Strohman, “Search Engines: Information Retrieval in Practice”, Pearson Education (2009). – 検索エンジン寄りの話.エンジニア向けに書かれている.一番簡単かも.• Stefan Buttcher, Charles L. A. Clarke and Gordon V. Cormack, “Information Retrieval”, The MIT Press, 2010. – 实装から理論まで王道を押さえてしっかり書かれている印象.特にお薦め. 93
  94. 94. チュートリアル資料• Tie Yan Liu. Learning to Rank for Information Retrieval. SIGIR ‘08 Tutorial. – http://research.microsoft.com/en-us/people/tyliu/letor-tutorial- sigir08.pdf• Hang Li. Learning to Rank. ACL-IJCNLP ‘09 Tutorial. – http://research.microsoft.com/en-us/people/hangli/li-acl-ijcnlp-2009- tutorial.pdf• Shivani Agarwal. Ranking Methods in Machine Learning, SDM ’10 Tutorial. – http://web.mit.edu/shivani/www/Events/SDM-10-Tutorial/sdm10- tutorial.pdf• 徳永拓之. Confidence Weightedでランク学習を实装してみた. TokyoNLP#4 (2011). – http://www.slideshare.net/tkng/confidence-weighted 94
  95. 95. まとめ• 近代的な検索エンジンは多数のランキング素 性を利用している• ランキング学習は,評価データを用いて,ラン キング素性の最適な重み付けを求める方法• 適合度の観点での基本タスクは大体終わっ た感じ 95
  96. 96. お持ち帰りメッセージ• Pointwise, Pairwise, Listwiseの違いは,損失 関数の設定方法にあり – どのように最適化するかは規定していない• Pairwise手法は二値分類アルゴリズムがその まま利用可能• 機械学習手法 (に限らず?) は論文 ≒ 实装 – ソースコードはノウハウの宝庫 96
  97. 97. おしまい 97

×