JP2018181300A - 入出力システム、入出力プログラム、情報処理装置、チャットシステム - Google Patents
入出力システム、入出力プログラム、情報処理装置、チャットシステム Download PDFInfo
- Publication number
- JP2018181300A JP2018181300A JP2017214514A JP2017214514A JP2018181300A JP 2018181300 A JP2018181300 A JP 2018181300A JP 2017214514 A JP2017214514 A JP 2017214514A JP 2017214514 A JP2017214514 A JP 2017214514A JP 2018181300 A JP2018181300 A JP 2018181300A
- Authority
- JP
- Japan
- Prior art keywords
- input
- character
- output
- data
- operation unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】キャラクタ性を表現可能な入出力システムを提供する。【解決手段】入出力システム100は、入出力演算部110を備え、大規模データ対により構築されたキャラクタ表現空間を有する入出力モデルを備える。入力データ及びキャラクタ表現ベクトルが入出力演算部110に入力されるとキャラクタ表現ベクトルに対応するキャラクタ性を反映した入力データに対応する出力データが出力される。また、入出力システム100は、キャラクタ表現ベクトル算出部120を備え、小規模なデータ対であるキャラクタデータ対が入力されると、入出力演算部110にて固定された入出力モデル及びキャラクタ表現空間により、キャラクタデータ対に表現されたキャラクタ性に対応するキャラクタ表現ベクトルが出力される。【選択図】図1
Description
この発明は、入力されたデータに対して、キャラクタ性を反映した出力データを出力する入出力システムに関する。
近年、ディープラーニングを用いたシステムの実装を容易にする「Chainer」(http://chainer.org/)等のライブラリ開発や、計算機の処理能力の進歩により、ディープラーニングに関する研究開発が盛んである。
研究開発が盛んな分野の1つとして、ディープラーニングにより構築された会話モデルに基づき会話を行うシステム(チャットボット等)に関する研究開発がある。特に、人間らしさやエンタテインメント性の強化のために、発話の内容や表現における特徴といった「キャラクタ性」を反映する手法について研究開発がなされている。例えば、非特許文献1には、LSTM(Long Short-Term Memory)を用いて、キャラクタ性の反映が可能な会話モデルを構築する手法が開示されている。
研究開発が盛んな分野の1つとして、ディープラーニングにより構築された会話モデルに基づき会話を行うシステム(チャットボット等)に関する研究開発がある。特に、人間らしさやエンタテインメント性の強化のために、発話の内容や表現における特徴といった「キャラクタ性」を反映する手法について研究開発がなされている。例えば、非特許文献1には、LSTM(Long Short-Term Memory)を用いて、キャラクタ性の反映が可能な会話モデルを構築する手法が開示されている。
Jiwei Li, Michel Galley, Chris Brockett, Jianfeng Gao and Bill Dolan. "A Persona-Based Neural Conversation Model", ACL 2016.
しかし、非特許文献1が開示する技術においては、会話モデルの構築において使用した学習データ内に存在したキャラクタについてのみ、キャラクタ性を反映した会話が可能であった。もし、教師データ内に存在しない新たなキャラクタを会話モデルに追加したいと考えた場合は、新たなキャラクタを表現する対話対データを学習データへと追加した上で、改めて会話モデル全体を再構築する必要があった。通常、対話の精度等の観点から、十分な量のデータを用いて会話モデルを構築するには、数日から1週間程度の時間を要する。そのため、会話モデル全体の再構築に要する時間的、計算的コストを考慮すると、会話モデルに新たなキャラクタを追加することは容易ではないという課題があった。
本発明は、上記の点に鑑み、入出力モデルを再構築することなく新たなキャラクタを容易に追加することが可能な入出力システム、入出力プログラム、情報処理装置、及びチャットシステムを提供することを目的とする。
(構成1)
入出力演算部を備え、
前記入出力演算部は、入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備え、
前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、入力データと、が前記入出力演算部に入力され、
前記入出力演算部が、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、
入出力システム。
入出力演算部を備え、
前記入出力演算部は、入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備え、
前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、入力データと、が前記入出力演算部に入力され、
前記入出力演算部が、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、
入出力システム。
(構成2)
キャラクタ表現ベクトル算出部を更に備え、
キャラクタ性を抽出するための入出力データ対であるキャラクタデータ対が前記キャラクタ表現ベクトル算出部に入力され、
前記キャラクタ表現ベクトル算出部が、前記入出力演算部において固定された前記入出力モデル及びキャラクタ表現空間における、前記キャラクタデータ対についての演算結果に基づき、前記キャラクタデータ対に対応するキャラクタ表現ベクトルを算出する、構成1に記載の入出力システム。
キャラクタ表現ベクトル算出部を更に備え、
キャラクタ性を抽出するための入出力データ対であるキャラクタデータ対が前記キャラクタ表現ベクトル算出部に入力され、
前記キャラクタ表現ベクトル算出部が、前記入出力演算部において固定された前記入出力モデル及びキャラクタ表現空間における、前記キャラクタデータ対についての演算結果に基づき、前記キャラクタデータ対に対応するキャラクタ表現ベクトルを算出する、構成1に記載の入出力システム。
(構成3)
前記入出力演算部に、入力データと、複数のキャラクタ表現ベクトルと、が入力され、
前記入出力演算部が、前記複数のキャラクタ表現ベクトルのそれぞれに表現されたキャラクタ性が合成されたベクトルであるキャラクタ合成ベクトルを生成し、当該キャラクタ合成ベクトルに基づき、合成されたキャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、構成1又は2に記載の入出力システム。
前記入出力演算部に、入力データと、複数のキャラクタ表現ベクトルと、が入力され、
前記入出力演算部が、前記複数のキャラクタ表現ベクトルのそれぞれに表現されたキャラクタ性が合成されたベクトルであるキャラクタ合成ベクトルを生成し、当該キャラクタ合成ベクトルに基づき、合成されたキャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、構成1又は2に記載の入出力システム。
(構成4)
ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
構成1から3の何れかに記載の入出力システムを備え、
事前に設定されたキャラクタに基づく、前記キャラクタ表現ベクトルが前記入出力システムに入力され、
当該設定されたキャラクタのキャラクタ性を反映した、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。
ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
構成1から3の何れかに記載の入出力システムを備え、
事前に設定されたキャラクタに基づく、前記キャラクタ表現ベクトルが前記入出力システムに入力され、
当該設定されたキャラクタのキャラクタ性を反映した、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。
(構成5)
ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
構成2に記載の入出力システムを備え、
前記ユーザにより指定された前記キャラクタデータ対が前記入出力システムに入力されることで、
当該キャラクタデータ対に対応するキャラクタ性を反映した前記キャラクタ表現ベクトルが算出され、前記ユーザからの入力データと前記キャラクタ表現ベクトルが前記入出力演算部に入力され、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。
ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
構成2に記載の入出力システムを備え、
前記ユーザにより指定された前記キャラクタデータ対が前記入出力システムに入力されることで、
当該キャラクタデータ対に対応するキャラクタ性を反映した前記キャラクタ表現ベクトルが算出され、前記ユーザからの入力データと前記キャラクタ表現ベクトルが前記入出力演算部に入力され、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。
(構成6)
ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
構成3に記載の入出力システムを備え、
前記ユーザにより指定された複数のキャラクタに基づく複数のキャラクタ表現ベクトルが前記入出力システムに入力され、
当該指定された複数のキャラクタを合成したキャラクタ性を反映した、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。
ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
構成3に記載の入出力システムを備え、
前記ユーザにより指定された複数のキャラクタに基づく複数のキャラクタ表現ベクトルが前記入出力システムに入力され、
当該指定された複数のキャラクタを合成したキャラクタ性を反映した、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。
(構成7)
第1の入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備え、入力された前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトル及び入力データに基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、入出力演算部と、
第2の入出力データ対が入力され、前記入出力演算部において固定された前記入出力モデル及びキャラクタ表現空間における演算結果に基づき、前記第2の入出力データ対に対応したキャラクタ性を反映したキャラクタ表現ベクトルを算出する、キャラクタ表現ベクトル算出部と、
を備える情報処理装置。
第1の入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備え、入力された前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトル及び入力データに基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、入出力演算部と、
第2の入出力データ対が入力され、前記入出力演算部において固定された前記入出力モデル及びキャラクタ表現空間における演算結果に基づき、前記第2の入出力データ対に対応したキャラクタ性を反映したキャラクタ表現ベクトルを算出する、キャラクタ表現ベクトル算出部と、
を備える情報処理装置。
(構成8)
入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備えた、入出力演算部を備える入出力システムにおいて、
入力データと、前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、が前記入出力演算部に入力されるステップと、
前記入出力演算部が、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算するステップと、
当該出力データを出力するステップと、を
実行させる入出力プログラム。
入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備えた、入出力演算部を備える入出力システムにおいて、
入力データと、前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、が前記入出力演算部に入力されるステップと、
前記入出力演算部が、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算するステップと、
当該出力データを出力するステップと、を
実行させる入出力プログラム。
(構成9)
入出力演算部を備えた入出力システムで用いられるキャラクタのデータ構造であって、
入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を備え、
前記キャラクタ表現空間を有する入出力モデルを備える前記入出力演算部が、
前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、入力データと、が前記入出力演算部に入力され、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算する、
処理に用いられる、キャラクタのデータ構造。
入出力演算部を備えた入出力システムで用いられるキャラクタのデータ構造であって、
入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を備え、
前記キャラクタ表現空間を有する入出力モデルを備える前記入出力演算部が、
前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、入力データと、が前記入出力演算部に入力され、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算する、
処理に用いられる、キャラクタのデータ構造。
本発明の入出力システム、入出力プログラム、情報処理装置、及びチャットシステムによれば、入出力モデルを再構築することなく新たなキャラクタを容易に追加することができる。
以下、この発明を実施するための形態について、添付の図面にしたがって説明する。
<実施形態1>
図1〜図3は、この発明の実施形態1による入出力システムを示す概略構成図である。図1は入出力演算部110についての入出力関係を示す概念図である。図2はキャラクタ表現ベクトル算出部120についての入出力関係を示す概念図である。図3Aは、入出力モデルの1例を表す概念図である。また、図3Bは、入出力演算部110の入出力動作の1例を表す概念図である。
本実施形態においては、入出力システム100は、コンピュータにより構成されており、キャラクタ性を表現するベクトルであるキャラクタ表現ベクトル(後述)が入力データと共に入力されると、キャラクタ性が反映されたデータが出力されるシステムであり、入出力演算部110及びキャラクタ表現ベクトル算出部120を備える。
入力されるキャラクタ表現ベクトルの数に制限はなく、複数のキャラクタ表現ベクトルの入力があった場合、複数のキャラクタを合成したキャラクタ性が反映されたデータが出力される。
図1〜図3は、この発明の実施形態1による入出力システムを示す概略構成図である。図1は入出力演算部110についての入出力関係を示す概念図である。図2はキャラクタ表現ベクトル算出部120についての入出力関係を示す概念図である。図3Aは、入出力モデルの1例を表す概念図である。また、図3Bは、入出力演算部110の入出力動作の1例を表す概念図である。
本実施形態においては、入出力システム100は、コンピュータにより構成されており、キャラクタ性を表現するベクトルであるキャラクタ表現ベクトル(後述)が入力データと共に入力されると、キャラクタ性が反映されたデータが出力されるシステムであり、入出力演算部110及びキャラクタ表現ベクトル算出部120を備える。
入力されるキャラクタ表現ベクトルの数に制限はなく、複数のキャラクタ表現ベクトルの入力があった場合、複数のキャラクタを合成したキャラクタ性が反映されたデータが出力される。
図1に示すように、入出力演算部110は、大量の入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備える。キャラクタ表現空間におけるキャラクタ表現ベクトルが用いられることで、入力に対してキャラクタ性が反映されたデータが出力される。また、複数のキャラクタ表現ベクトルが用いられる場合は、合成したキャラクタ性が反映されたデータが出力される。
図2に示すように、キャラクタ表現ベクトル算出部120は、入出力データ対が入力され、入出力演算部110内においてパラメータ(キャラクタ表現空間の次元を含む)が固定された入出力モデルに基づく演算により、入出力データ対に表現されているキャラクタ性をキャラクタ表現空間において表現したキャラクタ表現ベクトルを出力する。
なお、本実施形態においては入力データ、出力データ共に文字による会話データを取り扱う場合の例につき説明する。また、入力データのことを入力文、出力データのことを出力文とも称する。
[基本入出力の学習(大規模学習)]
入出力システム100を動作させるためには、まず、入出力演算部110における入出力モデル及びキャラクタ表現空間の構築が必要である。
入出力演算部110における入出力モデル及びキャラクタ表現空間は、入出力モデルの精度を確保するのに十分な量の会話対データを用いて構築される。なお、会話対データに記載された会話には、それぞれの発話者及び、回答者を識別可能なユーザ名やID等の情報が付与されている。入出力モデルの構築には、通常、高性能計算資源(GPUを備えたサーバ)を用いても数日から1週間程度の処理時間を要する会話対データが必要とされている。本実施形態1では、30万会話対データを用意した。
以下、入出力演算部110の構築に使用された会話対データのことを学習データや第1の入出力データ対とも称する。
入出力システム100を動作させるためには、まず、入出力演算部110における入出力モデル及びキャラクタ表現空間の構築が必要である。
入出力演算部110における入出力モデル及びキャラクタ表現空間は、入出力モデルの精度を確保するのに十分な量の会話対データを用いて構築される。なお、会話対データに記載された会話には、それぞれの発話者及び、回答者を識別可能なユーザ名やID等の情報が付与されている。入出力モデルの構築には、通常、高性能計算資源(GPUを備えたサーバ)を用いても数日から1週間程度の処理時間を要する会話対データが必要とされている。本実施形態1では、30万会話対データを用意した。
以下、入出力演算部110の構築に使用された会話対データのことを学習データや第1の入出力データ対とも称する。
[入出力モデル及びキャラクタ表現空間]
図3Aを参照して、本実施形態1における入出力演算部110における入出力モデル及びキャラクタ表現空間につき説明する。
本実施形態1の入出力モデルは、時系列データを取り扱うことができるRNN(Recurrent neural network)を用いたEncoder-Decoderモデル(Kyunghyun Cho, et al., Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, EMNLP2014)の基本構造を採用し、出力側にキャラクタ性を考慮するようにしたものである。キャラクタ性については、非特許文献1に開示される会話モデルの構築手法における返答者側のキャラクタ性の概念を採用しているので、以下では適宜説明を省略し、主に本実施形態1の入出力モデルの学習における特徴的な点について説明する。
入出力モデルは、入力文X=(x1、x2、…xT)を固定長の中間表現ベクトルcに変換するエンコーダと、エンコーダで生成した中間表現ベクトルc及びk次元のキャラクタ表現ベクトルuiから出力文Y=(y1、y2、…yT’)を算出するデコーダを含み、キャラクタ性が表現されたキャラクタ表現空間を有する。なお、キャラクタ表現空間は、キャラクタ性を表す各要素(性別、年齢、方言等)が反映される空間をいう。k次元のキャラクタ表現空間は、入出力モデルの構築(大規模学習の結果)とともに構築される。なお、kの値については事前に定められた値を用いるものとする。
図3Aを参照して、本実施形態1における入出力演算部110における入出力モデル及びキャラクタ表現空間につき説明する。
本実施形態1の入出力モデルは、時系列データを取り扱うことができるRNN(Recurrent neural network)を用いたEncoder-Decoderモデル(Kyunghyun Cho, et al., Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, EMNLP2014)の基本構造を採用し、出力側にキャラクタ性を考慮するようにしたものである。キャラクタ性については、非特許文献1に開示される会話モデルの構築手法における返答者側のキャラクタ性の概念を採用しているので、以下では適宜説明を省略し、主に本実施形態1の入出力モデルの学習における特徴的な点について説明する。
入出力モデルは、入力文X=(x1、x2、…xT)を固定長の中間表現ベクトルcに変換するエンコーダと、エンコーダで生成した中間表現ベクトルc及びk次元のキャラクタ表現ベクトルuiから出力文Y=(y1、y2、…yT’)を算出するデコーダを含み、キャラクタ性が表現されたキャラクタ表現空間を有する。なお、キャラクタ表現空間は、キャラクタ性を表す各要素(性別、年齢、方言等)が反映される空間をいう。k次元のキャラクタ表現空間は、入出力モデルの構築(大規模学習の結果)とともに構築される。なお、kの値については事前に定められた値を用いるものとする。
[エンコーダ]
エンコーダは、入力文X=(x1、x2、…xt、…xT)を受け取ると単語xtごとに隠れ状態ベクトルhtを算出する。このとき、隠れ状態ベクトルhtの算出に前回の隠れ状態ベクトルht-1を考慮するので、文末の単語xTに対応して算出される隠れ状態ベクトルhTは、入力文全体の意味が埋め込まれたベクトルとなる。エンコーダは、隠れ状態ベクトルhTを活性化した中間表現ベクトルcを生成する。この中間表現ベクトルcをデコーダに渡すことでデコーダでは入力文Xに対応した出力を行うことができる。エンコーダにおける隠れ状態ベクトルht及び中間表現ベクトルcは、以下の数1のように定義される。
エンコーダは、入力文X=(x1、x2、…xt、…xT)を受け取ると単語xtごとに隠れ状態ベクトルhtを算出する。このとき、隠れ状態ベクトルhtの算出に前回の隠れ状態ベクトルht-1を考慮するので、文末の単語xTに対応して算出される隠れ状態ベクトルhTは、入力文全体の意味が埋め込まれたベクトルとなる。エンコーダは、隠れ状態ベクトルhTを活性化した中間表現ベクトルcを生成する。この中間表現ベクトルcをデコーダに渡すことでデコーダでは入力文Xに対応した出力を行うことができる。エンコーダにおける隠れ状態ベクトルht及び中間表現ベクトルcは、以下の数1のように定義される。
[デコーダ]
デコーダにおける隠れ状態ベクトルht’は、前回の隠れ状態ベクトルht’-1だけでなく、直前の出力単語yt’-1と中間表現ベクトルcとキャラクタ表現ベクトルuiの影響を受けて算出される。そして、デコーダは、算出された隠れ状態ベクトルht’と、直前の出力単語yt’-1と中間表現ベクトルcとキャラクタ表現ベクトルuiとを用いて出力単語yt’を算出する。なお、出力単語yt’の算出は、隠れ状態ベクトルht’のみを用いたり、隠れ状態ベクトルht’と他の要素の組み合わせを用いた算出も可能である。デコーダにおける隠れ状態ベクトルht’は、 以下の数2のように定義される。
デコーダにおける隠れ状態ベクトルht’は、前回の隠れ状態ベクトルht’-1だけでなく、直前の出力単語yt’-1と中間表現ベクトルcとキャラクタ表現ベクトルuiの影響を受けて算出される。そして、デコーダは、算出された隠れ状態ベクトルht’と、直前の出力単語yt’-1と中間表現ベクトルcとキャラクタ表現ベクトルuiとを用いて出力単語yt’を算出する。なお、出力単語yt’の算出は、隠れ状態ベクトルht’のみを用いたり、隠れ状態ベクトルht’と他の要素の組み合わせを用いた算出も可能である。デコーダにおける隠れ状態ベクトルht’は、 以下の数2のように定義される。
[入出力モデルの構築]
入出力モデルの構築では、算出される出力単語yt’の直前までを教師データ(学習データ)で固定した上で次の出力単語yt’の予測を行い、出力単語yt’の分布ピークが学習データの正解単語 Qt’の分布に合うよう各種パラメータの更新を繰り返して最適解を求める。具体的には、算出される出力単語yt’を、ソフトマックス関数を使って0から1の範囲に収まるよう正規化する(確率に変換する)。次に、学習データの正解単語Qt’の分布と算出された出力単語yt’の分布のクロスエントロピー誤差を算出し、学習データのn番目の出力文を構成する単語全てのクロスエントロピー誤差の合計である損失関数(目的関数)L’を算出する。そして、学習データ全体(N個の会話対)の損失関数Lを算出する。なお、パラメータの更新には勾配法の一つであるAdam(Adaptive Moment Estimation)を用い、損失関数Lが収束する値を求める。損失関数L’及び損失関数Lは、以下の数3のように定義される。
入出力モデルの構築では、算出される出力単語yt’の直前までを教師データ(学習データ)で固定した上で次の出力単語yt’の予測を行い、出力単語yt’の分布ピークが学習データの正解単語 Qt’の分布に合うよう各種パラメータの更新を繰り返して最適解を求める。具体的には、算出される出力単語yt’を、ソフトマックス関数を使って0から1の範囲に収まるよう正規化する(確率に変換する)。次に、学習データの正解単語Qt’の分布と算出された出力単語yt’の分布のクロスエントロピー誤差を算出し、学習データのn番目の出力文を構成する単語全てのクロスエントロピー誤差の合計である損失関数(目的関数)L’を算出する。そして、学習データ全体(N個の会話対)の損失関数Lを算出する。なお、パラメータの更新には勾配法の一つであるAdam(Adaptive Moment Estimation)を用い、損失関数Lが収束する値を求める。損失関数L’及び損失関数Lは、以下の数3のように定義される。
なお、損失関数Lの収束判断は、前回との差分である変化幅が事前に設定される所定値以下に収まる状態が連続して所定回数続いた時点で収束したと判断してもよいし、エポックベースで予め設定した学習回数に到達した時点で収束したと判断してもよい。また、学習データとは別に同じキャラクタに対応する検証用データを用意し、実際に学習データにはない未知のデータを入力して適切な結果が得られるよう損失関数の目標値を決め、目標値に到達した時点で収束したと判断してもよい。
ここで、キャラクタ表現ベクトルuiは、話者の特性等、すなわちキャラクタ性を表現する埋め込みベクトルであり、iは学習データ内におけるユーザの識別番号に対応する添字である。学習の結果、入力モデルが構築されると、k次元のキャラクタ表現空間が構築される。
なお、本実施形態1において、キャラクタ表現ベクトルuiには、方言、登録名、年齢、性別等の個人情報が関連付けられており、個人情報は学習データにおける各ユーザの会話から取得されている。また、キャラクタ表現ベクトルuiは、ユーザ単位ではなく、複数の要素(例えば、20代、秋田県、女性)単位で関連付けられてもよい。また、個人情報は会話からだけでなく会話を行うユーザのプロフィール等から取得されてもよい。
なお、本実施形態1において、キャラクタ表現ベクトルuiには、方言、登録名、年齢、性別等の個人情報が関連付けられており、個人情報は学習データにおける各ユーザの会話から取得されている。また、キャラクタ表現ベクトルuiは、ユーザ単位ではなく、複数の要素(例えば、20代、秋田県、女性)単位で関連付けられてもよい。また、個人情報は会話からだけでなく会話を行うユーザのプロフィール等から取得されてもよい。
以上のように、入出力演算部110は、学習データによる学習によって本実施形態1における入出力モデル及びキャラクタ表現空間を構築することができるため、入力文及びキャラクタ表現ベクトルの入力に対し、入力されたキャラクタ表現ベクトルのキャラクタ性を反映した出力文を出力することができる。
[入出力モデル構築後の出力動作]
図3Bに、入出力モデル及びキャラクタ表現空間が構築された後の、入出力演算部110における入出力動作の例を示す。
ここでは「気分はどう?」という入力文及び、学習データ内における「発話者A」のキャラクタ表現ベクトルが入出力演算部110に入力された場合の例を示す。
学習データ内における「発話者A」が文末に「(^ω^)」という顔文字を多用する発話者であったため、入出力演算部110から、発話者Aのキャラクタ性を反映した出力文である「最高です(^ω^)」が出力されていることがわかる。
なお、デコーダから出力される単語列は、ビーム探索により各出力候補に対してスコア関数を用いた系列評価が行われる。デコーダは、その中の最良の結果を出力するように構成されている。そして、デコーダの出力が文章の終了を意味する特殊な文字列であるEOSとなった場合にデコードを終了し、その際の単語列を入力文に対応した出力文として出力する。
図3Bに、入出力モデル及びキャラクタ表現空間が構築された後の、入出力演算部110における入出力動作の例を示す。
ここでは「気分はどう?」という入力文及び、学習データ内における「発話者A」のキャラクタ表現ベクトルが入出力演算部110に入力された場合の例を示す。
学習データ内における「発話者A」が文末に「(^ω^)」という顔文字を多用する発話者であったため、入出力演算部110から、発話者Aのキャラクタ性を反映した出力文である「最高です(^ω^)」が出力されていることがわかる。
なお、デコーダから出力される単語列は、ビーム探索により各出力候補に対してスコア関数を用いた系列評価が行われる。デコーダは、その中の最良の結果を出力するように構成されている。そして、デコーダの出力が文章の終了を意味する特殊な文字列であるEOSとなった場合にデコードを終了し、その際の単語列を入力文に対応した出力文として出力する。
入出力演算部110は、学習データ内の所望する発話者に対応するID等を入力することにより、該当発話者のキャラクタ表現ベクトルを出力するように構成されている。これにより、学習データ内のキャラクタ表現ベクトルを取得し、容易に学習データ内のキャラクタ性を反映した出力文を得ることができる。
以下、入出力モデル及びキャラクタ表現空間が構築された後の、入出力システム100の動作につき説明する。
キーボード等の入力装置(不図示)により、入出力システム100に入力文が入力されると、入出力演算部110において、入力文に対応する出力文が演算され、モニタ等の外部機器(不図示)に出力される。
キーボード等の入力装置(不図示)により、入出力システム100に入力文が入力されると、入出力演算部110において、入力文に対応する出力文が演算され、モニタ等の外部機器(不図示)に出力される。
[キャラクタ性を反映した出力]
以下、本実施形態1の入出力システム100に入力文及び1つのキャラクタ表現ベクトルが入力された場合の動作につき説明する。
入力装置(不図示)により、入出力システム100に入力文及びキャラクタ表現ベクトルが入力されると、入出力演算部110において、キャラクタ性を反映した、入力文に対応する出力文が演算され、モニタ等の外部機器(不図示)に出力される。
以下、本実施形態1の入出力システム100に入力文及び1つのキャラクタ表現ベクトルが入力された場合の動作につき説明する。
入力装置(不図示)により、入出力システム100に入力文及びキャラクタ表現ベクトルが入力されると、入出力演算部110において、キャラクタ性を反映した、入力文に対応する出力文が演算され、モニタ等の外部機器(不図示)に出力される。
[キャラクタの合成]
以下、本実施形態1の入出力システム100に入力文及び複数のキャラクタ表現ベクトルが入力された場合の動作につき説明する。
複数のキャラクタ表現ベクトルが入力された場合、入出力演算部110に事前に設定された合成の割合に基づき、複数のキャラクタ表現ベクトルが合成される。
キーボード等の入力装置(不図示)により、入力文と、複数のキャラクタ表現ベクトルが入出力演算部110に入力されると、入出力演算部110において事前に設定された割合(例えば、各ベクトル均等)に従いキャラクタ表現ベクトルが合成される。そして、合成されたキャラクタ表現ベクトルに基づき、合成されたキャラクタ性を反映した、入力文に対応する出力文が演算され、モニタ等の外部機器(不図示)に出力される。
このように、入出力演算部110が、上記のようにキャラクタ性を表現した空間であるキャラクタ表現空間を備えるため、キャラクタ表現空間上のベクトルを合成することで、合成されたキャラクタ性を表現したキャラクタ表現ベクトルを得ることが可能である。
以下、本実施形態1の入出力システム100に入力文及び複数のキャラクタ表現ベクトルが入力された場合の動作につき説明する。
複数のキャラクタ表現ベクトルが入力された場合、入出力演算部110に事前に設定された合成の割合に基づき、複数のキャラクタ表現ベクトルが合成される。
キーボード等の入力装置(不図示)により、入力文と、複数のキャラクタ表現ベクトルが入出力演算部110に入力されると、入出力演算部110において事前に設定された割合(例えば、各ベクトル均等)に従いキャラクタ表現ベクトルが合成される。そして、合成されたキャラクタ表現ベクトルに基づき、合成されたキャラクタ性を反映した、入力文に対応する出力文が演算され、モニタ等の外部機器(不図示)に出力される。
このように、入出力演算部110が、上記のようにキャラクタ性を表現した空間であるキャラクタ表現空間を備えるため、キャラクタ表現空間上のベクトルを合成することで、合成されたキャラクタ性を表現したキャラクタ表現ベクトルを得ることが可能である。
[キャラクタの追加]
次に本実施形態1における、キャラクタ表現ベクトル算出部120における、入出力データ対からのキャラクタ表現ベクトル算出によるキャラクタの追加について説明する。本実施形態1では、上述の基本入出力の学習(大規模学習)によって構築された入出力モデルを固定した上で、数百〜千件程度の会話対データ(キャラクタデータ対)に表現されたキャラクタ性に対応するキャラクタ表現ベクトルの算出を行うことで、新たなキャラクタを容易に追加することができる。
ここで、構築された入出力モデルの固定とは、入出力モデルの各パラメータを常に固定した状態をいう。これにより、キャラクタ表現空間の固定も生じる。以下、入出力モデル及びキャラクタ表現空間の固定とも称する。
また、以下、キャラクタ表現ベクトル算出部120に入力される入出力データ対をキャラクタデータ対や、第2の入出力データ対とも称する。キャラクタデータ対における会話対の量は数百〜千件程度でも可能であり、一般的に入出力モデルの構築及びキャラクタ空間の構築に必要とされる数十万〜数百万件の学習データに対して1/1000程度と大幅に少ないデータでキャラクタを追加することができる。また、ここでのキャラクタ追加に必要なデータは、本特許出願時における個人携帯端末装置の処理能力でも十分処理可能なレベルのものである。本実施形態1では、キャラクタデータ対として数百の会話対データを用意した。
次に本実施形態1における、キャラクタ表現ベクトル算出部120における、入出力データ対からのキャラクタ表現ベクトル算出によるキャラクタの追加について説明する。本実施形態1では、上述の基本入出力の学習(大規模学習)によって構築された入出力モデルを固定した上で、数百〜千件程度の会話対データ(キャラクタデータ対)に表現されたキャラクタ性に対応するキャラクタ表現ベクトルの算出を行うことで、新たなキャラクタを容易に追加することができる。
ここで、構築された入出力モデルの固定とは、入出力モデルの各パラメータを常に固定した状態をいう。これにより、キャラクタ表現空間の固定も生じる。以下、入出力モデル及びキャラクタ表現空間の固定とも称する。
また、以下、キャラクタ表現ベクトル算出部120に入力される入出力データ対をキャラクタデータ対や、第2の入出力データ対とも称する。キャラクタデータ対における会話対の量は数百〜千件程度でも可能であり、一般的に入出力モデルの構築及びキャラクタ空間の構築に必要とされる数十万〜数百万件の学習データに対して1/1000程度と大幅に少ないデータでキャラクタを追加することができる。また、ここでのキャラクタ追加に必要なデータは、本特許出願時における個人携帯端末装置の処理能力でも十分処理可能なレベルのものである。本実施形態1では、キャラクタデータ対として数百の会話対データを用意した。
固定された入出力モデルに、キャラクタデータ対と事前に設定された初期キャラクタ表現ベクトルとが入力されると、デコーダは、上述の基本入出力の学習と同様の工程で各入力についての出力を算出する。キャラクタデータ対における各入力に対してデコーダによって算出された出力(算出データ)の分布とキャラクタデータ対の出力(正解データ)の分布とのクロスエントロピー誤差の合計である損失関数Lが収束する値を求めるにあたり、入出力モデルのパラメータが固定されるので、キャラクタ表現ベクトルuiの値のみを更新することになる。ここで、パラメータの更新には勾配法が用いられるが、勾配gは簡易的に以下の数4のように定義される。
続いて、図4を参照して、キャラクタ表現ベクトル算出部120における、入出力データ対からのキャラクタ表現ベクトル算出動作について説明する。
まず、入力部(不図示)より、キャラクタデータ対とともに、初期キャラクタ表現ベクトルがキャラクタ表現ベクトル算出部120に入力される(ステップS410)。なお、初期キャラクタ表現ベクトルは乱数によるランダム生成とした。
まず、入力部(不図示)より、キャラクタデータ対とともに、初期キャラクタ表現ベクトルがキャラクタ表現ベクトル算出部120に入力される(ステップS410)。なお、初期キャラクタ表現ベクトルは乱数によるランダム生成とした。
次に、キャラクタデータ対におけるn番目の入力文である入力文n及び初期キャラクタ表現ベクトルを入出力演算部110に入力し、算出文nを得る。そして、nの値を初期値(ここでは0)からキャラクタデータ対内の最終データに対応する番号までインクリメントすることで、入力文nに対応する算出文nと出力文n(正解文n)のクロスエントロピー誤差に基づく損失関数Lの値を算出する(ステップS420)。
そして、入出力演算部110における、入出力モデルのパラメータを固定し、固定されたキャラクタ表現空間内において、入力されたキャラクタデータ対に対応するキャラクタ表現ベクトルを勾配法により算出する。具体的には、勾配法の一つであるAdamを用いることにより、損失関数Lの勾配gを用いてキャラクタ表現ベクトルの更新を行い、更新されたキャラクタ表現ベクトルを用いて損失関数Lを再算出する(ステップS430)。
続いて、算出した損失関数Lが収束しているかどうかを判定する(ステップS440)。そして、損失関数Lが収束していないと判断された場合は、再びステップS430へと移行し、キャラクタ表現ベクトルの更新を行う(ステップS440:No→ステップS430)。一方、ステップS440にて損失関数Lが収束していると判断された場合は、ステップS450へと移行し(ステップS440:Yes→ステップS450)、その時点におけるキャラクタ表現ベクトルuiを、入力されたキャラクタデータ対に対応するキャラクタ表現ベクトルとして出力する(ステップS450)。
このように、上述の基本入出力の学習により構築された入出力モデルを固定し、固定した入出力モデルとキャラクタデータ対を用い、キャラクタ表現ベクトルを更新することで、キャラクタデータ対に表現されるキャラクタ性を反映したキャラクタ表現ベクトルを得ることができる。このため、入出力モデル全体を再構築することなく、容易に新たなキャラクタを追加することができる。
図5〜9に、本実施形態1におけるキャラクタ表現ベクトルの生成、キャラクタ表現ベクトルを入力した場合の出力文、キャラクタ表現ベクトルの合成をした場合の出力文につき記載する。
図5は、本実施形態における入出力システム100によるキャラクタ性の表現について行った実験結果の一例である。ここでは、キャラクタデータ対として、顔文字「(^ω^)」を多用するキャラクタ1についての会話対を、キャラクタ表現ベクトル算出部120へ入力した。そして、キャラクタ表現ベクトル算出部120から出力されたキャラクタ表現ベクトルと共に、図5に記載された質問文(Q:として記載されている文)を入出力演算部110へと入力し、各質問に対する出力文を順次記載している。
顔文字「(^ω^)」が多用され、キャラクタ1のキャラクタ性が反映された返答がされていることがわかる。
顔文字「(^ω^)」が多用され、キャラクタ1のキャラクタ性が反映された返答がされていることがわかる。
図6は、本実施形態における入出力システム100によるキャラクタ性の表現について行った実験結果の一例である。ここでは、キャラクタデータ対として、顔文字「(///ω///)」を多用するキャラクタ2についての会話対を、キャラクタ表現ベクトル算出部120へ入力した。その他については図5における条件と同様である。
顔文字「(///ω///)」が多用され、キャラクタ2のキャラクタ性が反映された返答がされていることがわかる。
顔文字「(///ω///)」が多用され、キャラクタ2のキャラクタ性が反映された返答がされていることがわかる。
図7から9は、本実施形態における入出力システム100によるキャラクタ性の合成について行った実験結果の一例である。ここでは、図5、6において生成されたキャラクタ1、2の2つのキャラクタ表現ベクトルを入出力演算部110に入力した場合の各入力文に対する出力文の変化を示している。また、キャラクタ表現ベクトル合成時の重み係数についてはそれぞれをキャラクタ1については0から1まで、キャラクタ2については1から0まで、0.1刻みで変化させていった。
それぞれの結果において、顔文字だけではなく、居住地や年齢についても、キャラクタ2からキャラクタ1へと変化していることがわかる。
それぞれの結果において、顔文字だけではなく、居住地や年齢についても、キャラクタ2からキャラクタ1へと変化していることがわかる。
[効果]
以上のように、本実施形態1における入出力システム100は、入出力演算部110がキャラクタ表現空間を備える入出力モデルを有するように構成されているため、キャラクタ表現空間上のベクトルを入力することで、キャラクタ性が表現された出力をすることができる。
また、入力されるキャラクタ表現ベクトルの変更のみで、容易に新たなキャラクタ性を反映した出力を得ることができる。
また、複数のキャラクタ表現ベクトルの合成をすることで、キャラクタ性の合成が可能である。
また、キャラクタ表現空間上に各キャラクタ性に対応するキャラクタ表現ベクトルをプロットすることにより、キャラクタ性をキャラクタ表現空間上に可視化したキャラクタマップを生成することができ、キャラクタ同士の類似度や相関性を可視化することができる。
また、本実施形態1における入出力システム100は、キャラクタ表現ベクトル算出部120が、入出力演算部110にて固定された入出力モデルを利用し、キャラクタデータ対に表現されたキャラクタ性が反映されたキャラクタ表現ベクトルを生成可能に構成されているため、入出力演算部110を再構築することなく、所望するキャラクタ性を表現したキャラクタ表現ベクトルを容易に得ることができる。そのため、入出力演算部110の構築のための学習データには存在しなかったキャラクタについてのキャラクタ性を表現した出力をすることができる。また、キャラクタの追加に必要なキャラクタデータ対は、従来の学習で通常必要とされるデータ対の1/1000程度で済むので、キャラクタ表現空間内へのキャラクタ追加が容易である。したがって、キャラクタ表現空間におけるキャラクタマップの充実を図ることができ、マップから簡易に所望のキャラクタ性を表現したキャラクタ表現ベクトルを特定することができる。より具体的には、多くのプロットからベクトルを構成する要素の代表点の算出が容易になり、所望のキャラクタ性を精度高く表現することができる。
このように、本実施形態における入出力システム100は、新たなキャラクタ性を表現するために入出力演算部110を再構築する必要がない。そのため、特に学習過程におけるシステム上、制御上の負荷を低減することが可能である。なお、スマートフォン等の携帯端末において、入出力演算部110におけるキャラクタ表現ベクトルの算出が可能な程度に負荷を低減することができる。また、キャラクタデータ対としてスマートフォン等の携帯端末において蓄積される会話対データを用いることでキャラクタの抽出が可能になるので、例えば、サーバがあらゆる会話対データを取得すれば該サーバは容易に多様なキャラクタを収集することができる。また、サーバが各携帯端末において算出されたキャラクタ表現ベクトルを取得することで、同一キャラクタ表現空間を用いたサービスにおいて多様なキャラクタを簡易に提供することができる。
以上のように、本実施形態1における入出力システム100は、入出力演算部110がキャラクタ表現空間を備える入出力モデルを有するように構成されているため、キャラクタ表現空間上のベクトルを入力することで、キャラクタ性が表現された出力をすることができる。
また、入力されるキャラクタ表現ベクトルの変更のみで、容易に新たなキャラクタ性を反映した出力を得ることができる。
また、複数のキャラクタ表現ベクトルの合成をすることで、キャラクタ性の合成が可能である。
また、キャラクタ表現空間上に各キャラクタ性に対応するキャラクタ表現ベクトルをプロットすることにより、キャラクタ性をキャラクタ表現空間上に可視化したキャラクタマップを生成することができ、キャラクタ同士の類似度や相関性を可視化することができる。
また、本実施形態1における入出力システム100は、キャラクタ表現ベクトル算出部120が、入出力演算部110にて固定された入出力モデルを利用し、キャラクタデータ対に表現されたキャラクタ性が反映されたキャラクタ表現ベクトルを生成可能に構成されているため、入出力演算部110を再構築することなく、所望するキャラクタ性を表現したキャラクタ表現ベクトルを容易に得ることができる。そのため、入出力演算部110の構築のための学習データには存在しなかったキャラクタについてのキャラクタ性を表現した出力をすることができる。また、キャラクタの追加に必要なキャラクタデータ対は、従来の学習で通常必要とされるデータ対の1/1000程度で済むので、キャラクタ表現空間内へのキャラクタ追加が容易である。したがって、キャラクタ表現空間におけるキャラクタマップの充実を図ることができ、マップから簡易に所望のキャラクタ性を表現したキャラクタ表現ベクトルを特定することができる。より具体的には、多くのプロットからベクトルを構成する要素の代表点の算出が容易になり、所望のキャラクタ性を精度高く表現することができる。
このように、本実施形態における入出力システム100は、新たなキャラクタ性を表現するために入出力演算部110を再構築する必要がない。そのため、特に学習過程におけるシステム上、制御上の負荷を低減することが可能である。なお、スマートフォン等の携帯端末において、入出力演算部110におけるキャラクタ表現ベクトルの算出が可能な程度に負荷を低減することができる。また、キャラクタデータ対としてスマートフォン等の携帯端末において蓄積される会話対データを用いることでキャラクタの抽出が可能になるので、例えば、サーバがあらゆる会話対データを取得すれば該サーバは容易に多様なキャラクタを収集することができる。また、サーバが各携帯端末において算出されたキャラクタ表現ベクトルを取得することで、同一キャラクタ表現空間を用いたサービスにおいて多様なキャラクタを簡易に提供することができる。
<実施形態2>
[チャットシステム]
以下に本実施形態2における入出力システム200を用いたチャットシステム2について説明する。
チャットシステム2は、入出力システム200を備え、ネットワーク等により接続されたユーザ端末から入力された入力文に対して、キャラクタ性を反映した出力文を出力するチャットシステムである。
本実施形態2における入出力システム200は、通信機能等を備えたサーバ装置にて構成され、入出力制御部230を備える点以外については、実施形態1における入出力システム100と同様であるため、実施形態1と同様の構成については説明を省略する。
なお、以下に記載する各動作は、入出力システム200に対して接続されたそれぞれのユーザ端末に対して独立しており、また、並列に動作を行う。
[チャットシステム]
以下に本実施形態2における入出力システム200を用いたチャットシステム2について説明する。
チャットシステム2は、入出力システム200を備え、ネットワーク等により接続されたユーザ端末から入力された入力文に対して、キャラクタ性を反映した出力文を出力するチャットシステムである。
本実施形態2における入出力システム200は、通信機能等を備えたサーバ装置にて構成され、入出力制御部230を備える点以外については、実施形態1における入出力システム100と同様であるため、実施形態1と同様の構成については説明を省略する。
なお、以下に記載する各動作は、入出力システム200に対して接続されたそれぞれのユーザ端末に対して独立しており、また、並列に動作を行う。
入出力制御部230はユーザからの入力及びユーザへの出力を制御する入出力制御部230を備える。また、入出力制御部230は図示しない入力部等により入力される制御信号等に基づき、以下に説明する動作1から4を選択、切替可能に構成されている。
[動作1:事前に設定されたキャラクタによる対話]
まず、チャットシステム2におけるユーザ端末からの入力に対して、事前に設定されたキャラクタ性を反映した出力を行う動作について説明する。
この場合、まず、入出力制御部230に、ネットワーク等を介してユーザ端末から入力文が入力される。
次に、入出力制御部230は、事前に設定されたキャラクタに対応する、入出力演算部110におけるキャラクタ表現空間内のキャラクタ表現ベクトルと、入力文と、を入出力演算部110に出力する。
そして、入出力演算部110は入力文に対応し、かつ、事前に設定されたキャラクタのキャラクタ性が反映された出力文を演算し、入出力制御部230に出力する。
このように、入出力制御部230に出力文が入力されると、入出力制御部230は、当該入力を行ったユーザ端末へ、事前に設定されたキャラクタ性を反映した出力文を送信する。
まず、チャットシステム2におけるユーザ端末からの入力に対して、事前に設定されたキャラクタ性を反映した出力を行う動作について説明する。
この場合、まず、入出力制御部230に、ネットワーク等を介してユーザ端末から入力文が入力される。
次に、入出力制御部230は、事前に設定されたキャラクタに対応する、入出力演算部110におけるキャラクタ表現空間内のキャラクタ表現ベクトルと、入力文と、を入出力演算部110に出力する。
そして、入出力演算部110は入力文に対応し、かつ、事前に設定されたキャラクタのキャラクタ性が反映された出力文を演算し、入出力制御部230に出力する。
このように、入出力制御部230に出力文が入力されると、入出力制御部230は、当該入力を行ったユーザ端末へ、事前に設定されたキャラクタ性を反映した出力文を送信する。
[動作2:ユーザにより指定されたキャラクタによる対話]
次に、チャットシステム2がユーザ端末上に表示されたUI等(不図示)によりキャラクタを指定されるように構成されている例につき説明する。この場合、入出力制御部230が、ユーザにより指定されたキャラクタのID等と、入出力演算部110におけるキャラクタ表現空間内のキャラクタ表現ベクトルとの対応テーブル等を備える。
入出力制御部230は、ユーザ端末から入力文及び指定されたキャラクタのID等の情報が入力されると、対応テーブルに基づき、ユーザ端末から指定されたキャラクタについてのキャラクタ表現ベクトルと、入力文と、を入出力演算部110に出力する。
その他の動作については上記の動作1と同様である。
次に、チャットシステム2がユーザ端末上に表示されたUI等(不図示)によりキャラクタを指定されるように構成されている例につき説明する。この場合、入出力制御部230が、ユーザにより指定されたキャラクタのID等と、入出力演算部110におけるキャラクタ表現空間内のキャラクタ表現ベクトルとの対応テーブル等を備える。
入出力制御部230は、ユーザ端末から入力文及び指定されたキャラクタのID等の情報が入力されると、対応テーブルに基づき、ユーザ端末から指定されたキャラクタについてのキャラクタ表現ベクトルと、入力文と、を入出力演算部110に出力する。
その他の動作については上記の動作1と同様である。
[動作3:ユーザにより指定されたキャラクタ合成による対話]
次に、チャットシステム2が、ユーザ端末上に表示されたUI等(不図示)により指定された複数のキャラクタを合成し、合成されたキャラクタ性を反映した出力を行うように構成されている例につき説明する。この場合、入出力制御部230は、上述の動作2の場合と同様に、ユーザにより指定されたキャラクタのID等と、入出力演算部110におけるキャラクタ表現空間内のキャラクタ表現ベクトルとの対応テーブル等を備える。
入出力制御部230は、ユーザ端末から入力文及び指定された複数のキャラクタのID等の情報が入力されると、対応テーブルに基づき、ユーザ端末から指定された複数のキャラクタについてのキャラクタ表現ベクトルと、入力文と、を入出力演算部110に出力する。
入出力演算部110は入力された複数のキャラクタ表現ベクトルに基づき、キャラクタ合成ベクトルを生成し、入力文に対応し、かつ、合成されたキャラクタ性が反映された出力文を演算し、入出力制御部230に出力する。
その他の動作については上記の動作1と同様である。
次に、チャットシステム2が、ユーザ端末上に表示されたUI等(不図示)により指定された複数のキャラクタを合成し、合成されたキャラクタ性を反映した出力を行うように構成されている例につき説明する。この場合、入出力制御部230は、上述の動作2の場合と同様に、ユーザにより指定されたキャラクタのID等と、入出力演算部110におけるキャラクタ表現空間内のキャラクタ表現ベクトルとの対応テーブル等を備える。
入出力制御部230は、ユーザ端末から入力文及び指定された複数のキャラクタのID等の情報が入力されると、対応テーブルに基づき、ユーザ端末から指定された複数のキャラクタについてのキャラクタ表現ベクトルと、入力文と、を入出力演算部110に出力する。
入出力演算部110は入力された複数のキャラクタ表現ベクトルに基づき、キャラクタ合成ベクトルを生成し、入力文に対応し、かつ、合成されたキャラクタ性が反映された出力文を演算し、入出力制御部230に出力する。
その他の動作については上記の動作1と同様である。
なお、キャラクタの合成における各キャラクタ表現ベクトルの割合については、ユーザ端末上に表示されたUI等(不図示)において指定されるように構成されていてもよく、全てのキャラクタについて均等に合成されるように構成されていてもよい。
なお、キャラクタ表現ベクトルの合成は、ユーザ端末にて指定された複数のキャラクタに対応するキャラクタ合成ベクトルを、入出力演算部110が合成する例につき記載したが、キャラクタ合成ベクトルについては、ユーザ端末側、又は入出力制御部230にて合成し、入出力演算部110に出力するように構成されていてもよい。
なお、キャラクタ表現ベクトルの合成は、ユーザ端末にて指定された複数のキャラクタに対応するキャラクタ合成ベクトルを、入出力演算部110が合成する例につき記載したが、キャラクタ合成ベクトルについては、ユーザ端末側、又は入出力制御部230にて合成し、入出力演算部110に出力するように構成されていてもよい。
[動作4:入出力データ対によるキャラクタ性の反映]
次に、チャットシステム2が、ユーザ端末よりキャラクタデータ対が入力され、キャラクタデータ対に表現されているキャラクタ性を反映した出力を行うように構成されている例につき説明する。
入出力制御部230は、ユーザ端末からキャラクタデータ対が入力されると、キャラクタデータ対をキャラクタ表現ベクトル算出部120へと出力する。キャラクタ表現ベクトル算出部120は、入力されたキャラクタデータ対に対応するキャラクタ表現ベクトルを算出し、入出力制御部230へと出力する。
次に、チャットシステム2が、ユーザ端末よりキャラクタデータ対が入力され、キャラクタデータ対に表現されているキャラクタ性を反映した出力を行うように構成されている例につき説明する。
入出力制御部230は、ユーザ端末からキャラクタデータ対が入力されると、キャラクタデータ対をキャラクタ表現ベクトル算出部120へと出力する。キャラクタ表現ベクトル算出部120は、入力されたキャラクタデータ対に対応するキャラクタ表現ベクトルを算出し、入出力制御部230へと出力する。
入出力制御部230に、キャラクタ表現ベクトル算出部120からキャラクタ表現ベクトルが入力されると、以降、キャラクタの更新等の指示がなされるまで、入出力制御部230は入力文とともに入力されたキャラクタデータ対に対応するキャラクタ表現ベクトルを入出力演算部110に出力する。
そして、入出力演算部110は入力文に対応し、かつ、キャラクタデータ対に対応するキャラクタ性が反映された出力文を演算し、入出力制御部230に出力する。
その他の動作については上記の動作1と同様である。
そして、入出力演算部110は入力文に対応し、かつ、キャラクタデータ対に対応するキャラクタ性が反映された出力文を演算し、入出力制御部230に出力する。
その他の動作については上記の動作1と同様である。
ここでは、入出力システム200がキャラクタ表現ベクトル算出部120を備える例につき記載したが、キャラクタ表現ベクトル算出部120は、ユーザ端末側に備えられていてもよい。チャットシステム2がこのような構成を備えることで、データの送信コスト等を考慮することなく、ユーザ自ら収集した入出力データ対からキャラクタ性を反映したチャットを楽しむことができる。また、チャットシステム2がユーザ端末側で算出したキャラクタ表現ベクトルを収集することでチャットメンバーになりすました返答ができるようになるなど、興趣の高いシステムを提供することができる。
また、ここではチャットシステム2が、ユーザによりキャラクタデータ対を入力される例につき記載したが、種々の方法によりキャラクタデータ対が取得されるように構成されていてもよい。以下に例を示す。
ユーザ端末からの指示等に基づき、入出力システム200が、チャットサービス等における該当ユーザの対話を収集し、これをキャラクタデータ対としてキャラクタ表現ベクトル算出部120に入力し、該当ユーザを表現するキャラクタ表現ベクトルを算出するように構成されていてもよい。ユーザ端末からの指示として、例えば、キャラクタデータ対として必要なデータが蓄積されたことにより収集の指示が出されることが考えられる。
また、入出力システム200が事前に設定された質問(プロフィールに関する質問等)をユーザに出力し、その質問に対する返答を取得し、当該質問と回答のペアを入出力データ対として、該当ユーザを表現するキャラクタ表現ベクトルを算出するように構成されていてもよい。
チャットシステム2がこのような構成を備えることで、該当ユーザのキャラクタ性を表現した出力が可能なチャットシステム2を構築可能である。
チャットシステム2がこのような構成を備えることで、該当ユーザのキャラクタ性を表現した出力が可能なチャットシステム2を構築可能である。
また、チャットシステム2は、チャットユーザの自動マッチング等において、上述のようにプロフィール等から取得したキャラクタデータ対より算出したユーザ毎のキャラクタ表現ベクトルを用いるように構成されていてもよい。
すなわち、チャットシステム2は、ユーザ毎の類似度を、キャラクタ表現空間上のキャラクタ表現ベクトルの距離等により定義し、類似度の近いユーザをマッチングするように構成されている。
チャットシステム2がこのような構成を備えることで、キャラクタ表現ベクトルが近いユーザ同士のキャラクタ性は類似していると考えられるため、キャラクタ性が類似したユーザをマッチングすることが可能となる。
すなわち、チャットシステム2は、ユーザ毎の類似度を、キャラクタ表現空間上のキャラクタ表現ベクトルの距離等により定義し、類似度の近いユーザをマッチングするように構成されている。
チャットシステム2がこのような構成を備えることで、キャラクタ表現ベクトルが近いユーザ同士のキャラクタ性は類似していると考えられるため、キャラクタ性が類似したユーザをマッチングすることが可能となる。
上記のように本実施形態2におけるチャットシステム2は、事前に設定されたキャラクタ性を反映したチャットを楽しむことができる。
また、ユーザにより指定されたキャラクタ性を反映したチャットを楽しむことができる。
また、ユーザにより指定された複数のキャラクタを合成したキャラクタ性を反映したチャットを楽しむことができる。
また、ユーザにより入力されたキャラクタデータ対に対応するキャラクタ性を反映したチャットを楽しむことができる。
また、ユーザにより指定されたキャラクタ性を反映したチャットを楽しむことができる。
また、ユーザにより指定された複数のキャラクタを合成したキャラクタ性を反映したチャットを楽しむことができる。
また、ユーザにより入力されたキャラクタデータ対に対応するキャラクタ性を反映したチャットを楽しむことができる。
以上、実施形態を参照して本発明について説明した。なお、上記各実施形態における各構成は、汎用のコンピュータ上に構成される例について記載したが、各構成の全て又は一部が、専用のハードウェア等で構成されていてもよい。
また、本実施形態1又は2の入出力システム100においては、入力、出力共に文章、即ち文字データを用いた例につき説明したが、これに限定されるものではなく、画像、音声、映像といったメディアデータであってもよく、また、それらの組み合わせであってもよい。
具体例として、文章と対応づけた画像を学習し、文章を元にして特定の画家(キャラクタ)風の絵を生成するといった例や、英語から特定の翻訳者(キャラクタ)風に日本語の翻訳文を生成するといった例が考えられる。
具体例として、文章と対応づけた画像を学習し、文章を元にして特定の画家(キャラクタ)風の絵を生成するといった例や、英語から特定の翻訳者(キャラクタ)風に日本語の翻訳文を生成するといった例が考えられる。
また、本実施形態1又は2の入出力演算部110における入出力モデルについては、RNNを用いたEncoder-Decoderモデルを用いた入出力モデルを用いる例について記載したが、これに限定されるものではなく、キャラクタ表現空間を有する入出力モデルであればよい。
また、本実施形態1又は2におけるキャラクタ表現ベクトルに対応するキャラクタ性は、方言、登録名、年齢、性別等の個人情報等を用いた例を記載したが、入出力データ対において対応付けが可能な要素であればよく、数値化された感情や印象などといった任意の要素を用いてもよい。
また、本実施形態1又は2におけるキャラクタ表現ベクトルに対応するキャラクタ性は、方言、登録名、年齢、性別等の個人情報等を用いた例を記載したが、入出力データ対において対応付けが可能な要素であればよく、数値化された感情や印象などといった任意の要素を用いてもよい。
また、本実施形態1又は2においては入出力演算部110が、複数のキャラクタ表現ベクトルが入力された場合に、入出力演算部110内に事前に設定された割合に基づき各キャラクタ性を合成する例を記載したが、入出力演算部110が、入出力複数のキャラクタ表現ベクトルと共に各キャラクタ表現ベクトルの合成割合について入力を受け付けるように構成されていてもよい。その場合、入力された割合に基づきキャラクタキャラクタ合成ベクトルを生成し、合成したキャラクタ表現ベクトルを反映した出力文を出力する。
また、本実施形態1又は2の入出力演算部110におけるキャラクタ表現ベクトルの合成については、2つのキャラクタ表現ベクトルの入力による2キャラクタの合成の例について記載したが、任意の数のキャラクタ表現ベクトルが入力されてもよい。また、キャラクタ表現ベクトルの合成については重みづけによる単純な加算の場合について記載したが、重みづけを反映可能な任意の関数を用いてもよい。
また本実施形態1又は2のキャラクタ表現ベクトル算出部120のステップS430におけるキャラクタ表現ベクトルの更新について、Adamを用いる場合について説明したが、損失関数の勾配を利用した最適化手法であればよく、任意の手法を利用することができる。
また、ステップS440における損失関数の値の収束については、収束するのに十分な回数だけキャラクタ表現ベクトルの更新を行い、規定された回数の更新が終了した時点でステップS450に移行するように構成されていてもよい。
また、ステップS440における損失関数の値の収束については、収束するのに十分な回数だけキャラクタ表現ベクトルの更新を行い、規定された回数の更新が終了した時点でステップS450に移行するように構成されていてもよい。
また、本実施形態2においては入出力システム200が入出力制御部230を備える例につき説明したが、ユーザ端末側に備えられていてもよい。
本発明は上述した実施形態に限定されるものではない。本発明の構成及び動作については、本発明の趣旨を逸脱しない範囲において、当業者が理解しうる様々な変更を行うことができる。
100、200…入出力システム
110…入出力演算部
120…キャラクタ表現ベクトル算出部
2…チャットシステム
230…入出力制御部
110…入出力演算部
120…キャラクタ表現ベクトル算出部
2…チャットシステム
230…入出力制御部
Claims (9)
- 入出力演算部を備え、
前記入出力演算部は、入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備え、
前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、入力データと、が前記入出力演算部に入力され、
前記入出力演算部が、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、
入出力システム。 - キャラクタ表現ベクトル算出部を更に備え、
キャラクタ性を抽出するための入出力データ対であるキャラクタデータ対が前記キャラクタ表現ベクトル算出部に入力され、
前記キャラクタ表現ベクトル算出部が、前記入出力演算部において固定された前記入出力モデル及びキャラクタ表現空間における、前記キャラクタデータ対についての演算結果に基づき、前記キャラクタデータ対に対応するキャラクタ表現ベクトルを算出する、請求項1に記載の入出力システム。 - 前記入出力演算部に、入力データと、複数のキャラクタ表現ベクトルと、が入力され、
前記入出力演算部が、前記複数のキャラクタ表現ベクトルのそれぞれに表現されたキャラクタ性が合成されたベクトルであるキャラクタ合成ベクトルを生成し、当該キャラクタ合成ベクトルに基づき、合成されたキャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、請求項1又は2に記載の入出力システム。 - ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
請求項1から3の何れかに記載の入出力システムを備え、
事前に設定されたキャラクタに基づく、前記キャラクタ表現ベクトルが前記入出力システムに入力され、
当該設定されたキャラクタのキャラクタ性を反映した、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。 - ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
請求項2に記載の入出力システムを備え、
前記ユーザにより指定された前記キャラクタデータ対が前記入出力システムに入力されることで、
当該キャラクタデータ対に対応するキャラクタ性を反映した前記キャラクタ表現ベクトルが算出され、前記ユーザからの入力データと前記キャラクタ表現ベクトルが前記入出力演算部に入力され、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。 - ユーザとの間でキャラクタ性が反映された対話を行うチャットシステムであって、
請求項3に記載の入出力システムを備え、
前記ユーザにより指定された複数のキャラクタに基づく複数のキャラクタ表現ベクトルが前記入出力システムに入力され、
当該指定された複数のキャラクタを合成したキャラクタ性を反映した、前記ユーザからの入力データに対応する出力データを出力する、チャットシステム。 - 第1の入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備え、入力された前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトル及び入力データに基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算し、出力する、入出力演算部と、
第2の入出力データ対が入力され、前記入出力演算部において固定された前記入出力モデル及びキャラクタ表現空間における演算結果に基づき、前記第2の入出力データ対に対応したキャラクタ性を反映したキャラクタ表現ベクトルを算出する、キャラクタ表現ベクトル算出部と、
を備える情報処理装置。 - 入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を有する入出力モデルを備えた、入出力演算部を備える入出力システムにおいて、
入力データと、前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、が前記入出力演算部に入力されるステップと、
前記入出力演算部が、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算するステップと、
当該出力データを出力するステップと、を
実行させる入出力プログラム。 - 入出力演算部を備えた入出力システムで用いられるキャラクタのデータ構造であって、
入出力データ対の学習により構築された、キャラクタ性が表現された空間であるキャラクタ表現空間を備え、
前記キャラクタ表現空間を有する入出力モデルを備える前記入出力演算部が、
前記キャラクタ表現空間におけるキャラクタ性を表現したベクトルであるキャラクタ表現ベクトルと、入力データと、が前記入出力演算部に入力され、前記入出力モデル及び前記キャラクタ表現空間に基づき、前記キャラクタ性を反映した、前記入力データに対応する出力データを演算する、
処理に用いられる、キャラクタのデータ構造。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017214514A JP2018181300A (ja) | 2017-11-07 | 2017-11-07 | 入出力システム、入出力プログラム、情報処理装置、チャットシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017214514A JP2018181300A (ja) | 2017-11-07 | 2017-11-07 | 入出力システム、入出力プログラム、情報処理装置、チャットシステム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017075879A Division JP6243072B1 (ja) | 2017-04-06 | 2017-04-06 | 入出力システム、入出力プログラム、情報処理装置、チャットシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018181300A true JP2018181300A (ja) | 2018-11-15 |
Family
ID=64276903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017214514A Pending JP2018181300A (ja) | 2017-11-07 | 2017-11-07 | 入出力システム、入出力プログラム、情報処理装置、チャットシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018181300A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021043723A (ja) * | 2019-09-11 | 2021-03-18 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP2022180282A (ja) * | 2021-05-24 | 2022-12-06 | ネイバー コーポレーション | ペルソナチャットボット制御方法及びシステム |
-
2017
- 2017-11-07 JP JP2017214514A patent/JP2018181300A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021043723A (ja) * | 2019-09-11 | 2021-03-18 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP7418106B2 (ja) | 2019-09-11 | 2024-01-19 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
JP2022180282A (ja) * | 2021-05-24 | 2022-12-06 | ネイバー コーポレーション | ペルソナチャットボット制御方法及びシステム |
JP7329585B2 (ja) | 2021-05-24 | 2023-08-18 | ネイバー コーポレーション | ペルソナチャットボット制御方法及びシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6972265B2 (ja) | ポインタセンチネル混合アーキテクチャ | |
CN110427617B (zh) | 推送信息的生成方法及装置 | |
EP2953065B1 (en) | Generating representations of input sequences using neural networks | |
CN108417210B (zh) | 一种词嵌入语言模型训练方法、词语识别方法及系统 | |
EP3614376A1 (en) | Statistical parameter model establishment method, speech synthesis method, server and storage medium | |
JP2018081298A (ja) | 自然語処理方法及び装置と自然語処理モデルを学習する方法及び装置 | |
JP6243072B1 (ja) | 入出力システム、入出力プログラム、情報処理装置、チャットシステム | |
CN109887484A (zh) | 一种基于对偶学习的语音识别与语音合成方法及装置 | |
JP2019075088A (ja) | 文章生成モデルのアップデート方法及び文章生成装置 | |
Sojasingarayar | Seq2seq ai chatbot with attention mechanism | |
JP7194270B2 (ja) | 対話生成方法と装置、コンピュータ機器及びプログラム | |
JP7072178B2 (ja) | 自然言語処理のための装置、方法及びプログラム | |
CN112214591A (zh) | 一种对话预测的方法及装置 | |
KR20210045217A (ko) | 감정 이식 장치 및 감정 이식 방법 | |
JP2018181300A (ja) | 入出力システム、入出力プログラム、情報処理装置、チャットシステム | |
JP7143677B2 (ja) | 単語符号化装置、解析装置、言語モデル学習装置、方法、及びプログラム | |
JP5914054B2 (ja) | 言語モデル作成装置、音声認識装置、およびそのプログラム | |
JP6082657B2 (ja) | ポーズ付与モデル選択装置とポーズ付与装置とそれらの方法とプログラム | |
JP2019204415A (ja) | 言い回し文生成方法、言い回し文装置及びプログラム | |
JP6969431B2 (ja) | 形態素解析学習装置、形態素解析装置、方法、及びプログラム | |
JP6235922B2 (ja) | 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム | |
KR20210131125A (ko) | 발화 속도 조절이 가능한 텍스트 음성 변환 학습 장치 및 발화 속도 조절이 가능한 텍스트 음성 변환 장치 | |
CN113345410A (zh) | 通用语音、目标语音合成模型的训练方法及相关装置 | |
CN112307181A (zh) | 基于特定语料库的提取语料的方法及语料提取器 | |
JP5860439B2 (ja) | 言語モデル作成装置とその方法、そのプログラムと記録媒体 |