質問応答システム入門
 Bingなんてもういらない?




                        torotoki
       1     @第17回プログラミング生放送
                                   1
自己紹介
•   @torotoki

•   自然言語処理や機械学習を勉強してい
    たら1年が立つ

    •   意味解析みたいなことに興味

    •   奈良先端科学技術大学院大学バイトとか

    •   NTCIR RITE(含意関係認識のワーク
        ショップ)参加中

•   Android が好き

    •   最近アプリを作ってない

•   高1

                          2
                                2
自然言語処理とは


• 人間が使う「自然言語」をごにょごにょする分野
• 応用先は Google や Bing などの検索エンジンや、
 スパム分類、機械翻訳などなど

• Twitter や Wikipedia など手軽に使える資源が増え
 てきた



                 3
                                      3
質問応答システム
• 検索エンジン
    •   クエリを元にドキュメントを返す

        •   クエリ「東京, 観光」 → 観光スポット紹介サイトなど

        •   クエリ「アメリカ, sony, 日本, 購入」

            •   アメリカから日本の購入? 日本からアメリカへの購入?

            •   クエリにある潜在的な曖昧性

•   質問応答システム

    •   自然言語を元に「答え」を返す

        •   「今年の東京の人口は?」 → 「13,227,730人」

                           4
                                             4
モチベーション
•   クエリより自然言語のほうがいい!

    •   自然体で聞ける

    •   うまくいけばクエリより表現力が高い

        •   ただし今回のシステム構成はクエリへ一度変換する

•   検索エンジンは別のページを開く必要がある

    •   遅いページを開くとイライラ

    •   特にスマートフォンでは面倒

•   より SF っぽい未来感

    •   あれば便利なだけでなくかっこいい
                       5
                                      5
既存の質問応答システム
• IBM Watson
  •   人間にクイズで勝ったシステム

  •   答えを文章から推測して解答

      •   ファクトイド型と呼ばれる

          •   今回のテーマ

• Siri
  •   ユーモアな回答で実際より賢く見せている点が新しい

  •   限られたサイトのAPI等を使用しているので、何でも答えら
      れるわけではない

      •   特定の答えは良い回答を出せる(天気、価格、メールするなど)
                      6
                                          6
今回の構成

     質問タイプの特定              大量の質問文-タイプ
     - 「色」についてと判定            のペアで学習



     質問文からクエリを作成
     - 「空, 色」


     取得した文章から
     回答候補を抽出              質問-文書-解答のペア
     - 「天候, 昼間, 青色, 空色,   からランキングを学習
     ニューヨーク, ...」


空色
     確率の高いものを解答
           7
                                        7
質問応答システムの構成

•   質問解析

    •   質問タイプの同定(人物について, 場所についてなど)

•   文書検索

    •   質問文を元にクエリを作成し、文章データを検索

•   回答候補抽出

    •   質問解析で得られたタイプと検索して得た文章を元に回答候補を列挙

•   回答選択

    •   回答候補をランキングで算出、ランキング上位が解答となる
                      8
                                          8
今回使用するアルゴリズム一覧
•   質問解析

    •   質問タイプの同定(人物, 場所など)

    •   固有表現抽出/SVM

•   文書検索

    •   質問文を元にクエリを作成し、文章データを検索

    •   TF-IDF/Okapi BM25

•   回答候補抽出

    •   質問解析で得られたタイプを元に回答候補上位N件をとる

•   回答選択

    •   最終的な回答を選別

    •   SVMのランキング化

•   15分で解説できるのか!?           9
                                     9
検索エンジン




  10
         10
質問応答システム




           11
前置きおわり



  12
         12
1. 質問解析
∼ 質問タイプの同定(人物, 場所など)∼




          13
                        13
質問解析

            質問タイプの特定              大量の質問文-タイプ
            - 「色」についてと判定            のペアで学習



            質問文からクエリを作成
質問文と回答候補    - 「空, 色」

 のタイプを照合
            取得した文章から
            回答候補を抽出              質問-文書-解答のペア
            - 「天候, 昼間, 青色, 空色,   からランキングを学習
            ニューヨーク, ...」


       空色
            確率の高いものを解答
                  14
                                               14
質問解析
•   質問文ですでに解答のタイプが決まっているという仮定

    •   エジソンが電球を発明したのはいつ? → 年代

    •   C++を開発したのは誰? → 人名

    •   英語でいう What/Where/Who/When が代表的な例

•   このステップで解析し、後で回答候補のタイプと照合する

    •   回答候補(単語)でも使えて、質問文(文章)でもタイプが出
        せないといけない!

    •   回答候補のタイプ推定は固有表現抽出を使う

    •   質問文のタイプ推定は自前で用意

                       15
                                           15
固有表現抽出


• 固有表現抽出とは?
 •   人物や地名、組織名などの単語を認識する

     •   例を見ると分かりやすい

 •   自然言語処理で広く使われる

     •   基準やデータが養われている

     •   IREXの基準なら、Cabocha というツールに付属




                       16
                                       16
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
質問解析


• 質問文のタイプの推定
 • 質問タイプは 質問文-質問タイプ のペアで機械学習
  •   日本語ではIREXの8種類が多く使われる

      •   1999年の基準で古いが…

  •   英語では50 300種類の固有表現抽出が使われる




                   18
                                 18
SVMを使った質問解析の前に
    機械学習の解説



      19
                 19
機械学習の問題設定


•   今回使うのはクラスが2つの問題(2値分類)

    •   それぞれ正クラス、負クラスと呼ぶ

    •   何個も分類器を使えば複数の分類にも使える

        •   人名であるかないか、地名であるかないか、…

    •   SVMは2値分類で一番メジャーなアルゴリズム



                    20
                                    20
機械学習の問題設定
  • 参考文献の図があまりにも分かりやすかったので引用




http://www.slideshare.net/sleepy_yoshi/dsirnlp1
                                                  21
                                                       21
機械学習の問題設定

• 機械学習には基本的にデータと素性が必要
• 素性はどうやって選ぶ?
 •   人間が頑張って選ぶ

 •   簡単なシステムでは8種類から、複雑なシステムでは300
     種類など

 •   機械学習が必要な部分では

     •   SAIQA-II という NTT の昔の質問応答システムの素性を紹介

         •   詳細な解説は論文(日本語)を参照


                       22
                                              22
SVM

• 数式がちょっと複雑&時間の都合で超大雑把に解説
• 機械学習で最も使われている2値分類アルゴリズム
• パーセプトロンにカーネル関数とマージン最大化を付
 けたもの

 • パーセプトロンは線形でしか分類できない
 • SVM はカーネル関数で高次元に写像し、そこで線
  形に分類する(そのため一見して線形に見える)

            23
                              23
SVM

             カーネル関数



   正例のスペース


負例のスペース




     「非線形な分類」を          カーネル関数による写像
   しているように見えるが…        空間では線形に分類している

                  24
                                       24
SVM




 25
      25
SVMは難しい!
•   再掲

•   今回はこの図と前途の素性さえ覚えておけばOK

                                                   xはいろんな素性




ここがSVM




 http://www.slideshare.net/sleepy_yoshi/dsirnlp1
                                              26
                                                              26
SVM を使った質問解析
• 話を元に戻して…
 •   SVM を使ってどうやって質問タイプを推定する?

 •   学習データは多数の 質問文-質問タイプ ペアを使う

 •   素性は SAIQA-II みたいに適当に設定

 •   これだけで未知の質問文で質問タイプを推定できる!



• SVM はよく使われるのでライブラリが多い
 •   SVM-Light、LIBSVM、TinySVM など

                     27
                                   27
SAIQA-II の質問解析の素性




        28
                    28
2. 文書検索
∼ 質問文を元に文章データを検索 ∼




       29
                     29
今回の構成

     質問タイプの特定              大量の質問文-タイプ
     - 「色」についてと判定            のペアで学習



     質問文からクエリを作成
     - 「空, 色」


     取得した文章から
     回答候補を抽出              質問-文書-解答のペア
     - 「天候, 昼間, 青色, 空色,   からランキングを学習
     ニューヨーク, ...」


空色
     確率の高いものを解答
           30
                                        30
文書検索

• 文書検索はつまり「検索エンジン」と同じ?
     •   精度を求めるなら段落単位の方が良いが、今回は同じ

 •   質問文から検索クエリの変換

     •   今回は単純なシステムなので自立語(品詞が 助詞, 助動詞 以
         外)を単にフィルタしたとする

 •   品詞でフィルタリング

     •   「空は何色ですか?」 → 「空, 何, 色」

     •   簡単な例だとそれなりにうまくいく


                      31
                                          31
文書検索


• 変換したクエリから文書を検索
 •   検索エンジンの方法がそのまま使える

 •   TF-IDF とその拡張である Okapi BM25 を解説

     •   これらのモデルは学習用にデータがいらないので構築が簡単

     •   ただしデータが必要なモデルと比べると精度は落ちる




                    32
                                       32
文書検索
• 文章検索の問題設定
                ドキュメント

                         ドキュメントのランキング



   クエリ
q = {空, 何, 色}
                モデル




                    33
                                        33
TF-IDF
•   言わずと知れたモデル

•   TF と IDF の積に基づいて文書を採点するのがTF-IDF

•   単語の出現頻度 TF(t)

    •   M は文書の総数、freq()は   は文書 d 内での単語 t の頻度

    •   クエリと同じ単語が多く出現する文書のほうがよいという仮定

•   逆出現頻度

    •   DF(t) は 単語 t を含む文書の数

    •   珍しい単語のほうが良い仮定

•   あまりにも有名で亜種がたくさんあるため、サイトによって定義が違うことがしばし
    ば…

                           34
                                               34
Okapi BM25
• TF-IDF の亜種の中でよく用いられる
 •   TF と IDF をそれぞれ改良

 •   式が複雑だが暗記する必要は全くない




 •   k_は定数のパラメータ(0.1など)

 •   avelenは文書の長さの平均長
                    35
                          35
Okapi BM25
• TF-IDF の亜種の中でよく用いられる
 •   TF と IDF をそれぞれ改良

 •   式が複雑だが暗記する必要は全くない


                              文書長の正規化



                          Okapi BM25は半分
                          のドキュメントに同
                          じ単語が出現すると
 •   k_は定数のパラメータ(0.1など)   IDFが0になる

 •   avelenは文書の長さの平均長
                    36
                                          36
3. 回答候補抽出



    37
            37
回答候補抽出

• このステップは割と単純
• クエリに対する文書のランキングが取得できたら…
 •   1. 文書を上位N件に絞る

 •   2. N件の文書にさっきの固有表現抽出を使う

 •   3. 抜き取った固有表現と質問文の質問タイプとを照合

 •   4. タイプが同じだった固有表現が全て解答候補となる



                 38
                                  38
4. 回答選択
∼最終的な回答を選ぶ∼




     39
              39
今回の構成

     質問タイプの特定              大量の質問文-タイプ
     - 「色」についてと判定            のペアで学習



     質問文からクエリを作成
     - 「空, 色」


     取得した文章から
     回答候補を抽出              質問-文書-解答のペア
     - 「天候, 昼間, 青色, 空色,   からランキングを学習
     ニューヨーク, ...」


空色
     確率の高いものを解答
           40
                                        40
回答選択

• 前途の SVM を使用して回答を機械学習
 •   ただしこちらは結果をランキングで出す

     •   回答候補から、それぞれの候補がどれくらい回答らしいかスコ
         アを出してランキング化

     •   SVM に結果をランキングで出す仕組みはない

         •   分類平面からの距離やロジスティック回帰を使った方法

         •   そもそも SVM の仕組みを変えた RankingSVM などもある



                         41
                                                  41
回答選択
                                 学習段階



      与えられた文書                  回答候補

http://ja.wikipedia.org/w...
                               長崎市
http://foodslink.jp/syoku...   タイ
htttp://www.oisix.com/sh...
                               沖縄県
                                                   与えられた答え
...                            台湾
                                           モデル      沖縄県
                               ...
                                           (SVM)

         与えられた質問文

日本でのパイナップルの主産地は?


                                      42
                                                             42
回答選択
                                      実行段階



      検索した文書                    回答候補
                                                       回答ランキング
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
回答選択
• 学習段階
 •   質問文-回答-候補文書(ソース) のペアで学習

     •   回答は、SVM の仕組み上複数でもOK

     •   また、負例(ここでは回答ではない単語)も入れてもいい

• 実行段階
 •   質問文-回答候補-検索で取得した文 を元に分類

     •   回答候補をスコアで出す

     •   一番スコアが高いものが最終的な回答となる

                       44
                                      44
SAIQA-II の回答候補の素性




        45
                    45
最後
データについて




   46
          46
データ
•   今回使用するデータは日本語だと難しい

•   質問解析
        •   質問文-質問タイプ、固有表現抽出のデータが必要

            •   固有表現抽出は IREX 基準(8種類)なら Cabocha が使える

            •   質問文-質問タイプ のデータは?

                •   日本語はない

•   回答選択

    •   質問文-回答-根拠文 のデータが必要

    •   日本語だと NTCIR-6 QAC のデータが公開されている

        •   ただし毎日新聞のデータを10万円で購入する必要がある
                              47
                                                      47
データ
•   今回使用するデータは日本語だと難しい

•   質問解析
        •   質問文-質問タイプ、固有表現抽出のデータが必要

            •   固有表現抽出は IREX 基準(8種類)なら Cabocha が使える

            •   質問文-質問タイプ のデータは?

                •   日本語はない

•   回答選択

    •   質問文-回答-根拠文 のデータが必要

    •   日本語だと NTCIR-6 QAC のデータが公開されている

        •   ただし毎日新聞のデータを10万円で購入する必要がある
                              48
                                                      48
データ



• ちなみに英語だと
 •   TREC、UIUCのデータなどなどのデータが充実

     •   質問解析、回答選択の両方盛りだくさん




                    49
                                49
まとめ

•   質問解析、文書検索、回答抽出、回答選択 を使ったシステム

    •   文書検索は検索エンジンのそれと同じ

    •   最低限の機械学習が必要なのは 質問解析と回答選択

        •   SVM万能

•   データがない

    •   日本語は大学や研究機関でないと難しい

•   質問応答システムには問題点も多く、Bing は必要



                     50
                                   50
参考文献
•   自然言語処理シリーズ 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
ご清聴ありがとうご
  ざいました


    52
            52

質問応答システム入門

  • 1.
    質問応答システム入門 Bingなんてもういらない? torotoki 1 @第17回プログラミング生放送 1
  • 2.
    自己紹介 • @torotoki • 自然言語処理や機械学習を勉強してい たら1年が立つ • 意味解析みたいなことに興味 • 奈良先端科学技術大学院大学バイトとか • NTCIR RITE(含意関係認識のワーク ショップ)参加中 • Android が好き • 最近アプリを作ってない • 高1 2 2
  • 3.
    自然言語処理とは • 人間が使う「自然言語」をごにょごにょする分野 • 応用先はGoogle や Bing などの検索エンジンや、 スパム分類、機械翻訳などなど • Twitter や Wikipedia など手軽に使える資源が増え てきた 3 3
  • 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
  • 10.
  • 11.
  • 12.
  • 13.
  • 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
  • 19.
    SVMを使った質問解析の前に 機械学習の解説 19 19
  • 20.
    機械学習の問題設定 • 今回使うのはクラスが2つの問題(2値分類) • それぞれ正クラス、負クラスと呼ぶ • 何個も分類器を使えば複数の分類にも使える • 人名であるかないか、地名であるかないか、… • SVMは2値分類で一番メジャーなアルゴリズム 20 20
  • 21.
    機械学習の問題設定 •参考文献の図があまりにも分かりやすかったので引用 http://www.slideshare.net/sleepy_yoshi/dsirnlp1 21 21
  • 22.
    機械学習の問題設定 • 機械学習には基本的にデータと素性が必要 • 素性はどうやって選ぶ? • 人間が頑張って選ぶ • 簡単なシステムでは8種類から、複雑なシステムでは300 種類など • 機械学習が必要な部分では • SAIQA-II という NTT の昔の質問応答システムの素性を紹介 • 詳細な解説は論文(日本語)を参照 22 22
  • 23.
    SVM • 数式がちょっと複雑&時間の都合で超大雑把に解説 • 機械学習で最も使われている2値分類アルゴリズム •パーセプトロンにカーネル関数とマージン最大化を付 けたもの • パーセプトロンは線形でしか分類できない • SVM はカーネル関数で高次元に写像し、そこで線 形に分類する(そのため一見して線形に見える) 23 23
  • 24.
    SVM カーネル関数 正例のスペース 負例のスペース 「非線形な分類」を カーネル関数による写像 しているように見えるが… 空間では線形に分類している 24 24
  • 25.
  • 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
  • 28.
  • 29.
  • 30.
    今回の構成 質問タイプの特定 大量の質問文-タイプ - 「色」についてと判定 のペアで学習 質問文からクエリを作成 - 「空, 色」 取得した文章から 回答候補を抽出 質問-文書-解答のペア - 「天候, 昼間, 青色, 空色, からランキングを学習 ニューヨーク, ...」 空色 確率の高いものを解答 30 30
  • 31.
    文書検索 • 文書検索はつまり「検索エンジン」と同じ? • 精度を求めるなら段落単位の方が良いが、今回は同じ • 質問文から検索クエリの変換 • 今回は単純なシステムなので自立語(品詞が 助詞, 助動詞 以 外)を単にフィルタしたとする • 品詞でフィルタリング • 「空は何色ですか?」 → 「空, 何, 色」 • 簡単な例だとそれなりにうまくいく 31 31
  • 32.
    文書検索 • 変換したクエリから文書を検索 • 検索エンジンの方法がそのまま使える • TF-IDF とその拡張である Okapi BM25 を解説 • これらのモデルは学習用にデータがいらないので構築が簡単 • ただしデータが必要なモデルと比べると精度は落ちる 32 32
  • 33.
    文書検索 • 文章検索の問題設定 ドキュメント ドキュメントのランキング クエリ q = {空, 何, 色} モデル 33 33
  • 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
  • 37.
  • 38.
    回答候補抽出 • このステップは割と単純 • クエリに対する文書のランキングが取得できたら… • 1. 文書を上位N件に絞る • 2. N件の文書にさっきの固有表現抽出を使う • 3. 抜き取った固有表現と質問文の質問タイプとを照合 • 4. タイプが同じだった固有表現が全て解答候補となる 38 38
  • 39.
  • 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
  • 45.
  • 46.
  • 47.
    データ • 今回使用するデータは日本語だと難しい • 質問解析 • 質問文-質問タイプ、固有表現抽出のデータが必要 • 固有表現抽出は IREX 基準(8種類)なら Cabocha が使える • 質問文-質問タイプ のデータは? • 日本語はない • 回答選択 • 質問文-回答-根拠文 のデータが必要 • 日本語だと NTCIR-6 QAC のデータが公開されている • ただし毎日新聞のデータを10万円で購入する必要がある 47 47
  • 48.
    データ • 今回使用するデータは日本語だと難しい • 質問解析 • 質問文-質問タイプ、固有表現抽出のデータが必要 • 固有表現抽出は IREX 基準(8種類)なら Cabocha が使える • 質問文-質問タイプ のデータは? • 日本語はない • 回答選択 • 質問文-回答-根拠文 のデータが必要 • 日本語だと NTCIR-6 QAC のデータが公開されている • ただし毎日新聞のデータを10万円で購入する必要がある 48 48
  • 49.
    データ • ちなみに英語だと • TREC、UIUCのデータなどなどのデータが充実 • 質問解析、回答選択の両方盛りだくさん 49 49
  • 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
  • 52.