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 meetup Vol. 1

761 views

Published on

Learning-to-Rank for Apache Lucene

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Learning-to-Rank meetup Vol. 1

  1. 1. ランキング学習 勉強会(第1回) 4/18/2018 関口宏司
  2. 2. 自己紹介 • ロンウイット 創業者兼社長 • Apache Lucene/Solr/OpenNLP コミッター兼PMCメンバー、ASFメンバー ASFメンバーって・・・? https://www.rondhuit.com/miracle-org-asf.html • 書籍執筆&監修 • Apache Lucene/Solr, Apache Ant, etc. • ツイッター:@kojisays 2
  3. 3. ロンウイットについて • 2006年設立当初より情報検索の専門企業 • Apache Lucene/Solr/OpenNLP, Elasticsearch • コンサルティング、製品開発、サポート、教育 • Apacheコミッターを複数名輩出 • 「Apache Lucene/Solr勉強会」主催 3
  4. 4. ランキング学習勉強会の目的 • ランキング学習(LTR=Learning-to-Rank)の理 論から実践まで • LTRアルゴリズムを勉強 • LTRプログラムを作成 • LTRプログラムを利用 4
  5. 5. ランキングの重要性 • ランキング=検索結果リストの表示順=文書のスコア • ランキングはユーザの検索エンジンの性能評価に大きな 影響を与える • 検索エンジンの性能評価 • 精度(Precision) • 再現率(Recall) ※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。 5
  6. 6. 精度と再現率(理論) ※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。 文書の全体集合 ユーザの期待システム出力 6
  7. 7. 精度と再現率(理論) ※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。 文書の全体集合 A CB ユーザの期待システム出力 P=B/(A+B) R=B/(C+B) P:Precision R:Recall 7
  8. 8. 精度と再現率(実際) ※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。 文書の全体集合 ユーザの期待 システム出力 P=0.01% R=99.9% 8
  9. 9. 適切なランキングで低精度をカバー ※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。 文書の全体集合 ユーザの期待 システム出力 1位 2位 3位 100位 : 10,000位 : 500位 : 9
  10. 10. パーソナライズ検索とは 文書の全体集合 ユーザの期待 システム出力 q=apple 1位 2位 3位 fruit… A 10
  11. 11. パーソナライズ検索とは 文書の全体集合 システム出力 q=apple computer ユーザの期待 1位 2位 3位 B 11
  12. 12. スコア計算の種類 ※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。 クエリ従属 クエリ独立 スコア = S(q, di) スコア = S(di) ベクトル空間モデル 確率モデル PageRank HITS Apache Lucene/Solr Apache Nutch DEC AltaVista Google PageRank 12
  13. 13. ランキング学習のスコア • ランキング学習のスコアは「クエリ従属」の一種 → スコア = S(q, di) • ただし、ベクトルdiはクエリによって変わる → di = f(q) di di=f(q1) di=f(q2) ベクトル空間モデル 確率モデル ランキング学習 13
  14. 14. パーソナライズ検索とLTR • パーソナライズ検索はユーザによって正解セットが移動 • ユーザによってクエリを変えさえすれば、LTRの枠組みで パーソナライズ検索の学習と実行が可能! → q’ = f(q, u) 14
  15. 15. LTRのフレームワーク クエリ1 文書a1 文書b1 : ランキング1 クエリ2 文書a2 文書b2 : ランキング2 クエリn 文書an 文書bn : ランキングn ・・・ モデル クエリx 文書ax 文書bx : ランキング? クエリx 文書ax 文書bx : ランキング 推定値 学習データ モデルの 学習 ランキング システム 15
  16. 16. 3つのアプローチ Pointwise 単一の文書に「あるクエリとの関連度」情 報が付与されているデータを学習する。 (例)PRank, NNRank あるクエリについて 文書1:★★★★☆ 文書2:★☆☆☆☆ 文書3:★★★☆☆ Pairwise あるクエリについて文書ペアのどちらがよ り関連度が高いかという情報が付与されて いるデータを学習する。(例) RankingSVM, SortNet あるクエリについて 文書1 > 文書2 文書2 < 文書3 文書4 > 文書5 Listwise あるクエリについて文書集合の中での順位 情報が付与されているデータを学習する。 (例)ListNet, LambdaRank あるクエリについて 1位:文書5 2位:文書3 3位:文書11 ※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。 16
  17. 17. マイクロソフトのデータセット • LETOR(LEarning TO Rank) 4.0 released 2009 • MQ2007:TREC 2007のMillion Query Trackのクエリ セットを使用 • MQ2008:TREC 2008のMillion Query Trackのクエリ セットを使用 17 2 qid:10032 1:0.056537 2:0.000000 3:0.666667 4:1.000000 5:0.067138 … 45:0.000000 46:0.076923 #docid = GX029-35-5894638 inc = 0.0119881192468859 prob = 0.139842 0 qid:10032 1:0.279152 2:0.000000 3:0.000000 4:0.000000 5:0.279152 … 45:0.250000 46:1.000000 #docid = GX030-77-6315042 inc = 1 prob = 0.341364 0 qid:10032 1:0.130742 2:0.000000 3:0.333333 4:0.000000 5:0.134276 … 45:0.750000 46:1.000000 #docid = GX140-98-13566007 inc = 1 prob = 0.0701303 1 qid:10032 1:0.593640 2:1.000000 3:0.000000 4:0.000000 5:0.600707 … 45:0.500000 46:0.000000 #docid = GX256-43-0740276 inc = 0.0136292023050293 prob = 0.400738
  18. 18. マイクロソフトのデータセット 18 出典:https://www.microsoft.com/en-us/research/project/ letor-learning-rank-information-retrieval/
  19. 19. 使用するOSS • LTR4L Learning-to-Rank for Apache Lucene https://github.com/LTR4L/ltr4l • Apache Lucene • Apache Solr • Elasticsearch 19
  20. 20. LTRフレームワークとの対応 クエリ1 文書a1 文書b1 : ランキング1 クエリ2 文書a2 文書b2 : ランキング2 クエリn 文書an 文書bn : ランキングn ・・・ モデル クエリx 文書ax 文書bx : ランキング? クエリx 文書ax 文書bx : ランキング 推定値 学習データ モデルの 学習 ランキング システム 20
  21. 21. LTRフレームワークとの対応 Lucene/Solr/ES クエリ1 文書a1 文書b1 : ランキング1 クエリ2 文書a2 文書b2 : ランキング2 クエリn 文書an 文書bn : ランキングn ・・・ ランキング学習 モデル クエリx 文書ax 文書bx : ランキング? クエリx 文書ax 文書bx : ランキング 推定値 教師データ作成 リランキング特徴抽出 特徴抽出 :LTR4Lが提供 21
  22. 22. Web アプリ インプレッ ションログ クリック モデル Lucene Solr/ES 特徴抽出 学習 データ ランキング 学習 モデル リランキング 活性化関数 最適化関数 正則化関数 評価関数 正規化 Fold分割 report.csv 評価 NDCG Loss config.json M1 M2 MAP NDCG@3 NDCG@10 レポート 可視化 22
  23. 23. LTR勉強会の目的(再) • LTRの理論から実践まで • LTRアルゴリズムを勉強 • LTRプログラムを作成 • LTRプログラムを利用 23
  24. 24. ランキング学習 勉強会 LTR勉強会の目的(再) • LTRの理論から実践まで 理論の勉強 LTRの利用 (LT発表) LTR実装 フィードバック 24

×