構造化知識と分散表現による知識を組み込んだ対話システムの開発
理学専攻・情報科学コース

村山 友理

はじめに1(指導教員：小林 一郎)

表 1: 各質問タイプにおける SPARQL クエリ生成結果

近年，Linked Open Data (大規模知識) として様々な分野の膨大な知識がデータとして Web 上に公開されている．これらの大量の知識を自然言語処理システムの中に組み込むことができれば，自然言語理解における背景知識として利用可能になるなど従来のシステムを超えた優れたシステムが実現可能と考えられる．

型

自然言語質問文

基本型

カルボナーラはどんなアレルギー食材

SELECT DISTINCT ?x1 WHERE {を含みますか？

j.2:カルボナーラ j.1552:hasAllergen ?x1.
}

Degree 型

2.1

提案手法

ユーザの発話と大規模知識を結びつけることを目指し，自然言語文を SPARQL クエリへ変換する手法を提案する．提案手法の概要図を図 1 に示す．入力された自然言語質問文に対し，KNP による述語項構造・係り受け解析を行い，述語などの表現によって質問タイ
プ毎に SPARQL クエリのテンプレートを与え，データ主導により RDF トリプルを変形していくことで，SPARQL クエリを自動生成する．質問タイプとして，トリプルの形式を 1 つ与える基本型に加えて，程度を問い合わせる Degree 型，項目を数える Count 型，該当する項目を全て回答する List 型の 4 つを設定した．エンティティを知識側の語彙と対応付け，エンティティ間のリレーションを知識から獲得することによって，SPARQL クエリが完成されれば答えは保証される．
4/&defEGHg;Yghi5F;,'HbcK"`a;jk
0/&DE5FGHIJK0>L:YZ118D[\81]71^D)D!"#$%&D9E_D$D+,"-%./D7

7/06&!"#$%&6&+,"-%./9@ABC1!"#$%& FG&18()* FG&+,"-%+,"-% FG&18!"#"$%&'(!%()$%&&8&&*+","&239&2222&&234/
5`a;bcK"17186&!"#$%&6&+,"-%./9*KAP)@N
I<AJKC<A<<??@ABL
MCN@BA<N@
MCBA@PM@CN!"#$%& +,"-%IKAA<?&
BAKI@AL+,"-%lm no *((CIKAOKA<N@ *(!"#$%&'()*+,"-%./0123456?x1 rdf:type j.1:塩.
?x1 j.1552:amount ?amount.
} ORDER BY ASC(?amount) LIMIT 3!"#"$%&'(!%()$%&!""*+","&./01!"#$%& 2222&&234/
5./01!"#$%&

234

Q/Epqr5F;sWtu`a;v?
@ABC1,-. '("'(")%!"#"$%&'(!%()$%&$%&"*+","&./01!"#$%& 2222&&234/
5‚ƒ*c,%{|}0„…

!"#"$%&'(!%()$%&234&*+","&./01!"#$%& ./4::01;<=>??@AB@C&234/
5./01!"#$%&./4::01;<=>??@AB@C234./01!"#
$%&

2222
234

:/MNw;HPRxyzc,%{|}`a;~?
!"#"$%&'(!%()$%&$)*+ *+","&./01!"#$%& $)*+ 234/
5./01!"#
$%&

2A@?
234

図 1: 自然言語から SPARQL クエリへの変換手法の概要

2.2?x0 rdf:type j.1:ハンバーグ.
}
List 型

どんなハンバーグがありますか？

SELECT DISTINCT ?x0 WHERE {?x0 rdf:type j.1:ハンバーグ.
}

Degree 型+

塩分が低くて，トマトを使ったパスタ

SELECT DISTINCT ?x0 WHERE {はありますか？

?x0 j.1552:hasIngredient ?x1.

基本型

?x0 rdf:type j.1:パスタ.
?x1 rdf:type j.1:塩.
?x1 j.1552:amount ?amount.
?x0 j.1552:hasIngredient ?x2.
?x2 rdf:type j.1:トマト.
} ORDER BY ASC(?amount) LIMIT 3

問題点として，自然言語表現と知識側の語彙を対応づける難しさが挙げられる．そこで，形式的に記述された知識に対してより柔軟にアプローチするために，ニューラルネットワークを用いる手法を検討する．

3

記憶装置付きニューラルネットワーク
モデルによる文脈と知識を用いた対話

現在，対話のアーキテクチャとして Seq2Seq[2] といった sequence to sequence なモデルが主流になっている．一方，より知的な対話を行うには文脈理解や知識活用が必要であるが，そのための長期間におけるデータ保存の能力には限界があると議論されてきた．
そこで，文脈情報などの長期の記憶を保持するために，
Diﬀerentiable Neural Computer (DNC)[1] といった記憶装置付きニューラルネットワークモデルが提案されている．これらのモデルは記憶装置を付け加えたことにより従来のモデルに比べてより複雑な情報処理を行えるようになり，対話における文脈を踏まえた質問応答でも高い精度を実現している．本研究の 2 つ目として，記憶装置付きニューラルネットワークモデルによる文脈と知識を用いた対話システムの構築を目指す．

3.1

2222

HOPQR

R/&!S>,T#•€c;•n

SELECT DISTINCT (COUNT(?x0) as ?count)
WHERE {

7186&!"#$%&#"'(")%*+9STUV

STUV

234

ハンバーグは何種類ありますか？

7/&:;<=0>?

HOPQR
MN

WX

2222
239

SELECT DISTINCT ?x0 WHERE {?x0 rdf:type j.1:パスタ.

自然言語の SPARQL クエリ変換による大規模知識へのアクセス

自然言語表現から知識にアクセスするために，自然言語文をデータレポジトリを検索するためのクエリ言語に変換することを対象とした様々な研究が行われてきた [3][4]．しかし，これらにおいて自然言語文から生成したクエリが正しい答えを返すかは保証されていない．そこで，本研究の 1 つ目として，データ主導によりクエリを生成することで問題を解決することを試みた．

塩分の低いパスタは何ですか？

?x0 j.1552:hasIngredient ?x1.

Count 型

2

生成された SPARQL クエリ

実験結果

表 1 に示すように，設定した質問タイプの自然言語質問文及び，より一般化した，それらを組み合わせた質問文に対してそれぞれ適切な SPARQL クエリを生成することができた．

提案手法

図 2 に示す提案モデルのように DNC を拡張し知識を格納するメモリを追加することで，文脈と知識の両方を用いた応答の生成を目指す．
ここで，自然言語処理において知識を取り入れる際，形式的に記述された構造化知識は正しい結果を導くが，形式を重んじることから柔軟に利用することができないという問題がある．一方で，分散表現による知識表現では未知の知識項目に対しても柔軟に対応することができる．そこで，本研究では構造化知識を分散表現にして用いることで，正確に記述された知識をニューラルネットワークにおいて柔軟に活用することを考える．また，知識を導入することで，文脈情報からだけでは答えることができない知識を問う質問に対する応答，曖昧な質問の内容に対する正確な特定，そして未知の2/$01 #'

+"

#"

%"

&"'

&"*

!"#
$%&'

!"#
$34'

$"

,"

(a) 文脈メモリへの書き込み()*+,$!""'

'&"()
*&"()

(b) 文脈メモリからの読み出
し!"./$01 #'図 2: 提案モデルの全体図

語彙に対する柔軟な対応が可能になると考えている．

3.2

実験結果

Complex Sequential Question Answering データセ
ット1 の一部を用いて実験を行い，知識は wikidata2 を使用した．まず，オリジナルの DNC モデルに対してwikidata で学習し，知識をあらかじめ格納した知識メモリを構築する（以降書き込み操作は行わず，読み出し操作のみを行う）．そして，その知識メモリを用いて提案モデルの実験を行なった．オリジナルの DNCモデルと提案モデルのハイパーパラメータは共通のものを用いた．詳細を表 2 に示す．
表 2: ハイパーパラメータの詳細
項目

仕様

LSTM のサイズ

256

バッチサイズ

1

学習率

1e-4

メモリの次元256 × 64

読み出しヘッド数

4

書き込みヘッド数

1

最適化手法

RMSProp, momentum=0.9

重み初期化∼ N (0, 0.1)

知識メモリには 10 万回学習したメモリを用い，提案モデルについても 10 万回学習を行なった．全体の評価事例における予測単語が不正解であった割合を表す誤り率によって評価した結果，86.16%であった．図3 に各タイムステップにおけるアテンションの重みの可視化結果を示す．
縦軸は各タイムステップ，つまり各単語に対応し，横軸はメモリのスロット数 256 である．読み出しの結果については，ヘッドが 4 つあるため，それぞれ示している．書き込み操作についてはアテンションが強くかかっている部分はばらけており，メモリ全体を活用していた．読み出し操作については文脈メモリ，知識メモリ共にあまり使われていないという結果となった．
テスト誤り率が 86.16%と高かった原因について，訓練データでの学習の様子を観察すると，loss はほぼ 0 となっており，予測した単語もすべて正解しており，学習に用いたデータセットが小さかったため，過学習を起こしたと考えられる．また，約 35 万の知識のトリプ
ルを記録するには知識メモリのスロット数が 256 では小さすぎたことや，知識メモリの構築方法が悪かった
1 https://amritasaha1812.github.io/CSQA/2 https://www.wikidata.org/wiki/Wikidata:Main Page(c) 知識メモリからの読み出
し

図 3: 各タイムステップにおけるアテンションの重みの可視化結果

こと，そもそもタスクが難しいことなどが考えられる．

4

おわりに

1 つ目の研究として，データ主導による自然言語から SPARQL クエリへ変換する手法を提案した．4 つの質問タイプの自然言語質問文及び，より一般化した，それらを組み合わせた質問文に対してそれぞれ適切なSPARQL クエリを生成することができた．質問タイ
プを設定することにより，正確なクエリを容易に生成し，自然言語文が意図する質問に回答することを可能にした．
2 つ目の研究として，DNC を拡張し，文脈を捉えつつ構造化知識を活用できるモデルを提案した．実験結果では，応答を生成するのに知識メモリの情報はあまり使われず，テスト誤り率も高かったが，今回の実験
では学習に用いたデータセットが小さかったため，過学習をしたと思われる．今後の課題として，CSQA をすべて用いて実験を行いたい．また，提案モデルとオリジナルの DNC モデルの結果を比較したい．

参考文献[1] Graves, A., Wayne, G., Reynolds, M., Harley, T., Danihelka, I., Grabska-Barwińska, A., Colmenarejo, S. G.,
Grefenstette, E., Ramalho, T., Agapiou, J., Badia, A. P.,
Hermann, K. M., Zwols, Y., Ostrovski, G., Cain, A.,
King, H., Summerﬁeld, C., Blunsom, P., Kavukcuoglu, K.
and Hassabis, D.: Hybrid computing using a neural network with dynamic external memory, Nature, Vol. 538, No.
7626, pp. 471–476 (2016).
[2] Sutskever, I., Vinyals, O. and Le, Q. V.: Sequence toSequence Learning with Neural Networks, CoRR, Vol.
abs/1409.3215, (2014).
[3] Wang, C., Xiong, M., Zhou, Q. and Yu, Y.: PANTO:
A Portable Natural Language Interface to Ontologies., inFranconi, E., Kifer, M. and May, W. eds., ESWC, Vol.
4519 of Lecture Notes in Computer Science, pp. 473–487,Springer (2007).
[4] Zou, L., Huang, R., Wang, H., Yu, J. X., He, W. andZhao, D.: Natural language question answering over RDF:a graph data driven approach, in SIGMOD Conference(2014).