第19回 Lucene/Solr勉強会資料 「NLP4Lを使ったランキング学習」

570 views

Published on

2016/12/13開催の第19回 Lucene/Solr勉強会にて使用したプレゼン資料です。オープンソースコミュニティーとして活動しているNLP4L(Natural Language Processing for Lucene)で、Solrを対象にランキング学習機能を実装した内容についての話題となっています。

Published in: Data & Analytics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
570
On SlideShare
0
From Embeds
0
Number of Embeds
352
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

第19回 Lucene/Solr勉強会資料 「NLP4Lを使ったランキング学習」

  1. 1. NLP4Lを使ったランキング学習 第19回Lucene/Solr勉強会 山本高志@シーマーク
  2. 2. 自己紹介 山本 高志(やまもと たかし) ・株式会社シーマークの代表(http://www.seamark.co.jp) ・昔から情報検索の周辺でいろいろと ・NLP4L(Natural Language Processing for Lucene)コミッタ ・「Apache Solr入門 ~オープンソース全文検索エンジン」 (技術評論社)
  3. 3. NLP4Lとは  Apache Lucene のための自然言語処理ツール • NLP(自然言語処理) • 機械学習 • ランキング学習(Learning To Rank)  検索エクスペリエンスを向上させることが主な目的 • ユーザが見つけたいと思っている文書をより早く容易に見つけられるようにする  Luceneベースの検索エンジンが対象 • Apache Solr • Elasticsearch
  4. 4. 概要 テキスト コーパス Webページ 社内文章 クエリログ 行動ログ … サポートツール 辞書プロセッサー - 自然言語処理 機械学習プロセッサー - ランキング学習 生成物 Dictionary - 固有表現 - キーフレーズ - 類義語 - … 機械学習モデル - 文書分類モデル - ランキング学習モデル 検索エンジン - Lucene - Solr - Elasticsearch 配置ツール/評価ツール
  5. 5. 標準提供の辞書ソリューション • 固有表現抽出 固有表現(人名、場所、組織、金額、日付、時間など)を抽出 • 文書分類 テキスト文書を分類 • キーフレーズ抽出 特徴語等のキーフレーズを抽出 • 頭文字略語抽出 Acronym(頭文字略語)を抽出 • クエリログ取込み(TBD) 実際にユーザが入力した検索キーワードを取り出す
  6. 6. 標準提供のランキング学習モデル  PRank • Pointwiseの手法 • PRank(Perceptron Ranking)アルゴリズムを利用したモデル  RankingSVM • Pairwiseの手法 • SVM(support vector machine)を用いたモデル • Pointwiseデータから疑似的にpairwiseデータに変換して処理を行う (今後もっと増やしていきます) NLP4Lでは特定のモデル理論や実装に依存せず利用可能
  7. 7. Solr / Elasticsearch ランキング学習のフロー アノテーション クリックモデル (TBD) クエリログ 行動ログ アノテーショ ン用クエリ 一覧 Feature抽出 トレーニング モデル生成 モデル配置 Feature抽出 モジュール ReRank モジュール 検 索 Feature取得 (モデル評価)
  8. 8. 教師データ生成(アノテーション)  あるクエリに対してどの文章がどれくらい関連するかを表すデータ <人手でAnnotation付けを行う> - 確実性が高いが、やはり人手で実施するためコストがかかる <クリックログを分析して作成> - ノイズを低減させるための方策が別途必要である
  9. 9. Feature抽出  Luceneをベースにすることで容易に様々なFeature値が取得できる • ドキュメント長( ≒ ワード数) • TF • IDF • BM25(TBD) • 一致したクエリワード数(TBD) • …  Feature抽出モジュール(Solr用)は既に提供済み Elasticsearch用モジュールはもう少しお時間を、、、
  10. 10. トレーニング・モデル生成  同梱されたモデル理論 • PRank • RankingSVM  モデル理論に合わせてFeaure値を選択可能 • どのFeature値を利用するかで検索精度が変わってくる • 試行錯誤しながらモデルを確認していく業務
  11. 11. リランキング  ランキング学習のモデルをSolrから使うには、Solrのリランキングのしくみ をそのまま利用するだけなので簡単。 reRankQuery 実行するリランキング (必須) reRankDocs リランキングを実行する上位文書数 200 reRankWeight リランキングの重み 20 q=クエリ&rq={!rerank reRankQuery=$rqq}&rqq={!prank}クエリ
  12. 12. デモ https://github.com/NLP4L
  13. 13. モデル評価  今後提供していきます  トレーニング・モデル生成 モデル配置 モデル評価  LTRで標準的評価指標 • DCG (DIscount Comulative Gain) • NDCG (Normalized Discount Comulative Gain) • MAP (Mean Average Precision)
  14. 14. Bloomberg 版 LTR との比較 • Bloomberg 版 LTR(SOLR-8542)はFeature表現にSolrのクエリ式が使える。 • NLP4L-LTR は LTR 論文などで一般的なFeatureが使える。SOLR-8542 は使 えない。 • NLP4L-LTR は LTR で必要なモジュールを一気通貫で提供。SOLR-8542 は Feature抽出とモデルの利用のみ提供。 • SOLR-8542 は Solr の機能に depend している。NLP4L-LTR は Solr に depend している部分は少ないので、ES 実装提供が容易。 • SOLR-8542 はリランキングを自前で書いている。NLP4L-LTR は Lucene/Solr のリランクフレームワークを使用しているので非常にコンパク
  15. 15. 最後に 一緒にNLP4Lを作り上げてくれる仲間、絶賛募集中! 実サービスとして適用してみたいサービスプロバイダーさんも募集しています! 株式会社シーマーク でもエンジニア募集しています

×