More Related Content
Similar to 質問応答システム入門 (20)
質問応答システム入門
- 2. 自己紹介
• @torotoki
• 自然言語処理や機械学習を勉強してい
たら1年が立つ
• 意味解析みたいなことに興味
• 奈良先端科学技術大学院大学バイトとか
• NTCIR RITE(含意関係認識のワーク
ショップ)参加中
• Android が好き
• 最近アプリを作ってない
• 高1
2
2
- 4. 質問応答システム
• 検索エンジン
• クエリを元にドキュメントを返す
• クエリ「東京, 観光」 → 観光スポット紹介サイトなど
• クエリ「アメリカ, sony, 日本, 購入」
• アメリカから日本の購入? 日本からアメリカへの購入?
• クエリにある潜在的な曖昧性
• 質問応答システム
• 自然言語を元に「答え」を返す
• 「今年の東京の人口は?」 → 「13,227,730人」
4
4
- 5. モチベーション
• クエリより自然言語のほうがいい!
• 自然体で聞ける
• うまくいけばクエリより表現力が高い
• ただし今回のシステム構成はクエリへ一度変換する
• 検索エンジンは別のページを開く必要がある
• 遅いページを開くとイライラ
• 特にスマートフォンでは面倒
• より SF っぽい未来感
• あれば便利なだけでなくかっこいい
5
5
- 6. 既存の質問応答システム
• IBM Watson
• 人間にクイズで勝ったシステム
• 答えを文章から推測して解答
• ファクトイド型と呼ばれる
• 今回のテーマ
• Siri
• ユーモアな回答で実際より賢く見せている点が新しい
• 限られたサイトのAPI等を使用しているので、何でも答えら
れるわけではない
• 特定の答えは良い回答を出せる(天気、価格、メールするなど)
6
6
- 7. 今回の構成
質問タイプの特定 大量の質問文-タイプ
- 「色」についてと判定 のペアで学習
質問文からクエリを作成
- 「空, 色」
取得した文章から
回答候補を抽出 質問-文書-解答のペア
- 「天候, 昼間, 青色, 空色, からランキングを学習
ニューヨーク, ...」
空色
確率の高いものを解答
7
7
- 8. 質問応答システムの構成
• 質問解析
• 質問タイプの同定(人物について, 場所についてなど)
• 文書検索
• 質問文を元にクエリを作成し、文章データを検索
• 回答候補抽出
• 質問解析で得られたタイプと検索して得た文章を元に回答候補を列挙
• 回答選択
• 回答候補をランキングで算出、ランキング上位が解答となる
8
8
- 9. 今回使用するアルゴリズム一覧
• 質問解析
• 質問タイプの同定(人物, 場所など)
• 固有表現抽出/SVM
• 文書検索
• 質問文を元にクエリを作成し、文章データを検索
• TF-IDF/Okapi BM25
• 回答候補抽出
• 質問解析で得られたタイプを元に回答候補上位N件をとる
• 回答選択
• 最終的な回答を選別
• SVMのランキング化
• 15分で解説できるのか!? 9
9
- 14. 質問解析
質問タイプの特定 大量の質問文-タイプ
- 「色」についてと判定 のペアで学習
質問文からクエリを作成
質問文と回答候補 - 「空, 色」
のタイプを照合
取得した文章から
回答候補を抽出 質問-文書-解答のペア
- 「天候, 昼間, 青色, 空色, からランキングを学習
ニューヨーク, ...」
空色
確率の高いものを解答
14
14
- 15. 質問解析
• 質問文ですでに解答のタイプが決まっているという仮定
• エジソンが電球を発明したのはいつ? → 年代
• C++を開発したのは誰? → 人名
• 英語でいう What/Where/Who/When が代表的な例
• このステップで解析し、後で回答候補のタイプと照合する
• 回答候補(単語)でも使えて、質問文(文章)でもタイプが出
せないといけない!
• 回答候補のタイプ推定は固有表現抽出を使う
• 質問文のタイプ推定は自前で用意
15
15
- 16. 固有表現抽出
• 固有表現抽出とは?
• 人物や地名、組織名などの単語を認識する
• 例を見ると分かりやすい
• 自然言語処理で広く使われる
• 基準やデータが養われている
• IREXの基準なら、Cabocha というツールに付属
16
16
- 17. IREXの固有表現の基準
• 8種類の分割(参考文献を引用)
• 人名(PERSON) - ジョージ, 織田信長 など
• 地名(LOCATION) - 京都, ロシア, 淡路島, 富士山 など
• 組織名(ORGANIZATION) - NTT, 外務省, 京大 など
• 固有物質(ARTIFACT) - のぞみ, ノーベル賞, 憲法 など
• 日付(DATE) - 1927年3月21日, きのう など
• 時刻(TIME) - 12時32分, 正午, 昨夜 など
• 金額(MONEY) - 320円, 1200バーツ, 500ユーロ など
• 割合(PERCENT) 33パーセント, 6割, 3分の2 など
• 拡張固有表現抽出のほうはサイトを参照
17
17
- 18. 質問解析
• 質問文のタイプの推定
• 質問タイプは 質問文-質問タイプ のペアで機械学習
• 日本語ではIREXの8種類が多く使われる
• 1999年の基準で古いが…
• 英語では50 300種類の固有表現抽出が使われる
18
18
- 20. 機械学習の問題設定
• 今回使うのはクラスが2つの問題(2値分類)
• それぞれ正クラス、負クラスと呼ぶ
• 何個も分類器を使えば複数の分類にも使える
• 人名であるかないか、地名であるかないか、…
• SVMは2値分類で一番メジャーなアルゴリズム
20
20
- 21. 機械学習の問題設定
• 参考文献の図があまりにも分かりやすかったので引用
http://www.slideshare.net/sleepy_yoshi/dsirnlp1
21
21
- 24. SVM
カーネル関数
正例のスペース
負例のスペース
「非線形な分類」を カーネル関数による写像
しているように見えるが… 空間では線形に分類している
24
24
- 26. SVMは難しい!
• 再掲
• 今回はこの図と前途の素性さえ覚えておけばOK
xはいろんな素性
ここがSVM
http://www.slideshare.net/sleepy_yoshi/dsirnlp1
26
26
- 27. SVM を使った質問解析
• 話を元に戻して…
• SVM を使ってどうやって質問タイプを推定する?
• 学習データは多数の 質問文-質問タイプ ペアを使う
• 素性は SAIQA-II みたいに適当に設定
• これだけで未知の質問文で質問タイプを推定できる!
• SVM はよく使われるのでライブラリが多い
• SVM-Light、LIBSVM、TinySVM など
27
27
- 30. 今回の構成
質問タイプの特定 大量の質問文-タイプ
- 「色」についてと判定 のペアで学習
質問文からクエリを作成
- 「空, 色」
取得した文章から
回答候補を抽出 質問-文書-解答のペア
- 「天候, 昼間, 青色, 空色, からランキングを学習
ニューヨーク, ...」
空色
確率の高いものを解答
30
30
- 31. 文書検索
• 文書検索はつまり「検索エンジン」と同じ?
• 精度を求めるなら段落単位の方が良いが、今回は同じ
• 質問文から検索クエリの変換
• 今回は単純なシステムなので自立語(品詞が 助詞, 助動詞 以
外)を単にフィルタしたとする
• 品詞でフィルタリング
• 「空は何色ですか?」 → 「空, 何, 色」
• 簡単な例だとそれなりにうまくいく
31
31
- 32. 文書検索
• 変換したクエリから文書を検索
• 検索エンジンの方法がそのまま使える
• TF-IDF とその拡張である Okapi BM25 を解説
• これらのモデルは学習用にデータがいらないので構築が簡単
• ただしデータが必要なモデルと比べると精度は落ちる
32
32
- 34. TF-IDF
• 言わずと知れたモデル
• TF と IDF の積に基づいて文書を採点するのがTF-IDF
• 単語の出現頻度 TF(t)
• M は文書の総数、freq()は は文書 d 内での単語 t の頻度
• クエリと同じ単語が多く出現する文書のほうがよいという仮定
• 逆出現頻度
• DF(t) は 単語 t を含む文書の数
• 珍しい単語のほうが良い仮定
• あまりにも有名で亜種がたくさんあるため、サイトによって定義が違うことがしばし
ば…
34
34
- 35. Okapi BM25
• TF-IDF の亜種の中でよく用いられる
• TF と IDF をそれぞれ改良
• 式が複雑だが暗記する必要は全くない
• k_は定数のパラメータ(0.1など)
• avelenは文書の長さの平均長
35
35
- 36. Okapi BM25
• TF-IDF の亜種の中でよく用いられる
• TF と IDF をそれぞれ改良
• 式が複雑だが暗記する必要は全くない
文書長の正規化
Okapi BM25は半分
のドキュメントに同
じ単語が出現すると
• k_は定数のパラメータ(0.1など) IDFが0になる
• avelenは文書の長さの平均長
36
36
- 40. 今回の構成
質問タイプの特定 大量の質問文-タイプ
- 「色」についてと判定 のペアで学習
質問文からクエリを作成
- 「空, 色」
取得した文章から
回答候補を抽出 質問-文書-解答のペア
- 「天候, 昼間, 青色, 空色, からランキングを学習
ニューヨーク, ...」
空色
確率の高いものを解答
40
40
- 41. 回答選択
• 前途の SVM を使用して回答を機械学習
• ただしこちらは結果をランキングで出す
• 回答候補から、それぞれの候補がどれくらい回答らしいかスコ
アを出してランキング化
• SVM に結果をランキングで出す仕組みはない
• 分類平面からの距離やロジスティック回帰を使った方法
• そもそも SVM の仕組みを変えた RankingSVM などもある
41
41
- 42. 回答選択
学習段階
与えられた文書 回答候補
http://ja.wikipedia.org/w...
長崎市
http://foodslink.jp/syoku... タイ
htttp://www.oisix.com/sh...
沖縄県
与えられた答え
... 台湾
モデル 沖縄県
...
(SVM)
与えられた質問文
日本でのパイナップルの主産地は?
42
42
- 43. 回答選択
実行段階
検索した文書 回答候補
回答ランキング
http://ja.wikipedia.org/w... アメリカ
http://cnn.co.jp/articles/...
東京
htttp://www.google.com/... 0.8
シリコンバレー
シリコンバレー
... アメリカ 0.34
... モデル 東京 0.25
(SVM) 大阪 0.04
未知の質問文 ...
Google本社はどこ?
43
43
- 44. 回答選択
• 学習段階
• 質問文-回答-候補文書(ソース) のペアで学習
• 回答は、SVM の仕組み上複数でもOK
• また、負例(ここでは回答ではない単語)も入れてもいい
• 実行段階
• 質問文-回答候補-検索で取得した文 を元に分類
• 回答候補をスコアで出す
• 一番スコアが高いものが最終的な回答となる
44
44
- 47. データ
• 今回使用するデータは日本語だと難しい
• 質問解析
• 質問文-質問タイプ、固有表現抽出のデータが必要
• 固有表現抽出は IREX 基準(8種類)なら Cabocha が使える
• 質問文-質問タイプ のデータは?
• 日本語はない
• 回答選択
• 質問文-回答-根拠文 のデータが必要
• 日本語だと NTCIR-6 QAC のデータが公開されている
• ただし毎日新聞のデータを10万円で購入する必要がある
47
47
- 48. データ
• 今回使用するデータは日本語だと難しい
• 質問解析
• 質問文-質問タイプ、固有表現抽出のデータが必要
• 固有表現抽出は IREX 基準(8種類)なら Cabocha が使える
• 質問文-質問タイプ のデータは?
• 日本語はない
• 回答選択
• 質問文-回答-根拠文 のデータが必要
• 日本語だと NTCIR-6 QAC のデータが公開されている
• ただし毎日新聞のデータを10万円で購入する必要がある
48
48
- 50. まとめ
• 質問解析、文書検索、回答抽出、回答選択 を使ったシステム
• 文書検索は検索エンジンのそれと同じ
• 最低限の機械学習が必要なのは 質問解析と回答選択
• SVM万能
• データがない
• 日本語は大学や研究機関でないと難しい
• 質問応答システムには問題点も多く、Bing は必要
50
50
- 51. 参考文献
• 自然言語処理シリーズ 2「質問応答システム」(本)
• DSIRNLP#1 ランキング学習ことはじめ
• ランキング学習やりたかった…(今回は解説なし)
• http://www.slideshare.net/sleepy_yoshi/dsirnlp1
• Learning to Rank for Information Retrieval
• http://research.microsoft.com/en-us/people/tyliu/
learning_to_rank_tutorial_-_www_-_2008.pdf
• SVMを用いた学習型質問応答システムSAIQA-II
• http://ci.nii.ac.jp/naid/110002712114
• 著者名は省略
51
51