# 自動生成した学習データを用いた文書分類器に基づく FAQ 検索システム

牧野 拓哉 $\dagger$ ・野呂 智哉 $\dagger$ $\cdot$岩倉 友哉 $\dagger$
}

本論文では，ユーザからの自然文による問い合わせを対応する Frequently Asked Question (FAQ) に分類する文書分類器を用いた FAQ 検索手法を提案する. 本文書分類器は, 問い合わせ中の単語を手掛かりに，対応する $\mathrm{FAQ}$ を判別する。しかし, FAQの多くは宇長性がないため, FAQを学習データとして文書分類器を作成する方法では，ユーザからの多様な問い合わせに対応するのが難しい。 そこで，この問題 に対処するために，蓄積されたユーザからの問い合わせ履歴から学習データを自動生成し, 文書分類器を作成する。 さらに, FAQ および文書分類用に自動生成した学習デー夕を用いて, 通常使われる表層的な手がかりに加えて, 本文書分類器の出力 を考慮するランキングモデルを学習する。ある企業のコールセンターの 4,738 件の FAQ および問い合わせ履歴 54 万件を用いて本手法を評価した。その結果，提案手法が, pseudo-relevance feedback および，統計的機械翻訳のアライメント手法を用い て得られる語彙知識によるクエリ拡張手法と比較し, 高いランキング性能を示した. キーワード：FAQ 検索，文書分類，ランキング学習
## An FAQ Search Method Using a Document Classifier Trained With Automatically Generated Training Data

\author{
Takuya Makino ${ }^{\dagger}$, Tomoya $\mathrm{Noro}^{\dagger}$ and Tomoya Iwakura ${ }^{\dagger}$
}

We propose an Frequently Asked Question (FAQ) search method that uses a document classifier for classifying a natural language query to a corresponding FAQ. The document classifier classifies a query with words that occur in the query. However, since FAQs have little redundancy, using FAQs as training data for the document classifier is not sufficient for classifying queries that have the similar meaning but different surface expressions. To tackle this problem, our method generates training data automatically from FAQs and corresponding histories and trains the document classifier with them. Furthermore, with the automatically generated training data, our method learns a ranking model that uses classification results of the document classifier. Experimental results on a company FAQs and corresponding histories showed that our method outperformed pseudo-relevance feedback and query expansion model that uses word alignment model in statistical machine translation.

Key Words: FAQ Retrieval, Document Classification, Learning to Rank


## 1 はじめに

製品やサービスを提供する多くの企業は顧客の問い合わせに対応するために，コールセンター を運営している。

コールセンターでは, オペレータが電話やメールによる顧客問い合わせに対応する際や, 顧客自身が答えを探す際の支援のために, Frequently Asked Question (FAQ)の整備および，FAQ 検索システムを導入していることが多い.

FAQ 検索の利用者は, 自然文や単語の集合を検索クエリとして, 検索を実施するのが一般的である。しかし, FAQは過去の問い合わせ履歴の中から，同様の質問をまとめ，それらを代表するような抽象的な表現で作成されることが多いため, 類義語や同義語, 表記の摇れといった問題により，正しく検索できない場合がある，たとえば，以下の例のように入力の問い合わせと対応する FAQ で語彙が一致しないことがある.
- 問い合わせ：○○カードの再度発行をしたい. 今から出張だが、カードが見当たらない. どうしたらよいか.
- 正解の FAQの質問部分：○○カードを紛失・盗難・破損した場合の手続き方法
- 不正解の FAQの質問部分：○○カードを新規発行する方法

この例では, 正解の FAQへの語彙の一致は「○○カード」のみである. 一方, 不正解の FAQ には,「○○カード」に加え,「発行」も一致するため, 不正解の FAQが上位にランクされてしまう。

このような問題に対して, たとえば, Yahoo!知恵袋などのコミュニティ型質問応答サイトにおける類似質問検索では, 統計的機械翻訳で用いられるアライメントモデルを適用する方法が提案されている (Riezler, Vasserman, Tsochantaridis, Mittal, and Liu 2007; Soricut and Brill 2004; Xue, Jeon, and Croft 2008).また，Web 検索においては，ユーザのクエリに対して得られた検索結果の上位の文書集合を適合文書とみなしてクエリを拡張する pseudo-relevance feedback といった手法も用いられている.

しかし, アライメントモデルが学習しているのは, 単語と単語の対応確率であり, FAQを特定するために有効な語を学習しているとは言えない. また, Webやコミュニテイ型質問応答サイトなど複数の適合文書が得られる可能性がある場合に用いられる pseudo-relevance feedback は, 適合する FAQが複数存在することが Web 検索ほど期待できない FAQ 検索では十分な効果が得られない可能性がある.

本論文では, 問い合わせを対応する FAQに分類する文書分類器を利用した FAQ 検索システムを提案する．本システムでは，機械学習を基に各FAQに関連のある単語を学習することで，問い合わせ中の単語が検索対象の FAQに一致していなくてもFAQを精度良く検索することを目指す.

しかし，FAQだけを文書分類器のための学習データとして用いる場合は，FAQに出現する単語だけの判別しかできないという問題が残る。 そこで, 文書分類器を学習するために, コー ルセンターにて蓄積されている顧客からの問い合わせとオペレータの対応内容である問い合わせ履歴から自動生成した学習データを用いる。問い合わせ履歴には，問い合わせに対するオぺレータの対応内容は記入されているものの, 明示的にどの FAQが対応するという情報は付与されていない場合がある。そのため，本論文では，Jeon らの (Jeon, Croft, and Lee 2005)「似た意味の質問には似た回答がされる」という仮定に基づき，FAQの回答部分と問い合わせ履歴の対応内容の表層的類似度を計算し, 閾値以上となった対応内容と対になっている問い合わせをそのFAQに対応するものとみなして学習データとする方法を用いる。

さらに，本論文では，文書分類器の判別結果に加え, 問い合わせと検索対象のコサイン類似度といった多くの手法で用いられている特徴を考慮するために, 教師有り学習に基づくランキングモデルの適用を提案する。素性には，問い合わせと FAQの単語ベクトル間のコサイン類似度などに加えて，文書分類器が出力するスコアを用いる。

ある企業のコールセンターの FAQ および問い合わせ履歴を用いて提案手法を評価をした。提案手法は, pseudo-relevance feedback および統計的機械翻訳のアライメント手法を用いて得られる語彙知識によるクエリ拡張手法と比較して, 高いランキング性能を示した.

## 2 関連研究

類似質問を検索する方法として，機械翻訳で用いられる単語単位のアライメントモデルである IBM Model (Brown, Pietra, Pietra, and Mercer 1993) を用いた手法が提案されている (Jeon et al. 2005; Riezler et al. 2007; Soricut and Brill 2004; Xue et al. 2008). IBM Model は単語の対応確率を EM アルゴリズムで推定する手法である．統計的機械翻訳では，アライメントモデルは, 原言語と, 目的言語の文の対からなる対訳コーパスを用いて, 単語間の対応確率を推定するために用いられる。類似質問検索においては，質問とその回答の対を対訳コーパスとみなしたり, あるいは類似する回答を持つこの方法では, FAQ と問い合わせ間の単語の対応確率を学習する。しかしながら, 単語間の対応確率は, 対応する FAQを検索するために有効な語彙知識であるとは言えない. 例えば，入力の「方法」とFAQの「方法」が対訳コーパス中で良く共起して出現し, 学習の結果, 対応確率が高くなったとする。この対応確率を利用して FAQをスコアリングすると,「方法」が出現する誤った FAQが上位になりうる.

Cao ら (Cao, Cong, Cui, and Jensen 2010; Cao, Cong, Cui, Jensen, and Zhang 2009) は Yahoo! Answersのカテゴリ情報を考慮して，回答済みの質問を検索する手法を提案した．Yahoo! Answers の質問にはユーザによってカテゴリが付与されているため, この手法はカテゴリが付与された質問を学習データとして, 事前に入力の質問をカテゴリに分類するための分類器を作成する.
実際に検索する際には，まず入力の質問が検索対象の質問に付与されているカテゴリに所属する確率を分類器を使って計算する。入力の質問と検索対象の質問との間の単語の一致や, 単語の対応確率に対して，カテゴリの確率を重みとして与え，検索対象の質問に対するスコアを計算する．文書分類器を用いて検索するという観点で本論文と類似する研究であるが，本論文で扱う問い合わせ履歴の問い合わせには事前にカテゴリが付与されていないこと，本論文では FAQ を直接カテゴリとみなしていることが異なる。

Singh(Singh 2012), Zhou ら (Zhou, Liu, Liu, Zeng, and Zhao 2013) は Wikipedia を外部知識として利用して，コミュニティ質問応答サイトの類似質問検索性能を上げる手法を提案した。 たとえば FAQ 検索においては，業務ルールなどのドメイン固有の知識を含むため，一般的な知識源だけでは十分ではない.

## 3 提案手法

提案手法の学習時の処理を図 1 に示す. 提案手法の学習は大きく 3 つの処理からなる.まず,既存の方法を用いて FAQ と問い合わせ履歴を用いて学習データを自動生成する (3.1節)。続いて, 問い合わせを対応する FAQに分類するための文書分類器を学習する (3.2 節). 最後に, 学

図 1 提案手法のモデルを学習する処理の概要と例
習データと, 分類器の出力を素性に加えて, 問い合わせに対して, 正解の FAQ が不正解の FAQ よりもスコアが高くなるようにランキングモデルを学習する (3.3 節)。文書分類器の出力するスコアは問い合わせと FAQの単語の厳密一致や単語の関連度に依存せずに出力することができる。ランキング学習を適用することで，文書分類器から得られるスコアを，問い合わせと FAQ の単語べクトルのコサイン類似度などの素性とともに用いて FAQ 検索結果のランキングをおこなうことが可能となる.

## 3.1 学習データの自動生成

先行研究 (Jeon et al. 2005) に従い, FAQ と問い合わせのぺアについてお互いの回答部分の類似度をもとに自動で学習データを生成する。

この手法は，似た意味の質問には似た回答がされるという仮説に基づき，回答間の表層的な類似度が閾値以上の回答済み質問文の対を収集した。この仮説はコールセンターではより有効であると考えられる．なぜならば，オペレータは問い合わせに対して対応する際に，対応する FAQ を検索し，その回答部分を引用することが少なくないためである.

学習データの生成には, FAQの質問 $Q$ および回答 $A$, 問い合わせ履歴中の問い合わせ $I$ およびオペレータの対応内容 $R$ を用いる。図 1 の例では $Q, A, I, R$ はそれぞれ $\Gamma \bigcirc$ カードを紛失」，「ヘルプデスクへご連絡ください」，「○○カードを失くしたかも」，「へルプデスクへご連絡くたさい」を形態素解析して得た名詞，動詞，形容詞の集合である.

学習データの自動生成には, 質問 $Q$ と回答 $A$ の対からなる FAQの集合 $F=\left.\{\left(Q_{1}, A_{1}\right), \ldots\right.$, $\left.\left(Q_{|F|}, A_{|F|}\right)\right.\}$ および, 問い合わせ $I$ とオペレータの対応内容 $R$ の対からなる問い合わせ履歴の集合 $H=\left.\{\left(I_{1}, R_{1}\right), \ldots,\left(I_{|H|}, R_{|H|}\right)\right.\}$ を用いる.

具体的には全文検索を使って，オペレータの対応内容，FAQの回答の内容語でお互いに OR 検索し，式 (1)によってスコア $\operatorname{hrank}\left(A_{i}, R_{j}\right)$ を計算する.

$
\operatorname{hrank}\left(A_{i}, R_{j}\right)=\frac{1}{2}\left(\frac{1}{\operatorname{rank}_{A_{i}}}+\frac{1}{\operatorname{rank}_{R_{j}}}\right)
$

$\operatorname{rank}_{A_{i}}$ は問い合わせ履歴の回答 $R_{j}$ を入力として FAQの回答 $A_{1}, \ldots, A_{|F|}$ を検索した場合の $A_{i}$ の順位, $\operatorname{rank}_{R_{j}}$ は FAQの回答 $A_{i}$ を入力として問い合わせ履歴の回答 $R_{1}, \ldots, R_{|H|}$ を検索した場合の $R_{j}$ の順位である. $\operatorname{hrank}\left(A_{i}, R_{j}\right)$ があらかじめ人手で設定した閥値を超えた FAQ と問い合わせのぺアの集合 $D=\left.\{\left.\langle\left(Q_{i}, A_{i}\right), I_{j}\right.\rangle|1 \leq i \leq| F|, 1 \leq j \leq| H \mid\right.\}$ を生成する. 例えば，問い合わせ履歴の回答 $R_{j}$ で FAQの回答を検索して, FAQの回答 $A_{i}$ の順位が 2 位で FAQの回答 $A_{i}$ で問い合わせ履歴の回答を検索して，問い合わせ履歴の回答 $R_{j}$ が 1 位だった場合, hrank は 0.75 となる.

学習データの自動生成手順を Algorithm 1 に示す. hrankを計算するために, 事前に問い合わせ履歴の回答を入力としたときの FAQの回答の順位の逆数を $\mathbf{M}_{1} \in \mathbb{N}^{|F| \times|H|}, \mathrm{FAQ}$ の回答

を入力としたときの問い合わせ履歴の回答の順位の逆数を $\mathbf{M}_{2} \in \mathbb{N}^{|H| \times|F|}$ に格納する。順位のリスト ranks を得るために, GetRanks の第一引数を入力 $(A$ もしくは $R$ ), 第二引数を順位を付与する対象の文書集合（Fもしくは $H$ ) として実行する。順位を付与するために，全文検索エンジンを使う。もし検索時に該当の文書が得られない場合, その文書の順位は, 入力が問い合わせ履歴の回答であれば $|F|, \mathrm{FAQ}$ の回答であれば $|H|$ とする.

## 3.2 文書分類器の学習

文書分類器の学習には, 3.1 節で生成した学習データ $D$ を用いて, FAQごとに正例と負例を作成して二值分類器を学習する。対象の FAQ と対応する問い合わせの集合を正例, その他の FAQ と対応する問い合わせの集合をすべて負例として学習データとする．対応する問い合わせを持たない FAQも存在するため, 対象の FAQ そのものも正例に追加している.
例えば，「○○カードを紛失・盗難・破損した場合の手続き方法」という FAQ の分類器を学習するときには，正例に「○○カードの再発行をしたい，今から出張だが、カードが見当たらない. どうしたらよいか.」という問い合わせがあった場合，「○○カード」，「再発行」，「見当らない」といった素性の重みを正の方向に大きく更新する。学習には Adaptive Regularization of Weights Learning (Crammer, Kulesza, and Dredze 2009)を用いた.

素性には，内容語（名詞，動詞，形容詞），係り受け関係にある名詞と動詞の対を用いる。名詞句は同一の文節中に連続して出現する接頭詞と名詞とした。また，少なくとも片方が内容語であるような単語 bigram の出現も素性として用いる.

## 3.3 ペアワイズランキング学習

ペアワイズランキング学習では, 3.1 節で生成した学習データ $D$ を用いて, 問い合わせに対して, 正解の FAQが, 不正解の FAQよりもスコアが高くなるように重みべクトルを更新する.

ランキングの重みの学習アルゴリズムには SOLAR-IIを用いた (Wang, Wan, Zhang, and Hoi 2015). SOLAR-II はペアワイズランキングのオンライン学習手法であり, Adaptive Regularization of Weights Learning (Crammer et al. 2009)のように, 素性の重み $\mathbf{w} \in \mathbb{R}^{d}$ に対して共分散行列 $\Sigma \in \mathbb{R}^{d \times d}$ を保持する，重みの更新時に，分散の値が小さい素性ほど，学習の信頼度が高いとみなして，重みの更新幅を小さくする。

ランキングの重みべクトルの更新手順を Algorithm 2 に示す。最初に重み $\mathbf{w}$ を , 共分散行列 $\Sigma$ を単位行列 $\mathbf{E}$ として初期化する。問い合わせに対する正解の FAQ およびランダムに選択した不正解の FAQ から抽出した素性べクトル $\mathbf{x}_{p} \in \mathbb{R}^{d}$ および $\mathbf{x}_{n} \in \mathbb{R}^{d}$ を ExtractFeatureVector

り，値が大きいほど重みの更新幅を小さくする．本論文では 1.0 とした， $\alpha$ はヒンジ損失であり， 正解の FAQ のスコアが不正解の FAQ のスコアよりも低い値となったときに 0 以上の値を取る。 $\beta$ は事例に含まれる素性の分散が小さい，つまり信頼度が高いほど大きな値を取る。そのため，信頼度が高い素性を多く含む事例に対して順位の予測を誤った場合には重みの更新幅や信頼度の更新幅を減らし，学習が過敏になり過ぎないようにする役割を持つ.

学習を高速化するために，負例の生成にランダムサンプリングを適用した。 ランダムサンプリングによるランキング学習でも, ペアワイズランキング学習で良い性能を出している Ranking SVM(Joachims 2002) と同等の性能であることが示されている (Sculley 2009). 負例の数 $K$ は 300 とした.

ExtractFeatureVector では基本的な素性のグループ Base features および自動生成した学習データを用いた素性 tfidf_FAQ+query および faq-scorer を抽出する.

## - Base features
- cos-q, cos-a: cos-q は, 問い合わせと FAQの質問に対する内容語（名詞, 動詞,形容詞）のコサイン類似度. cos-a は, 問い合わせと FAQ の回答に対する内容語のコサイン類似度. これらの値は, 問い合わせに出現する単語をより含み, 出現する単語の異なり数が少ない FAQ ほど 1 に近い值を取り, そうでないほど 0 に近い値を取る。
- dep: 係り受け関係にある文節に出現する名詞, 名詞句, 動詞の対の一致回数.
- np: FAQの質問と問い合わせに対して, 出現する名詞句が一致する割合.
- tfidf_FAQ+query: FAQの質問 $Q$, 回答 $A$ および $D$ 中のその FAQ に対して生成された $L$ 個の学習データ $\left.\{I_{l}^{\prime}\right.\}_{l=1}^{L}$ を用いて計算する tfidf に基づくスコア $\operatorname{score}\left(Q, A,\left.\{I_{l}^{\prime}\right.\}_{l=1}^{L}, I\right)=\max _{Q, A}\left(\operatorname{tfidf}\right.$ _sim $\left.(Q, I), \operatorname{tfidf\_ sim}(A, I)\right)+\max _{I^{\prime}{ }_{l}}$ tfidf_sim $\left(I, I_{l}^{\prime}\right)$.付録 $\mathrm{A}$ の式 (8) を用いて計算した。 入力の問い合わせに対して質問もしくは回答と一致している単語が多いほど高く, さらに学習データの問い合わせ集合の中で一致している単語が多いものが存在する FAQに対して高いスコアとなる.
- faq-scorer: 問い合わせに対して, 該当する FAQの二値分類器のマージンを計算し, sigmoid 関数によって $[0,1]$ へ変換した値を素性に用いる.この分類器は過去の問い合わせ履歴を使って, どのような表現が出現する問い合わせならばこの FAQが正解らしいかどうかを学習したものである。 そのため, この素性は問い合わせに対してこの FAQが正解らしいほどスコアが 1 に近く，そうでないほど 0 に近い值を取る。

学習した重みべクトル $\mathrm{w}$ を使って未知の問い合わせ $I$ に対して FAQをランキングするときには，各 FAQ から抽出した素性べクトル $\mathrm{x}$ と $\mathrm{w}$ の内積を計算して，その值をもとに $\mathrm{FAQ}$ ソートする.

## 4 実験

本実験では, 文書分類器の出力を用いたランキングの有効性を確認するために, ある企業の FAQ および問い合わせ履歴を用いて, 既存手法との比較をおこなう. また, 自動生成した学習データを分析し，ランキングの評価値への影響を調べる。

## 4.1 実験設定

実験にはある企業の FAQ および問い合わせ履歴を用いた。問い合わせ履歴は個人情報を含むため, 人名や個人を特定しうる数字列や地名, 所属などの情報をパターンマッチによって秘匿化している，そのため，本来は個人情報ではない文字列も秘匿化されていることがある。

今回の実験で用いた FAQの数は 4,738 件で, 問い合わせ履歴はおよそ 54 万件である。評価のために, 問い合わせ履歴中の 286 件に対し, 3 人のアノテータで正解の FAQ を付与したデー 夕を作成した. アノテータには, 問い合わせに対してもっとも対応する FAQを 1 つ付与するよう依頼した。評価データ中に付与された FAQの異なり数は 186 件となった.

正解を付与した問い合わせ履歴の 286 件のうち, 86 件は開発用のデータ, 残りは評価デー夕に用いた。開発用データは，学習データ自動生成の閾値を決定するために用いた。本実験では,閾値を 0 から 1 まで 0.1 刻みで変えて, MRRが最も高くなる 0.4 とした. 評価デー夕は, 各手法の精度評価に用いる。回答が短いFAQ は, 誤った問い合わせが多くぺアになりうるため, 文字数が 10 文字以下の FAQに対しては学習データの自動生成候補から除外した. また, 学習デー 夕の生成後, 学習データの中から評価データに含まれる問い合わせを削除した.

形態素解析器, 係り受け解析器にはそれぞれ, $\mathrm{MeCab}^{1}, \mathrm{CaboCha}{ }^{2}$ を用いた. システム辞書には mecab-ipadic-NEologd (Sato 2015)を用いた. ユーザ辞書には秘匿化で用いた夕グを追加し，秘匿化した際に用いたタグが分割されないようにしている.

評価尺度にはランキングの評価で用いられる MRR (Mean Reciprocal Rank), Precision@N $(\mathrm{P} @ \mathrm{~N})$ を用いた. MRR は式 $(2)$ で表され, 正解の順位 $r_{i}$ の逆数に対して平均を取った值であり，正解のFAQを 1 位に出力できるほど 1 に近い值を取り，そうでないほど 0 に近い值を取る. $\mathrm{P} @ \mathrm{~N}$ は式 (3) で表され, 正解が $N$ 位以上になる割合である. 正解が $N$ 位以上に出力している問い合わせが多いほど 1 に近い値を取り, そうでないほど 0 に近い値を取る.

$
\operatorname{MRR}=\frac{1}{N} \sum_{i=1}^{N} \frac{1}{r_{i}}
$
^{1}$ MeCab: Yet Another Part-of-Speech and Morphological Analyzer 〈https://taku910.github.io/mecab/〉 (2016 年 5 月 20 日アクセス)

2 CaoboCha: Yet Another Japanese Dependency Structure Analyzer 〈https://taku910.github.io/cabocha/〉 (2016 年 5 月 20 日アクセス)
}

$
\mathrm{P} @ \mathrm{~N}=\frac{\text { 正解が } \mathrm{N} \text { 位以上の評価データの数 }}{\text { 評価データの数 }}
$

## 4.2 比較手法

tf-idf 法に基づく全文検索 2 種類，pseudo-relevance feedback および翻訳モデルを用いる手法と比較する。

全文検索には Elasticsearch ${ }^{3}$ を用いた。索引語は形態素解析器の kuromoji ${ }^{4}$ にって形態素解析をおこない, 品詞で指定された条件 ${ }^{5}$ と一致しない形態素の原形とした. また, 全角半角は統一し，アルファベットはすべて小文字化した.

tfidf_FAQ 検索対象は FAQの質問および回答として tfidfにもとづく類似度を計算する。類似度は付録 $\mathrm{A}$ の式 (7)を用いた。

tfidf_FAQ+query 3.3 節と同じ計算式を用いた.

pseudo-relevance feedback pseudo-relevance feedback には offer weight (Robertson and Jones 1994)を用いた. offer weight は式 (4)のようにして, 単語 $w$ に対するスコアを計算する.

$
\operatorname{score}(w)=r \log \left(\frac{(r+0.5)(N-n-R+r+0.5)}{(n-r+0.5)(R-r+0.5)}\right) \text {, }
$

翻訳モデル翻訳モデルに基づく検索には, Jeon ら (Jeon et al. 2005)の手法を用いる. この手法では入力の問い合わせ $I$ を受け付け, 式 (5) によって検索対象の FAQを，質問部分 $Q$ を用いてスコアリングする.

$
P(Q \mid I)=\prod_{w \in Q} P(w \mid I)
$

ただし $P(w \mid I)$ は式 $(6)$ のように計算する.

$
P(w \mid I)=(1-\lambda) \sum_{t \in Q}\left(P_{t r}(w \mid t) P_{m l}(t \mid I)\right)+\lambda P_{m l}(w \mid C)
$

式 $(6)$ の $P_{t r}(w \mid t)$ は，3.1 節で生成した $D$ における $\mathrm{FAQ}$ の質問と問い合わせを対訳部分とみなして GIZA $++{ }^{6}$ 使って学習した単語 $w$ と $t$ の対応確率である. $P_{m l}(t \mid I)$ は問い合わせ $I$ における単語 $t$ の相対的な重要度である。本論文では文書頻度の逆数に対して対数を掛けた値を求め, 問い合わせに出現する単語の値の総和で割った値とした. $C$ は
^{3}$ Elastic Revealing Insights from Data (Formerly Elasticsearch)〈https://www.elastic.co/jp/〉（2016 年 5 月 20 日アクセス)

4 elastic/elasticsearch-analysis-kuromoji: Japanese (kuromoji) Analysis Plugin 〈https://github.com/elastic/ elasticsearch-analysis-kuromoji〉（2016 年 5 月 20 日アクセス）

5 〈https://svn.apache.org/repos/asf/lucene/dev/branches/lucene3767/solr/example/solr/conf/lang/stoptags_ ja.txt〉（2016 年 5 月 20 日アクセス）

6 GIZA++〈http://www.statmt.org/moses/giza/GIZA++.html〉（2016 年 5 月 20 日アクセス）
}
$D$ の問い合わせの集合とした。そのため $P_{m l}(w \mid C)$ は単語 $w$ の一般的な重要度を表す. Jeon らの設定に従い， $P_{t r}(w \mid w)=1$ というヒューリスティクスを加えている．入は 0 から 1 まで 0.1 刻みで変えて実験をおこない，開発データのMRR が最も良くなる值を用いた.

## 4.3 実験結果

## 4.3.1 自動生成した学習データの分析

Algorithm 1 の自動生成手法により，学習データ $D$ のサイズは 38,420 件となった， 3,185 件の FAQ に対して学習データを生成し，学習データが生成されていないFAQも含めて平均すると 1 件の FAQ につき 8.03 件の問い合わせを生成した。

問い合わせと対応する FAQの対は自動生成するため，学習データ $D$ の問い合わせと FAQが正しく対応しているとは限らない。自動生成した学習データ $D$ の中からランダムに 50 件の事例を抽出し, 問い合わせと FAQの対応が正しいかそうでないかを人手で評価した結果を表 1 に示す. おおよそ半分のデータは正解の FAQ と正しい対応になっており, 残りの半分は不正解の FAQ と対応する. FAQの回答が短い場合には, 類似する回答がされる問い合わせが多くなることがあるのと，回答の内容は同じであるが，FAQの質問と対応する問い合わせの内容が意味的に一致しないような事例がみられた。

提案手法の文書分類器の性能は FAQ に対して学習データとして生成できた問い合わせの数が影響すると想定される。FAQごとに正例として生成できた問い合わせ数を調べた。図 2 は評価データおよび開発データに含まれる FAQ に対して生成された問い合わせ数を表すヒストグラムである。区間の幅を 10 とした，評価デー夕に含まれる FAQのうち， 1 件も正例となる学習データが生成できなかった FAQは 7 件となった.

## 4.3.2 ランキングの評価

比較手法と提案手法の実験結果を表 2 に示す. faq-scorer は, 3.2 節で作成した文書分類器の出力に応じて FAQをランキングした場合の結果である. Base features\&tfidf_FAQ+query および Base features\&tfidf_FAQ+query\&faq-scorer は 3.3 節で挙げた素性を用いて学習したランキングモデルである.

faq-scorer は比較手法よりも高い P@1となった。一方で他の評価値は tfidf_FAQ+query を下

表 1 人手による FAQと問い合わせの対応の評価

図 2 正例として生成された問い合わせ数ごとの FAQ の度数分布. $\mathrm{x}$ 軸はひとつの FAQに対して正例として生成された問い合わせの数で， $\mathrm{y}$ 軸は FAQの数を表す.

表 2 評価結果

paired t-testをおこない, 有意水準 0.05 で Base features\&tfidf_FAQ+query\&faq-scorer と有意差がある比較手法の結果に†を付与した。

回った. Base features およびtfidf_FAQ+query に加えて faq-scorerを素性としてランキングモデルを学習することでどの評価値も他の比較手法より高くなったことから, 文書分類器を素性として加えることで，精度改善に貢献することがわかる.

## 4.3.3 結果分析

正例として生成された問い合わせ数が文書分類器に及ぼす影響を調べるため, 評価デー夕に含まれるFAQを正例として生成された問い合わせ数でまとめて faq-scorer およびtfidf_FAQ+query のMRR を算出した結果を図 3 に示す.プロットする学習データの数は 25 までとした。評価データの数が多くないためばらつきがみられるが, 生成される学習データの数が多い FAQ ほど，文書分類器は正しく分類できる傾向にあることを確認できる。一方で学習データが少ない

FAQ に対しては tfidf_FAQ+query よりも誤りが多い.

提案手法に対する学習データの影響を調べるため, 学習データの数を変えて実験した.

Base features+tfidf_FAQ+query の MRR の学習曲線を図 4 に示す。MRR の学習曲線をプロットするために，学習データとして FAQ と問い合わせの対応を 1,000 件ずつ増やして文書分類器およびランキングモデルを学習している。提案手法は学習データの量に応じて MRRが向上している。表 1 が示すようなある程度ノイズを含むような学習データであっても，量を増やすことでランキングの性能向上に貢献していることがわかる.

文書分類器は問い合わせに出現する単語などを素性として分類するため, 問い合わせのトピックが複数存在するような場合に誤りやすいと考えられる。ただし，トピックを明示的に与える

図 3 評価データ中の FAQ の集合を正例として生成された問い合わせ数でまとめて算出した MRR

図 4 Base features+tfidf_FAQ+query の MRR の学習曲線.横軸は利用した学習データの件数を表し,縦軸は MRRを表す。
表 3 全文検索と Base features+tfidf_FAQ+query の単語数ごとの MRR

表 4 FAQ「○○カードを紛失・盗難・破損した場合の手続き」の学習結果の中で重みが大きい素性

ことが難しい。そこで問い合わせの単語数が長いほど複数のトピックが出現しやすいという仮定のもと, 問い合わせの単語数に応じて MRRの評価値を算出する.

評価データを単語数で 10 刻みで分割し, 単語数が 1 から 100 までの問い合わせ集合に対して, Base features\&faq-scorer と tfidf_FAQについて MRR を評価した. 結果を表 3 に示す。単語数が 1 から 10 個の問い合わせは, 単語数が 10 個以上の問い合わせに比べて MRRが高くなる傾向にあるが分かる. このことから，単語数が多い問い合わせに対しては質問のトピックを認識するような技術が必要であるが, これは今後の課題とする.

最後に, 学習結果の内容の詳細を確認するため,「○○カードを紛失・盗難・破損した場合の手続き」という FAQについて, 文書分類器の学習結果の内容を調べた. 大きい重みのついた素性から順に眺め，人手で選択した素性を表 4 に示す。自動生成した学習データを用いることで，「磁気不良」「おとした」等のこのFAQの質問や回答には出現しない表現であるが, 判別に寄与する語彙を学習していることがわかる.

## 5 おわりに

本論文では, FAQおよび問い合わせ履歴が持つ特徴を利用して自動生成した学習デー夕を用いて, 問い合わせを対応する FAQへ分類する文書分類器を学習し, その文書分類器の出力をランキング学習の素性として用いる手法を提案した。ある企業の FAQを用いた評価実験から, 提案手法が $\mathrm{FAQ}$ 検索の性能向上に貢献することを確認した. 今後は, 学習データの自動生成方法をより改善すること, さらに, より検索対象が多い場合でも同様の結果が得られるか検証したい.

## 参考文献

Brown, P. F., Pietra, V. J. D., Pietra, S. A. D., and Mercer, R. L. (1993). "The Mathematics of Statistical Machine Translation: Parameter Estimation." Computational Linguistics, 19 (2), pp. 263-311.

Cao, X., Cong, G., Cui, B., and Jensen, C. S. (2010). "A Generalized Framework of Exploring Category Information for Question Retrieval in Community Question Answer Archives." In Proceedings of the 19th International Conference on World Wide Web, WWW '10, pp. 201-210. ACM.

Cao, X., Cong, G., Cui, B., Jensen, C. S., and Zhang, C. (2009). "The Use of Categorization Information in Language Models for Question Retrieval." In Proceedings of the 18th ACM Conference on Information and Knowledge Management, CIKM '09, pp. 265-274. ACM.

Crammer, K., Kulesza, A., and Dredze, M. (2009). "Adaptive Regularization of Weight Vectors." In Bengio, Y., Schuurmans, D., Lafferty, J. D., Williams, C. K. I., and Culotta, A. (Eds.), Advances in Neural Information Processing Systems 22, pp. 414-422. Curran Associates, Inc.

Jeon, J., Croft, W. B., and Lee, J. H. (2005). "Finding Similar Questions in Large Question and Answer Archives." In Proceedings of the 14th ACM International Conference on Information and Knowledge Management, CIKM '05, pp. 84-90. ACM.

Joachims, T. (2002). "Optimizing Search Engines Using Clickthrough Data." In Proceedings of the 8th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD '02, pp. 133-142. ACM.

Riezler, S., Vasserman, A., Tsochantaridis, I., Mittal, V., and Liu, Y. (2007). "Statistical Machine Translation for Query Expansion in Answer Retrieval." In Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics, pp. 464-471. Association
for Computational Linguistics.

Robertson, S. E. and Jones, K. S. (1994). "Simple, Proven Approaches to Text Retrieval." Tech. rep. Technical Report No. 356.

Sato, T. (2015). "Neologism Dictionary based on the Language Resources on the Web for MeCab." https://github.com/neologd/mecab-ipadic-neologd.

Sculley, D. (2009). "Large Scale Learning to Rank." In NIPS Workshop on Advances in Ranking. Singh, A. (2012). "Entity based Q\&A Retrieval." In Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning, pp. 1266-1277. Association for Computational Linguistics.

Soricut, R. and Brill, E. (2004). "Automatic Question Answering Using the Web: Beyond the Factoid." In Susan Dumais, D. M. and Roukos, S. (Eds.), HLT-NAACL 2004: Main Proceedings, pp. 57-64. Association for Computational Linguistics.

Wang, J., Wan, J., Zhang, Y., and Hoi, S. (2015). "SOLAR: Scalable Online Learning Algorithms for Ranking." In Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), pp. 1692-1701. Association for Computational Linguistics.

Xue, X., Jeon, J., and Croft, W. B. (2008). "Retrieval Models for Question and Answer Archives." In Proceedings of the 31st Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR '08, pp. 475-482. ACM.

Zhou, G., Liu, Y., Liu, F., Zeng, D., and Zhao, J. (2013). "Improving Question Retrieval in Community Question Answering Using World Knowledge." In Proceedings of the 23rd International Joint Conference on Artificial Intelligence, IJCAI '13, pp. 2239-2245. AAAI Press.

## 付録

## A Elasticsearch で利用した tfidf スコアの計算式

本論文で Elasticsearch を利用した FAQのスコア計算は 2 種類ある。1つは FAQの質問と回答を利用する場合で，もう 1 つは FAQの質問と回答および $D$ 中のその FAQに対して生成された学習データを利用する場合である.

FAQ が質問 $Q$, 回答 $A$ とフィールドを分けて索引付けしている場合, 問い合わせ $I$ を力としたときの FAQのスコアは次のように計算する.

$
\operatorname{score}(Q, A, I)=\max _{Q, A}(\text { tfidf_sim }(Q, I), \text { tfidf_sim }(A, I)),
$

この計算では入力の問い合わせに対して, 質問もしくは回答と一致している単語が多いほど高いスコアとなる.

FAQ が質問 $Q$, 回答 $A$ に加えて, $D$ 中でその FAQに対して生成された学習データ $\left.\{I_{l}^{\prime}\right.\}_{l=1}^{L}$ と 3 つのフィールドで索引付けしている場合, 問い合わせ $I$ に対する FAQのスコアを次のように計算する.

$
\operatorname{score}\left(Q, A,\left.\{I_{l}^{\prime}\right.\}_{l=1}^{L}, I\right)=\max _{Q, A}\left(\operatorname{tfidf} \_\operatorname{sim}(Q, I), \text { tfidf_sim }(A, I)\right)+\max _{I^{\prime} l} \text { tfidf_sim }\left(I, I_{l}^{\prime}\right)
$

この計算では入力の問い合わせに対して，質問もしくは回答と一致している単語が多いほど高く, さらに学習データの問い合わせ集合の中で一致している単語が多いものが存在する FAQに対して高いスコアとなる.

質問, 回答, 学習データなどの検索対象を $T, T$ の索引語の数を $|T|, T$ の索引語と一致する問い合わせ中の名詞, 動詞, 形容詞からなる単語集合を $\left.\{i_{s}\right.\}_{s=1}^{S}$ とすると, 以下のように tfidf に基づく類似度を次のように設定した。

$
\operatorname{tfidf\_ sim}(T, I)=\text { coord } \sum_{s=1}^{S}\left(\operatorname{tf}\left(i_{s}\right) \cdot \operatorname{idf}\left(i_{s}\right)^{2} \cdot \text { fieldNorm }\right),
$

ただし，

$
\begin{aligned}
\text { coord } & =\frac{S}{|I|}, \\
\text { fieldNorm } & =\frac{1}{|T|},
\end{aligned}
$

とする。 coord は $T$ がより多くの単語を含んでいる検索クエリを含んでいるほど高い値を取る. fieldNorm は $T$ の索引語の数 $|T|$ が大きいほど小さい値を取る.

## 略歴

牧野拓哉：2012 年東京工業大学総合理工学研究科物理情報システム専攻修士課程修了. 同年, (株) 富士通研究所入社. 自然言語処理の研究開発に従事.言語処理学会会員.

野呂智哉：2002 年東京工業大学大学院情報理工学研究科計算工学専攻修士課程修了。2005 年同専攻博士課程修了. 同専攻助手, 助教を経て, 2015 年 (株)富士通研究所入社．現在に至る．博士 (工学)．自然言語処理の研究開発に従事. 言語処理学会会員.

岩倉友哉：2003 年 (株) 富士通研究所入社. 2011 年東京工業大学大学院総合
理工学研究科物理情報システム専攻博士課程修了. 博士 (工学). 現在, (株)富士通研究所主任研究員. 自然言語処理の研究開発に従事. 情報処理学会,言語処理学会会員.

$(2016$ 年 5 月 20 日 $\quad$ 受付 $)$
$(2016$ 年 8 月 5 日 $\quad$ 再受付 $)$
$(2016$ 年 9 月 30 日 $\quad$ 採録 $)$