
はじめに
こんにちは。プロダクト開発部の飯田です。2020年に新卒として入社し、AIチャットボット「スグレス」をはじめとした、自然言語処理の研究開発に取り組む予定です。
スグレスはユーザーの要望に的確に回答できるチャットボットで、対話の内容はクライアント毎に調整します。
たとえば弊社のコーポレートサイトに設置されたスグレスでは、電話番号や所在地といった会社概要のほか、採用情報や事業内容に至るまで、弊社に関連する事項を幅広く回答します。
おすすめは弊社の扱う技術要素について尋ねることです。ディープラーニングやクラスター分析など、名前はよく聞くけれども複雑で難しい……という様々な手法について、大変わかりやすく教えてもらえるので、私も頻繁にスグレスの力を借りています。
そんなスグレスですが、その口調は一貫して事務的で丁寧です。現在は質問に対する回答を返すことを目的としたシステムなので問題はありませんが、より汎用的なAIチャットボットとしての進化を考えると、TPOに応じて口調を変えられると夢が広がるでしょう。
個人的に欲しいのは、メールやSNSの返事を代筆してくれる機能です。人間関係の距離感は難しいので、どれだけ丁寧にするか、くだけた口調にするか、私はよく迷うのですが、そうした判断をスグレスに助けてもらえれば心にゆとりが生まれます。
そこでチャットボットに個性を与える研究が実現できないか?と考え、まずは世界の最先端がどこにあるのかとサーベイを行いました。本記事ではその調査結果についてまとめます。
チャットボットの概要
アカデミックな世界では、研究問題の細分類として「タスク」という概念を用います。チャットボットというシステムを実現するためのタスクは、以下のように分類されます。表1.チャットボット関連タスク一覧
タスク | 概要 |
Information Retrieval | 情報を収集しランク付けをする、広い意味での情報検索タスクを指す |
Style Transfer | 独白・対話、書き言葉・話し言葉等によらず一般的な文体変換タスクを指す |
Machine Comprehension | 応答文を情報源の中から抽出する質問応答システムなどに用いられる |
Question Answering | 応答文をテンプレートの中から選ぶタイプの業務用チャットボットに用いられる |
Next Utterance Prediction | 対話の次の文を予測する |
Personalized Dialogue | PERSONA-CHAT[11]以後に現れたNext Utterance Predictionの細分類 個性をエージェントに与えたときに次の文を予測する |
本記事で扱う「チャットボットに個性を与える研究」は、上記の分類のPersonalized Dialogue に該当します。
Personalized Dialogueでは対話の次の文を予測することが目的となる訳ですが、一般的なチャットボットによる質問応答の流れでは、「分類」「生成」の2パターンで応答文を予測します。


それでは、チャットボットのイメージと、Personalized Dialogueの位置付けについて掴んでいただいたところで、Personalized Dialogueのサーベイ結果の報告へと移りたいと思います。
サーベイ:Personalized Dialogue
Personalized Dialogueの現状と概要

ベースラインを用意したという意味で、Personalized Dialogueの起源は2018年のPERSONA-CHATにあると言えるでしょう。PERSONA-CHATの功績は、データセットを「プロフィール」「対話」の二種類に分け、さらにそのデータセットを公開したことです。これにより、プロフィールを参照しながら次の対話文を予測する、という形式が後発のPersonalized Dialogueにおける主流となりました。
Personalized Dialogueでは、PERSONA-CHATから始まった研究が次の代、また次の代へと引き継がれていきました。たとえば、FT-PCではスクレイピングで得た多様なプロフィールを活用し、さらにPAMLでは膨大なプロフィールの中から的確なものを参照するような手法が提案されました。
さて、ベースラインとなるモデルとデータセットが揃い、Personalized Dialogueは研究を始めるには十分な水準に達しました。日本語チャットボットサービスとして実現可能なレベルには届いているのでしょうか。
データセット
前述の通り、Personalized Dialogueに用いられるデータセットは、プロフィールと対話の二種類の要素により構成されています。ここではPERSONA-CHATの手順を取り上げ、まずはプロフィールについて説明しましょう。
次に、プロフィールをもとに対話データを作成します。二人のクラウドワーカーを選出し、ランダムにプロフィールを割り当てたあと、プロフィールが反映するペルソナを演じながら対話を行います。対話文は互いを知ろうとするような内容の自然な対話であり、交互に一文ずつのやり取りを数回程度実施したものを1対話データとして扱います。また、各文は15単語以下の短文で構成され、さらに似たような対話ばかりとならないよう、パターンマッチを使い検査を行います。
表2.Personalized Dialogueのデータセット
データセット | データ数 | 言語 | 特徴 |
PERSONA-CHAT[11] | 1,155ペルソナ 約15万文 | 英語 | クラウドワーカーより作成 質量ともに安定 |
REDDIT[6] | 約500万文 | 英語 | 掲示板をスクレイピング 非公開 |
雑談対話コーパス[12] | 116ユーザー 1,146対話 | 日本語 | 破綻した雑談対話を類型化 |
このようにPERSONA-CHATでは、Personalized Dialogueに適したデータセットとなるよう、様々な工夫が取り入れられました。品質と規模において、これほどのデータセットを集めることは難しく、特に日本語となるとより厳しい状況です。
しかし、オンライン掲示板REDDITのログからPERSONA-CHAT形式のデータセットを作成する手法[6]が提案され、一定の成果を挙げました。これにより、日本語Personalized Dialogueデータセットを構築できる可能性があります。
モデル
ニューラル言語モデルを用いたチャットボットでは、Seq2Seq[4, 9]以来、様々な手法が提案されました。基本的な構造は、直前の会話文を入力して応答文を出力する、というものです。Personalized Dialogueにおいては、さらにペルソナが加わります。下の図は実際のモデル出力結果を翻訳した例ですが、ペルソナを参照しながら入力文から応答文を予測する流れを示しています。

よって、通常のチャットボットで応答文に個性を持たせようとするには、そうした対話ばかりを集めたデータセットによる学習が必要です。しかしこの方法では、状況に応じて個性を切り替えることが出来ません。
一方Personalized Dialogueでは、ペルソナを学習することで、個性を自由に切り替えられることが特徴です。PERSONA-CHATでは1,155種類のペルソナがクラウドワーカーにより作成され、さらにREDDITデータセットでは500万種類のペルソナをスクレイピングとルールベースのプログラムにより収集しました。
さらにFC-PT[6]では、PERSONA-CHATデータセットを用いた事前訓練済みモデルをもとに、REDDITデータセットによるfine-tuningを実施したところ、hits@1スコアで18.6%もの改善が示されました。
しかしFT-PCのようなペルソナの種類を増やすアプローチでは、ペルソナの一貫性が低下するといった問題が指摘されています。多重人格のように振る舞う、ということです。こうした問題に対処するため、事前学習済みモデルにBERT[1]を利用し、メタ学習を取り入れたPAML[5]が提案されました。
このように、Personalized Dialogueのモデルに関する研究では、タスク特有の問題に対する改善策が提案されては新たな問題が生じ、それをさらに後発の論文が改善していく、という発展的な段階にあると言えます。
表3.Personalized Dialogueのモデル
モデル | 概要 | NNの構造 | 出力 | ペルソナ使用方法 |
文連結型Seq2Seq[11] | ペルソナと入力文を連結しエンコード | RNN | 生成 | 文連結 |
Generative Profile Memory Network[11] | メモリにペルソナを保存し生成 | RNN | 生成 | メモリに保存 |
Ranking Profile Memory Network[11] | ペルソナと入力文の類似度に対して近い応答文を検索 | RNN | 分類 | 入力文との類似度 |
KV Profile Memory Network[11] | メモリにペルソナを保存し分類 | RNN | 分類 | メモリに保存 |
FT-PC[6] | PERSONA-CHATで訓練後、REDDITでfine-tuning | RNN, self-attention | 分類 | マルチエンコーダ |
PAML[5] | BERTをメタ学習によりfine-tuning | self-attention | 分類 | メタ学習 |
DIM[2] | 文脈を扱う | RNN | 分類 | マルチエンコーダ |
いずれもTransformer[10]以後のモデルですが、RNNベースのモデルが見受けられます。これはPersonalized Dialogueにおいては、入力文のほかにペルソナを扱う必要があり、追加の情報を処理できるMemory Network[7, 8]やマルチエンコーダが使用されるためです。
Transformerでは学習時の不安定さが指摘されており、複雑な機構を持つこれらのモデルに応用することが難しく、まだ、ある程度はRNNの安定感が好まれている模様です。
しかしSeq2Seqを生んだ機械翻訳の分野では、RNNベースのSeq2SeqよりもTransformerの方が高速に学習可能であることや、言語モデルの表現力が高いことが知られています。これはRNNでは入力文を一単語ずつ順番に処理するため、並列化が難しいことと、未処理の単語の情報を参照できないことが理由です。
Transformerのself-attentionではこうした問題を解決しているため、いまや機械翻訳のみならず、文書要約や情報検索といった様々な分野でTransformerが採用されています。そのため、Personalized Dialogueにおいても今後はTransformerを用いるモデルが主流になるのではないかと予想されます。
Personalized Dialogueはまだ発展の途上にあります。しかし、一定の成果を挙げたモデルは既に存在していることが明らかとなりました。ひとまずはデータセットを集めて、実際に学習してみることになるでしょう。
実現可能性の検討
データセットについては、REDDITデータを作成した手法[6]で自作することが検討されます。アクセス可能で話者(ペルソナ)を特定できる日本語対話データというと、Twitterのツイートなどが考えられます。これらからPersonalized Dialogue用のデータを抽出した際に、どれほどの規模のデータセットとなるかで研究の成否は左右されると予想します。なお、Twitterの月間ツイート数などを見るに、PERSONA-CHAT以上の規模を収集することは、十分に可能と考えられます。ツイートの利用については、Personalized Dialogueの先行研究[3]でも実際に採用された手法であり、それを元にPERSONA-CHATのフォーマットに落とし込んでいく形になりそうです。
表4.データソースの候補
概要 | 話者特定可否 | 文脈有無 | 対話文の有無 | 収集方法 | データの規模(抽出前) | |
SNSのツイート | ○ | ○ | ○ | API | 150万件 / 30日間 | |
TED talk | TEDの講演ログ | ○ | ○ | モノローグのみ | データセットとして公開 | 約20万文 |
OpenSubtitles2018 | 映画字幕データ | 一部可 | ○ | 一部あり | データセットとして公開 | 約200万文 |
モデルについては、PERSONA-CHATで用いられた文連結型Seq2Seqが最もシンプルで、Transformerへの転用も容易なため、叩き台に最適です。また、精度や学習時間を考えるなら、BERTを用いたfine-tuningを行うPAMLを利用したいところです。スクラッチで組むならばFC-PTでしょうか。モデル側では、既存の研究がある程度の成果を出しているので、それを参考にすれば問題なさそうです。
結論として、現段階ではまだ不確定要素が多いものの、実現可能性は十分にあると言えるでしょう。
おわりに
本記事では、チャットボットに個性を持たせるというモチベーションから、研究としての位置づけや、現在の主だった状況を調査しました。その結果、本件はPersonalized Dialogueタスクに該当すること、データセット構築に関する先行研究があること、ニューラルネットワークを用いた対話モデルが実装されたことが明らかとなり、日本語の対話モデルにおいても実現の見込みがあると判断しました。
また、ALBERTでは最先端の人工知能開発も請け負っているため、プロジェクト開始時にこのような技術調査から入り、さらにプロトタイプを実装・評価し、ソリューション導入によるビジネス価値を分析した上で投資判断を仰ぐ、というようなことも多く行っています。
ALBERTではそのような業務を想定した新卒研修を行っており、今回の記事は研修の一環として行われた、技術調査課題の成果物がもとになっています。技術調査課題では、クライアントからの技術調査依頼に対する調査報告書の作成方法を学びました。
課題はテーマが複数あり、各自好きな課題を選んで調査を行いました。これからこの記事以外にも、技術調査課題について5つの記事がブログ化される予定ですのでご期待ください。
最後に、ALBERTではともに最先端の課題に挑戦するメンバーを募集しています。
興味をお持ちいただいた方は、こちらまでお問い合わせください。
参考文献
- J. Devlin, M. W. Chang, K. Lee, and K. Toutanova. 2019. 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, pages 4171-4186.
- J. C. Gu, Z. H. Ling, X. Zhu and Q. Liu. 2019. Dually Interactive Matching Network for Personalized Response Selection in Retrieval-Based Chatbots. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), pages 1845-1854.
- J. Li, M. Galley, C. Brockett, G. P. Spithourakis, J. Gao, and B. Dolan. 2016. A Persona-Based Neural Conversation Model. In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics, pages 994-1003.
- M. T. Luong, H. Pham, and C. D. Manning. 2015. Effective Approaches to Attention-based Neural Machine Translation. In Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, pages 1412-1421.
- A. Madotto, Z. Lin, C. S. Wu, and P. Fung. 2019. Personalizing Dialogue Agents via Meta-Learning. In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, pages 5454-5459.
- P. E. Mazare, S. Humeau, M. Raison and A. Bordes. 2018. Training Millions of Personalized Dialogue Agents. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pages 2775-2779.
- A. Miller, A. Fisch, J. Dodge, A. H. Karimi, A. Bordes, and J. Weston. 2016. Key-Value Memory Networks for Directly Reading Documents. In Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, pages 1400-1409.
- S. Sukhbaatar, A. Szlam, J. Weston, and R Fergus. 2015. End-To-End Memory Networks. In Proceedings of the 28th Annual Conference on Neural Information Processing Systems (NIPS 2015), pages 2440-2448.
- I. Sutskever, O. Vinyals, and Q. V. Le. 2014. Sequence to Sequence Learning with Neural Networks. In Advances in Neural Information Processing Systems, pages 3104-3112.
- A. Vaswani, N. Shazeer, N. Parmer, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, and I. Polosukhin. 2017. Attention Is All You Need. In Advances in Neural Information Processing Systems, pages 6000-6010.
- S. Zhang, E. Dinan, J. Urbanek, A. Szlam, D. Kiela, and J. Weston. 2018. Personalizing Dialogue: I have a dog, do you have pets too?. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics, pages 2204-2213.
- 東中 竜一郎, 船越 孝太郎. 2014. Project Next NLP対話タスクにおける雑談対話データの収集と対話破綻アノテーション. 人工知能学会, pages 45-50.