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.
ランキング学習
勉強会(第1回)
4/18/2018
関口宏司
自己紹介
• ロンウイット 創業者兼社長
• Apache Lucene/Solr/OpenNLP コミッター兼PMCメンバー、ASFメンバー
ASFメンバーって・・・?
https://www.rondhuit.com/miracle-org...
ロンウイットについて
• 2006年設立当初より情報検索の専門企業
• Apache Lucene/Solr/OpenNLP, Elasticsearch
• コンサルティング、製品開発、サポート、教育
• Apacheコミッターを複数名輩出
...
ランキング学習勉強会の目的
• ランキング学習(LTR=Learning-to-Rank)の理
論から実践まで
• LTRアルゴリズムを勉強
• LTRプログラムを作成
• LTRプログラムを利用
4
ランキングの重要性
• ランキング=検索結果リストの表示順=文書のスコア
• ランキングはユーザの検索エンジンの性能評価に大きな
影響を与える
• 検索エンジンの性能評価
• 精度(Precision)
• 再現率(Recall)
※ 株式会社...
精度と再現率(理論)
※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。
文書の全体集合
ユーザの期待システム出力
6
精度と再現率(理論)
※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。
文書の全体集合
A CB
ユーザの期待システム出力 P=B/(A+B)
R=B/(C+B)
P:Precisi...
精度と再現率(実際)
※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。
文書の全体集合
ユーザの期待
システム出力 P=0.01%
R=99.9%
8
適切なランキングで低精度をカバー
※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。
文書の全体集合
ユーザの期待
システム出力
1位
2位
3位
100位
:
10,000位
:
5...
パーソナライズ検索とは
文書の全体集合
ユーザの期待
システム出力
q=apple
1位
2位
3位
fruit…
A
10
パーソナライズ検索とは
文書の全体集合
システム出力
q=apple
computer
ユーザの期待
1位
2位
3位
B
11
スコア計算の種類
※ 株式会社ロンウイットの研修コース「Apache Mahout & Sparkではじめる機械学習」より抜粋。
クエリ従属 クエリ独立
スコア = S(q, di) スコア = S(di)
ベクトル空間モデル
確率モデル
Pa...
ランキング学習のスコア
• ランキング学習のスコアは「クエリ従属」の一種
→ スコア = S(q, di)
• ただし、ベクトルdiはクエリによって変わる
→ di = f(q)
di
di=f(q1)
di=f(q2)
ベクトル空間モデル
確...
パーソナライズ検索とLTR
• パーソナライズ検索はユーザによって正解セットが移動
• ユーザによってクエリを変えさえすれば、LTRの枠組みで
パーソナライズ検索の学習と実行が可能!
→ q’ = f(q, u)
14
LTRのフレームワーク
クエリ1
文書a1
文書b1
:
ランキング1
クエリ2
文書a2
文書b2
:
ランキング2
クエリn
文書an
文書bn
:
ランキングn
・・・
モデル
クエリx
文書ax
文書bx
:
ランキング?
クエリx
文...
3つのアプローチ
Pointwise
単一の文書に「あるクエリとの関連度」情
報が付与されているデータを学習する。
(例)PRank, NNRank
あるクエリについて
文書1:★★★★☆
文書2:★☆☆☆☆
文書3:★★★☆☆
Pairwis...
マイクロソフトのデータセット
• LETOR(LEarning TO Rank) 4.0 released 2009
• MQ2007:TREC 2007のMillion Query Trackのクエリ
セットを使用
• MQ2008:TREC...
マイクロソフトのデータセット
18
出典:https://www.microsoft.com/en-us/research/project/
letor-learning-rank-information-retrieval/
使用するOSS
• LTR4L Learning-to-Rank for Apache Lucene
https://github.com/LTR4L/ltr4l
• Apache Lucene
• Apache Solr
• Elastics...
LTRフレームワークとの対応
クエリ1
文書a1
文書b1
:
ランキング1
クエリ2
文書a2
文書b2
:
ランキング2
クエリn
文書an
文書bn
:
ランキングn
・・・
モデル
クエリx
文書ax
文書bx
:
ランキング?
クエリ...
LTRフレームワークとの対応
Lucene/Solr/ES
クエリ1
文書a1
文書b1
:
ランキング1
クエリ2
文書a2
文書b2
:
ランキング2
クエリn
文書an
文書bn
:
ランキングn
・・・ ランキング学習
モデル
クエリx...
Web
アプリ
インプレッ
ションログ
クリック
モデル
Lucene Solr/ES
特徴抽出
学習
データ
ランキング
学習
モデル
リランキング
活性化関数
最適化関数
正則化関数
評価関数
正規化
Fold分割
report.csv
評...
LTR勉強会の目的(再)
• LTRの理論から実践まで
• LTRアルゴリズムを勉強
• LTRプログラムを作成
• LTRプログラムを利用
23
ランキング学習
勉強会
LTR勉強会の目的(再)
• LTRの理論から実践まで
理論の勉強
LTRの利用
(LT発表)
LTR実装
フィードバック
24
Upcoming SlideShare
Loading in …5
×

Learning-to-Rank meetup Vol. 1

925 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

×