# 記憶装置付きニューラルネットワークモデルによる構造化知識 と演算処理を用いた質問応答

村山友理 小林一郎
お茶の水女子大学
\{murayama.yuri,koba\}@is.ocha.ac.jp

## 概要

3 つの DNC モデル，vanilla DNC, rsDNC, DNC-DMS に知識と演算のためのアーキテクチャを新たに組み入れ，構造化知識に対する演算処理を含んだ質問文について正しい答えを生成する能力を向上させることを目指す。rsDNC, DNC-DMS をべースとした提案モデルはそれぞれ GEO データセットにおいて平均 top-1 accuracy，平均 top-10 accuracy で最も良い結果を達成した。さらに，rsDNCをべースとした提案手法は拡張した GEO データセットにおいて平均 top-1 accuracy と平均 top-10 accuracy の両方で他のモデルを上回った。

## 1 はじめに

近年, Transformer [1] などのディープニューラルネットワークはコンピュータビジョンや自然言語処理といったさまざまなタスクの複雑なパターンマッチングにおいて顕著な発展を遂げてきた. しかし， Transformer には長い文脈情報を固定長の系列に工ンコードするせいで context fragmentation problem [2] があり，この問題を解くために過去の情報をメモリ内にキャッシュしておくさまざまな手法 $[2,3,4]$ が提案されてきたが，Transformer をべースとしたモデルは，グラフや木などのデータ構造の表現や変数の使用，長い系列に対する表現の操作といった抽象的な処理を行う能力には限界があるとされてきた. Neural Turing Machine [5] や Differentiable Neural Computer (DNC) [6] は外部に読み書き可能なメモリを持つことで，構造化データ上のアルゴリズムタスクを解き，変数の表現や，長い系列の学習を可能にした. 本研究では，DNC と，さらにDNC を改良した rsDNC [7] と DNC-DMS [8] に対して，質問応答夕スクにおいて重要な要素である知識利用と演算処理を新たに組み入れることを試み，構造化知識に対す
る演算処理を含んだ質問文について正しい答えを生成する能力を向上させることを目指す.

## 2 関連研究

Differentiable Neural Computer (DNC) [6] は外部にメモリ行列 $M \in \mathbb{R}^{N \times W}$ を持つニューラルネットワー クである. メモリ行列 $M$ の $N$ 個の番地に対し，どの番地について主に読み出す，または書き込むかを表す重みを定義するのに attention mechanism が用いられる。

読み出し操作では, read vector $\boldsymbol{r}$ はメモリ $M$ に read weighting $\boldsymbol{w}^{r}$ をかけた，メモリ番地に対する重み付き和として計算される：

$
\boldsymbol{r}=\sum_{i=1}^{N} M[i, \cdot] \boldsymbol{w}^{r}[i]
$

ここで， ‘’は $j=1, \ldots, W$ を表す。

書き込み操作では，メモリ $M$ は write weighting $\boldsymbol{w}^{w}$ を用いてまず erase vector $\boldsymbol{e}$ により不要な番地が消去され，write vector $v$ を足すことで更新される：

$
M[i, j] \leftarrow M[i, j]\left(1-\boldsymbol{w}^{w}[i] \boldsymbol{e}[j]\right)+\boldsymbol{w}^{w}[i] \boldsymbol{v}[j]
$

重みは内容に基づく番地付け，一時的なメモリのリンク付け，動的メモリ割り当て，の 3 つの attention mechanism によって定義される。DNC を改良したモデルとして，QA タスクに特化した robust and scalable DNC (rsDNC) [7] や DNC に対して 3 つの改良 (i.e. de-allocation mechanisms, masked content based addressing, sharpness enhancement)を行なった DNC-DMS [8] などが提案されている.

## 3 提案手法

3 つのモデル，DNC [6], rsDNC [7], DNC-DMS [8] に新たに構造化知識を保存するためのメモリアー キテクチャと，単純な算術演算と論理演算を行うためのプロセッサアーキテクチャを追加する. 図 1 は

図 1 知識メモリとプロセッサを持つ提案モデルの全体図.

DNC に基づく知識メモリとプロセッサを持つ提案モデルの全体図を示す. 各タイムステップ $\mathrm{t}$ で行う処理は以下の通りである：

1. コントローラ $(\mathrm{RNN})$ は大力 $\boldsymbol{x}_{t}$ と, 前タイムステップで文脈メモリ $M_{t-1}^{c} \in \mathbb{R}^{N \times W}$ から読み出した R 個のベクトルのセット $\boldsymbol{r}_{t-1}^{c}=$ $\left[\boldsymbol{r}_{t-1}^{c, 1} ; \ldots ; \boldsymbol{r}_{t-1}^{c, R}\right]\left(\boldsymbol{r}_{t-1}^{c}\right.$ は $\boldsymbol{r}_{t-1}^{c, 1}, \ldots, \boldsymbol{r}_{t-1}^{c, R}$ の結合) に加えて，前タイムステップで知識メモリ $M_{t-1}^{k} \in \mathbb{R}^{N \times W}$ から読み出した $\mathrm{R}$ 個のベクトルのセット $\boldsymbol{r}_{t-1}^{k}=\left[\boldsymbol{r}_{t-1}^{k, 1} ; \ldots ; \boldsymbol{r}_{t-1}^{k, R}\right]$, そして前タイムステップのプロセッサの演算結果のベクトル $v_{t-1}$ を受け取る。それから隠れべクトル $h_{t}$ を出力する.
2. $\boldsymbol{h}_{t}$ の線形変換により, 出力 $\boldsymbol{v}_{t}=W_{y} \boldsymbol{h}_{t}$ と, 現夕イムステップにおける文脈メモリを制御するためのパラメータを格納したベクトル $\xi_{t}=W_{\xi} \boldsymbol{h}_{t}$,現タイムステップにおける知識メモリを制御するためのベクトル $\zeta_{t}=W_{\zeta} \boldsymbol{h}_{t}$, そして現タイムステップのプロセッサに用いられるゲートベクトル $\boldsymbol{g}_{t}=W_{g} \boldsymbol{h}_{t}$ を得る.
3. $\xi_{t}$ によって文脈メモリへの書き込みが行われ, メモリの状態が更新される. 知識メモリへの書き込みは行われない。

4. プロセッサでの演算処理は $g_{t}$ と, 現タイムステップで文脈メモリから読み出したべクトルを結合した $\boldsymbol{r}_{t}^{c}$, 現タイムステップで知識メモリから読み出したべクトルを結合した $\boldsymbol{r}_{t}^{k}$ を用いて行われる。

5. 最後に， $\boldsymbol{r}_{t}^{c}$ と $W_{r}^{c}$ をかけて得られるべクトルと, $\boldsymbol{r}_{t}^{k}$ と $W_{r}^{k}$ をかけて得られるべクトル，及び現タイムステップのプロセッサからのベクトル $\boldsymbol{v}_{t}$ と $W_{v}$ をかけて得られるべクトルに $\boldsymbol{v}_{t}$ を足し，出力 $\boldsymbol{y}_{t}$ を計算する.

$
\boldsymbol{y}_{t}=\boldsymbol{v}_{t}+W_{r}^{c} \boldsymbol{r}_{t}^{c}+W_{r}^{k} \boldsymbol{r}_{t}^{k}+W_{v} \boldsymbol{v}_{t}
$

read vector $\boldsymbol{r}_{t}^{c}$ と $\boldsymbol{r}_{t}^{k}$, value vector $\boldsymbol{v}_{t}$ は次タイムステップの RNNへの入力に追加される.

以上の処理を繰り返すことにより，二つのメモリへの読み書き操作とプロセッサ操作を行う.

## 3.1 知識メモリ構築

知識メモリは知識ベース $(\mathrm{KB})$ を用いて構築される. KB のファクトは Resource Description Framework $(R D F)^{1)}$ 形式の三つ組 (主語, 述語, 目的語) で表現される。例えば，「日本の首都は東京である.」は三つ組 (日本，首都，東京) で表される．DNC のモデルに三つ組の内どれか 2 つを与え，残りの 1 つを返すように学習させることで KB ファクトを学習する.例えば，入力が “日本”，“首都” のとき，出力は “東京”である．モデルは KB のすべてのトリプルを用いて学習し，KB 全体を保存したメモリユニットを作成する。そして，事前学習したメモリユニットを提案モデルの知識メモリユニットとして利用する。

## 3.2 プロセッサ処理

プロセッサユニットにおいて単純な算術演算と論理演算を行うために，13 の演算を設定 ᄂ た:Max, Min, More, Less, Major_city, Major_river, Major_lake, Not, Count, Density, Sum, Context, Knowledge. 文脈义モリからの read vector $\boldsymbol{r}^{c}$ と知識メモリからの read vector $\boldsymbol{r}^{k}$ はオリジナルの語彙トークンのリスト,「文脈リスト」と「知識リスト」にそれぞれ変換される。

Superlatives : Max 演算は知識リストを受け取り，その最大値を返す. Min 演算は同様に知識リストを受け取り，その最小値を返す。

Comparatives : More 演算は文脈リストと知識リストの両方を受け取り, 知識リストの最初の数より大きい数を文脈リスト中から返す. Less 演算は同様に文脈リストと知識リストの両方を受け取り，知識リストの最初の数より小さい数を文脈リスト中から返す. Major_city，Major_river， Major_lake 演算は知識リストを受け取り，それぞれ“150,000”, “750”, “5,000”より大きい数を返す.

表 1 知識ベースの一部.

type alabama state

capital alabama montgomery

population alabama $3894.0 \mathrm{e}+3$

Negation : Not 演算は文脈リストと知識リストの両方を受け取り，文脈リストから知識リストを引いた差を返す。

Calculation : Count 演算は知識リストを受け取り，その要素数を返す. Density 演算は文脈リストと知識リストの両方を受け取り, 要素毎に知識リストで割られた文脈リストを返す. Sum 演算は知識リストを受け取り，その要素の和を返す。

No operation : Context 演算は文脈リストを受け取り，それ自身を返し，Knowledge 演算は知識リストを受け取り，同様にそれ自身を返す。これらの 2 つの演算は上記の演算がどれも適当でない場合のために用意した。

13 の演算の出力は gate vector $\boldsymbol{g}$ のソフトマックス出力と結合し， value vector $\boldsymbol{v}$ を構築する。

## 4 実験

## 4.1 データセット

GEO データセット $[9]^{2}$ はアメリカの地理に関する 880 の質問文と Prolog 形式のファクトのデータベースを含む，質問文の語彙サイズは 280 である.質問文は superlatives, comparatives, negation や count, density, sum といった calculation を含む. GEO データセットには質問文に対する答えが含まれていなかったため，答えを人手でアノテーションを行った. 答えはデータベースからの地理エンティティのリストであり，長さは 0 から 386 エンティティである. 例えば，“Which rivers flow through Alaska?” という質問は答えがなく，別の質問 “Give me the cities in the U.S. ?"は 386 エンティティというかなり多くの答えを持つ. 600 サンプルを学習に， 280 サンプルをテストに用いた.

GEO のデータベースから RDF 形式の三つ組を作成し, 表 1 に示す. 三つ組 (type， alabama， state) はalabama のtype は stateであると意味する. type リレーションに対するオブジェクトエンティティとして，5つのエンティティ：state， city, river, mountain, lakeを我々のKBに

2) https://cs.stanford.edu/ pliang/software/表 2 GEO データセットと GEO 1380 における平均 Acc@k.

追加した.この KB は地理ドメイン内の 11 リレー ション, 1,275 エンティティ, 2,250トリプルを含む. さらに, 新たな $500 \mathrm{QA}$ ペアを人手で作成し $\mathrm{GEO}$ データセットを拡張した.この拡張したデータセットを“GEO 1380” と呼ぶ. 1,000 サンプルを学習に， 380 サンプルをテストに用いた.

## 4.2 結果

表 2 に GEO データセットと GEO 1380 における全てのモデルのテスト 3 実行分の平均 top-1 accuracy (Acc@1) と top-10 accuracy (Acc@10)を示す.“+KM” と“+P” はそれぞれ提案手法である知識メモリユニット (KM) の追加，プロセッサユニット (P) の追加を表す.

GEO データセットにおいて, rsDNC+KM+P は Acc@1 で最も良い結果を達成し，DNC-DMS+KM は Acc@10で最も高いスコアを得た. GEO 1380 デー タセットでは， rsDNC+KM は他のモデルを上回った. QA タスクに特化した $\mathrm{rsDNC}$ を基にしたモデルは良い結果になる傾向がある. 提案モデルのほとんどはオリジナルのモデルより低いが，提案手法のポイントは異なるハイパーパラメータだと上回ることがあるため，アーキテクチャによるものだとは考えていない. すべてのスコアが GEO 1380 で上がったため，より大きなデータセットはモデルの精度向上に有効である.

表 3 に，GEO 1380 データセットにおける全てのモデルの各質問タイプのテスト 3 実行分の平均 Acc@10を示す.

Simple : 1Hop は “What states border Texas?” のように質問文が 1 つのリレーションを含むことを意味する. 例えば, “What states border states that border states that border states that border Texas?” は 4 つのリ
表 3 GEO 1380 データセットにおける各質問タイプの平均 Acc@10.

レーションを含むため，この例は4Hop である. 1 Hop は GEO と GEO 1380 の両方の $30 \%$ 以上を占めるため，このタイプで高いスコアを得ることが全体の良い結果につながる. 4Hop のポイントが 2Hop のポイントより高いのは，4Hop の方が 2 Hop より難しいにも関わらず奇妙に思えるかもしれないが，これは 4Hop のサンプル数が少ないせいだと考えられ， multi-hop のサンプルを拡張する必要がある.

Superlatives : Argmax は "What is the largest state?”のように質問文が “largest”, "highest”, "longest” などといった単語を含むことを意味する. Argmax と Argminにおいて, rsDNC+KM+Pが最も高いスコアを得た. superlativesの他のタイプでは, rsDNC+KM+P はトップスコアに届かなかったが，それでもべストなモデルと比べて遜色ない.

Comparatives : このタイプは “What states high point are higher than that of Colorado?” のように 3 つの表現：More, Less, Major を扱う. ホップ数が増えると，スコアは下がった.

Negation : Not は “What state has no rivers?” のように質問文が否定表現を含むことを意味する. 我々の rsDNC+KM は他のモデルを上回った.

Calculation : このタイプは "How many states are in the USA?” のように 3 つの演算: Count, Density, Sumを扱う. Count とSumのポイントは他のタイプ
と比べて比較的高い一方で，Density の結果はとても低い。

## 4.3 課題

質問タイプ数のバランスを取るためにデータセットをより拡張する必要がある。また，GEO データセットのサイズは僅か 880 であり，拡張を行なってもまだ 1380 であり，ニューラルネットワークの学習には小さすぎるため，WikiTableQuestions [10]のような大規模データセットを用いて学習することが望まれる。

## 5 おわりに

3 つの DNC モデル，vanilla DNC, rsDNC, DNC-DMS に知識メモリとプロセッサを追加し，実験を行い，背景知識や単純な算術演算と論理演算を必要とする質問応答タスクに対して効果を分析した. 提案した rsDNC+KM+P と DNC-DMS+KM はそれぞれ GEO データセットにおいて平均 Acc@1 と平均 Acc@10 で最も良い結果を達成した. さらに，提案モデル rsDNC+KM は GEO 1380 データセットにおいて平均 Acc@1 と平均 Acc@10 の両方で他のモデルを上回った. 今後の課題では，提案モデルに順次実行，条件分岐，反復といった制御命令を処理するアーキテクチャを加えて改良したい。

## 謝辞

本研究は JSPS 科研費 JP20J23182 の助成を受けたものです.

## 参考文献

[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, L ukasz Kaiser, and Illia Polosukhin. Attention is all you need. In I. Guyon, U. Von Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett, editors, Advances in Neural Information Processing Systems, Vol. 30. Curran Associates, Inc., 2017.

[2] Zihang Dai, Zhilin Yang, Yiming Yang, Jaime Carbonell, Quoc Le, and Ruslan Salakhutdinov. Transformer-XL: Attentive language models beyond a fixed-length context. In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, pp. 2978-2988, Florence, Italy, July 2019. Association for Computational Linguistics.

[3] Jack W. Rae, Anna Potapenko, Siddhant M. Jayakumar, and Timothy P. Lillicrap. Compressive transformers for long-range sequence modelling. CoRR, Vol. abs/1911.05507, , 2019.

[4] Pedro Henrique Martins, Zita Marinho, and Andre Martins. $\infty$-former: Infinite memory transformer. In Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pp. 5468-5485, Dublin, Ireland, May 2022. Association for Computational Linguistics.

[5] Alex Graves, Greg Wayne, and Ivo Danihelka. Neural turing machines, 2014. cite arxiv:1410.5401.

[6] Alex Graves, Greg Wayne, Malcolm Reynolds, Tim Harley, Ivo Danihelka, Agnieszka Grabska-Barwińska, Sergio Gómez Colmenarejo, Edward Grefenstette, Tiago Ramalho, John Agapiou, Adrià Puigdomènech Badia, Karl Moritz Hermann, Yori Zwols, Georg Ostrovski, Adam Cain, Helen King, Christopher Summerfield, Phil Blunsom, Koray Kavukcuoglu, and Demis Hassabis. Hybrid computing using a neural network with dynamic external memory. Nature, Vol. 538, No. 7626, pp. 471-476, October 2016.

[7] Jörg Franke, Jan Niehues, and Alex Waibel. Robust and scalable differentiable neural computer for question answering. CoRR, Vol. abs/1807.02658, , 2018.

[8] Róbert Csordás and Jürgen Schmidhuber. Improving differentiable neural computers through memory masking, de-allocation, and link distribution sharpness control. CoRR, Vol. abs/1904.10278, , 2019.

[9] John M. Zelle and Raymond J. Mooney. Learning to parse database queries using inductive logic programming. In Proceedings of the Thirteenth National Conference on Artificial Intelligence - Volume 2, AAAI'96, p. 1050-1055. AAAI Press, 1996.

[10] Panupong Pasupat and Percy Liang. Compositional semantic parsing on semi-structured tables. 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. 14701480, Beijing, China, July 2015. Association for Computational Linguistics.

[11] Sepp Hochreiter and Jürgen Schmidhuber. Long shortterm memory. Neural computation, Vol. 9, No. 8, pp. 1735-1780, 1997.

[12] T Tieleman and G Hinton. Lecture 6.5-rmsprop: Divide the gradient by a running average of its recent magnitude. 2012.

[13] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pp. 41714186, Minneapolis, Minnesota, June 2019. Association for Computational Linguistics.

[14] Mor Geva, Ankit Gupta, and Jonathan Berant. Injecting numerical reasoning skills into language models. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pp. 946-958, Online, July 2020. Association for Computational Linguistics.

[15] M. Stone. Cross-validatory choice and assessment of statistical predictions. Roy. Stat. Soc., Vol. 36, pp. 111-147, 1974.

## A 実験設定

すべてのモデルのハイパーパラメータは主に [6] に基づく；隠れ層サイズ 256 の 1 層 LSTM [11]，バッチサイズ 2 , 学習率 $1 \times 10^{-4}$, メモリ次元 $256 \times 64$,読み出しへッド数 4 , 書き込みへッド数 1 , モメンタム 0.9 の RMSProp オプティマイザ [12]. [7] に従い rsDNC [7] のドロップアウト率は $10 \%$ とした. HuggingFace ${ }^{3)}$ bert-base-uncased model を隠れ次元 768 の BERT [13] encoder に使用した。数字は [14] を参考に 1 标ずつ分割した. 5 分割交差検証 [15] で 5 エポックずつモデルを学習させた. ランダムな初期化の下で各モデルを 3 回実行し, 平均の結果を報告する.

知識ベースを用いて知識メモリを構築するために，3つのオリジナルモデルをメモリ次元 $256 \times 64$ で， 5 分割交差検証で 10 エポックずつ学習させた.他の設定は前述の通りである. DNC, rsDNC, DNCDMS の top-10 accuracy はそれぞれ 78.90\%, 78.39\%， $79.63 \%$ だった. 知識メモリ構築に用いる事前学習モデルと提案手法に用いる学習モデルは同じ種類である。つまり，DNCを用いて学習した知識メモリが，DNCをべースとした提案モデルで使用される。

## B データセット

GEO データセット [9] と GEO 1380 の各質問タイプ数を表 4 に示す. Compound タイプは “How many states have a higher point than the highest point of the state with the largest capital city in the U.S.?”のように 4 つのタイプ: Superlatives, Comparatives, Negation, Calculationを複合した質問文を扱っており，さまざまな組み合わせが用意されている。