言語処理学会 第24回年次大会 発表論文集 (2018年3月)

Attention-based RNN model を用いた日本語対話モジュールの意図クラス推定とスロットフィリングにおける未知語対策
長井敦 †呉剣明 ‡加藤恒夫 †山本誠一 †同志社大学 † KDDI 総合研究所 ‡ctwb0127@mail4.doshisha.ac.jp

1

はじめに

クラスとはユーザ発話の意図の種類を表すものである．意図クラス推定はあらかじめ定義した意図クラス

近年，音声認識技術の発達に伴い，家庭向けに AIへの発話分類タスクとして扱われる．スロットとはタスピーカーが発売されるなど，音声対話システムの開スクを実行する際に必要となるパラメータであり，発発が活発化している．音声対話システムは，簡便に対話意図を構成する要素となる．スロットは一般的に，話的な検索などができるインターフェースである一方，in/out/begin(IOB) フォーマットで記述され，発話の各形態素に対して与えられる．この時，発話意図を構成しない形態素にはスロット「O」が付与される．このスロットを推定する処理をスロットフィリングと呼び，あらかじめ定義したラベルへの単語系列ラベリングタスクとして扱われる．表 1 に発話，意図クラス，スロットの例を示す．

入力表現が利用者によって異なったり，同じ利用者でも時によって揺らいだりするため，利用者の意図を的確に捉えるのは簡単ではない．的確な意図推定には意図クラス推定とスロットフィリングの２種類のタスクを高い精度で行うことが求められる．意図クラス推定
はあらかじめ定義した意図クラスへの発話分類タスクとして，スロットフィリングはあらかじめ定義したラベルへの単語系列ラベリングタスクとして扱われる．
この 2 種類のタスクは通常，個別のモデルにより別々に処理される．

表 1: 発話，意図クラス，スロットの例
発話
スロット
意図クラス

京都
B-departureから
金沢O
B-destination
AskTransportationまでO

しかし近年，これらの意図推定タスクを同時に行うニューラルネットワークベースのモデルが報告されている．Liu らにより提案された Attention-based RNN

model[1] や joint online RNN model[2] はスロットフィリングのベンチマークテストに用いられる英語データ
セット ATIS(Air Travel Information System) における性能評価で良い性能を示している．さらに，意図推定を行うにあたって，過去の発話も考慮する MemoryNetwork を構築するモデル [4][5] も報告されている．
本稿では，語順の制約が比較的緩い日本語のデータでも，同手法が有効に働くかを検証し，word2vec による汎用単語分散表現 [3] を用いることで，未知語への対策を目指した手法を提案する．

3

モバイルアプリ向け対話モジュール
本稿で，意図クラス推定とスロットフィリングの評価対象としたのは，KDDI 総合研究所が収集したモバイルアプリ向け対話モジュールのログデータである．
対話モジュールの主な機能は，天気予報，アラーム，スケジュール登録・管理，連絡先登録・管理，経路検索，アプリ起動などであり，本データにおける意図クラスは基本的に，この機能を示す．頻度上位 20 種類の意
図クラスと発話例を表 2 に示す．また，本データにお2

けるスロットは地名，日付，氏名，スケジュール内容，意図クラスとスロットアプリ名，などの機能を実行するためのパラメータで対話システムにおいてエージェントがユーザからあり，それぞれのスロットは特定の意図クラスに紐付課される何らかのタスクを実行する際，必要な情報けられている．発話数は 34210 発話，1 発話あたりのとしては意図クラスとスロットが挙げられる．意図平均形態素数は約 4.9 形態素であり，短い発話が多い．

― 1054 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

データを学習用と評価用に 9:1 に分割した場合の未知

Intent：AskTransportation

語率は約 2.9%であり，スロットが付与されている単語に限定すると約 12.4%である．データには 41 種類の意図クラスと 41 種類のスロットが定義されている．

ℎ1

Slot：

ℎ2

departure

ℎ3

O

ℎ4

destination

O

意図クラスごとの発話数の分布には偏りがあり，発話数が 100 に満たない意図クラスが半数を占めている．

𝑐1

𝑐2

𝑐3

𝑐4

𝑓ℎ表 2: 意図クラス毎の発話数の割合と発話例
意図クラス名SearchPhonebook
SendMail
CheckSchedule
CheckWeather
EditAlarm
CallPhone
AskPlace
AskTransportation
AskAround
Application
CheckNews
PlayMusic
Horoscope
SearchWiki
AddSchedule
AddMemo
AddPhonebook
ViewPicture
CameraCancel

割合
11.4%
6.3%
6.1%
6.1%
6.1%
5.9%
5.9%
5.8%
5.8%
5.8%
5.7%
5.7%
5.6%
5.5%
5.2%
1.9%
1.2%
1.1%
0.7%
0.2%

発話例
お父さんの電話番号
お母さんにメール
スケジュール確認
明日の大阪の天気
明日 8 時にアラーム
警察に電話
地図
大阪駅から京都駅まで
この辺りのお店
テキストアプリ
今日のニュース
音楽再生
占い
ジンクスの意味
スケジュール登録牛乳買うとメモ
アドレス帳に登録
写真を見る
カメラ起動
中止

𝑏ℎ

京都
𝑥1

から𝑥2

金沢
𝑥3まで
𝑥4

図 1: Attention-based RNN model[1]bhi = LST Mbw (xi )(2)f h = (f h1 , ...f hT )(3)bh = (bhT , ...bh1 )(4)得られた f h と bh を hi = [f hi , bhi ] となるように連結し，単語系列を読み込んだ隠れ状態 h = (h1 , ...hT )とする．

h = (h1 , ...hT )(5)hi = [f hi , bhi ]

4

手法

4.1

Attention-based RNN model

各隠れ状態 hi は発話全体の情報を含み，特に i ス
テップ目の単語周辺の情報に焦点を当てている．この隠れ状態 hi をコンテキストベクトル ci と連結し，意本研究では Liu らにより提案された Attention-based

図クラス推定とスロットフィリングを行う．コンテキ

RNN model をベースとして用いる [1]．このモデルはストベクトル ci は隠れ状態 h の加重平均として計算さ双方向性 RNN で発話の音声認識結果を形態素単位にれる．g はフィードフォワードニューラルネットワー

読み込み，得られた隠れ層からスロットと意図クラスクである．

を推定する．加えて，スロットを推定する際には現在注目している単語にフォーカスするために Attention

ci =を用いて現時点までの情報を集約したコンテキストベ

T∑αi,j hj(6)

j=1

クトル c を学習し用いる．モデルを図 1 に示す．
発話，すなわち単語インデックス系列 X = (x1 , ...xT )exp(ei,j )
αi,j = ∑T
k=1 exp(ei,k )から出力として意図クラス Intent とスロット系列 Y =ei,k = g(hi−1 , ci−1 , hk )意図クラス推定とスロットフィリングは入力となる(7)(y1 , ...yT ) を得る処理である．まず順方向 RNN により単語インデックス系列を読み込み，順方向隠れ状
態 f h = (f h1 , ...f hT ) を得る．同様に逆方向 RNN に

4.2

汎用単語分散表現を用いた未知語対策

より逆順に単語インデックス系列を読み込み，逆方Attention-based RNN model の入力となる発話中向隠れ状態 bh = (bhT , ...bh1 ) を得る．この時 RNNの単語は one-hot ベクトルとして入力され，ランダムは LSTM(Long short-term memory) ユニットを使用に初期値を与えられた単語埋め込み行列を通すことで，する．

予め定義した次元数の実数単語分散表現へと変換されf hi = LST Mf w (xi )(1)る．しかし，これでは学習データに存在しない未知語― 1055 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

や，学習データ中での出現頻度が少ない単語の単語分る．次に単語埋め込み行列の初期値をランダムに与え散表現は類似の文脈で使用される頻出単語に近いベクた場合と，word2vec を用いてあらかじめ大規模コートルとして適切に学習されず，スロットに未知語が入パスで学習した単語分散表現を与えた場合の評価結果る場合に，対応できない．そこで，word2vec を用い，を比較することで提案手法の有効性を検証する．この

あらかじめ大規模コーパスで学習した汎用単語分散表

時，大規模コーパスとしては日本語 wikipedia テキス

現を，ランダムに与えられていた単語埋め込み行列のト約 11 億語を使用し，word2vec の学習モードは Skip-初期値と置き換えることとした．これにより，未知語gram とする．評価指標は意図クラス分類に関してはや，学習データ中での出現回数が少ない単語の単語分accuracy，スロットフィリングに関しては F1-score を散表現にもある程度意味を持つ値を与えることができ用いる．

ると考えられる．すなわち，未知語にも対応した単語分散表現を獲得できることになる．手法としては，単語埋め込み行列を用いず，大規模コーパスで学習した

実験結果

5.2

汎用単語分散表現をそのまま入力の単語分散表現とす

実験結果を表 3 に示す．ATIS データを使用した際る手法も考えられるが，本タスクにおいては，学習との結果と比べると，日本語であるモバイルアプリ向け

ともに意図クラスとスロットの推定に向いている単語対話モジュールデータを使用しても，意図クラス推定，分散表現の学習を期待するため，単語埋め込み行列のスロットフィリングともに性能の大きな違いは見られ初期値を変更することとした．手法の手順を図 2 になかった．単語埋め込み行列の初期値に word2vec を示す．

用いてあらかじめ大規模コーパスで学習した単語分散表現を与えた場合，意図クラス推定精度はわずかにword2vecを用いて大規模コーパスから単語分散表現を獲得．

向上したが，スロットフィリング精度はわずかに低下した．

Attention-based RNN model の単語埋め込み行列の初期値を置き換え，繰り返し学習．

表 3: 意図クラス分類とスロットフィリング精度学習したモデルを評価．
（未知語は大規模コーパスから獲得した単語分散表現が使用される）

評価データ

RNN 初期値

ATIS
対話
モジュール

randomrandomw2v

意図クラス
accuracy
97.0
97.75
97.78

スロット
F1-score
95.7
95.15
95.08

次に，モバイルアプリ向け対話モジュールデータ使
用時の単語埋め込み行列の初期値を変更する前後での
図 2: 提案手法

スロット毎のスロットフィリング精度の変化をスロッ
トの出現頻度順に表 4 に示す．単語埋め込み行列の初期値に word2vec による汎用単語分散表現を使用した

5実験

ことにより，未知語数が約 83%減少している．また，

5.1

実験条件

スロットと，低下しているスロットがある．

スロット毎にスロットフィリング精度が向上している

モバイルアプリ向け対話モジュールデータを用いて意図クラス推定とスロットフィリングの実験を行った．
学習データは 30789 発話，評価データは 3421 発話で6考察ある．まず，ベースラインとなる ATIS データとモバ実験の結果から日本語であるモバイルアプリ向け対イルアプリ向け対話モジュールデータにおいて通常の話モジュールデータでも Attention-based RNN model

Attention-based RNN model を用いた場合の評価結が有効に働いた．また，word2vec による汎用単語分果を比較する．使用する ATIS データの言語は英語，散表現を使用した本手法による精度の向上は見られ意図クラス種類数 22，スロット種類数は 79，1 発話なかったが，スロット毎にスロットフィリング精度あたりの平均携帯素数は約 11.1 形態素である．また，を見ると，評価データ中の出現頻度が高い上位 7 ス

学習データは 5284 発話，評価データは 587 発話であロットのスロットフィリング精度が向上している．特― 1056 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

表 4: スロット毎のスロットフィリング精度の変化
スロット名SearchPhonebook-nameSearchWiki-keyword
CallPhone-name
AskAround-facility
AskPlace-position
CheckSchedule-datebegin
SendMail-nameApplication-name
PlayMusic-keyword
AddSchedule-begindate
AskTransportation-destination
AskTransportation-departure
EditAlarm-date
CheckWeather-place
Horoscope-date
Horoscope-constellation
CheckWeather-date
AddSchedule-subject
AddMemo-body
CheckNews-date
All

出現頻度

未知語数

334
225
206
188
183
182
181
181
173
159
155
152
144
139
135
106
104
67
52
52
3201

16 → 696 → 732 → 214 → 041 → 02→1
28 → 151 → 34
32 → 101→0
18 → 120 → 10→02→00→0
1→0
0→0
20 → 20→1
23 → 0397 → 66

スロットフィリング精度
F1-score
96.9 → 98.5
+1.6
98.4 → 98.4
0.0
97.8 → 98.3
+0.5
94.3 → 94.7
+0.4
88.5 → 89.6
+1.1
99.2 → 99.5
+0.3
93.7 → 95.6
+1.9
82.8 → 77.9
-4.9
93.9 → 94.8
+0.9
97.8 → 97.8
0.0
96.5 → 96.5
0.0
98.0 → 96.4
-1.6
99.3 → 99.6
+0.3
98.5 → 97.5
-1.0
100.0 → 100.0
0.0
99.5 → 99.0
-0.5
99.0 → 97.1
-1.9
81.2 → 75.7
-5.5
92.3 → 92.30.0
99.0 → 98.0
-1.0
95.1 → 95.0-0.1にスロットフィリング精度の向上しているスロット

ける正則化項の調整を検討している．また，日本語として，SearchPhonebook-name，SendMail-name やAskPlace-position 挙げられる．これらのスロットとwikipedia データで学習した単語分散表現が持つ汎用なる単語は名前や地名などの日本語 wikipedia のデー

分散表現が持つドメイン指向性を両立させるような単タに多く含まれる単語が多いため，効果的に学習され語分散表現を獲得するために，両単語分散表現の同時ていると考えられる．対して，出現頻度下位のスロッ最適化，もしくは両単語分散表現の変換機能の実現をトに関してはスロットフィリング精度の低下してい検討している．

性と，Attention-based RNN model で学習した単語るスロットが多い．特にスロットフィリング精度が大きく低下しているスロットとして，Application-nameと AddSchedule-subject が挙げられる．Application-name に該当するアプリの名前は正しく形態素解析されていないものが多く，日本語 wikipedia データ中にもほとんど現れない．今後，実施すべき未知語対策としては，word2vec で学習した単語分散表現を初期値として用いるだけでなく，単語埋め込み行列の再推定における正則化項の調整が有効ではないかと考えられる．

7

おわりに
本稿では，日本語対話モジュールにおける意図クラス推定とスロットフィリングに Attention-based RNN

model を用いるとともに，未知語への対応を目指し，word2vec による汎用単語分散表現を用いる手法を評

参考文献[1] Bing Liu, et al. Attention-Based Recurrent Neural
Network Models for Joint Intent Detection and Slot
Filling,Interspeech 2016, pp. 685-689,2016.
[2] Bing Liu, et al. Joint online spoken language understanding and language modeling with recurrent neural networks , SIGDIAL 2016, pp. 22-30, 2016.
[3] T. Mikolov, et al. Distributed Representations ofWords and Phrases and their Compositionality. NIPS
26, pp. 3111-3119, 2013.
[4] Yun-Nung Chen, et al. End-to-End Memory Networks with Knowledge Carryover for Multi-Turn Spoken Language Understanding, Interspeech 2016, pp.
3245-3249, 2016.
[5] Ankur Bapna, et al. Sequential Dialogue Context
Modeling for Spoken Language Understanding, SIGDIAL 2017, pp.103-114, 2017.

価した．評価結果からスロットによって，適切に学習されるスロットと学習されないスロットがあることが分かった．
今後，性能向上を図るため，Attention-based RNN

model における学習時に，単語埋め込み行列にお― 1057 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.