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

17,444 views

Published on

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

Published in: Technology

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::pairint, float fpair_t; class Ranker { int wvec_size; 各手法についてclass Document { float *wvec; 解説 int rel_level; std::vectorfpair_t fvec; void train (Data *data);}; float predict (Document *doc); };class Query { 線形モデルの場合,重みベクトルだけでよい std::vectorDocument docs;};class Data { std::vectorQuery 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

×