(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-13
(45)【発行日】2022-12-21
(54)【発明の名称】対話生成方法と装置、コンピュータ機器及びプログラム
(51)【国際特許分類】
G06F 16/90 20190101AFI20221214BHJP
G06F 16/9035 20190101ALI20221214BHJP
G06F 40/56 20200101ALI20221214BHJP
【FI】
G06F16/90 100
G06F16/9035
G06F40/56
(21)【出願番号】P 2021517336
(86)(22)【出願日】2020-01-21
(86)【国際出願番号】 CN2020073383
(87)【国際公開番号】W WO2020151689
(87)【国際公開日】2020-07-30
【審査請求日】2021-04-26
(31)【優先権主張番号】201910069718.9
(32)【優先日】2019-01-24
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】タン,イジャン
(72)【発明者】
【氏名】ディン,ジィアチェン
(72)【発明者】
【氏名】ミアオ,チャンギュ
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】米国特許出願公開第2017/0372696(US,A1)
【文献】特開2018-129068(JP,A)
【文献】特開2007-328283(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
G10L 13/00-15/34
(57)【特許請求の範囲】
【請求項1】
マンマシン対話システムが実行する対話生成方法であって、
対話クライアントから入力対話シーケンスを取得するステップと、
前記入力対話シーケンスに関連する関連情報を取得するステップと、
エンコーダを呼び出して前記入力対話シーケンスを符号化し、入力符号化ベクトルを取得するステップと、
前記エンコーダを呼び出して前記関連情報を符号化し、関連符号化ベクトルを取得するステップと、
デコーダを呼び出して前記入力符号化ベクトルと前記関連符号化ベクトルとを復号化し、出力対話シーケンスを取得するステップであって、前記出力対話シーケンスには前記関連情報に属する未知語が含まれているステップと、
前記対話クライアントに前記出力対話シーケンスを送信するステップと、を含
み、前記デコーダを呼び出して前記入力符号化ベクトルと前記関連符号化ベクトルとを復号化し、出力対話シーケンスを取得するステップは、
前記入力符号化ベクトル、前記関連符号化ベクトル及び1時刻前の復号化情報をコピー生成ネットワークに入力して復号化処理し、前記出力対話シーケンスを取得するステップであって、
前記コピー生成ネットワークの現在の復号化時刻で、前記入力符号化ベクトルに基づいて、予め設定された辞書における各単語の入力アテンションスコアを決定するステップと、
前記コピー生成ネットワークの現在の復号化時刻で、前記関連符号化ベクトルに基づいて、拡張辞書における各単語の関連アテンションスコアを決定するステップと、
前記入力アテンションスコアと前記関連アテンションスコアとに基づいて前記各単語の総アテンションスコアを取得するステップと、
前記総アテンションスコアが最も高い単語を、前記現在の復号化時刻での出力語として決定するステップとを含み、前記拡張辞書は、前記関連情報における単語に基づいて構築された辞書である、ステップ
を含むことを特徴とする、対話生成方法。
【請求項2】
前記デコーダは、
前記コピー生成ネットワークを含
むことを特徴とする、請求項1に記載の方法。
【請求項3】
前記入力符号化ベクトル、前記関連符号化ベクトル及び1時刻前の復号化情報を前記コピー生成ネットワークに入力して復号化処理し、前記出力対話シーケンスを取得する前記ステップは
、
前記各単語の総アテンションスコアを取得するステップにおいて、前記1時刻前の復号化情報に基づいて加重重みを決定し、前記加重重みにより前記入力アテンションスコアと前記関連アテンションスコアとを重み付け加算し、前記各単語の総アテンションスコアを取得するステップ
を含むことを特徴とする、請求項2に記載の方法。
【請求項4】
前記関連情報は、事実情報及び/又は観点情報を含み、
前記関連符号化ベクトルは、事実符号化ベクトルと観点符号化ベクトルとを含み、
前記関連符号化ベクトルに基づいて、拡張辞書における各単語の関連アテンションスコアを決定する前記ステップは、
前記事実符号化ベクトルに基づいて、第1の拡張辞書における各単語の事実アテンションスコアを決定するステップと、
前記観点符号化ベクトルに基づいて、第2の拡張辞書における各単語の観点アテンションスコアを決定するステップと、を含み、
前記第1の拡張辞書は、前記事実情報における単語に基づいて構築された辞書であり、
前記第2の拡張辞書は、前記観点情報における単語に基づいて構築された辞書であることを特徴とする、請求項3に記載の方法。
【請求項5】
前記1時刻前の復号化情報に基づいて加重重みを決定し、前記加重重みにより前記入力アテンションスコアと前記関連アテンションスコアとを重み付け加算し、前記各単語の総アテンションスコアを取得する前記ステップは、
前記1時刻前の復号化情報に基づいて、前記入力アテンションスコアに対応する第1の重み、前記事実アテンションスコアに対応する第2の重み及び前記観点アテンションスコアに対応する第3の重みを決定するステップと、
前記入力アテンションスコアと前記第1の重みとの積、前記事実アテンションスコアと前記第2の重みとの積、前記観点アテンションスコアと前記第3の重みとの積を加算し、前記各単語の総アテンションスコアを取得するステップと、を含むことを特徴とする、請求項4に記載の方法。
【請求項6】
前記総アテンションスコアが最も高い単語を、前記現在の復号化時刻での出力語として決定する前記ステップは、
前記総アテンションスコアが最も高い単語が前記予め設定された辞書に属する場合、前記予め設定された辞書から前記単語を前記現在の復号化時刻での出力語として抽出するステップと、
前記総アテンションスコアが最も高い単語が前記拡張辞書に属する場合、前記拡張辞書から前記単語を前記現在の復号化時刻での出力語としてコピーするステップと、を含むことを特徴とする、請求項3~5のいずれか一項に記載の方法。
【請求項7】
エンコーダを呼び出して前記入力対話シーケンスを符号化し、入力符号化ベクトルを取得する前記ステップは、
入力対話シーケンスに単語分割処理を行い、順に配列された単語を取得するステップと、
各前記単語に対応する単語ベクトルを問い合わせるステップと、
各前記単語に対応する単語ベクトルを前記順に配列し、入力対話シーケンスの単語ベクトルを取得するステップと、
エンコーダを呼び出して前記入力対話シーケンスの単語ベクトルを符号化し、入力符号化ベクトルを取得するステップと、含むことを特徴とする、請求項1に記載の方法。
【請求項8】
前記対話クライアントに前記出力対話シーケンスを送信する前記ステップは、
文字形式の出力対話シーケンスを音声形式の出力対話シーケンスに変換するステップと、
前記対話クライアントに前記音声形式の出力対話シーケンスを送信するステップと、を含むことを特徴とする、請求項1に記載の方法。
【請求項9】
対話サーバに設けられる対話生成装置であって、
上記請求項1~8のいずれか一項に記載の対話生成方法を実行するように構成されたことを特徴とする、対話生成装置。
【請求項10】
1つ以上のプロセッサと、
少なくとも1つのコンピュータ可読命令、少なくとも1つのプログラム、コードセット又はコンピュータ可読命令セットが記憶されているメモリと、を含み、
前記1つ以上のプロセッサは、前記少なくとも1つのコンピュータ可読命令、前記少なくとも1つのプログラム、前記コードセット又はコンピュータ可読命令セットをロードして実行し、上記請求項1~8のいずれか一項に記載の対話生成方法を実現するように構成されることを特徴とする、コンピュータ機器。
【請求項11】
コンピュータに、上記請求項1~8のいずれか一項に記載の対話生成方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2019年1月24日に中国国家知識産権局に提出された、出願番号が2019100697189で、発明の名称が「対話生成方法、装置、機器及び記憶媒体」である中国特許出願の優先権を主張するものであり、その全ての内容は参照により本願に組み込まれるものとする。
本願の実施形態は、人工知能の分野に関し、特に対話生成方法、装置、機器及び記憶媒体に関する。
【背景技術】
【0002】
自然言語対話は、人工知能における最も挑戦的な課題の1つである。現在、例えばアップル社によるSiriなど、多くの実用的な対話システムがある。これらの対話システムは、人と簡単な対話を行い、例えば天気問い合わせや、株価の問い合わせなどの簡単なタスクを達成することができる。
【0003】
関連技術における対話システムにおいて、入力された対話シーケンス(質問文)に対して、予め設定された辞書から語彙を選択して、対話シーケンス、即ち、回答文を構成する。該回答文中の全ての語彙は、いずれも該予め設定された辞書に由来する。
【0004】
上記対話システムが出力した回答文中の全ての語彙がいずれも辞書に由来し、該辞書における語彙が予め設定されかつ一定するものであるため、該対話システムが出力する回答文の内容は限定されている。
【発明の概要】
【0005】
本願の提供する様々な実施形態によれば、対話生成方法、装置、機器及び記憶媒体を提供する。具体的な技術解決策は、以下のとおりである。
【0006】
本願の第1の態様に係る対話生成方法は、マンマシン対話システムが実行する対話生成方法であって、対話クライアントから入力対話シーケンスを取得するステップと、入力対話シーケンスに関連する関連情報を取得するステップと、エンコーダを呼び出して入力対話シーケンスを符号化し、入力符号化ベクトルを取得するステップと、エンコーダを呼び出して関連情報を符号化し、関連符号化ベクトルを取得するステップと、デコーダを呼び出して入力符号化ベクトルと関連符号化ベクトルとを復号化し、出力対話シーケンスを取得するステップであって、出力対話シーケンスには関連情報に属する未知語が含まれているステップと、を含む。
【0007】
本願の別の態様に係る対話生成装置は、対話サーバに設けられ、インタフェースモジュール、取得モジュール、符号化モジュール及び復号化モジュールを含む対話生成装置であって、インタフェースモジュールは、対話クライアントから入力対話シーケンスを取得し、取得モジュールは、入力対話シーケンスに関連する関連情報を取得し、符号化モジュールは、入力対話シーケンスを符号化し、入力符号化ベクトルを取得し、符号化モジュールはさらに、エンコーダにより関連情報を符号化し、関連符号化ベクトルを取得し、復号化モジュールは、入力符号化ベクトルと関連符号化ベクトルとを復号化し、関連情報に属する未知語が含まれている出力対話シーケンスを取得し、インタフェースモジュールは、対話クライアントに出力対話シーケンスを送信する。
【0008】
本願の別の態様に係るコンピュータ機器は、メモリと、1つ以上のプロセッサとを含むコンピュータ機器であって、1つ以上のメモリには、少なくとも1つのコンピュータ可読命令が記憶されており、1つ以上のプロセッサは、少なくとも1つのコンピュータ可読命令をロードして実行し、上記の対話生成方法を実現するように構成される。
【0009】
本願の別の態様に係る1つ以上のコンピュータ可読記憶媒体は、1つ以上のプロセッサによってロードされて実行されと、上記の対話生成方法を実現する少なくとも1つのコンピュータ可読命令が記憶されている。
【0010】
本願の1つ以上の実施形態の詳細は、以下の図面及び説明において提供される。本願の他の特徴、目的及び利点は、本願の明細書、図面及び特許請求の範囲に基づいて明らかになる。
【図面の簡単な説明】
【0011】
本願の実施形態における技術解決策をより明確に説明するために、以下、実施形態の説明に必要な図面を簡単に説明するが、明らかに、以下の説明における図面は、本願のいくつかの実施形態に過ぎず、当業者であれば、創造的な労働をしない前提で、これらの図面に基づいて他の図面を得ることができる。
【
図1】本願の例示的な一実施形態に係るマンマシン対話システムの構成ブロック図である。
【
図2】本願の例示的な一実施形態に係る対話生成方法のフローチャートである。
【
図3】本願の例示的な一実施形態に係る対話生成方法の原理図である。
【
図4】本願の例示的な一実施形態に係る対話生成方法のフローチャートである。
【
図5】本願の例示的な一実施形態に係る対話生成方法の原理図である。
【
図6】本願の例示的な一実施形態に係る対話生成装置のブロック図である。
【
図7】本願の例示的な一実施形態に係るコンピュータ機器のブロック図である。
【発明を実施するための形態】
【0012】
本願の実施形態の目的、技術解決策及び利点をより明確にするために、以下、図面を参照しながら本願の実施形態をさらに詳細に説明する。理解すべきこととして、ここで説明される具体的な実施形態は、本願を説明するためのものに過ぎず、本願を限定するものではない。
【0013】
以下に第1、第2などの用語を用いて様々な要素を説明するが、これらの要素は、用語により限定されるべきではない。これらの用語は、1つの要素を他の要素から区別するために用いられる。例えば、様々な例示の範囲から逸脱しない場合、第1の拡張辞書を第2の拡張辞書と称してもよい。同様に、第2の拡張辞書を第1の拡張辞書と称してもよい。第1の拡張辞書及び第2の拡張辞書は、いずれも拡張辞書であってもよく、場合によっては、独立して異なる拡張辞書であってもよい。
【0014】
まず、本願の実施形態に係るいくつかの用語を解釈する。
【0015】
F(Facts):現在のチャット話題に関連する事実情報(例えば、ニュース記事)。
【0016】
H(History):現在のチャット話題に関連する観点情報(例えば、ニュース評論、討論履歴)。
【0017】
符号化:1つの対話シーケンスを1つ以上の符号化ベクトルとして表し、ここで『対話シーケンス』が一般的には不定長の対話シーケンスであること。
【0018】
復号化:入力対話シーケンスに対応する符号化ベクトルに基づいて、対応する出力対話シーケンスを出力すること。
【0019】
アテンション(Attention)機構:1つのベクトルと複数のベクトルとについて重みを計算し、かつ重みに基づいて加重平均すること。
【0020】
コピー生成ネットワーク:入力テキストからテキストセグメントを生成されたテキストに自動的にコピーするか、又は新たなテキストセグメントを生成することができる新テキスト生成システム。
【0021】
RNN-Cell(Recurrent Neural Networks、回帰型ニューラルネットワークセル):1つの入力ベクトルに対して、ニューラルネットワークの線形マッピング及び非線形変化により、出力ベクトルを取得する回帰型ニューラルネットワークの構成部分。
【0022】
LSTM(Long Short-Term Memory、長・短期記憶):時系列情報の符号化に用いられる回帰型ニューラルネットワークの一種。
【0023】
本願の実施形態は、ホットイベント及び/又は様々な観点を考慮に入れ、事実及び/又は観点があるセンテンスを自動的に生成してユーザーに回答することができる、マンマシン対話システムに適用される対話生成方法を提供する。
【0024】
本願の実施形態に係る技術解決策の理解を容易にするために、
図1は、本願の別の例示的な実施形態に係るマンマシン対話システムの概略構成図を示す。該マンマシン対話システムは、対話クライアント100、対話サーバ200及び情報リソースサーバ300を含む。
【0025】
対話クライアント100は、スマートスピーカー、スマートロボット、スマートバニティミラー、スマートフォン、アプリケーションクライアント、ウェブクライアントのうちのいずれか1つとして実装することができる。対話クライアント100にマイクロフォン及びスピーカが設けられ、或いは、対話クライアント100にテキストを入力し表示するための外付け部品が設けられている。
【0026】
対話サーバ200は、対話クライアント100にバックグラウンド対話サービスを提供するためのサーバである。対話サーバ200は、1台以上のサーバであってよい。対話サーバ200には、seq2seq(Sequence to Sequence、シーケンスツーシーケンス)に基づくニューラルネットワークモデルが設けられている。該ニューラルネットワークモデルは、入力対話シーケンスに基づいて出力対話シーケンスを生成する。対話サーバ200は、天気問い合わせ、業務相談、スマートカスタマーサービス(航空券サービス又はレストランサービス等に用いられる)等を含むが、これらに限定されない。
【0027】
該対話サーバ200は、情報リソースサーバ300にも接続されている。該情報リソースサーバ300には、事実情報(Facts)及び観点情報(History)が記憶されている。対話サーバ200は、情報リソースサーバ300から入力対話シーケンスに関連する事実情報及び/又は観点情報を取得することができる。
【0028】
可能な実現形態において、対話サーバ200は、インタフェースモジュール220、取得モジュール240、エンコーダ260及びデコーダ280を含む。該インタフェースモジュール220は、対話サーバ200と対話クライアント100との間のインタラクションモジュール又は通信モジュールである。該インタフェースモジュール220は、対話クライアント100からユーザーの入力文字列を取得し、取得モジュール240及びエンコーダ260に送信する。該インタフェースモジュール220はさらに、対話サーバ200により生成された出力対話シーケンスを対話クライアント100に送信する。取得モジュール240は、情報リソースサーバ300において出力対話シーケンスに対応する事実情報及び/又は観点情報を取得する。
【0029】
図2は、本願の例示的な一実施形態に係る対話生成方法のフローチャートを示す。本実施形態において、該方法を
図1の対話サーバ200に適用することを例として説明する。該方法は、以下のステップ201~ステップ206を含む。
【0030】
ステップ201では、対話クライアントから入力対話シーケンスを取得する。
【0031】
入力対話シーケンスは、入力シーケンスであり、すなわち処理対象となる対話シーケンスである。
【0032】
対話クライアントは、ユーザーから文字形式及び/又は音声形式の入力対話シーケンスを収集し、入力対話シーケンスを対話サーバに送信する。対話サーバは、対話クライアントから該入力対話シーケンスを取得する。
【0033】
音声形式の入力対話シーケンスは、対話クライアント又は対話サーバにより文字形式の入力対話シーケンスに変換されることができる。
【0034】
ステップ202では、入力対話シーケンスに関連する関連情報を取得する。
【0035】
一実施形態において、対話サーバは、入力対話シーケンスに基づいて、情報リソースサーバにおいて入力対話シーケンスに関連する関連情報を検索することができる。
【0036】
関連情報は、事実情報(Facts)及び/又は観点情報(History)を含む。
【0037】
事実情報は、ニュース記事、百科知識、一般常識のうちの少なくとも1つを含む。観点情報は、フォーラムでの討論履歴、ネットユーザの書き込みのうちの少なくとも1つを含む。
【0038】
ステップ203では、エンコーダを呼び出して入力対話シーケンスを符号化し、入力符号化ベクトルを取得する。
【0039】
一実施形態において、対話サーバは、入力対話シーケンスを入力単語ベクトルに変換してから、エンコーダを呼び出して入力単語ベクトルを符号化し、入力符号化ベクトルを取得することができる。入力符号化ベクトルは、入力対話シーケンスを表す特徴ベクトルである。
【0040】
ステップ204では、エンコーダを呼び出して関連情報を符号化し、関連符号化ベクトルを取得する。
【0041】
一実施形態において、対話サーバは、関連情報を関連単語ベクトルに変換してから、エンコーダを呼び出して関連単語ベクトルを符号化し、関連符号化ベクトルを取得することができる。関連符号化ベクトルは、関連情報を表す特徴ベクトルである。
【0042】
ステップ205では、デコーダを呼び出して入力符号化ベクトルと関連符号化ベクトルとを復号化し、関連情報に属する未知語が含まれている出力対話シーケンスを取得する。
【0043】
未知語(OOV、Out of Vocabulary)とは、辞書内にない単語を指す。理解できるように、1つの辞書は1つの単語集合に相当し、ある単語が辞書内にあれば、語彙内語と呼ばれ、逆の場合、未知語と呼ばれる。
【0044】
一実施形態において、デコーダを呼び出して入力符号化ベクトルと関連符号化ベクトルとを動的に復号化し、関連情報に属する未知語が含まれている出力対話シーケンスを取得する。該動的復号化は、入力符号化ベクトルに基づいて、予め設定された辞書から出力語を生成すること、及び/又は、関連符号化ベクトルに基づいて拡張辞書から出力語をコピーすることを含む。
【0045】
一実施形態において、該拡張辞書は、関連情報中の単語に基づいて構築された辞書である。
【0046】
ステップ206では、対話クライアントに出力対話シーケンスを送信する。
【0047】
対話サーバは、対話クライアントに文字形式の出力対話シーケンスを送信するか、又は文字形式の出力対話シーケンスを音声形式の出力対話シーケンスに変換した後、対話クライアントに音声形式の出力対話シーケンスを送信する。
【0048】
前記のように、本実施形態に係る方法は、エンコーダを呼び出して入力対話シーケンスを符号化することにより、入力符号化ベクトルを取得し、エンコーダを呼び出して関連情報を符号化し、関連符号化ベクトルを取得し、デコーダを呼び出して入力符号化ベクトルと関連符号化ベクトルとを復号化し、出力対話シーケンスを取得する。該出力対話シーケンスが予め設定された辞書及び拡張辞書に基づいて動的に生成されるため、該出力対話シーケンスには関連情報に属する未知語が含まれている。関連情報が入力対話シーケンスに関連する事実情報及び/又は観点情報を含む場合、該対話システムは、事実及び/又は観点がある回答を自動的に生成し、高い対話効果を実現することができる。
【0049】
図3は、本願の例示的な一実施形態に係る対話システムの原理概略図を示す。関連情報が観点情報(History)及び事実情報(Facts)を含む場合を例とし、該対話生成モデルは、エンコーダ320及びデコーダ340を含む。該対話システムは、ユーザーの現在の入力Inputと、ユーザーの現在の入力に関連する観点情報Historyと、ユーザーの現在の入力に関連する事実情報Factsとを外部から取得する。
【0050】
エンコーダ320は、ユーザーの現在の入力Inputを符号化して入力符号化ベクトルIを取得し、観点情報Historyを符号化して観点符号化ベクトルHを取得し、事実情報Factsを符号化して事実符号化ベクトルFを取得する。入力符号化ベクトルI、観点符号化ベクトルH及び事実符号化ベクトルFは、いずれも符号化ベクトルである。
【0051】
エンコーダ320は、入力符号化ベクトルI、観点符号化ベクトルH及び事実符号化ベクトルFをデコーダ340に入力する。
【0052】
デコーダ340にコピーニューラルネットワーク50が設けられており、入力符号化ベクトルI、観点符号化ベクトルH及び事実符号化ベクトルFがコピーニューラルネットワーク50に入力された後、コピーニューラルネットワーク50は入力符号化ベクトルI、観点符号化ベクトルH及び事実符号化ベクトルFを復号化し、出力対話シーケンスを取得する。出力対話シーケンスは、即ちユーザーの現在の入力Inputへの返事である。
【0053】
なお、事実情報と観点情報とは、一つのみ入力してもよく、両者を同時に入力してもよい。事実情報を符号化して得られた事実符号化ベクトルF及び/又は観点符号化ベクトルHは、関連符号化ベクトルと総称することができる。復号化段階において、対話システムは、入力符号化ベクトル、関連符号化ベクトル及び1時刻前の復号化情報を、コピー生成ネットワーク50に入力して復号化処理し、出力対話シーケンスを取得する。
【0054】
図4は、本願の他の例示的な実施形態に係る対話生成方法のフローチャートを示す。本実施形態において、該方法を
図1のマンマシン対話システム中の対話サーバ200に適用する場合を例として説明する。該方法は、以下のステップ401~410を含む。
【0055】
ステップ401では、対話クライアントから入力対話シーケンスを取得する。
【0056】
入力対話シーケンスは、入力シーケンスであり、すなわち処理対象となる対話シーケンスである。
【0057】
対話クライアントは、ユーザーから文字形式及び/又は音声形式の入力対話シーケンスを収集し、入力対話シーケンスを対話サーバに送信する。対話サーバは、対話クライアントから該入力対話シーケンスを取得する。
【0058】
音声形式の入力対話シーケンスは、対話クライアント又は対話サーバにより文字形式の入力対話シーケンスに変換されることができる。
【0059】
一実施形態において、該入力対話シーケンスは、不定長の文字列である。
【0060】
ステップ402では、入力対話シーケンスに関連する関連情報を取得する。
【0061】
一実施形態において、対話サーバは、入力対話シーケンスに基づいて、情報リソースサーバにおいて入力対話シーケンスに関連する関連情報を検索する。
【0062】
関連情報は、事実情報(Facts)及び/又は観点情報(History)を含む。
【0063】
事実情報は、ニュース記事、百科知識、一般常識のうちの少なくとも1つを含む。観点情報は、フォーラムでの討論の履歴、ネットユーザの書き込みのうちの少なくとも1つを含む。
【0064】
ステップ403では、エンコーダを呼び出して入力対話シーケンスを符号化し、入力符号化ベクトルを取得する。
【0065】
マンマシン対話システムには単語と単語ベクトルとの間の対応関係が予め設定されている。単語ベクトルは、単語を数学的に表すベクトルである。
【0066】
マンマシン対話システムは、入力対話シーケンスに対して単語分割を行い、順に配列された複数の単語を取得する。各単語に対応する単語ベクトルを問い合わせ、各単語に対応する単語ベクトルを順に配列し、入力対話シーケンスの単語ベクトルを取得する。
【0067】
エンコーダは入力対話シーケンスの単語ベクトルを符号化し、入力符号化ベクトルIを取得する。一実施形態において、エンコーダは双方向LSTM(Bi-LSTM)に基づいて構築されるが、本実施形態はエンコーダの具体的なタイプを限定しない。
【0068】
ステップ404では、エンコーダを呼び出して関連情報を符号化し、関連符号化ベクトルを取得する。
【0069】
マンマシン対話システムは、関連情報に対して単語分割を行い、順に配列された複数の単語を取得する。各単語に対応する単語ベクトルを問い合わせ、各単語に対応する単語ベクトルを順に配列し、入力対話シーケンスの単語ベクトルを取得する。
【0070】
関連情報が観点情報を含む場合、マンマシン対話システムは、観点情報に対して単語分割を行い、順に配列された複数の単語を取得する。各単語に対応する単語ベクトルを問い合わせ、各単語に対応する単語ベクトルを順に配列し、観点情報の単語ベクトルを取得する。エンコーダは、観点情報の単語ベクトルを符号化し、観点符号化ベクトルHを取得する。
【0071】
例示的には、単層の双方向LSTMを用いて観点情報の単語ベクトルを符号化し、観点符号化ベクトル(隠れ状態シーケンスとも呼ばれる)
【0072】
【数1】
を取得し、Hは観点情報を表し、hは隠れ状態を表し、Lは合計L個の隠れ状態があることを表し、iはL以下の整数である。
【0073】
関連情報が事実情報を含む場合、マンマシン対話システムは、事実情報に対して単語分割を行い、順に配列された複数の単語を取得する。各単語に対応する単語ベクトルを問い合わせ、各単語に対応する単語ベクトルを順に配列し、事実情報の単語ベクトルを取得する。エンコーダは、事実情報の単語ベクトルを符号化し、事実符号化ベクトルFを取得する。
【0074】
例示的には、単層の双方向LSTMを用いて事実情報の単語ベクトルを符号化し、事実符号化ベクトル(隠れ状態シーケンスとも呼ばれる)
【0075】
【数2】
を取得し、Fは事実情報を表し、hは隠れ状態を表し、Lは合計L個の隠れ状態があることを表し、iはL以下の整数である。
【0076】
一実施形態において、エンコーダは、入力符号化ベクトルをエンドツーエンドに接続し、デコーダの初期状態の入力とする。
【0077】
一実施形態において、エンコーダは、観点符号化ベクトルの初期隠れ状態と事実符号化ベクトルの最終的な隠れ状態とをエンドツーエンドに接続し、デコーダの初期状態の入力とする。或いは、エンコーダは、事実符号化ベクトルの初期隠れ状態と観点符号化ベクトルの最終的な隠れ状態とをエンドツーエンドに接続し、デコーダの初期状態の入力とする。或いは、観点符号化ベクトルと事実符号化ベクトルとをそれぞれデコーダの初期状態の入力とする。
【0078】
ステップ405では、コピー生成ネットワークの現在の復号化時刻で、入力符号化ベクトルに基づいて、予め設定された辞書における各単語の入力アテンションスコアを決定する。
【0079】
ステップ406では、コピー生成ネットワークの現在の復号化時刻で、関連符号化ベクトルに基づいて、拡張辞書における各単語の関連アテンションスコアを決定する。
【0080】
コピー生成ネットワークは、それに応じて、予め設定された辞書及び拡張辞書を有する。予め設定された辞書は、単語数と内容とが固定された辞書であり、拡張辞書は、事実情報及び/又は観点情報における単語に基づいて構築された辞書である。一実施形態において、拡張辞書は、第1の拡張辞書及び/又は第2の拡張辞書を含む。第1の拡張辞書は事実情報における単語に基づいて構築され、第2の拡張辞書は観点情報における単語に基づいて構築される。
【0081】
それに応じて、コピー生成ネットワークは、生成モード、Hコピーモード及びFコピーモードという3種類のモードを有する。
【0082】
生成モード:全ての単語リストで各単語の確率分布を取得すること。
【0083】
Fコピーモード:事実情報に対応する第1の拡張単語リストで各単語の確率分布を取得すること。
【0084】
Hコピーモード:観点情報に対応する第2の拡張単語リストで各単語の確率分布を取得すること。
【0085】
各復号化時刻tで、コピー生成ネットワークは、上記モードのいずれか1つを動的に採用し、復号化して現在の復号化時刻での出力語を取得する。該プロセスは各単語のアテンションスコアに基づいて行われ、アテンションスコアはアテンションスコアに応じて決定された確率分布である。
【0086】
一実施形態において、コピー生成ネットワークの現在の復号化時刻tで、デコーダは、入力符号化ベクトルに基づいて、予め設定された辞書における各単語の入力アテンションスコアを決定し、関連符号化ベクトルに基づいて、拡張辞書における各単語の関連アテンションスコアを決定する。
【0087】
関連符号化ベクトルが事実符号化ベクトルを含む場合、事実符号化ベクトルに基づいて、第1の拡張辞書における各単語の事実アテンションスコアを決定する。
【0088】
例示的には、以下の式で各単語の事実アテンションスコアの確率分布ht
F*を計算する。
【0089】
【数3】
tはt番目の復号化時刻であり、v
H
F,W
h
F,W
r
F及びb
Fは学習可能なネットワークパラメータであり、h
j
Fは事実符号化ベクトルにおけるj番目の隠れ状態であり、jはL以下の整数である。Fは事実情報であり、α
tj
Fは事実符号化ベクトルにおけるj番目の単語の復号化時刻tでのアテンションスコアである。
【0090】
関連符号化ベクトルが観点符号化ベクトルを含む場合、観点符号化ベクトルに基づいて、第2の拡張辞書における各単語の観点アテンションスコアを決定する。
【0091】
例示的には、以下の式で各単語の観点アテンションスコアの確率分布ht
H*を計算する。
【0092】
【数4】
tはt番目の復号化時刻であり、v
H
T,W
h
H,W
r
H及びb
Hは学習可能なネットワークパラメータであり、h
i
Hは観点符号化ベクトルにおけるi番目の隠れ状態であり、iはL以下の整数である。Hは観点情報であり、α
ti
Hは観点符号化ベクトルにおけるi番目の単語の復号化時刻tでのアテンションスコアである。
【0093】
ステップ407では、1時刻前の復号化情報に基づいて加重重みを決定し、加重重みにより入力アテンションスコアと関連アテンションスコアとを重み付け加算し、各単語の総アテンションスコアを取得する。
【0094】
各単語について、マンマシン対話システムは、1時刻前の復号化情報に基づいて加重重みを決定し、加重重みにより入力アテンションスコアと関連アテンションスコアとを重み付け加算し、各単語の総アテンションスコアを取得する。
【0095】
例示的には、マンマシン対話システムは、1時刻前の復号化情報に基づいて入力アテンションスコアに対応する第1の重み、事実アテンションスコアに対応する第2の重み及び観点アテンションスコアに対応する第3の重みを決定し、入力アテンションスコアと第1の重みとの積、事実アテンションスコアと第2の重みとの積、観点アテンションスコアと第3の重みとの積を加算し、各単語の総アテンションスコアを取得する。
【0096】
例示的には、以下の式で各単語の総アテンションスコアを計算する。
【0097】
【数5】
Hは観点符号化ベクトルであり、Fは事実符号化ベクトルであり、tは復号化時刻であり、mは3種類のモード(生成モード、Hコピーモード、Fコピーモード)に対応するアテンションスコアのインデックスである。Pr(m|t,H,F)は、復号化時刻tでの、インデックスmに対応するアテンションスコアであり、Pr
m(m|t,H,F)は、復号化時刻tでの、インデックスmに対応する重みである。この重みは、1時刻前の復号化情報から算出される。一実施形態において、該重みは、1時刻前の復号化情報により決定された、対応する単語の観点情報又は事実情報における単語出現回数と関係がある。
【0098】
ステップ408では、総アテンションスコアが最も高い単語を、現在の復号化時刻での出力語として決定する。
【0099】
一実施形態において、総アテンションスコアが最も高い単語が予め設定された辞書に属する場合、予め設定された辞書から単語を現在の復号化時刻での出力語として抽出し、総アテンションスコアが最も高い単語が拡張辞書に属する場合、拡張辞書から単語を現在の復号化時刻での出力語としてコピーする。
【0100】
例示的には、総アテンションスコアが最も高い単語が第1の拡張辞書に属する場合、第1の拡張辞書から単語を現在の復号化時刻での出力語としてコピーする。総アテンションスコアが最も高い単語が第2の拡張辞書に属する場合、第2の拡張辞書から単語を現在の復号化時刻での出力語としてコピーする。
【0101】
ステップ409では、上記ステップを繰り返して各復号化時刻での出力語を取得し、各復号化時刻での出力語を順に接続し、出力文字列を取得する。
【0102】
ステップ410では、対話クライアントに出力対話シーケンスを送信する。
【0103】
対話サーバは、対話クライアントに文字形式の出力対話シーケンスを送信するか、又は文字形式の出力対話シーケンスを音声形式の出力対話シーケンスに変換した後、対話クライアントに音声形式の出力対話シーケンスを送信する。
【0104】
前記のように、本実施形態に係る方法は、エンコーダを呼び出して入力対話シーケンスを符号化することにより、入力符号化ベクトルを取得し、エンコーダを呼び出して関連情報を符号化し、関連符号化ベクトルを取得し、デコーダを呼び出して入力符号化ベクトルと関連符号化ベクトルとを復号化し、出力対話シーケンスを取得する。該出力対話シーケンスが予め設定された辞書及び拡張辞書に基づいて動的に生成されるため、該出力対話シーケンスには関連情報に属する未知語が含まれている。関連情報が入力対話シーケンスに関連する事実情報及び/又は観点情報を含む場合、該対話システムは、事実及び/又は観点がある回答を自動的に生成し、高い対話効果を実現することができる。
【0105】
本実施形態に係る方法は、アテンション機構を採用することにより拡張辞書における各単語のアテンションスコアを決定し、動的重み付けにより各単語の総アテンションスコアを総合的に算出し、拡張辞書に属する単語の総アテンションスコアが高い場合に、出力文字列にコピーすることができる。
【0106】
1つの例示的な例において、
図5を参照すると、ユーザーがマンマシン対話システムに入力対話シーケンスを送信し、入力対話シーケンスを1つのサンプル(Sample)と見なす場合に、該入力対話シーケンスに対応する関連情報(事実情報及び/又は観点情報)中の全ての未知語はこのSampleの拡張辞書に添加される。
図5における左側の破線枠はエンコーダ部分であり、右側の破線枠はデコーダ部分である。ユーザーが入力した入力対話シーケンス(図示せず)以外に、追加の入力シーケンスが2つあり、入力シーケンス1が事実情報で、入力シーケンス2は観点情報であると仮定する。入力シーケンス1は単層の双方向LSTMを用いて事実符号化ベクトルに符号化し、入力シーケンス2は単層の双方向LSTMを用いて観点符号化ベクトルに符号化する。
【0107】
各復号化時刻において、事実符号化ベクトルに基づいて事実情報における各単語のアテンション確率分布p1、すなわち第1の拡張辞書における各単語のアテンションスコアを算出し、観点符号化ベクトルに基づいて観点情報における各単語のアテンション確率分布p2、すなわち第2の拡張辞書における各単語のアテンションスコアを算出し、第1の拡張辞書及び第2の拡張辞書には未知語が含まれる。同時に、ユーザーの入力対話シーケンスから固定辞書における確率分布p3を決定することができる。前の復号化時刻での復号化情報に基づいて3つの確率分布p1、p2及びp3のそれぞれに対応する重みを決定した後、この3つの確率分布を重み付け加算して、最終的な確率分布を取得する。それにより、各復号化時刻tにおいて、総アテンションスコアが最も高い単語を、現在の復号化時刻での出力語として出力する。各復号化時刻での出力語を順に接続し、出力文字列を取得する。現在の復号化時刻での出力語がH又はFに属する未知語であれば、該未知語が出力対話シーケンスにコピーされ、事実及び/又は観点がある応答文が実現される。
【0108】
本願の各実施形態における「マンマシン対話システム」は、DSTC7(7th Dialog System Technology Challenge、第7回対話システム技術チャレンジ)において1位を獲得した。具体的なデータは、表1及び表2に示すとおりである。ただし、表1は自動化評価の結果である。表2は、人工評価の結果である。
【0109】
【表1】
表1において、合計2208個の試験サンプルを有する。DSTC7の組織者は、以下の3つのベースライン(対照群)を提供する。(1)一定:常に「何を言ってるかわからない。」と回答すること。(2)ランダム:トレーニングデータから1つの解答をランダムに選択すること。(3)seq2seq(シーケンスツーシーケンス):Vanilla Kerasシーケンスツーシーケンスモデルを用いてトレーニングすること。チームC/E及びチームGは、今回の競争の他の2つのチームに使用されるシステムである。正式評価を行うために、本発明者らは2つのシステムを提出し、1つのシステムはK平均値ビームサーチを使用した主なシステムであり、もう1つのシステムはK平均値ビームサーチを使用しない補助システムである。また、人(Human)の応答と比較する。全ての応答出力は、いずれも以下の指標を用いて採点し、これらの指標は、それぞれNIST(Dod-dingtonが2002年に提案した機械翻訳評価指標)、BLEU(Papineniらが2002年に提案した)、Me-teor(Denkowski及びLavieが2014年に提案した)、DIV-1、DIV-2(distinct-1及びdistinct-2とも呼ばれる)(Liらが2016年に提案した)及びEntropy1-4(Zhangらが2018年に提案した)である。
【0110】
表1に示すように、本発明者らのシステムは、NIST-4、BLEU-4及びMeteorの主要指標を使用して評価し、いずれも最適な結果を取得する。また、K平均値ビームサーチを使用すると、ほぼ全ての主要なアルゴリズム及び全てのダイバーシティ指標の性能を効果的に向上させることができる。平均応答長さについて、本発明者らのシステムが生じた応答はseq2seqのベースラインより長い。また、K平均値ビームサーチを使用しないシステムに比べて、K平均値ビームサーチを使用するシステムは、応答時間がより長い。平均から論ずれば、人の応答時間は本発明者らのシステムより長く、Gチームが平均して22個のトークンで生じた応答時間はさらに長い。前の100kの語彙表に含まれないOOV(未知語)を出力する能力について、本発明者らのシステムは、それぞれK平均値ビームサーチ及び従来のビームサーチを用いて、提出した試験応答に97及び57個の唯一のOOV(未知語)を生成する。従来のビームサーチに比べて、K平均値ビームサーチは、より多くのOOV(未知語)をコピーすることができる。
【0111】
【表2】
表2において、DSTC7の組織者により1k個の試験サンプルを入念に選択して競技試験を行い、さらに人力で結果を評価する。表2に示すように、人力評価は、「相関性と適切性」及び「興味と情報性」という2つのカテゴリから評価する。seq2seqのベースラインに比べて、本発明者らのシステムは、95%の信頼度レベルでベースラインを明らかに超える。また、2位のチームに比べて、本発明者らのシステムは「興味及び情報量」のカテゴリにおいて95%の信頼度で最適な結果を取得する。まとめると、本発明者らのシステムは、競合において1位を勝ち取る。
【0112】
以下は、本願の装置の実施形態であり、装置の実施形態では詳細に説明しない詳細については、上記方法の実施形態における対応する説明を参照する。
【0113】
図6は、本願の例示的な一実施形態に係る対話生成装置のブロック図である。該対話生成装置は、ソフトウェア、ハードウェア又は両者の組み合わせによって、マンマシン対話システムの全部又は一部となるように実現されてよい。該装置は、インタフェースモジュール620、取得モジュール640、符号化モジュール660及び復号化モジュール680を含む。
【0114】
インタフェースモジュール620は、対話クライアントから入力対話シーケンスを取得する。
【0115】
取得モジュール640は、入力対話シーケンスに関連する関連情報を取得する。
【0116】
符号化モジュール660は、入力対話シーケンスを符号化し、入力符号化ベクトルを取得する。
【0117】
符号化モジュール660はさらに、エンコーダにより関連情報を符号化し、関連符号化ベクトルを取得する。
【0118】
復号化モジュール680は、入力符号化ベクトルと関連符号化ベクトルとを復号化し、関連情報に属する未知語が含まれている出力対話シーケンスを取得する。
【0119】
インタフェースモジュール620は、対話クライアントに出力対話シーケンスを送信する。
【0120】
一実施形態において、復号化モジュール680は、コピー生成ネットワークを含む。
【0121】
復号化モジュール680は、入力符号化ベクトル、関連符号化ベクトル及び1時刻前の復号化情報をコピー生成ネットワークに入力して復号化処理し、出力対話シーケンスを取得する。
【0122】
一実施形態において、復号化モジュール680は、コピー生成ネットワークの現在の復号化時刻で、入力符号化ベクトルに基づいて、予め設定された辞書における各単語の入力アテンションスコアを決定し、コピー生成ネットワークの現在の復号化時刻で、関連符号化ベクトルに基づいて、拡張辞書における各単語の関連アテンションスコアを決定し、1時刻前の復号化情報に基づいて加重重みを決定し、加重重みにより入力アテンションスコアと関連アテンションスコアとを重み付け加算し、各単語の総アテンションスコアを取得し、総アテンションスコアが最も高い単語を、現在の復号化時刻での出力語として決定する。
【0123】
拡張辞書は、関連情報における単語に基づいて構築された辞書である。
【0124】
一実施形態において、関連情報は、事実情報及び/又は観点情報を含み、関連符号化ベクトルは、事実符号化ベクトル及び観点符号化ベクトルを含む。
【0125】
復号化モジュール680は、事実符号化ベクトルに基づいて、第1の拡張辞書における各単語の事実アテンションスコアを決定する。
【0126】
復号化モジュール680は、観点符号化ベクトルに基づいて、第2の拡張辞書における各単語の観点アテンションスコアを決定する。
【0127】
第1の拡張辞書は事実情報における単語に基づいて構築された辞書であり、第2の拡張辞書は観点情報における単語に基づいて構築された辞書である。
【0128】
一実施形態において、復号化モジュール680は、1時刻前の復号化情報に基づいて入力アテンションスコアに対応する第1の重み、事実アテンションスコアに対応する第2の重み及び観点アテンションスコアに対応する第3の重みを決定し、入力アテンションスコアと第1の重みとの積、事実アテンションスコアと第2の重みとの積、観点アテンションスコアと第3の重みとの積を加算し、各単語の総アテンションスコアを取得する。
【0129】
一実施形態において、復号化モジュール680は、総アテンションスコアが最も高い単語が予め設定された辞書に属する場合、予め設定された辞書から単語を現在の復号化時刻での出力語として抽出し、総アテンションスコアが最も高い単語が拡張辞書に属する場合、拡張辞書から単語を現在の復号化時刻での出力語としてコピーする。
【0130】
図7は、本願の実施形態に係るコンピュータ機器の概略構成図を示す。該コンピュータ機器は、上記実施形態に係る対話生成方法を実行するための対話サーバであってよい。具体的には、
コンピュータ機器700は、中央処理装置(CPU)701と、ランダムアクセスメモリ(RAM)702及びリードオンリーメモリ(ROM)703を含むシステムメモリ704と、システムメモリ704及び中央処理装置701を接続するシステムバス705とを含む。コンピュータ機器700は、コンピュータ内の各部品の間の情報伝送を支援する基本入力/出力システム(I/Oシステム)706と、オペレーティングシステム713、アプリケーションプログラム714及び他のプログラムモジュール715を記憶するための大容量記憶装置707とをさらに含む。
【0131】
基本入力/出力システム706は、情報を表示するためのディスプレイ708と、ユーザーが情報を入力するための、例えばマウスや、キーボードなどの入力装置709とを含む。ここで、ディスプレイ708と入力装置709とは、いずれもシステムバス705に接続された入力/出力コントローラー710を介して中央処理装置701に接続される。基本入力/出力システム706は、キーボード、マウス又は電子スタイラスなどの複数の他の装置からの入力を受信し、処理するための入力/出力コントローラー710をさらに含んでよい。同様に、入力/出力コントローラー710は、ディスプレイ、プリンター又は他のタイプの出力装置に出力をさらに提供する。
【0132】
大容量記憶装置707は、システムバス705に接続された大容量記憶コントローラー(未図示)を介して中央処理装置701に接続される。大容量記憶装置707及びそれに関連するコンピュータ可読媒体は、コンピュータ機器700に不揮発性ストレージを提供する。つまり、大容量記憶装置707は、ハードディスク又はCD-ROMドライバーのようなコンピュータ可読媒体(未図示)を含んでよい。
【0133】
一般性を失うことなく、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含んでよい。コンピュータ記憶媒体は、例えばコンピュータ可読命令や、データ構造、プログラムモジュール又は他のデータなどの情報を記憶するための、任意の方法又は技術で実現される揮発性及び不揮発性、取り外し可能及び取り外し不能な媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EPROM、EEPROM、フラッシュメモリ又は他の固体記憶技術、CD-ROM、DVD又は他の光学記憶装置、磁気テープカートリッジ、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置を含む。当然のことながら、当業者は、コンピュータ記憶媒体が上述した幾つかの種類のものに限定されないことがわかる。上述したシステムメモリ704及び大容量記憶装置707は、メモリと総称されてよい。
【0134】
本願の種々の実施形態によれば、コンピュータ機器700はさらに、例えばインターネットなどのネットワークを介してネットワークにおける遠隔コンピュータに接続されて動作することができる。つまり、コンピュータ機器700は、システムバス705に接続されたネットワークインタフェースユニット711を介してネットワーク712に接続されることができ、或いは、ネットワークインタフェースユニット711を用いて他のタイプのネットワーク又は遠隔コンピュータシステム(未図示)に接続されることができる。
【0135】
メモリは、メモリに記憶され、かつ1つ以上のプロセッサによって実行されるように構成された1つ以上のコンピュータ可読命令をさらに含む。上記1つ以上のコンピュータ可読命令は、上記対話生成方法を実現するために用いられる。
【0136】
本願の実施形態はさらに、プロセッサによってロードされ実行されると、上記方法実施形態に係る対話生成方法を実現する少なくとも1つのコンピュータ可読命令、少なくとも1つのプログラム、コードセット又はコンピュータ可読命令セットが記憶されているコンピュータ可読記憶媒体を提供する。
【0137】
一実施形態において、本願は、電子機器で実行されると、電子機器に上記各方法実施形態に係る対話生成方法を実行させる、コンピュータ可読命令を含むコンピュータプログラム製品をさらに提供する。
【0138】
理解すべきこととして、上記各実施形態のフローチャートの各ステップは、矢印で順に示されるが、これらのステップは、必ずしも矢印で示される順序で順に実行されるものではない。本明細書で明確に説明しない限り、これらのステップの実行は、厳密な順序に限定されず、他の順序で実行されてもよい。さらに、上記各実施形態における少なくとも一部のステップは、複数のサブステップ又は複数の段階を含んでよく、これらのサブステップ又は段階は、必ずしも同じ時刻で実行されるものではなく、異なる時刻で実行されてもよく、これらのサブステップ又は段階の実行順序も、必ずしも順に行われるものではなく、その他のステップ又はその他のステップのサブステップや段階の少なくとも一部と順番に又は交互に実行されてもよい。
【0139】
当業者であれば理解できるように、上記実施形態の全部又は一部のステップの実現はハードウェアにより完了してもよく、プログラムが関連するハードウェアを命令することにより完了してもよく、該プログラムがコンピュータ可読記憶媒体に記憶することができ、上述した記憶媒体がリードオンリーメモリ、磁気ディスク又は光ディスクなどであってよい。
【0140】
以上の記載は、本願の好ましい実施形態に過ぎず、本願を限定するものではなく、本願の構想及び原則内に行われた全ての修正、等価置換及び改善などは、いずれも本願の保護範囲内に含まれるべきである。