狠狠撸

狠狠撸Share a Scribd company logo
筑波大学 図書館情報メディア系
加藤 誠
情報アクセス技術のための
テストコレクション作成
情报アクセス系の研究で定量的评価を行う方法
本日の内容 2
? 情報アクセス系の研究
– あるリソースXからその一部をとってくる研究
– 情報検索,推薦,質問応答,など
? 多くの研究の30%~40%は実験(≒評価)
– ある目的に対して本当に良い手段を採用しているかを
検証するには評価を行う必要がある
? 実サービスの方が評価を重視!?
– オンライン評価の論文の多くはMicrosoftと米Yahoo
– どのWebサービスでもA/Bテストは日常的に行われている
– サービスを改善しようと思ったら必ず定量化が求められる
? 現状のA手法と新しいB手法があった場合、B手法が採用されるかは評価次第
– An Academic in a Data Wonderland: Five Lessons from
Commercial Search @ NTCIR-14 Conference
? 評価を専門とする大学教授がFacebookで2年間エンジニアとして働いた経験を
共有
評価の重要性 3
情報アクセス系の研究の評価 4
? 入力
– 検索: クエリ
– 推薦: 購買履歴
– 質問応答: 質問
? 出力
– 検索: 文書ランキング
– 推薦: 商品ランキング
– 質問応答: 回答
? 評価指標
– 検索?推薦: 適合率?再現率
– 質問応答: ROUGE
入力1 入力2
評価値1 評価値2
システム
出力1 出力2
評価指標
平均値
Yahoo知恵袋の検索システムよりも良い検索システムを作ろう
http://www.openliveq.net/
情報アクセス系の評価例 5
? 入力
– キーワードクエリ
? 2,000クエリ
? 出力
– 質問ランキング
? 適合性判定
– クラウドソーシング
? 95,700文書
モバイル検索のための検索結果要約タスク
http://mobileclick.org/
情報アクセス系の評価例 6
? 入力
– キーワードクエリ
? 200クエリ
? 出力
– 検索結果要約
? 適合性判定
– iUnit (短文)
? ~6,000文
? どうやって用意するか?
– 基本の方針:
本番においてシステムに入力される可能性が高い入力を選ぶべき
? 評価で得られた結果と実際に利用されたときの性能に差ができないように
– 自分で考える ×
– 実サービスのログから選ぶ ○
– 人に考えてもらう △
? 何個用意するべきか?
– 最近のトレンドは50?100個
– 統計的検定における検出力が十分に高くなる個数にすると良い
? 参考:「情報アクセス評価方法論: 検索エンジンの進歩のために (コロナ社,
2015), 酒井哲也 著」
入力(1/2) 7
入力(2/2) 8
? クエリログからどのように入力
を選ぶか?
– 無作為抽出法 △
? 頻度を考慮しないとTailに偏る
? 頻度を考慮するとHeadに偏る
– 層化抽出法 ○
? カテゴリごと,頻度ごとにわけて,
適当な数を無作為に選択
? HeadやTailに特殊なクエリが多いこと
から,Torsoのみから選ぶ場合もある
頻度
クエリ
「情報検索 評価」「京都」
典型的なクエリログの度数分布
頻度無考慮
頻度考慮
頻度
クエリ
典型的なクエリログの度数分布
頻度ごとに
無作為抽出
? Yahoo知恵袋から「人手で精査して」倫理的に問題のあるク
エリを除き2,000クエリを選定
実例: NTCIR-14 OpenLiveQ-2 Task 9
ID クエリ
OLQ-0001 バイオハザード
OLQ-0002 チベット
OLQ-0003 ぶどう
OLQ-0004 プリウス
OLQ-0005 twice
OLQ-0006 割り勘
OLQ-0007 gta5
<queries>
<query>
<qid>0001</qid>
<content>Halloween picture</content>
<description>Halloween is coming. You want to find some pictures about
Halloween to introduce it to your children.</description>
</query>
<query>
<qid>0002</qid>
<content>calendar</content>
<description>You need to find a convenient online calendar.</description>
</query>
<query>
<qid>0003</qid>
<content>women's clothing winter</content>
<description>Winter is coming. You want to look for information on women's
clothes for yourself.</description>
</query>
...
実例: NTCIR-14 WWW-2 Task 10
後述の適合性判定のために
情報要求を含めることもある
? 各入力によって得られた出力のうち,どれが各入力の情報要求
を満たすのか(適合するのか)を判定する作業
? 評価者が「出力」と「情報要求」を比べ適合しているか決める
– 情報要求: ある目的を達成するために情報を得たいと思う欲求
適合性判定 11
京都 観光
ユーザ
クエリ
京都で観光したいけど
いい観光地を知りたい
情報要求
金閣寺
通天閣
出力
評価者
適合
不適合
? 適合性
– ある出力が情報要求を満たす度合い
? 特に「話題適合性」が用いられる
– 話題適合性: 情報要求によって必要とされる「話題」が,
ある出力にどの程度記述されているか
– 例: 情報要求「京都の観光地を知りたい」
? 適合度 高:金閣寺について書かれたページ
? 適合度 中:近畿の寺に全般について書かれたページ
? 適合度 低:通天閣について書かれたページ
? 近年では段階的適合性(高適合,部分適合,不適合など)が
広く用いられる
? 複数の評価者によって判定されるべき
適合性 12
段階的適合性(NTCIR-9 INTENT-1 Taskの例) 13
? Highly relevant (2点)
– The document fully satisfies the
information need
? Relevant (1点)
– The document only partially
satisfies the information need
? Non-relevant (0点)
金閣寺
通天閣
出力
近畿の
お寺
Highly relevant
Relevant
Non-relevant
? 独立に得られた評価がどれくらい一致しているかを計算する
– Inter-rater agreementと呼ばれる
? 代表的な指標: カッパ係数 ? =
? ??? ?
1?? ?
? 段階的適合性の場合は重み付きカッパ係数などを利用
適合性判定の信頼性評価 14
評価者1が
適合と評価
評価者1が
不適合と評価
評価者2が
適合と評価 ? =30 ? =11
評価者2が
不適合と評価 ? =10 ? =60
? ? =
?+?
?+?+?+?
(一致した割合)
? ? = ? ?+ + ? ?? (たまたま一致する確率)
? ?+ =
?+?
?+?+?+?
?+?
?+?+?+?
? ?? =
?+?
?+?+?+?
?+?
?+?+?+?
? ?1 ≤ ? ≤ 1で,目安としては
– < 0: no agreement
– 0–0.20: slight agreement
– 0.21–0.40: fair agreement
– 0.41–0.60: moderate agreement
– 0.61–0.80: substantial agreement
– 0.81–1: almost perfect agreement
? 個人的な感覚として,? < 0.6 の場合は以下の懸念がある
– 評価者の背景情報に大きく依存する
→評価を安定させるために評価者数を増やした方がいい
– 評価者に適合性判定の基準が伝わっていない
→評価の基準を明文化し説明を改善する
– 評価者が真面目に評価していない(クラウドソーシングなど)
→評価者数を十分に増やすか,評価者の採用基準を厳しくする
カッパ係数の解釈 15
? 以下のような結果が ? = 0.6付近の結果
? 経験的にはかなり評価が一致しないと ? > 0.6は達成できない
カッパ係数の実例 16
評価者1が
適合と評価
評価者1が
不適合と評価
評価者2が
適合と評価 30 11
評価者2が
不適合と評価 10 60
評価者1が
適合と評価
評価者1が
不適合と評価
評価者2が
適合と評価 90 3
評価者2が
不適合と評価 3 5
? = 0.59 ? = 0.59
? 出力の種類数が少ない場合
→出力されうるものすべてを適合性判定
– 例: 100種類の出力しかない場合
? 出力の種類数が少なくない場合
→複数システムの出力(の上位k件)をプーリング(和集合)
? プーリングで得られなかった出力は存在しなかったと考え
評価していくことになる
適合性判定の対象 17
入力1
システムA
システムB
1 3 6
6 8 1
1 3 6 8プーリング
出力
これを適合性判定の
対象とする
? 適合率
– P = (出力中の適合の数) / (出力数)
– 例: システムA’s P = 2/3,システムB’s P = 1/3
? 再現率
– R = (出力中の適合の数) / (すべての適合の数)
? すべての適合の数 = プーリングした結果中の適合の数,と考える
– 例: システムA’s P = 2/2,システムB’s P = 1/2
? 段階的適合性の場合はある段階以上を適合として計算
評価指標:適合率?再現率 18
入力1
システムA
システムB
1 3 6
6 8 1
1 3 6 8プーリング
出力 適合
? 上記の場合,システムA’s P = システムB’s P = 1/3
? 出力に順位がついている場合,
システムAの方をもっと高く評価したい
– システムAは1位に適合文書を順位付けできているため
– システムAの1位は高適合(2点)の文書であるため
→ normalized Discounted Cumulative Gain (nDCG)
評価指標:nDCG (1/4) 19
入力2
システムA
システムB
1 8 6
8 6 3
1 3 6 8プーリング
出力 高適合
(2点)
適合
(1点)
? nDCG
– ランキングと段階的適合性を考慮した評価指標
– Web検索エンジンなどでも利用されている
DCG@? ? =
?=1
?
?(? ?)
1
log(? + 1)
nDCG@? ? = DCG@?(?)/DCG@?(??
)
– ?: 出力(ランキング)
– ??
: 適合度が高い順に文書を並べて作った理想的な出力
– ?: カットオフ(定数.この順位までの結果を考慮)
– ? ?: ?の?番目の文書(画像などでも良い)
– ?(? ?): ?の?番目の文書の適合度
評価指標:nDCG (2/4) 20
? ? = 3とする, logの底を2とする(割愛するが底は結果に影響しない)
? DCG@3 システムAの出力 = ? ?1
1
log 1+1
+ ? ?2
1
log 2+1
+ ? ?3
1
log 3+1
= 2
1
log 2
+ 0
1
log 3
+ 0
1
log 4
=
2
log 2
= 2
? DCG@3 システムBの出力 = ? ?1
1
log 1+1
+ ? ?2
1
log 2+1
+ ? ?3
1
log 3+1
= 0
1
log 2
+ 0
1
log 3
+ 1
1
log 4
=
1
log 4
=
1
2
評価指標:nDCG (3/4) 21
入力2
システムA
システムB
1 8 6
8 6 3
1 3 6 8プーリング
出力 高適合
(2点)
適合
(1点)
? 理想的な出力??は1, 3, 6 (or 8)
– プーリング結果を適合度の高い順に並べれば良い
? DCG@3 ??
= 2
1
log 2
+ 1
1
log 3
+ 0
1
log 4
= 2 + 0.63 = 2.63
? nDCG@3 システムAの出力 =
2
2.63
= 0.76
? nDCG@3 システムBの出力 =
0.5
2.63
= 0.19
? 結論: 入力2に対しては,nDCGで評価したとき「システムA > システムB」
評価指標:nDCG (4/4) 22
入力2
システムA
システムB
1 8 6
8 6 3
1 3 6 8プーリング
出力 高適合
(2点)
適合
(1点)
評価指標はたくさんあるので場合に応じて選べると良い 23
指標 AP RBP Q nDCG RR ERR
検索意図 Informational Navigational
適合性 二値 多値 多値 多値 二値 多値
正規化 ○ × ○ ○ ○ △ (nERR)
収穫逓減 × × × × ○ ○
判別能力 ○ × ○ ○ × ×
利用率 ◎ △ △ ◎ ◎ ○
? 正規化: 最大値が1に正規化されている
? 収穫逓減: ある文書が適合である場合,それより下位の文書の価値が低下
? 判別能力: 2つのシステムの優劣を判別できる能力
? 利用率: 加藤の主観
参考:「情報アクセス評価方法論: 検索エンジンの
進歩のために (コロナ社, 2015), 酒井哲也 著」
? トピック,文書集合,適合性判定をまとめて
「テストコレクション」と呼ぶ
? 日本ではNTCIRというところでいろいろ公開されている
– http://research.nii.ac.jp/ntcir/index-ja.html
テストコレクション 24
トピック
(入力)
文書集合 適合性判定
検索システム
IndexedInput
出力
Evaluate
テストコレクション
「京都 観光」
「ぶどう」
高適合
不適合
? 入力を5個しか用意していない
– システムが研究対象ならアウト,ユーザが研究対象ならセーフ
? システムを1つしか用意していない
(関連研究がないから比較できない)
– 再現率やnDCGは複数システムがなければ意味をなさない指標
– 従来の手法に簡単な改良を加えて適用できないか考える
– 提案システムの特に工夫したところを除く,または,簡略化したシ
ステムを利用する
? プーリングをしないで各システムの出力を評価
– 典型的な事故
– 2つの評価対象が同じシステムから出力されたことがわかってしまう
場合,評価にバイアスがかかりやすい
よくある誤り?よくある質問 1/3 25
? 評価者が1人しかいない
– せめて2人,できれば3人以上の奇数人
– 2人いないと適合性判定の質をまったく補償できない
– 3人いると多数決ができるようになる
? nDCGの理想的な出力を1つのシステムの出力から作成
– 本当に多い致命的間違いNo. 1
– nDCGが高いとき(0.6を超えるなど)は注意
? 適合性の段階を100段階(100点満点)にした
– 再現性の面から問題が指摘されている
? 次の日,同じ人が同じ評価をしたときどれほど点数を再現可能か?
– 2, 3, 5段階あたりが広く用いられている
よくある誤り?よくある質問 2/3 26
? 「人が評価するなんて主観的で非科学的じゃないですか?」
– 検索は人が利用するシステムなので人が評価するのは当たり前
? そこまで人自体の研究が進んでいないとも言える
– 主観性と科学性がなぜか結びつけられるのは再現性が低いことに由来
すると思われるが,そのためのinter-rater agreement
? 「著者が評価して公正な評価ができるんですか?」
– プーリングが適切に行われていれば恣意的な評価の余地はあまりない
? 「評価者が2名しかいないのですか?」
「実利用者との乖離があるのではないですか?」
– 話題適合性の評価には個人差が入る余地はあまりない
– Inter-rater agreementが高ければ個人差が少ないと期待できる
よくある誤り?よくある質問 3/3 27
? 情报アクセス系の研究で定量的评価を行う方法を説明
? 入力
– 50-100個の入力を,可能であればログから層化抽出法によって選ぼう
? 適合性判定
– 2名以上の評価者に2~5段階の適合度を判定してもらおう
– 複数システムの出力をプーリングした結果に対して適合性判定を行おう
– Inter-rater agreementを計算して適合性判定の定量的評価をしよう
? 評価指標
– 段階適合度でランキングの評価を行う場合の最初の選択肢としてnDCG
を検討しよう
まとめ 28
テストコレクション作成実践
29
青空文庫から日本の地方の様子を検索するシステムを構築し評価
シナリオ
? 複数の検索システムを構築
? プーリングした出力に対して適合性判定
? 適合性判定の結果に基づきPrecision, nDCGを計算
? どのシステムが優れているか結論づける
? 現実的な制約からこの評価方法には下記の問題があります
– クエリが少ない
– クエリの選定が恣意的
– プーリング後に結果をランダマイズしていない
– 評価者が1名しかいない,
そのために,適合性判定の信頼性が担保できない
– 評価指標の選定に根拠がない
実際の評価の際にはご注意ください
注意事項 31
? Anacondaは,コンパイル済Pythonパッケージの管理用ソフトウェ
アです. Anacondaを通して,様々なPythonパッケージ(ライブラ
リのようなもの)をWindowsでもMacでも簡単にインストールする
ことができます.
? WindowsとMacでは少しだけインストール方法が異なります.下記
のページを参考にAnacondaをインストールしてください(Optional
と書いてある部分は飛ばしても良い).すでにPythonに詳しい,
Pythonがインストールされている場合は飛ばしても構いません.
? Python 3.xとPython 2.xがありますが,Python 3.x推奨です.
? Windows
– https://docs.anaconda.com/anaconda/install/windows
? Mac
– https://docs.anaconda.com/anaconda/install/mac-os
Anacondaのインストール(共通) 32
? Windows
– スタートメニュー(左下のWindowsマーク)→「Anaconda Navigator」を
選択し,「Anaconda Navigator」が起動するか確認しましょう(起動に少
し時間がかかります)
? Mac
– Launchpad→「Anaconda Navigator」を選択し,「Anaconda Navigator」
が起動するか確認しましょう(起動に少し時間がかかります)
インストールされたAnacondaの確認(共通) 33
1. https://java.com/ja/ へアクセスし「無料Javaのダウン
ロード」→「同意して無料ダウンロードを開始」をクリック
2. ダウンロードしたファイルを実行し「インストール」
3. ターミナルを起動し「java -version」と入力,
「java version “1.8.0_211” …」などと表示されれば成功
– Windowsの場合,「Anaconda Prompt」を利用
Javaのインストール (for Windows & Mac) 34
←のように表示されればJava
がインストールされてる
1. https://www.elastic.co/jp/downloads/elasticsearch から 自分のOS用
のElasticsearchをダウンロード
2. ダウンロードしたzipファイル (for Windows)/tar.gzファイル (for Mac)を
展開し好きな場所に移動させる(e.g. デスクトップ)
– Macの場合,ターミナルから「tar fzxv ***.tar.gz」で展開可能
3. ターミナルを開き,「cd」を駆使して2で展開したフォルダ中のbinフォル
ダに移動
– 例: cd C:?Users?kato?Desktop?elasticsearch-7.2.0?bin
– 例: cd /Users/kato/Desktop/elasticsearch-7.2.0/bin
4. 「elasticsearch.bat」 (for Windows)/「elasticsearch」 (for Mac)
を実行
Elasticsearchのインストール (for Windows & Mac) 35
Elasticsearchの起動 (for Windows) 36
起動直前
起動中
Elasticsearchの起動確認(共通) 37
? ブラウザで http://localhost:9200/ を開く
←のように表示されれば
Elasticsearch 起動成功
? Elasticsearchフォルダ中の「config?elasticsearch.yml」ファイルの
末尾に下記の4行を追加
? ターミナル上でElasticsearchフォルダ中のbinフォルダに移動し
を実行(日本語形態素解析器プラグイン)
– Windowsの場合, elasticsearch-plugin.bat
? 上記実施後にElasticsearchを再起動しておく
– Ctrl+C (for Windows)/Command+C (for Mac)で一度止めて再実行
Elasticsearchの設定 (for Windows & Mac) 38
http.max_content_length: 350mb
cluster.routing.allocation.disk.threshold_enabled: false
http.cors.allow-origin: '*'
http.cors.enabled: true
$ elasticsearch-plugin install analysis-kuromoji
? Docker
– コンテナ管理ソフトウェア
– コンテナ: 依存し合う複数のリソースをまとめたもの
? 以下,Mac/Linuxユーザ,および,Windows 10 Proユーザ
向けの手順(Windows 10 Homeは未対応)
Docker編(上級者?向け) 39
コンテナ
Elasticsearch
Java elasticsearch.yml
? 従来
– 持ち運びがしにくい
– 別の環境で構築するのが面倒(今回のケース)
? Docker
– コンテナ単位で共有可能
– 別の環境で構築が容易
? Windows(難易度高)
– 要件
? Windows 10 64bit: Pro, Enterprise or Education, 4GB以上のメモリ,
? 仮想化の有効化: https://docs.docker.com/docker-for-
windows/troubleshoot/#virtualization-must-be-enabled
– ダウンロード
? https://hub.docker.com/editions/community/docker-ce-desktop-windows
? Mac (難易度易)
– 要件
? 2010年以降のMac,macOS Sierra 10.12以降のmacOS,4GB以上のメモリ,
VirtualBox 4.3.30以前がインストールされていないこと
– ダウンロード
? https://hub.docker.com/editions/community/docker-ce-desktop-mac
Dockerのインストール (for Docker) 40
# versionは多少異なる.先頭の「$」は入力しない
$ docker --version
Docker version 18.09, build c97c6d6
$ docker-compose --version
docker-compose version 1.24.0, build 8dd22a9
$ docker-machine –version
docker-machine version 0.16.0, build 9ba6da9
Dockerがインストールされているか確認(for Docker) 41
# 以下を入力し「Hello from Docker!」とでれば成功
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to
be working correctly.
hello-world Dockerイメージの起動(for Docker) 42
# 用意されたDockerfileをダウンロード
$ git clone https://github.com/mpkato/test_collection_lecture.git
$ cd test_collection_lecture/elasticsearch_docker
# ElasticSearch/Kibanaのdocker imageを起動する
$ docker-compose up
# たったこれだけ!
Dockerの起動(for Docker) 43
? 青空文庫データ
– (aozorabunko_json_data.zip)
? mpkato/test_collection_lecture
– https://github.com/mpkato/test_collection_lecture
– 「Clone or download」→「Download ZIP」→展開
? git clone https://github.com/mpkato/test_collection_lecture.git も可
? 青空文庫データを移動させ下記のような構成にしておく
青空文庫データ投入準備 44
test_collection_lecture
- aozorabunko_json_data
- insert_aozorabunko.py
- mapping.json
- …
$ python insert_aozorabunko.py
Index 'aozorabunko' has been deleted
Index 'aozorabunko' has been initialized
Inserting data from
'/Users/kato/dev/aozorabunko_json_data/aozorabunko.json.000' ...
Inserted 20000 documents
Inserting data from
'/Users/kato/dev/aozorabunko_json_data/aozorabunko.json.001' ...
Inserted 20000 documents
…
Inserted 199923 documents in total
青空文庫のデータを投入(共通) 45
? test_collection_lecture/webui/index.html をブラウザで開く
? クエリを入力して結果が得られればOK
索引付けされた文書の確認(共通) 46
? 下記の4都市を入力とする:
– 京都
– 大阪
– 渋谷
– 札幌
? 適合度の基準
– 高適合 (2点)
? 町の様子の詳細が描かれている
– 部分適合 (1点)
? 町の様子が少しだけ描かれている
– 不適合 (0点)
? 町の様子が描かれていない
入力?適合度の基準 47
? システム1: 都市名をそのままクエリとして利用
– 京都→「京都」
– 大阪→「大阪」
– 渋谷→「渋谷」
– 札幌→「札幌」
? システム2, …,システムk: 都市名に単語Tを追加
– 京都→「京都 T」
– 大阪→「大阪 T」
– 渋谷→「渋谷 T」
– 札幌→「札幌 T」
– 例: 「町」を追加
? 京都→「京都 町」
? 大阪→「大阪 町」
? 渋谷→「渋谷 町」
? 札幌→「札幌 町」
比較対象システム 48
? Elasticsearchのデフォルトランキング手法はBM25
– BM25 (Okapi BM25): https://en.wikipedia.org/wiki/Okapi_BM25
– あるクエリ?に対し,文書を以下の式の値が高い順にランキング
? score ?, ? = ?=1
?
IDF ??
TF ? ?,? (?1+1)
TF ? ?,? +?1 1??+?
?
avgd
– IDF ?? = log
??DF ? ? +0.5
DF ? ? +0.5
– ??: クエリ?の?番目の単語( ? はクエリ中の単語数)
– ?: 文書( ? は文書長=文書中の単語数)
– DF ?? : ある文書コーパス中で単語??を含む文書数
– ?: ある文書コーパス中の文書数
– TF ??, ? : 文書?における単語??の出現頻度
– ?1, ?: パラメータ(デフォルト: ?1 = 1.2, ? = 0.75)
– avgd: ある文書コーパス中の文書長の平均
より発展的な比較対象システム 1/3 49
? Elasticsearchの別のランキング手法
– https://www.elastic.co/guide/en/elasticsearch/reference/current
/index-modules-similarity.html
– 例: 言語モデル(Dirichletスムージング版)
? score ?, ? = ? ! ?=1
?
?(??|?)
– 文書?の言語モデルからクエリ?が生成される確率
? 言語モデルとして多項分布のユニグラムモデルを利用
– ただし,クエリ?中の単語に同じ単語がない場合を仮定
? ? ? ? =
?? ?,? +??(?|?)
? +?
(Dirichletスムージング)
– ? ? ? = ?=1
?
TF ?,? ?
?=1
?
|? ?|
(ある文書コーパスにおける単語? の生成確率)
– ある文書における単語? の生成確率を,文書コーパスにおける生成確率を事前確率(分
布としてDirichlet分布を利用)とした上で最大事後確率推定(≠最尤推定)したもの
? BM25よりも性能が良いときがあるらしい
より発展的な比較対象システム 2/3 50
? 言語モデル(Dirichletスムージング版)を利用する
? ranking.json
? 上記”type”を好きなランキング手法に変え
update_ranking.py を実行すればランキング手法が変わる
– ただし, 単語を追加する方法と併用すること
? 1語のクエリの場合,ほとんど変化がないため
より発展的な比較対象システム 3/3 51
{
"index": {
"similarity": {
"default": {
"type": "LMDirichlet"
}
}
}
}
? 文書ランキング登録フォーム
–
– 各クエリ上位5件の結果を登録
複数システムのランキングをプーリング 52
各入力で得られた
文書IDをコピーして貼付
上位5件の文書ID
? プーリング結果
– の「Pooling」シート
? 適合性判定
– 「Pooling」シートに手分けして記入していく
適合性判定の手順 53
0-2の適合度を記入
? 評価指標の計算
? pyNTCIREVAL
– README: https://github.com/mpkato/pyNTCIREVAL
– pyNTCIREVAL is a python version of NTCIREVAL developed by
Dr. Tetsuya Sakai http://www.f.waseda.jp/tetsuya/sakai.html
– ランキング評価のためのツール
? 日本語のグラフを書く準備
必要なPython Package (ライブラリ)のインストール 54
$ pip install pyNTCIREVAL
$ pip install japanize-matplotlib
? にアクセスし「ファイル」→「形式を指定してダウンロード」→「カンマ
区切りの値(.csv?現在のシート)」
? 各シートで行いそれぞれ「Rankings.csv」「Pooling.csv」とし
適当なフォルダに保存
システム出力と適合性判定結果のダウンロード 55
? 「Rankings.csv」「Pooling.csv」のあるフォルダで下記コマンドを実行
? Jupyterは,各種プログラミング言語を対話的に実行できるソフトウェアで
す. Jupyter Notebookでは,ブラウザ上でコードを編集でき, データの表
示?視覚化やコードの一部再実行などが容易にできます
Jupyter Notebookの起動 56
$ jupyter notebook
クリックでファイル名変更可能
保存
セル追加
選択中のセルのコードを実行 (Shift+Enter)
セル
セル
セル:プログラムコードなどを入力する領域.セルごとに分けてコードを実行できる.
? 右上の「New▼」をクリックし「Python 3」を選択
新しいNotebookの作成 57
? https://github.com/mpkato/test_collection_lecture/blob
/master/test_collection_lecture.ipynb
1. 提出されたシステム出力「Rankings.csv」,および,
適合性判定結果「Pooling.csv」の読み込み
2. pyNTCIREVALで評価指標を計算
3. 評価結果をmatplotlibで視覚化
システム評価の流れ 58
? 全文検索エンジンを作るならElasticsearchが最近の流行
? 実験?環境の再現性を高めるためにDockerを活用しよう
? 小規模の適合性判定は互いに協力してやれると効率的
– まったくの素人の人にアルバイトでやってもらうのはかなり大変
– 最近はクラウドソーシングという選択肢もあるが品質管理が大変
? 評価には公開されているツールを使おう
– 特にnDCGの自力での実装は事故の元
? 「評価指標の平均値」以外も調べてみよう
– クエリごとの傾向や良かった例,悪かった例など
実践まとめ 59
Ad

Recommended

翱厂厂强化学习フレームワークの比较
翱厂厂强化学习フレームワークの比较
gree_tech
?
ガイデットフィルタとその周辺
ガイデットフィルタとその周辺
Norishige Fukushima
?
Icra2020 v2
Icra2020 v2
robotpaperchallenge
?
远赤外线カメラと可视カメラを利用した悪条件下における画像取得
远赤外线カメラと可视カメラを利用した悪条件下における画像取得
Masayuki Tanaka
?
セクシー女优で学ぶ画像分类入门
セクシー女优で学ぶ画像分类入门
Takami Sato
?
组合せ最适化入门:线形计画から整数计画まで
组合せ最适化入门:线形计画から整数计画まで
Shunji Umetani
?
四脚ロボットによる つくばチャレンジへの取り組み
四脚ロボットによる つくばチャレンジへの取り組み
kiyoshiiriemon
?
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
Ryosuke839
?
各言語の k-means 比較
各言語の k-means 比較
y-uti
?
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
Preferred Networks
?
統計的因果推論への招待 -因果構造探索を中心に-
統計的因果推論への招待 -因果構造探索を中心に-
Shiga University, RIKEN
?
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
Masashi Shibata
?
猫でも分かりたい线形回帰の自由度
猫でも分かりたい线形回帰の自由度
YukinoriKambe
?
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
Preferred Networks
?
効率的学習 / Efficient Training(メタサーベイ)
効率的学習 / Efficient Training(メタサーベイ)
cvpaper. challenge
?
MIRU2016 チュートリアル
MIRU2016 チュートリアル
Shunsuke Ono
?
論文紹介 LexToMap: lexical-based topological mapping
論文紹介 LexToMap: lexical-based topological mapping
Akira Taniguchi
?
机械学习のためのベイズ最适化入门
机械学习のためのベイズ最适化入门
hoxo_m
?
翱辫迟颈尘颈锄别谤入门&最新动向
翱辫迟颈尘颈锄别谤入门&最新动向
Motokawa Tetsuya
?
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
Masanao Ochi
?
[Dl輪読会]dl hacks輪読
[Dl輪読会]dl hacks輪読
Deep Learning JP
?
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Atsushi KOMIYA
?
Towards Performant Video Recognition
Towards Performant Video Recognition
cvpaper. challenge
?
【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル
Deep Learning JP
?
2012-1110「マルチレベルモデルのはなし」(肠别苍蝉辞谤别诲)
2012-1110「マルチレベルモデルのはなし」(肠别苍蝉辞谤别诲)
Mizumoto Atsushi
?
機械学習をこれから始める人が読んでおきたい 特徴選択の有名論文紹介
機械学習をこれから始める人が読んでおきたい 特徴選択の有名論文紹介
西岡 賢一郎
?
検索评価ツールキット狈罢颁滨搁贰痴础尝を用いた様々な情报アクセス技术の评価方法
検索评価ツールキット狈罢颁滨搁贰痴础尝を用いた様々な情报アクセス技术の评価方法
kt.mako
?
Introduction to Recommender Systems 2012.1.30 Zansa #3
Introduction to Recommender Systems 2012.1.30 Zansa #3
Atsushi KOMIYA
?

More Related Content

What's hot (20)

各言語の k-means 比較
各言語の k-means 比較
y-uti
?
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
Preferred Networks
?
統計的因果推論への招待 -因果構造探索を中心に-
統計的因果推論への招待 -因果構造探索を中心に-
Shiga University, RIKEN
?
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
Masashi Shibata
?
猫でも分かりたい线形回帰の自由度
猫でも分かりたい线形回帰の自由度
YukinoriKambe
?
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
Preferred Networks
?
効率的学習 / Efficient Training(メタサーベイ)
効率的学習 / Efficient Training(メタサーベイ)
cvpaper. challenge
?
MIRU2016 チュートリアル
MIRU2016 チュートリアル
Shunsuke Ono
?
論文紹介 LexToMap: lexical-based topological mapping
論文紹介 LexToMap: lexical-based topological mapping
Akira Taniguchi
?
机械学习のためのベイズ最适化入门
机械学习のためのベイズ最适化入门
hoxo_m
?
翱辫迟颈尘颈锄别谤入门&最新动向
翱辫迟颈尘颈锄别谤入门&最新动向
Motokawa Tetsuya
?
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
Masanao Ochi
?
[Dl輪読会]dl hacks輪読
[Dl輪読会]dl hacks輪読
Deep Learning JP
?
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Atsushi KOMIYA
?
Towards Performant Video Recognition
Towards Performant Video Recognition
cvpaper. challenge
?
【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル
Deep Learning JP
?
2012-1110「マルチレベルモデルのはなし」(肠别苍蝉辞谤别诲)
2012-1110「マルチレベルモデルのはなし」(肠别苍蝉辞谤别诲)
Mizumoto Atsushi
?
機械学習をこれから始める人が読んでおきたい 特徴選択の有名論文紹介
機械学習をこれから始める人が読んでおきたい 特徴選択の有名論文紹介
西岡 賢一郎
?
各言語の k-means 比較
各言語の k-means 比較
y-uti
?
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
Preferred Networks
?
統計的因果推論への招待 -因果構造探索を中心に-
統計的因果推論への招待 -因果構造探索を中心に-
Shiga University, RIKEN
?
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
Masashi Shibata
?
猫でも分かりたい线形回帰の自由度
猫でも分かりたい线形回帰の自由度
YukinoriKambe
?
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
明治大学講演資料「機械学習と自動ハイパーパラメタ最適化」 佐野正太郎
Preferred Networks
?
効率的学習 / Efficient Training(メタサーベイ)
効率的学習 / Efficient Training(メタサーベイ)
cvpaper. challenge
?
MIRU2016 チュートリアル
MIRU2016 チュートリアル
Shunsuke Ono
?
論文紹介 LexToMap: lexical-based topological mapping
論文紹介 LexToMap: lexical-based topological mapping
Akira Taniguchi
?
机械学习のためのベイズ最适化入门
机械学习のためのベイズ最适化入门
hoxo_m
?
翱辫迟颈尘颈锄别谤入门&最新动向
翱辫迟颈尘颈锄别谤入门&最新动向
Motokawa Tetsuya
?
【論文紹介】How Powerful are Graph Neural Networks?
【論文紹介】How Powerful are Graph Neural Networks?
Masanao Ochi
?
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Newman アルゴリズムによるソーシャルグラフのクラスタリング
Atsushi KOMIYA
?
Towards Performant Video Recognition
Towards Performant Video Recognition
cvpaper. challenge
?
【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル
Deep Learning JP
?
2012-1110「マルチレベルモデルのはなし」(肠别苍蝉辞谤别诲)
2012-1110「マルチレベルモデルのはなし」(肠别苍蝉辞谤别诲)
Mizumoto Atsushi
?
機械学習をこれから始める人が読んでおきたい 特徴選択の有名論文紹介
機械学習をこれから始める人が読んでおきたい 特徴選択の有名論文紹介
西岡 賢一郎
?

Similar to 情报アクセス技术のためのテストコレクション作成 (20)

検索评価ツールキット狈罢颁滨搁贰痴础尝を用いた様々な情报アクセス技术の评価方法
検索评価ツールキット狈罢颁滨搁贰痴础尝を用いた様々な情报アクセス技术の评価方法
kt.mako
?
Introduction to Recommender Systems 2012.1.30 Zansa #3
Introduction to Recommender Systems 2012.1.30 Zansa #3
Atsushi KOMIYA
?
情报検索における评価指标の最新动向と新たな提案
情报検索における评価指标の最新动向と新たな提案
Mitsuo Yamamoto
?
NLP2012
NLP2012
Yuki Nakayama
?
Information Retrieval
Information Retrieval
saireya _
?
マイニング探検会#31 情報検索システムのユーザーのニーズを考える
マイニング探検会#31 情報検索システムのユーザーのニーズを考える
Yoji Kiyota
?
マイニング探検会#09 情報レコメンデーションとは
マイニング探検会#09 情報レコメンデーションとは
Yoji Kiyota
?
情報検索の基礎 #9適合フィードバックとクエリ拡張
情報検索の基礎 #9適合フィードバックとクエリ拡張
nishioka1
?
Approximate Scalable Bounded Space Sketch for Large Data NLP
Approximate Scalable Bounded Space Sketch for Large Data NLP
Koji Matsuda
?
tut_pfi_2012
tut_pfi_2012
Preferred Networks
?
摆顿厂翱闭勉强会冲データサイエンス讲义冲颁丑补辫迟别谤7
摆顿厂翱闭勉强会冲データサイエンス讲义冲颁丑补辫迟别谤7
tatsuyasakaeeda
?
Chapter 8 : Evaluation in Information Retrieval
Chapter 8 : Evaluation in Information Retrieval
Joongjin Bae
?
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
Keizo Tatsumi
?
奥别产マイニングと情报论的学习理论
奥别产マイニングと情报论的学习理论
Hiroshi Ono
?
奥别产マイニングと情报论的学习理论
奥别产マイニングと情报论的学习理论
Hiroshi Ono
?
機械学習 / Deep Learning 大全 (3) 時系列 / リコメンデーション編
機械学習 / Deep Learning 大全 (3) 時系列 / リコメンデーション編
Daiyu Hatakeyama
?
”连环データ分析”の利点と効用と特徴
”连环データ分析”の利点と効用と特徴
DataCakeBaker corp
?
Pfi last seminar
Pfi last seminar
Hidekazu Oiwa
?
平成24年度社会知能情报学専攻修士论文中间発表会(予稿)
平成24年度社会知能情报学専攻修士论文中间発表会(予稿)
n-yuki
?
検索评価ツールキット狈罢颁滨搁贰痴础尝を用いた様々な情报アクセス技术の评価方法
検索评価ツールキット狈罢颁滨搁贰痴础尝を用いた様々な情报アクセス技术の评価方法
kt.mako
?
Introduction to Recommender Systems 2012.1.30 Zansa #3
Introduction to Recommender Systems 2012.1.30 Zansa #3
Atsushi KOMIYA
?
情报検索における评価指标の最新动向と新たな提案
情报検索における评価指标の最新动向と新たな提案
Mitsuo Yamamoto
?
Information Retrieval
Information Retrieval
saireya _
?
マイニング探検会#31 情報検索システムのユーザーのニーズを考える
マイニング探検会#31 情報検索システムのユーザーのニーズを考える
Yoji Kiyota
?
マイニング探検会#09 情報レコメンデーションとは
マイニング探検会#09 情報レコメンデーションとは
Yoji Kiyota
?
情報検索の基礎 #9適合フィードバックとクエリ拡張
情報検索の基礎 #9適合フィードバックとクエリ拡張
nishioka1
?
Approximate Scalable Bounded Space Sketch for Large Data NLP
Approximate Scalable Bounded Space Sketch for Large Data NLP
Koji Matsuda
?
摆顿厂翱闭勉强会冲データサイエンス讲义冲颁丑补辫迟别谤7
摆顿厂翱闭勉强会冲データサイエンス讲义冲颁丑补辫迟别谤7
tatsuyasakaeeda
?
Chapter 8 : Evaluation in Information Retrieval
Chapter 8 : Evaluation in Information Retrieval
Joongjin Bae
?
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
Keizo Tatsumi
?
奥别产マイニングと情报论的学习理论
奥别产マイニングと情报论的学习理论
Hiroshi Ono
?
奥别产マイニングと情报论的学习理论
奥别产マイニングと情报论的学习理论
Hiroshi Ono
?
機械学習 / Deep Learning 大全 (3) 時系列 / リコメンデーション編
機械学習 / Deep Learning 大全 (3) 時系列 / リコメンデーション編
Daiyu Hatakeyama
?
”连环データ分析”の利点と効用と特徴
”连环データ分析”の利点と効用と特徴
DataCakeBaker corp
?
平成24年度社会知能情报学専攻修士论文中间発表会(予稿)
平成24年度社会知能情报学専攻修士论文中间発表会(予稿)
n-yuki
?
Ad

More from kt.mako (9)

情报検索とゼロショット学习
情报検索とゼロショット学习
kt.mako
?
Context-guided Learning to Rank Entities
Context-guided Learning to Rank Entities
kt.mako
?
筑波大学 図書館情報メディア系 知識獲得システム 研究紹介
筑波大学 図書館情報メディア系 知識獲得システム 研究紹介
kt.mako
?
DEIM2017 私が愛したSIGIR Paper [京都大学 加藤誠]
DEIM2017 私が愛したSIGIR Paper [京都大学 加藤誠]
kt.mako
?
Two-layered Summaries for Mobile Search: Does the Evaluation Measure Reflect ...
Two-layered Summaries for Mobile Search: Does the Evaluation Measure Reflect ...
kt.mako
?
NTCIR-12 MobileClick-2 Overview
NTCIR-12 MobileClick-2 Overview
kt.mako
?
情报検索のためのユーサ?モテ?ル
情报検索のためのユーサ?モテ?ル
kt.mako
?
MobileClick-2 キックオフイベント
MobileClick-2 キックオフイベント
kt.mako
?
MobileClick-2 Kickoff Event
MobileClick-2 Kickoff Event
kt.mako
?
情报検索とゼロショット学习
情报検索とゼロショット学习
kt.mako
?
Context-guided Learning to Rank Entities
Context-guided Learning to Rank Entities
kt.mako
?
筑波大学 図書館情報メディア系 知識獲得システム 研究紹介
筑波大学 図書館情報メディア系 知識獲得システム 研究紹介
kt.mako
?
DEIM2017 私が愛したSIGIR Paper [京都大学 加藤誠]
DEIM2017 私が愛したSIGIR Paper [京都大学 加藤誠]
kt.mako
?
Two-layered Summaries for Mobile Search: Does the Evaluation Measure Reflect ...
Two-layered Summaries for Mobile Search: Does the Evaluation Measure Reflect ...
kt.mako
?
NTCIR-12 MobileClick-2 Overview
NTCIR-12 MobileClick-2 Overview
kt.mako
?
情报検索のためのユーサ?モテ?ル
情报検索のためのユーサ?モテ?ル
kt.mako
?
MobileClick-2 キックオフイベント
MobileClick-2 キックオフイベント
kt.mako
?
MobileClick-2 Kickoff Event
MobileClick-2 Kickoff Event
kt.mako
?
Ad

情报アクセス技术のためのテストコレクション作成