Successfully reported this slideshow.
Your SlideShare is downloading. ×

第16回Lucene/Solr勉強会 – ランキングチューニングと定量評価 #SolrJP

Ad

Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
ランキングチューニングと定量評価
ヤフー株式会社  近藤司
201...

Ad

Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P2自己紹介
•  近藤 司	
•  ヤフー株式会社	
•  新卒...

Ad

Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P3本日の話の概要
•  検索結果の質を定量的に評価する手法	
•...

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
Block join toranomaki
Block join toranomaki
Loading in …3
×

Check these out next

1 of 35 Ad
1 of 35 Ad
Advertisement

More Related Content

Viewers also liked (20)

Advertisement

More from Yahoo!デベロッパーネットワーク (20)

Advertisement

第16回Lucene/Solr勉強会 – ランキングチューニングと定量評価 #SolrJP

  1. 1. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. ランキングチューニングと定量評価 ヤフー株式会社  近藤司 2015/5/13  第16回  Lucence/Solr勉強会  #SolrJP
  2. 2. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P2自己紹介 •  近藤 司 •  ヤフー株式会社 •  新卒 3年目 •  Solr歴 半年 •  業務内容 •  ヤフーの各種サービスへSolr導入やランキング チューニングのお手伝い •  社内向けドキュメントの検索サービスの開発・運用
  3. 3. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P3本日の話の概要 •  検索結果の質を定量的に評価する手法 •  ↑と組み合わせてランキングチューニングを する方法についてお話します •  時間があれば、Solrでドキュメントのスコアの 内訳を見る方法を説明します
  4. 4. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P4話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  5. 5. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P5話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  6. 6. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P6ランキングチューニングとは •  検索結果の上位に質の高いドキュメントを 持ってくる作業 •  ex) •  q = “本田圭佑 試合” •  「本田試合速報」 •  「本田圭佑2ゴール!!」
  7. 7. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P7Solrでのチューニング作業 •  Solrだと大体こんな感じ •  qf=title_ma^10 title_ng^2 body_ma^5 body_ng^1 •  各フィールドへの重みを変えたり •  bf=production(field(ctr),10) •  Boost functionでインデキシングしておいた定数を
 調整したり
  8. 8. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P8チューニングの難しいところ •  フィールドへの重みをどう決めるのか •  とりあえず、Titleは強めの重み? •  MA(形態素解析)も大きめに? •  ランキングが良くなっているのか分かりにくい •  あるクエリでは良くなっているけど、別のクエリでは? •  そもそも、評価が主観 ランキングの良し悪しを判断する基準が無い
  9. 9. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P9チューニングと定量評価 •  チューニングと定量評価をセットで考える •  重みを変えたら評価をする •  メリット •  客観的にランキングを評価できる •  最もランキングが良くなる重みを探しだせる •  チューニング作業の一部を自動化できる •  デメリット •  導入コストが高い •  定量評価の計算に時間がかかる場合がある
  10. 10. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P10話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  11. 11. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P11NDCG •  NDCG •  Normalized Discounted Cumulative Gain •  ランキングの並びの良さを評価する指標 •  クエリとの適合度が高いドキュメントが上位に 来ていればいるほど評価大
  12. 12. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P12NDCG •  DCG … 順位と適合度をもとにしたスコア •  IDCG … 理論上ランキングの並びが最も良く なった場合のDCG •  i … 検索順位 •  rel … i位に順位付けされたドキュメントのクエ リとの適合度 NDCG = DCG IDCG DCG = 2reli −1 log(1+i)i k ∑
  13. 13. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P13NDCGの計算例 •  あるクエリで検索した場合の
 検索結果上位3位の評価が下記の場合 4:  very  good   3:  good   2:  bad   1:  very  bad 順位 ドキュメント 評価 1 doc1 1 2 doc2 4 3 doc3 3   ドキュメントがクエリに   マッチしているかどうかは人手で判断
  14. 14. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P14DCG DCG = 21 −1 log(1+1) + 24 −1 log(1+ 2) + 23 −1 log(1+3) DCG = 1 1 + 15 1.58 + 7 2 DCG =13.99 順位 ドキュメント 評価 1 doc1 1 2 doc2 4 3 doc3 3   NDCG = DCG IDCG DCG = 2reli −1 log(1+i)i k ∑
  15. 15. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P15IDCG IDCG = 24 −1 log(1+1) + 23 −1 log(1+ 2) + 21 −1 log(1+3) IDCG = 15 1 + 7 1.58 + 1 2 IDCG =19.93 順位 ドキュメント 評価 1 doc1 1 2 doc2 4 3 doc3 3   NDCG = DCG IDCG DCG = 2reli −1 log(1+i)i k ∑ doc2,doc3,doc1の並びになった   仮定で計算
  16. 16. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P16NDCG DCG =13.99 IDCG =19.93 NDCG = 13.99 19.93 = 0.7 順位 ドキュメント 評価 1 doc1 1 2 doc2 4 3 doc3 3   NDCG = DCG IDCG DCG = 2reli −1 log(1+i)i k ∑
  17. 17. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P17話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  18. 18. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P18前準備 1.  ランキングを評価するクエリを決める •  検索数上位50位のクエリなど 2.  各評価用クエリでドキュメントの適合度を評 価しておく(正解データの準備)
  19. 19. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P19チューニングの進め方 1.  各フィールドへの重みを決める •  qf=title_ma^10 title_ng^2 body_ma^5 body_ng^1 2.  評価用クエリで検索+NDCGを計算 •  各クエリで算出したNDCGの平均を算出 3.  重みを変えて、手順1-2を繰り返す
  20. 20. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P20 Title_ma Title_ng Body_ma Body_ng NDCG 10 2 5 1 0.55 15 2 5 1 0.58 20 2 5 1 0.62 10 4 5 1 0.53 10 6 5 1 0.51 10 8 5 1 0.49 フィールドへの重みの組み合わせとNDCGの値 … … この重みの付け方が1番良さそう!
  21. 21. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P21補足 •  定性評価について •  必要なくなる訳ではない •  検索結果に不適切なドキュメントが紛れてい ないか調査が必要 •  NDCGが低いクエリの調査 •  TopKに入って欲しくないドキュメントの調査
  22. 22. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P22 •  正解データを準備するコストが高い •  評価用クエリ100個 * 1クエリ当たりで評価するドキュメン ト5件 = 500件分の評価が必要 •  NDCGの計算に時間がかかる場合がある •  フィールド数:4、調査する重みの範囲:1 – 10の場合、
 10^4=10000通りの試行回数が必要 定量評価を組み合わせることのデメリット
  23. 23. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P23話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  24. 24. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P24Solrのスコアの確認方法 •  Solrのスコアの内訳の確認方法 •  時間があればお話します
  25. 25. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P25Solrのスコアの確認方法 •  検索時にdebugQueryを有効にする •  q=Solr AND 検索エンジン &defType=edismax&qf=tilte_ma^10 description_ma^5.0&debugQuery=true
  26. 26. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P26Solrのスコアリング •  debugQueryを叩くと下記のような情報が見れます “1”: “ 1.7210351 = (MATCH) max of: --省略-- 3.4420702 = (MATCH) weight(description_ma:solr^5.0 in 120322) [DefaultSimilarity], result of: 3.4420702 = score(doc=120322,freq=4.0 = termFreq=4.0 ), product of: 0.86576945 = queryWeight, product of: 5.0 = boost 10.601961 = idf(docFreq=20, maxDocs=310669) 0.016332252 = queryNorm 3.9757354 = fieldWeight in 120322, product of: 2.0 = tf(freq=4.0), with freq of: 4.0 = termFreq=4.0 10.601961 = idf(docFreq=20, maxDocs=310669) 0.1875 = fieldNorm(doc=120322) 0.5 = coord(1/2)
  27. 27. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P27Solrのスコアリング “1”: “ 1.7210351 = (MATCH) max of: --省略-- 3.4420702 = (MATCH) weight(description_ma:solr^5.0 in 120322) [DefaultSim result of: 3.4420702 = score(doc=120322,freq=4.0 = termFreq=4.0 ), product of: 0.86576945 = queryWeight, product of: 5.0 = boost 10.601961 = idf(docFreq=20, maxDocs=310669) 0.016332252 = queryNorm 3.9757354 = fieldWeight in 120322, product of: 2.0 = tf(freq=4.0), with freq of: 4.0 = termFreq=4.0 10.601961 = idf(docFreq=20, maxDocs=310669) 0.1875 = fieldNorm(doc=120322) 0.5 = coord(1/2) Unique key 当該ドキュメントのスコア クエリがヒットしたフィールド 当該フィールド のスコア
  28. 28. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P28Solrのスコアリング 1.7210351 = (MACTH) max of: --省略-- 3.4420702 = (MATCH) weight(description_ma:solr^5.0 in 120322) [DefaultSimilarity], result of: 3.4420702 = score(doc=120322,freq=4.0 = termFreq=4.0 ), product of: 0.86576945 = queryWeight, product of: 5.0 = boost 10.601961 = idf(docFreq=20, maxDocs=310669) 0.016332252 = queryNorm 3.9757354 = fieldWeight in 120322, product of: 2.0 = tf(freq=4.0), with freq of: 4.0 = termFreq=4.0 10.601961 = idf(docFreq=20, maxDocs=310669) 0.1875 = fieldNorm(doc=120322) 0.5 = coord(1/2) 積に
 なっている
  29. 29. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P29Solrのスコアリング 0.86576945 = queryWeight, product of: 5.0 = boost 10.601961 = idf(docFreq=20, maxDocs=310669) 0.016332252 = queryNorm 3.9757354 = fieldWeight in 120322, product of: 2.0 = tf(freq=4.0), with freq of: 4.0 = termFreq=4.0 10.601961 = idf(docFreq=20, maxDocs=310669) 0.1875 = fieldNorm(doc=120322)
  30. 30. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P30Solrのスコアリング •  計算式は上記のようになります – クエリがヒットしたフィールドに対して、スコアを計 算していき、最もスコアが高いものをドキュメント のスコアとします score(d,q) = queryWeight×fieldWeight×coord queryWeight = boost×idf ×queryNorm fieldWeight = tf ×idf ×fieldNorm
  31. 31. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P31Solrのスコアリング •  boost : qfでフィールドに指定した重み •  idf : クエリのidf値 •  queryNorm : 異なるクエリ同士でスコアを比較 できるようにするための正規化係数 queryWeight = boost ×idf ×queryNorm
  32. 32. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P32Solrのスコアリング •  tf : クエリのtf値 •  idf : クエリのidf値 •  fieldNorm : 単語数の多いフィールドと少ない フィールドを比較するための正規化係数 fieldWeight = tf ×idf ×fieldNorm
  33. 33. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P33Solrのスコアリング •  クエリが複数指定されて場合に、そのクエリが フィールドにいくつか出現したか coord
  34. 34. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P34まとめ •  ランキングチューニングについての説明 •  チューニング作業の説明と難しいところ •  定量評価を組み合わせることのメリット •  評価指標に関する説明 •  NDCG •  実際のチューニング作業の流れ •  定量評価を組み合わせた場合のデメリット
  35. 35. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P35 ご静聴ありがとうございました

×