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
ドキュメントがクエリに
マッチしているかどうかは人手で判断
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)