SlideShare a Scribd company logo
1 of 35
Download to read offline
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
ランキングチューニングと定量評価
ヤフー株式会社  近藤司
2015/5/13  第16回  Lucence/Solr勉強会  #SolrJP
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P2自己紹介
•  近藤 司	
•  ヤフー株式会社	
•  新卒 3年目	
•  Solr歴 半年	
•  業務内容	
•  ヤフーの各種サービスへSolr導入やランキング
チューニングのお手伝い	
•  社内向けドキュメントの検索サービスの開発・運用
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P3本日の話の概要
•  検索結果の質を定量的に評価する手法	
•  ↑と組み合わせてランキングチューニングを
する方法についてお話します	
•  時間があれば、Solrでドキュメントのスコアの
内訳を見る方法を説明します
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P4話の流れ
•  ランキングチューニングについて	
•  難しいところ	
•  解決策	
•  定量評価の手法	
•  NDCG	
•  実際のチューニング作業の流れ	
•  (時間があれば)ドキュメントのスコアの見方
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P5話の流れ
•  ランキングチューニングについて	
•  難しいところ	
•  解決策	
•  定量評価の手法	
•  NDCG	
•  実際のチューニング作業の流れ	
•  (時間があれば)ドキュメントのスコアの見方
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P6ランキングチューニングとは
•  検索結果の上位に質の高いドキュメントを
持ってくる作業	
•  ex)	
•  q = “本田圭佑 試合”	
•  「本田試合速報」	
•  「本田圭佑2ゴール!!」
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でインデキシングしておいた定数を

調整したり
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P8チューニングの難しいところ
•  フィールドへの重みをどう決めるのか	
•  とりあえず、Titleは強めの重み?	
•  MA(形態素解析)も大きめに?	
•  ランキングが良くなっているのか分かりにくい	
•  あるクエリでは良くなっているけど、別のクエリでは?	
•  そもそも、評価が主観	
	
ランキングの良し悪しを判断する基準が無い
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P9チューニングと定量評価
•  チューニングと定量評価をセットで考える	
•  重みを変えたら評価をする	
•  メリット	
•  客観的にランキングを評価できる	
•  最もランキングが良くなる重みを探しだせる	
•  チューニング作業の一部を自動化できる	
•  デメリット	
•  導入コストが高い	
•  定量評価の計算に時間がかかる場合がある
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P10話の流れ
•  ランキングチューニングについて	
•  難しいところ	
•  解決策	
•  定量評価の手法	
•  NDCG	
•  実際のチューニング作業の流れ	
•  (時間があれば)ドキュメントのスコアの見方
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P11NDCG
•  NDCG	
•  Normalized Discounted Cumulative Gain	
•  ランキングの並びの良さを評価する指標	
•  クエリとの適合度が高いドキュメントが上位に
来ていればいるほど評価大
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
∑
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	
  
ドキュメントがクエリに	
  
マッチしているかどうかは人手で判断
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
∑
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の並びになった	
  
仮定で計算
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
∑
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P17話の流れ
•  ランキングチューニングについて	
•  難しいところ	
•  解決策	
•  定量評価の手法	
•  NDCG	
•  実際のチューニング作業の流れ	
•  (時間があれば)ドキュメントのスコアの見方
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P18前準備
	
1.  ランキングを評価するクエリを決める	
•  検索数上位50位のクエリなど	
2.  各評価用クエリでドキュメントの適合度を評
価しておく(正解データの準備)
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を繰り返す
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番良さそう!
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P21補足
•  定性評価について	
•  必要なくなる訳ではない	
•  検索結果に不適切なドキュメントが紛れてい
ないか調査が必要	
•  NDCGが低いクエリの調査	
•  TopKに入って欲しくないドキュメントの調査
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P22
•  正解データを準備するコストが高い	
•  評価用クエリ100個 * 1クエリ当たりで評価するドキュメン
ト5件 = 500件分の評価が必要	
•  NDCGの計算に時間がかかる場合がある	
•  フィールド数:4、調査する重みの範囲:1 – 10の場合、

10^4=10000通りの試行回数が必要	
定量評価を組み合わせることのデメリット
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P23話の流れ
•  ランキングチューニングについて	
•  難しいところ	
•  解決策	
•  定量評価の手法	
•  NDCG	
•  実際のチューニング作業の流れ	
•  (時間があれば)ドキュメントのスコアの見方
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P24Solrのスコアの確認方法
•  Solrのスコアの内訳の確認方法	
•  時間があればお話します
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
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)
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	
当該ドキュメントのスコア	
クエリがヒットしたフィールド	
当該フィールド
のスコア
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)	
	
	
積に

なっている
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)
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P30Solrのスコアリング
	
•  計算式は上記のようになります	
– クエリがヒットしたフィールドに対して、スコアを計
算していき、最もスコアが高いものをドキュメント
のスコアとします	
score(d,q) = queryWeight×fieldWeight×coord
queryWeight = boost×idf ×queryNorm
fieldWeight = tf ×idf ×fieldNorm
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P31Solrのスコアリング
	
•  boost : qfでフィールドに指定した重み	
•  idf : クエリのidf値	
•  queryNorm : 異なるクエリ同士でスコアを比較
できるようにするための正規化係数	
queryWeight = boost ×idf ×queryNorm
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P32Solrのスコアリング
	
•  tf : クエリのtf値	
•  idf : クエリのidf値	
•  fieldNorm : 単語数の多いフィールドと少ない
フィールドを比較するための正規化係数	
fieldWeight = tf ×idf ×fieldNorm
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P33Solrのスコアリング
	
•  クエリが複数指定されて場合に、そのクエリが
フィールドにいくつか出現したか	
coord
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P34まとめ
•  ランキングチューニングについての説明	
•  チューニング作業の説明と難しいところ	
•  定量評価を組み合わせることのメリット	
•  評価指標に関する説明	
•  NDCG	
•  実際のチューニング作業の流れ	
•  定量評価を組み合わせた場合のデメリット
Copyright	
  (C)	
  2015	
  Yahoo	
  Japan	
  Corpora5on.	
  All	
  Rights	
  Reserved.	
P35
	
	
	
	
ご静聴ありがとうございました

More Related Content

What's hot

LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
Hironobu Isoda
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
Tokoroten Nakayama
 

What's hot (20)

グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
 
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
第17回Lucene/Solr勉強会 #SolrJP – Apache Lucene Solrによる形態素解析の課題とN-bestの提案
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
 
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall ) LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
協調フィルタリング入門
協調フィルタリング入門協調フィルタリング入門
協調フィルタリング入門
 
グラフデータベース Neptune 使ってみた
グラフデータベース Neptune 使ってみたグラフデータベース Neptune 使ってみた
グラフデータベース Neptune 使ってみた
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
データ分析グループの組織編制とその課題 マーケティングにおけるKPI設計の失敗例 ABテストの活用と、機械学習の導入 #CWT2016
 
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
[Cloud OnAir] BigQuery の仕組みからベストプラクティスまでのご紹介 2018年9月6日 放送
 
ナレッジグラフとオントロジー
ナレッジグラフとオントロジーナレッジグラフとオントロジー
ナレッジグラフとオントロジー
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ5分で出来る!イケてるconfluenceページ
5分で出来る!イケてるconfluenceページ
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 

Viewers also liked

Learning to rankの評価手法
Learning to rankの評価手法Learning to rankの評価手法
Learning to rankの評価手法
Kensuke Mitsuzawa
 
Apache Solrで実現する共創のエコ システム ‒検索、クロール、自然言語処理‒
Apache Solrで実現する共創のエコ システム  ‒検索、クロール、自然言語処理‒Apache Solrで実現する共創のエコ システム  ‒検索、クロール、自然言語処理‒
Apache Solrで実現する共創のエコ システム ‒検索、クロール、自然言語処理‒
MasayukiIke
 

Viewers also liked (20)

Block join toranomaki
Block join toranomakiBlock join toranomaki
Block join toranomaki
 
学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)
学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)
学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)
 
Nlp4 l intro-20150513
Nlp4 l intro-20150513Nlp4 l intro-20150513
Nlp4 l intro-20150513
 
Lucene/Solr Revolution2015参加レポート
Lucene/Solr Revolution2015参加レポートLucene/Solr Revolution2015参加レポート
Lucene/Solr Revolution2015参加レポート
 
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
 
SolrのAtomicUpdateを50000倍速くした話
SolrのAtomicUpdateを50000倍速くした話SolrのAtomicUpdateを50000倍速くした話
SolrのAtomicUpdateを50000倍速くした話
 
Approaching Join Index: Presented by Mikhail Khludnev, Grid Dynamics
Approaching Join Index: Presented by Mikhail Khludnev, Grid DynamicsApproaching Join Index: Presented by Mikhail Khludnev, Grid Dynamics
Approaching Join Index: Presented by Mikhail Khludnev, Grid Dynamics
 
Learning to rankの評価手法
Learning to rankの評価手法Learning to rankの評価手法
Learning to rankの評価手法
 
Faceting with Lucene Block Join Query: Presented by Oleg Savrasov, Grid Dynamics
Faceting with Lucene Block Join Query: Presented by Oleg Savrasov, Grid DynamicsFaceting with Lucene Block Join Query: Presented by Oleg Savrasov, Grid Dynamics
Faceting with Lucene Block Join Query: Presented by Oleg Savrasov, Grid Dynamics
 
Boosting Documents in Solr by Recency, Popularity and Personal Preferences - ...
Boosting Documents in Solr by Recency, Popularity and Personal Preferences - ...Boosting Documents in Solr by Recency, Popularity and Personal Preferences - ...
Boosting Documents in Solr by Recency, Popularity and Personal Preferences - ...
 
徹底比較!! Heliosearch vs Solr
徹底比較!! Heliosearch vs Solr徹底比較!! Heliosearch vs Solr
徹底比較!! Heliosearch vs Solr
 
類義語検索と類義語ハイライト
類義語検索と類義語ハイライト類義語検索と類義語ハイライト
類義語検索と類義語ハイライト
 
DocValues aka. Column Stride Fields in Lucene 4.0 - By Willnauer Simon
DocValues aka. Column Stride Fields in Lucene 4.0 - By Willnauer SimonDocValues aka. Column Stride Fields in Lucene 4.0 - By Willnauer Simon
DocValues aka. Column Stride Fields in Lucene 4.0 - By Willnauer Simon
 
Apache Solrで実現する共創のエコ システム ‒検索、クロール、自然言語処理‒
Apache Solrで実現する共創のエコ システム  ‒検索、クロール、自然言語処理‒Apache Solrで実現する共創のエコ システム  ‒検索、クロール、自然言語処理‒
Apache Solrで実現する共創のエコ システム ‒検索、クロール、自然言語処理‒
 
solr勉強会資料
solr勉強会資料solr勉強会資料
solr勉強会資料
 
第10回solr勉強会 solr cloudの導入事例
第10回solr勉強会 solr cloudの導入事例第10回solr勉強会 solr cloudの導入事例
第10回solr勉強会 solr cloudの導入事例
 
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
第15回 Solr勉強会 #SolrJP Amazon CloudSearch Deep Dive
 
DSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
 
Lucene/Solr Revolution 2016 参加レポート
Lucene/Solr Revolution 2016 参加レポートLucene/Solr Revolution 2016 参加レポート
Lucene/Solr Revolution 2016 参加レポート
 
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤Elasticsearch+nodejs+dynamodbで作る全社システム基盤
Elasticsearch+nodejs+dynamodbで作る全社システム基盤
 

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

Code iq×japanr 公開用
Code iq×japanr 公開用Code iq×japanr 公開用
Code iq×japanr 公開用
Nobuaki Oshiro
 
Learning to rank for IR
Learning to rank for IRLearning to rank for IR
Learning to rank for IR
takaya imai
 

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

Code iq×japanr 公開用
Code iq×japanr 公開用Code iq×japanr 公開用
Code iq×japanr 公開用
 
Learning to rank for IR
Learning to rank for IRLearning to rank for IR
Learning to rank for IR
 
サーバ性能改善事例
サーバ性能改善事例サーバ性能改善事例
サーバ性能改善事例
 
Operations research yonezawa_no1
Operations research yonezawa_no1Operations research yonezawa_no1
Operations research yonezawa_no1
 
JAWSUG 20210128
JAWSUG 20210128JAWSUG 20210128
JAWSUG 20210128
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
 
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
 
楽天のRPAプラットフォーム構築事例
楽天のRPAプラットフォーム構築事例楽天のRPAプラットフォーム構築事例
楽天のRPAプラットフォーム構築事例
 
実践で学ぶネットワーク分析
実践で学ぶネットワーク分析実践で学ぶネットワーク分析
実践で学ぶネットワーク分析
 
Taming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTaming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache Spark
 
G2o
G2oG2o
G2o
 
10大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon201510大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon2015
 
UnityとBlenderハンズオン第3章
 UnityとBlenderハンズオン第3章 UnityとBlenderハンズオン第3章
UnityとBlenderハンズオン第3章
 
R -> Python
R -> PythonR -> Python
R -> Python
 
Tokyor60 r data_science_part1
Tokyor60 r data_science_part1Tokyor60 r data_science_part1
Tokyor60 r data_science_part1
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証
 
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
レコメンドバッチ高速化に向けたSpark/MapReduceの機械学習ライブラリ比較検証
 
Preview: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
Preview: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPreview: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
Preview: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
 
第二回データサイエンティスト木曜勉強会20141016
第二回データサイエンティスト木曜勉強会20141016第二回データサイエンティスト木曜勉強会20141016
第二回データサイエンティスト木曜勉強会20141016
 
データサイエンティスト協会 木曜勉強会 #02『クレンジングからビジュアライズまで!実践!データ解析超入門!』
データサイエンティスト協会 木曜勉強会 #02『クレンジングからビジュアライズまで!実践!データ解析超入門!』データサイエンティスト協会 木曜勉強会 #02『クレンジングからビジュアライズまで!実践!データ解析超入門!』
データサイエンティスト協会 木曜勉強会 #02『クレンジングからビジュアライズまで!実践!データ解析超入門!』
 

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

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

ゼロから始める転移学習
ゼロから始める転移学習ゼロから始める転移学習
ゼロから始める転移学習
 
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
 
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるかヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
 
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッションオンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
 
LakeTahoe
LakeTahoeLakeTahoe
LakeTahoe
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability FeaturePersistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
 
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
 
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtceコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
 
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtcヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
 
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtcYahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
 
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtcビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
 
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtcサイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
 
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtcヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
 
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtcYahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
 
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
 
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtcPC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
 
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtcモブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
 
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
 
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtcユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
 

Recently uploaded

Recently uploaded (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 

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

  • 1. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. ランキングチューニングと定量評価 ヤフー株式会社  近藤司 2015/5/13  第16回  Lucence/Solr勉強会  #SolrJP
  • 2. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P2自己紹介 •  近藤 司 •  ヤフー株式会社 •  新卒 3年目 •  Solr歴 半年 •  業務内容 •  ヤフーの各種サービスへSolr導入やランキング チューニングのお手伝い •  社内向けドキュメントの検索サービスの開発・運用
  • 3. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P3本日の話の概要 •  検索結果の質を定量的に評価する手法 •  ↑と組み合わせてランキングチューニングを する方法についてお話します •  時間があれば、Solrでドキュメントのスコアの 内訳を見る方法を説明します
  • 4. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P4話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  • 5. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P5話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  • 6. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P6ランキングチューニングとは •  検索結果の上位に質の高いドキュメントを 持ってくる作業 •  ex) •  q = “本田圭佑 試合” •  「本田試合速報」 •  「本田圭佑2ゴール!!」
  • 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. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P8チューニングの難しいところ •  フィールドへの重みをどう決めるのか •  とりあえず、Titleは強めの重み? •  MA(形態素解析)も大きめに? •  ランキングが良くなっているのか分かりにくい •  あるクエリでは良くなっているけど、別のクエリでは? •  そもそも、評価が主観 ランキングの良し悪しを判断する基準が無い
  • 9. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P9チューニングと定量評価 •  チューニングと定量評価をセットで考える •  重みを変えたら評価をする •  メリット •  客観的にランキングを評価できる •  最もランキングが良くなる重みを探しだせる •  チューニング作業の一部を自動化できる •  デメリット •  導入コストが高い •  定量評価の計算に時間がかかる場合がある
  • 10. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P10話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  • 11. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P11NDCG •  NDCG •  Normalized Discounted Cumulative Gain •  ランキングの並びの良さを評価する指標 •  クエリとの適合度が高いドキュメントが上位に 来ていればいるほど評価大
  • 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. 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. 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. 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. 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. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P17話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  • 18. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P18前準備 1.  ランキングを評価するクエリを決める •  検索数上位50位のクエリなど 2.  各評価用クエリでドキュメントの適合度を評 価しておく(正解データの準備)
  • 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. 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. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P21補足 •  定性評価について •  必要なくなる訳ではない •  検索結果に不適切なドキュメントが紛れてい ないか調査が必要 •  NDCGが低いクエリの調査 •  TopKに入って欲しくないドキュメントの調査
  • 22. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P22 •  正解データを準備するコストが高い •  評価用クエリ100個 * 1クエリ当たりで評価するドキュメン ト5件 = 500件分の評価が必要 •  NDCGの計算に時間がかかる場合がある •  フィールド数:4、調査する重みの範囲:1 – 10の場合、
 10^4=10000通りの試行回数が必要 定量評価を組み合わせることのデメリット
  • 23. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P23話の流れ •  ランキングチューニングについて •  難しいところ •  解決策 •  定量評価の手法 •  NDCG •  実際のチューニング作業の流れ •  (時間があれば)ドキュメントのスコアの見方
  • 24. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P24Solrのスコアの確認方法 •  Solrのスコアの内訳の確認方法 •  時間があればお話します
  • 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. 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. 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. 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. 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. 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. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P31Solrのスコアリング •  boost : qfでフィールドに指定した重み •  idf : クエリのidf値 •  queryNorm : 異なるクエリ同士でスコアを比較 できるようにするための正規化係数 queryWeight = boost ×idf ×queryNorm
  • 32. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P32Solrのスコアリング •  tf : クエリのtf値 •  idf : クエリのidf値 •  fieldNorm : 単語数の多いフィールドと少ない フィールドを比較するための正規化係数 fieldWeight = tf ×idf ×fieldNorm
  • 33. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P33Solrのスコアリング •  クエリが複数指定されて場合に、そのクエリが フィールドにいくつか出現したか coord
  • 34. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P34まとめ •  ランキングチューニングについての説明 •  チューニング作業の説明と難しいところ •  定量評価を組み合わせることのメリット •  評価指標に関する説明 •  NDCG •  実際のチューニング作業の流れ •  定量評価を組み合わせた場合のデメリット
  • 35. Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved. P35 ご静聴ありがとうございました