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.

20180725 Learning To Rank meetup

ltr4l-solrの説明です。

  • Login to see the comments

  • Be the first to like this

20180725 Learning To Rank meetup

  1. 1. ltr4l-solrのご紹介 2018年7月25日(水) ランキング学習勉強会第2回 1
  2. 2. About me • 名前:溝口 泰史 • 所属:株式会社ロンウイット
 (2017/2/1 ∼) • 仕事:Apache Solr / Elasticsearch トレーニング
    Apache Solr コンサルティング & 技術サポート 2
  3. 3. Agenda • 概要 - ltr4l-solrとは - そもそもLTR4Lって… - ltr4l-solrの位置付け - 入出力ファイルと設定ファイル • デモ • 制約と今後の展望 • まとめ 3
  4. 4. ltr4l-solrとは • LTR4L(Learning To Rank for Apache Lucene)の、”4L”の部分に相当 • ランキング学習機能を利用するためのApache Solrのプラグイン • できること: 1. クエリ文字列とドキュメントIDを与えることで、ドキュメント の特徴量を抽出可能
 -> インプレッションログ(後述)から教師データの生成 2. LTR4Lのpredict処理を呼び出すクエリパーサーを提供
 -> 学習済みモデルを利用したリランキング 4
  5. 5. そもそもLTR4Lって… • ランキング学習を利用したランキング処理をApache Lucene/ Solr、Elasticsearch等で実現するためのOSSのフレームワーク • “4L”部分抜きでできること: 1. Microsoft LETORフォーマットの教師データを利用した、 モデルの生成(training) 2. モデルの評価(validation) 3. 未知データへのモデルの適用(predict) 5
  6. 6. そもそもLTR4Lって (LTRフレームワークのイメージ) クエリa Doc-a1 Doc-a2 Doc-a3 : ランキングa ・・・ クエリb Doc-b1 Doc-b2 Doc-b3 : ランキングb クエリN Doc-N1 Doc-N2 Doc-N3 : ランキングN モデルの学習 モ デ ル ランキング システム クエリX Doc-X1’ Doc-X2’ Doc-X3’ : ランキング 推定値 クエリX Doc-X(0) Doc-X(1) Doc-X(2) : ランキング? 学習データ モデル 6
  7. 7. そもそもLTR4Lって
 (LTR4Lのカバーする領域のイメージ) クエリa Doc-a1 Doc-a2 Doc-a3 : ランキングa ・・・ クエリb Doc-b1 Doc-b2 Doc-b3 : ランキングb クエリN Doc-N1 Doc-N2 Doc-N3 : ランキングN ランキング学習 モ デ ル モデル Lucene/Solr/ES クエリX Doc-X1’ Doc-X2’ Doc-X3’ : ランキング 推定値 クエリX Doc-X(0) Doc-X(1) Doc-X(2) : ランキング? 学習データ リランキング特徴抽出 特徴抽出 ltr4l-solrでカバー した領域 7
  8. 8. 入出力ファイルと設定ファイル (特徴量抽出) 特徴抽出 ltr_features.conf(抽出する特徴量を指定) 教師データ(Microsoft LETORフォーマット) インプレッションログ solrconfig.xml(リクエストハンドラを設定) 8
  9. 9. 入出力ファイルと設定ファイル (特徴量抽出) 1. インプレッションログ • ユーザーが実行したクエリ、そのクエリの検索結果のドキュメント一覧、
 ユーザーがクリックしたドキュメント一覧を記録 2. ltr_features.conf • 抽出する特徴量を指定 • 現時点ではTF、IDF、TF/IDFを各フィールドに指定可能 3. 教師データ • あるクエリに対するドキュメントの特徴量、ラベル(整数値)を記録
 (Microsoft LETORのフォーマット) • ラベルはインプレッションログのクリック率を算出の上、閾値を設けて決定 9
  10. 10. 入出力ファイルと設定ファイル (リランキング) ltr_features.conf(抽出する特徴量を指定) リランキング LTR4Lで生成したモデル solrconfig.xml(クエリパーサーを設定) クエリX Doc-X(0) Doc-X(1) : ランキング? クエリX Doc-X1’ Doc-X2’ : ランキング 推定値 10
  11. 11. デモ 11
  12. 12. Luceneの仕様による制約 ランキングモデルがPairwise / Listwiseを前提にしたも のは正常に動作しない
 -> Apache Luceneのスコアリング処理は複数のド キュメントを比較しないため 12
  13. 13. 現時点での制約と今後の展望(1) 1. 特徴抽出時に指定する特徴量と、リランキング時 に指定する特徴量は一致していなければならない -> とりあえず想定できる全特徴量を抽出し、その後 効果が強く出るものを残すということができない -> 今後特徴量を選択してリランキングが行えるよ うに改善予定 13
  14. 14. 現時点での制約と今後の展望(2) 2. 学習データ作成時にラベルを生成するための閾値 を指定する必要がある -> ラベルのつけ方が不適切な教師データが生成され る可能性がある -> 今後ラベルの代わりに、クリック率(=スコア) を使った学習ができるようにしたい 14
  15. 15. 現時点での制約と今後の展望(3) 3. 取得できる特徴量の種類がTF、IDF、TF/IDFのみ -> SolrのLTRプラグインのように、関数クエリなど を使えるようにしたい 15
  16. 16. 現時点での制約と今後の展望(4) 4. “4L”(for Apache Lucene)と言っているのに対応し ているのがSolrだけ -> Elasticsearchにも対応したい。。。
 (ESのプラグイン作成のお作法を勉強予定。。。) 16
  17. 17. まとめ • ltr4l-solrを使うと、インプレッションログからMicrosoft LETOR フォーマットの教師データを、Apache Solrで生成できる • 上記の教師データはクリックモデルを採用しているため、手動でラ ベリングする手間が不要 • ltr4l-solrでLTR4Lで作成した学習済みモデルを使い、リランキング ができるようになる • ltr4l-solrは、LTR4Lのpredictメソッドを呼び出しているだけなの で、LTR4Lが実装したpointwiseなスコアリングアルゴリズムは、
 (原理上)全て利用できる。 17
  18. 18. ご清聴ありがとうございました 18

×