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

660 Views

May 14, 15

スライド概要

検索結果の質を定量評価する手法の紹介と、それを活用したランキングチューニングの進め方。

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

ランキングチューニングと定量評価 ヤフー株式会社  近藤司 2015/5/13  第16回  Lucence/Solr勉強会  #SolrJP Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

2.

自己紹介 • • • • • P2 近藤 司 ヤフー株式会社 新卒 3年目 Solr歴 半年 業務内容 • ヤフーの各種サービスへSolr導入やランキング チューニングのお手伝い • 社内向けドキュメントの検索サービスの開発・運用 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

3.

本日の話の概要 P3 • 検索結果の質を定量的に評価する手法 • ↑と組み合わせてランキングチューニングを する方法についてお話します • 時間があれば、Solrでドキュメントのスコアの 内訳を見る方法を説明します Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

4.

話の流れ P4 • ランキングチューニングについて • 難しいところ • 解決策 • 定量評価の手法 • NDCG • 実際のチューニング作業の流れ • (時間があれば)ドキュメントのスコアの見方 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

5.

話の流れ P5 • ランキングチューニングについて • 難しいところ • 解決策 • 定量評価の手法 • NDCG • 実際のチューニング作業の流れ • (時間があれば)ドキュメントのスコアの見方 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

6.

ランキングチューニングとは P6 • 検索結果の上位に質の高いドキュメントを 持ってくる作業 • ex) • q = “本田圭佑 試合” • 「本田試合速報」 • 「本田圭佑2ゴール!!」 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

7.

Solrでのチューニング作業 P7 • 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.

8.

チューニングの難しいところ P8 • フィールドへの重みをどう決めるのか • とりあえず、Titleは強めの重み? • MA(形態素解析)も大きめに? • ランキングが良くなっているのか分かりにくい • あるクエリでは良くなっているけど、別のクエリでは? • そもそも、評価が主観 ランキングの良し悪しを判断する基準が無い Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

9.

チューニングと定量評価 P9 • チューニングと定量評価をセットで考える • 重みを変えたら評価をする • メリット • 客観的にランキングを評価できる • 最もランキングが良くなる重みを探しだせる • チューニング作業の一部を自動化できる • デメリット • 導入コストが高い • 定量評価の計算に時間がかかる場合がある Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

10.

話の流れ P10 • ランキングチューニングについて • 難しいところ • 解決策 • 定量評価の手法 • NDCG • 実際のチューニング作業の流れ • (時間があれば)ドキュメントのスコアの見方 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

11.

NDCG P11 • NDCG • Normalized Discounted Cumulative Gain • ランキングの並びの良さを評価する指標 • クエリとの適合度が高いドキュメントが上位に 来ていればいるほど評価大 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

12.

NDCG P12 DCG NDCG = IDCG k reli 2 −1 DCG = ∑ i log(1+ i) • DCG … 順位と適合度をもとにしたスコア • IDCG … 理論上ランキングの並びが最も良く なった場合のDCG • i … 検索順位 • rel … i位に順位付けされたドキュメントのクエ リとの適合度 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

13.

NDCGの計算例 P13 • あるクエリで検索した場合の 検索結果上位3位の評価が下記の場合 順位 ドキュメント 評価 1 doc1 1 2 doc2 4 3 doc3 3   4:  very  good   3:  good   2:  bad   1:  very  bad ドキュメントがクエリに   マッチしているかどうかは人手で判断 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

14.

DCG P14 DCG NDCG = IDCG k reli 2 −1 DCG = ∑ i log(1+ i) 1 順位 ドキュメント 評価 1 doc1 1 2 doc2 4 3 doc3 3   4 3 2 −1 2 −1 2 −1 DCG = + + log(1+1) log(1+ 2) log(1+ 3) 1 15 7 DCG = + + 1 1.58 2 DCG = 13.99 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

15.

IDCG P15 DCG NDCG = IDCG k reli 2 −1 DCG = ∑ i log(1+ i) 4 順位 ドキュメント 評価 1 doc1 1 2 doc2 4 3 doc3 3   doc2,doc3,doc1の並びになった   仮定で計算 3 1 2 −1 2 −1 2 −1 IDCG = + + log(1+1) log(1+ 2) log(1+ 3) 15 7 1 IDCG = + + 1 1.58 2 IDCG = 19.93 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

16.

NDCG P16 DCG NDCG = IDCG k reli 2 −1 DCG = ∑ i log(1+ i) 順位 ドキュメント 評価 1 doc1 1 2 doc2 4 3 doc3 3   DCG = 13.99 IDCG = 19.93 13.99 NDCG = = 0.7 19.93 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

17.

話の流れ P17 • ランキングチューニングについて • 難しいところ • 解決策 • 定量評価の手法 • NDCG • 実際のチューニング作業の流れ • (時間があれば)ドキュメントのスコアの見方 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

18.

前準備 P18 1. ランキングを評価するクエリを決める • 検索数上位50位のクエリなど 2. 各評価用クエリでドキュメントの適合度を評 価しておく(正解データの準備) Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

19.

チューニングの進め方 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.

20.

フィールドへの重みの組み合わせとNDCGの値 P20 この重みの付け方が1番良さそう! 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 10 10 4 6 8 5 5 5 1 0.53 1 0.51 1 0.49 … Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

21.

補足 P21 • 定性評価について • 必要なくなる訳ではない • 検索結果に不適切なドキュメントが紛れてい ないか調査が必要 • NDCGが低いクエリの調査 • TopKに入って欲しくないドキュメントの調査 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

22.

定量評価を組み合わせることのデメリット P22 • 正解データを準備するコストが高い • 評価用クエリ100個 * 1クエリ当たりで評価するドキュメン ト5件 = 500件分の評価が必要 • NDCGの計算に時間がかかる場合がある • フィールド数:4、調査する重みの範囲:1 – 10の場合、 10^4=10000通りの試行回数が必要 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

23.

話の流れ P23 • ランキングチューニングについて • 難しいところ • 解決策 • 定量評価の手法 • NDCG • 実際のチューニング作業の流れ • (時間があれば)ドキュメントのスコアの見方 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

24.

Solrのスコアの確認方法 P24 • Solrのスコアの内訳の確認方法 • 時間があればお話します Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

25.

Solrのスコアの確認方法 • • P25 検索時に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.

26.

Solrのスコアリング • P26 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.

27.

Solrのスコアリング Unique key P27 当該ドキュメントのスコア “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) Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

28.

Solrのスコアリング P28 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.

29.

Solrのスコアリング P29 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.

30.

Solrのスコアリング P30 score(d,q) = queryWeight × fieldWeight × coord queryWeight = boost × idf × queryNorm fieldWeight = tf × idf × fieldNorm • 計算式は上記のようになります – クエリがヒットしたフィールドに対して、スコアを計 算していき、最もスコアが高いものをドキュメント のスコアとします Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

31.

Solrのスコアリング P31 queryWeight = boost × idf × queryNorm • boost : qfでフィールドに指定した重み • idf : クエリのidf値 • queryNorm : 異なるクエリ同士でスコアを比較 できるようにするための正規化係数 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

32.

Solrのスコアリング P32 fieldWeight = tf × idf × fieldNorm • tf : クエリのtf値 • idf : クエリのidf値 • fieldNorm : 単語数の多いフィールドと少ない フィールドを比較するための正規化係数 Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

33.

Solrのスコアリング P33 coord • クエリが複数指定されて場合に、そのクエリが フィールドにいくつか出現したか Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

34.

まとめ P34 • ランキングチューニングについての説明 • チューニング作業の説明と難しいところ • 定量評価を組み合わせることのメリット • 評価指標に関する説明 • NDCG • 実際のチューニング作業の流れ • 定量評価を組み合わせた場合のデメリット Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.

35.

P35 ご静聴ありがとうございました Copyright  (C)  2015  Yahoo  Japan  Corpora5on.  All  Rights  Reserved.