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.

Learning to rank for IR

5,937 views

Published on

Published in: Technology
  • Be the first to comment

Learning to rank for IR

  1. 1. Introduction toLearning to Rank for IR -- 検索結果ランクの機械学習 -- 9/14/2011 発表15分+質疑応答5分
  2. 2. 目次1. ランクチューニングと機械学習 1. Googleでのランクづけ 2. ランクづけでの問題2. 機械学習とは3. 機械学習を使って、どうランクチューニングするか 1. ランキングの評価方法 2. 正解ランクをどうやって決めるか 3. ランキング学習手法分類 4. 具体的な計算(SVM Rank)
  3. 3. ランクチューニングと機械学習
  4. 4. 検索エンジン
  5. 5. Googleでのランクづけ● Googleが重視している項目 ○ 200個のパラメータでランクを決めている? ○ 2009年当時 ○ http://www.searchenginejournal.com/200-parameters-in-google- algorithm/15457/#ixzz1Io4iBrJI
  6. 6. Googleでのランクづけ例 ● Visitorプロファイル ○ Visitor数 ● ドメイン関係 ○ Visitor統計(性別とか) ○ ドメイン取得日 ● ペナルティ ○ ドメイン取得からの期間 ○ 過去のペナルティ ● サーバ ○ 重複コンテンツ ○ 稼働時間 ○ 過去のハッカーによる攻撃 ○ 設置場所(国とか?) ● 設計 ○ URL構造 ○ HTML構造 ● コンテンツ ○ 言語 ○ ユニーク性 ○ コンテンツ量(text vs HTML) ● 内部リンク ○ ページ内内部リンク数 ○ ページ内内部リンク(with anchor text)数 ● Webサイト ○ サイト更新頻度 ○ サイトサイズ(ページ数) ウェブサイトの様々な特徴を 検索結果ランクに取り込んでいる ● 外部リンク ○ ドメイン内外部リンク数 ○ ページ内外部リンク数 ○ リンクされているサイトの質 ○ 404, error pageなどへのリンク数
  7. 7. どのようにしてランクづけするかランクに寄与する情報がある程度分かっており、数が少ない場合はあまりランクづけはそれほど大変ではない。 例えば 一つ一つの情報を数値化、ランクへの寄与を 決めてランクを計算する
  8. 8. 例 ● 新しさ f ○ より新しいdocのランクが上 ○ 数値化例 ■ 昨日の記事 -1 ■ 20日前の記事 -20 ● 文書に含まれている検索キーワードの数 c ○ 数が大きいほうがランクが上 ● 文書部分ごとの検索キーワードの数 cpn ○ 数が大きいほうがランクが上 ○ titleタグ n=1 ○ h1タグ n=2ランク R(大きいほど上位)R = wf f + wc c + wcp1 cp1 + wcp2 cp2 w*は各情報に対するウエイト (現実的にはtf-idf, BM25を使用したりもするが、例なので省く)
  9. 9. この方法での問題点● 基礎にする情報数が増えると大変 ○ Googleのように200個も考慮しようとすると破 綻する
  10. 10. これに対する一つの方法Learning to Rank(ランキング学習またはランク学習)データ集合に対して順位付けを行う。検索結果の並べ替えやウェブ上の広告最適化に利用される。検索結果に対してランキング学習を使う場合、特にLearning to Rank for IR(Information Retrieval)という。 検索キーワードkの適切な検索結果から機械学習によりウエイトを決定し、 ランクが決まっていない別の文書のランク(検索キーサードkに対して)を推定 (機械学習によってはウエイトを決めなくてもよい)
  11. 11. Learning to Rank for IRの歴史 ● 2000頃 - ○ 商用検索エンジンにランキング学習が使われ始める(学術目的ではなく)  ● 20?? ○ Google ■ 機械学習だけを使用しているわけではないらしい ■ 2008 http://www.webcitation.org/getfile.php? fileid=49a8c1e6d41579005211a7841646a44431cfd6e5 ● 2002 ○ AltaVista ● 2004 ○ Yahoo/Inktomi ● 2005 ○ Bing ● 2009 ○ Yandex(Russian search engine) ● 2009 ○ Yandex, machine-learning competition "Internet Mathematics 2009" ● 2010 ○ 米Yahoo, machine-learning competition "Learning to Rank Challenge"引用:http://en.wikipedia.org/wiki/Learning_to_rank
  12. 12. 機械学習についてご紹介
  13. 13. 機械学習(Machine Learning)とは(wikipedia)● 人工知能における研究課題の一つで、人間が自 然に行っている学習能力と同様の機能をコン ピュータで実現させるための技術・手法のことで ある。 ● ある程度の数のサンプルデータ集合を対象に解 析を行い、そのデータから有用な規則、ルール、 知識表現、判断基準などを抽出する。 データ集 合を解析するため、統計学との関連も非常に深 い。
  14. 14. どういうことかというと、、グループAとグループBがあります。それぞれのグループにはすでに分類されたデータがいくつかあります。(これを教師データという)新しくデータが一つ入ってきました。新しいデータは1. グループAに属したほうがもっともらしいでしょうか?2. グループBに属したほうがもっともらしいでしょうか?この問題の答えを"すでにグループ化されているデータを使って"どうやって決めるか?これに対する一つの解決方法が機械学習
  15. 15. 機械学習の方法にはいくつか種類がある教師あり学習 今回はこれに注目教師なし学習強化学習 クラス分類 回帰分析
  16. 16. イメージで説明(1)方法1グループ間を区別する線を引く新しいデータが線のどちら側にあるかでグループを決める
  17. 17. イメージで説明(2)方法2新しいデータに近いデータが属しているグループを調べる。新しいデータが属するグループを、近いデータが属しているグループで一番多いものにする。3個を使うのであれば図の内側円内この場合、新しいデータは黄緑グループ7個を使うのであれば図の外側円内この場合、新しいデータは青グループ
  18. 18. イメージで説明(3)方法3すでに分かっているグループをうまく分けるいくつかの分岐・条件を見つけるこれらの条件を使って、新しいデータがどのグループに入るか決める天気が晴れ、湿度が10%なら、"ゴルフする"天気が雨、強風なら"ゴルフしない
  19. 19. 機械学習の例方法1 ● サポートベクターマシン(Support Vector Machine, SVM) ● 線形判別分析方法2 ● k近傍法(k Nearest Neighbor, knn) ● 最短距離法方法3 ● 決定木 ● ランダムフォレスト(Random Forest, 集団学習)その他の方法 ● 単純ベイズ分類器(Naive Bayes, スパム分類とか) ● ニューラルネットワーク(Neural Network) ● ...
  20. 20. 機械学習実装簡単にイメージで説明したが実装するためには以下のことを決めないといけない。どのような損失関数をどうやって最小化または最大化(最適化)するかが、ここではこれ以上踏み込まない。
  21. 21. 機械学習イメージを再掲載
  22. 22. イメージで説明(1)方法1グループ間を区別する線を引く新しいデータが線のどちら側にあるかでグループを決める
  23. 23. イメージで説明(2)方法2新しいデータに近いデータが属しているグループを調べる。新しいデータが属するグループを、近いデータが属しているグループで一番多いものにする。3個を使うのであれば図の内側円内この場合、新しいデータは黄緑グループ7個を使うのであれば図の外側円内この場合、新しいデータは青グループ
  24. 24. イメージで説明(3)方法3すでに分かっているグループをうまく分けるいくつかの分岐・条件を見つけるこれらの条件を使って、新しいデータがどのグループに入るか決める天気が晴れ、湿度が10%なら、"ゴルフする"天気が雨、強風なら"ゴルフしない
  25. 25. 機械学習の概要を説明したので、つぎにランキング学習の概要を説明
  26. 26. Learning to Rank for IR
  27. 27. 検索ランキングの評価方法正解検索順序と実際の検索順序との比較評価方法はいくつかあるが、ここではNDCGのみNDCG(Normalized Discount Cumulative Gain, 正規化減損累積利得) ● 0 <= NDCG <= 1 ● Bigger is Better ● 検索結果最上位の評価が全体評価に最も影響するようになって いる 正解ランク
  28. 28. NDCGの具体的な計算検索キーワードkで出てきた上位4つの文書 d1,d2,d3,d4(最上位が一番左、この検索結果が評価対象)これらの文書に対して検索キーワードkのときの正解ランク(bigger is better)がrd1 = 0,rd2 = 3,rd3 = 4,rd4 = 2であったとき、元々の検索結果を評価する
  29. 29. 上位四つまでで評価するなら、 NDCG=0.37 (もっと多くの検索キーワードを使 う場合は平均値) Gain DCG IDCG NDCG (Discount (Ideal DCG) (Normalized Cumulative DCG) Gain)d1 20 - 1 0 / log 2 15 / log 2 0 / 49.83(rd1=0) =0 =0 = 49.83 =0d2 23 - 1 0 + 7 / log 3 49.83 + 14.67 / 64.5(rd2=3) =7 = 14.67 7 / log 3 = 0.23 = 64.5d3 24 - 1 0 + 14.67 + 49.83+64.5+ 39.58 /(rd3=4) =15 15 / log 4 3 / log 4 119.31 = 39.58 = 119.31 = 0.33d4 22 - 1 0 + 14.67 + 49.83+64.5+ 43.87 /(rd4=2) =3 23.7 119.31 119.31 + 3 / log 5 +0 / log 5 = 0.37 = 43.87 = 119.31
  30. 30. 正解ランクをどうやって決めるか今までに使用されてきた方法1. 人手による適合性評価 ○ 評価には主観が入るため、何人かで評価し総合する1. クリックログ (click-through log) ○ [Joachims 02] http://www.cs.cornell.edu/People/tj/publications/joachims_02c.pdf ○ [Dou+ 08] http://research.microsoft.com/pubs/79335/CT_Ranking_Paper.pdf引用元:https://kaigi.org/jsai/webprogram/2010/pdf/355.pdf
  31. 31. ランキング学習手法分類ランキング学習の方法には大きく三つある ● Pointwise(Bipartite) ● Pairwise ● Listwiseこれらの違いは損失関数・目的関数をどのように設定し、どのような機会学習方法を使うか。Pointwise(Bipartite), Pairwise, Listwiseについて簡単にイメージで説明する。実装はPointwise(Bipartite) < Pairwise < Listwiseの順に簡単。
  32. 32. Pointwise(Bipartite)手法 検索キーワードk1 検索キーワードk2 文書1 文書5 文書2 文書6 文書3 文書7 文書4 文書8 検索キーワードk1 検索キーワードk2 に対して に対して 文書1 is good 文書5 is bad 文書2 is bad 文書6 is bad 文書3 is good 文書7 is bad 文書4 is good 文書8 is bad
  33. 33. Pairwise手法 検索キーワードk1 検索キーワードk2 文書1 文書5 文書2 文書6 文書3 文書7 文書4 文書8 検索キーワードk1 検索キーワードk2 に対して に対して 文書2 > 文書1 文書5 > 文書7 文書3 > 文書4 文書8 > 文書6 ... ...
  34. 34. Listwise手法 検索キーワードk1 検索キーワードk2 文書1 文書5 文書2 文書6 文書3 文書7 文書4 文書8検索キーワードk1 検索キーワードk2に対して に対して文書2 > 文書1 > 文書3 > 文書4 文書5 > 文書7 > 文書8 > 文書6
  35. 35. Pairwise手法でランキング学習してみるOSSのSVM Rankで実際に計算してみるhttp://www.cs.cornell.edu/people/tj/svm_light/svm_rank.html 学習データ ① ② ③ テストデータ モデル ランク予測
  36. 36. Pairwise手法でランキング学習してみる 学習データ ランク予測の # query 1データフォーマット 3 qid:1 1:1 2:1 3:0 4:0.2 5:0 NDCGによる評価"正解ランク" qid:"キーワードID" 1:特徴量1 2:特徴量2 ... 2 qid:1 1:0 2:0 3:1 4:0.1 5:1 1 qid:1 1:0 2:1 3:0 4:0.4 5:0特徴量: titleに検索キーワードを含んでいる数など 1 qid:1 1:0 2:0 3:1 4:0.3 5:0 # query 2 NDCG1=0.48 1 qid:2 1:0 2:0 3:1 4:0.2 5:0 2 qid:2 1:1 2:0 3:1 4:0.4 5:0 NDCG2=0.85 1 qid:2 1:0 2:0 3:1 4:0.1 5:0 1 qid:2 1:0 2:0 3:1 4:0.2 5:0 NDCG3=0.86 # query 3 2 qid:3 1:0 2:0 3:1 4:0.1 5:1 NDCG4=0.86 3 qid:3 1:1 2:1 3:0 4:0.3 5:0 4 qid:3 1:1 2:0 3:0 4:0.4 5:1データとしてMicrosoft Researchが提供している 1 qid:3 1:0 2:1 3:1 4:0.5 5:0データ LETOR を使いたかったが、時間がなかったため割愛http://research.microsoft.com/en-us/um/beijing/projects/letor/ ① テストデータ 5 qid:4 1:1 2:1 3:0 4:0.3 5:0 ② モデル ③ ランク予測 1.40287793 ω= 4 qid:4 1:1 2:0 3:0 4:0.2 5:1 2.43987615 (1.5231243, -0.064747944, -0.5231243 2 qid:4 1:0 2:0 3:0 4:0.2 5:1 0.91675182 4, -0.18499486, 0.95375079) 1 qid:4 1:0 2:0 3:1 4:0.2 5:0 -0.56012331
  37. 37. 参考文献● http://www-tsujii.is.s.u-tokyo.ac.jp/T-FaNT/T-FaNT. files/Slides/Li.pdf● http://en.wikipedia.org/wiki/Learning_to_rank● http://en.wikipedia.org/wiki/Discounted_cumulative_gain● http://d.hatena.ne.jp/sleepy_yoshi/20110723/p1● http://www2009.org/pdf/T7A-LEARNING%20TO% 20RANK%20TUTORIAL.pdf
  38. 38. ご清聴ありがとうございました。

×