JP2024011901A - 発話フィルタリング装置、対話システム、文脈モデルの学習データの生成装置及びコンピュータプログラム - Google Patents

発話フィルタリング装置、対話システム、文脈モデルの学習データの生成装置及びコンピュータプログラム Download PDF

Info

Publication number
JP2024011901A
JP2024011901A JP2022114229A JP2022114229A JP2024011901A JP 2024011901 A JP2024011901 A JP 2024011901A JP 2022114229 A JP2022114229 A JP 2022114229A JP 2022114229 A JP2022114229 A JP 2022114229A JP 2024011901 A JP2024011901 A JP 2024011901A
Authority
JP
Japan
Prior art keywords
utterance
context
vector
learning data
context model
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
Application number
JP2022114229A
Other languages
English (en)
Inventor
健太郎 鳥澤
Kentaro Torisawa
淳太 水野
Junta MIZUNO
ジュリアン クロエツェー
Kloetzer Julien
まな 鎌倉
Mana Kamakura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Information and Communications Technology
Original Assignee
National Institute of Information and Communications Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Institute of Information and Communications Technology filed Critical National Institute of Information and Communications Technology
Priority to JP2022114229A priority Critical patent/JP2024011901A/ja
Priority to PCT/JP2023/022349 priority patent/WO2024014230A1/ja
Publication of JP2024011901A publication Critical patent/JP2024011901A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/44Statistical methods, e.g. probability models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】対話形式により発話を出力する対話形式システムにおいて、問題となり得る表現が出力されることを防止する発話フィルタリング装置を提供する。【解決手段】発話フィルタリング装置は、発話を表す単語ベクトル列が入力されると、当該発話が置かれた文脈に、所定の単語群に含まれる単語の各々が現れる確率を要素とする確率ベクトルを出力するように予め学習済の文脈モデルと、発話を表す単語ベクトル列を文脈モデルに入力し、当該入力に応答して文脈モデルが出力する確率ベクトルの所定関数として定まる値がしきい値以上か否かに従って、発話を破棄すべきか承認すべきかを判定するための判定部456とを含む。【選択図】図6

Description

この発明は、対話装置に関し、特に、対話装置の生成するシステム発話が不適切な表現を含むか否かを判定するための技術に関する。
検索エンジン、質問応答システム、及び対話システムなど、ユーザとシステムとが何らかの対話形式で交信するシステムが普及しつつある。こうしたシステムでは、システムの応答(以下、「システム発話」という。)が、不適切な表現を含まないようにすることが望ましい。
こうした問題に対処するための直接手段は、問題のあるキーワードなどをリストしておくことである。システム発話候補の先頭から、そうしたキーワードのいずれかが含まれていないかどうかを調べる。もしもシステム発話候補がそうしたキーワードを1つでも含んでいればそのシステム発話候補を棄却し、次のシステム発話候補を選択する。こうして、リストされたキーワードを1つも含まないシステム発話候補が見つかれば、そのシステム発話候補を出力する。
後掲の特許文献1にそうした技術が開示されている。特許文献1に開示の技術は、ブラウザにより動的コンテンツを表示する場合に、ブラウザがその動的コンテンツにヘイトスピーチなどの問題となる表現が存在するか否かを判定する。
特開2022-082538号公報
特許文献1に開示された技術は、ブラウザが動的コンテンツを表示する場合、その動的コンテンツをブラウザがアプリケーションから受信したときに、コンテンツの内容をチェックするサーバに送信し、サーバからそのチェック結果を受信する、というものである。サーバにおける判定には、上記したとおり、問題のあるキーワードのリストが用いられる。
特許文献1に開示された技術は、コンテンツ全体に対する判定である。したがって、コンテンツの中に問題のある表現があれば、その一部のみの表示を止めたり、コンテンツ全体の表示を止めたりできる。
これに対し、一般に対話システムなどの出力は1発話である。そのため、仮に特許文献1に開示の技術を対話システムに適用する場合、システムの発話に問題となるキーワードが含まれていればその発話は出力されず、そうでなければ、その発話は出力される。
しかし、現実の発話においては、発話自体に問題となるキーワードが含まれていなくても、その文脈によっては問題とされるような発話もあり得る。例えば、例えば「肌の色」や「出身地」等の表現を問題ある表現として挙げた後、その表現について論評を加える、又は言外に悪意を含む発話をする、というような場合である。この場合、論評自体が悪意ではない場合、又は表現そのものが悪意とはいえない場合でも、問題となる表現を出力すること自体が問題となる可能性がある。例えば公共的なサービスを提供するサイト、又は企業が運営するサイトにおいてそのような表現が出力されると、その前後を見れば問題とはすべきでないよう表現であってもユーザから批判される危険性がある。質問応答システム、対話システムなどの出力は短い表現のみとなることがあり、特許文献1に記載のシステムのようにコンテンツ全体を検査してその出力の可否を決める技術によっては、問題となる可能性がある表現の出力が防止できない。
それ故に、この発明は、対話形式により発話を出力する対話形式システムにおいて、問題となり得る表現が出力されることを防止する発話フィルタリング装置を提供することを目的とする。
この発明の第1の局面に係る発話フィルタリング装置は、発話を表す単語ベクトル列が入力されると、当該発話が置かれた文脈に、所定の単語群に含まれる単語の各々が現れる確率を要素とする確率ベクトルを出力するように予め学習済の文脈モデルと、発話を表す単語ベクトル列を文脈モデルに入力し、当該入力に応答して文脈モデルが出力する確率ベクトルの少なくとも1つの要素が所定の条件を充足するか否かに従って、発話を破棄すべきか承認すべきかを判定するための判定手段とを含む。
好ましくは、判定手段は、確率ベクトルの少なくとも1つの要素の所定関数として定まる値が所定のしきい値以上か否かに従って、発話を破棄すべきか承認すべきかを判定するための手段を含む。
この発明の第2の局面に係る対話システムは、対話装置と、対話装置の出力する発話候補を入力として受けるように対話装置に結合された、上記した発話フィルタリング装置と、発話フィルタリング装置による判定結果に従って、対話装置の出力する発話をフィルタリングするための発話フィルタリング手段とを含む。
この発明の第3の局面に係るコンピュータプログラムは、コンピュータを、発話を表す単語ベクトル列が入力されると、当該発話が置かれた文脈に、所定の単語群に含まれる単語の各々が現れる確率を要素とする確率ベクトルを出力するように予め学習済の文脈モデルと、発話を表す単語ベクトル列を文脈モデルに入力し、当該入力に応答して文脈モデルが出力する確率ベクトルに基づいて、所定の単語群に含まれるいずれかの単語の確率がしきい値以上か否かに従って、発話を破棄すべきか承認すべきかを判定するための判定手段として機能させる。
この発明の第4の局面に係る学習データの生成装置は、コーパスに格納された各発話について、当該発話の文脈を抽出するための文脈抽出手段と、所定の単語群に含まれる単語の各々が、少なくとも文脈に出現しているか否かを示す文脈ベクトルを生成するための文脈ベクトル生成手段と、コーパスに格納された各発話について、当該発話を入力とし、文脈ベクトルを出力として組み合わせた学習データを生成するための学習データ生成手段とを含む。
好ましくは、文脈抽出手段は、コーパスに格納された各発話の文脈として、当該発話の前後の発話を抽出するための前後発話抽出手段を含む。
より好ましくは、文脈抽出手段は、コーパスに格納された各発話の文脈として、当該発話の直後に後続する発話を抽出するための後続発話抽出手段を含む。
さらに好ましくは、コーパスは、各々が原因部と結果部とを含む複数の因果関係表現を含み、文脈抽出手段は、複数の因果関係表現の各々について、当該因果関係表現の原因部を発話とし、因果関係表現の結果部を発話の文脈として抽出するための結果部抽出手段を含む。
この発明の第5の局面に係るコンピュータプログラムは、コンピュータを、コーパスに格納された各発話について、当該発話の文脈を抽出するための文脈抽出手段と、所定の単語群に含まれる単語の各々が、少なくとも文脈に出現しているか否かを示す文脈ベクトルを生成するための文脈ベクトル生成手段と、コーパスに格納された各発話について、当該発話を入力とし、文脈ベクトルを出力として組み合わせた学習データを生成するための学習データ生成手段と、学習データ生成手段により生成された学習データを用いて、ニューラルネットワークからなる文脈モデルの学習を行うための学習手段として機能させる。
この発明の上記及び他の目的、特徴、局面及び利点は、添付の図面と関連して理解されるこの発明に関する次の詳細な説明から明らかとなるであろう。
図1は、この発明の第1実施形態に係る対話システムの構成を示すブロック図である。 図2は、図1に示す学習データ作成部を実現するコンピュータプログラムの制御構造を示すフローチャートである。 図3は、図2に示すステップを実現するコンピュータプログラムの制御構造を示すフローチャートである。 図4は、図1に示す文脈モデルの構成を示すブロック図である。 図5は、図4に示す文脈モデルの学習の仕組みを示すブロック図である。 図6は、図1に示す対話装置を実現するコンピュータプログラムの制御構造を示すフローチャートである。 図7は、第1実施形態の変形例における、図6に対応するコンピュータプログラムの制御構造を示すフローチャートである。 図8は、この発明の第2実施形態に係る対話システムの構成を示すブロック図である。 図9は、図8に示す学習データ作成部を実現するコンピュータプログラムの制御構造を示すフローチャートである。 図10は、図9に示す処理の一部を実現するコンピュータプログラムの制御構造を示すフローチャートである。 図11は、この発明の第3実施形態に係る対話システムの構成を示すブロック図である。 図12は、図11に示す対話システムを実現するコンピュータプログラムの制御構造を示すフローチャートである。 図13は、この発明の各実施形態を実現するコンピュータの外観図である。 図14は、図13に外観を示すコンピュータシステムのハードウェアブロック図である。
以下の説明及び図面においては、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
1.第1実施形態
A.構成
図1を参照して、この発明の第1実施形態に係る対話システム50は、対話装置62と、対話装置62において、システム発話の候補のフィルタリングを行う際に使用される文脈モデル80と、複数のパッセージを記憶するパッセージDB(Database)70と、パッセージDB70に記憶された各パッセージを使用して文脈モデル80の学習を行うための文脈モデル学習システム60とを含む。
対話装置62は、入力発話82を受けて、入力発話82に対する応答として複数の応答候補を生成して出力するための対話エンジン84と、文脈モデル80を使用して対話エンジン84が出力する複数の応答候補をフィルタリングし、文脈モデル80によって問題がないと判定された応答候補であって入力発話82に対する応答として最適と判定された応答候補をシステム発話88として出力するためのフィルタリング部86とを含む。
この実施形態においては、対話エンジン84は、インターネットから収集した文の中から入力発話82に対する応答として適切と考えられる複数個の文を選択し、それぞれに入力発話82に対する応答として適切さを示すスコアを算出し、そのスコアの上位の所定個数を応答候補として出力する機能を持つ。対話エンジン84としては例えば、特開2019-197498に開示の対話システムを使用できる。上記文献に記載の対話システムにおいては、システム発話の候補は予め収集された多数の文から選択される。特に、予め収集された文の数が多いほど、入力発話82に対して適切な応答が見つけられる可能性が高くなる。したがって、これら多数の文は予めインターネット上から収集される。周知のように、インターネット上に存在する文の中には、表現として問題となり得るものも多い。したがって、実際にシステム発話としてどのような文を選択すべきかが問題となる。
パッセージDB70は、複数のパッセージを記憶する。複数のパッセージの各々は、文章の一部である連続する複数の文を含む。各パッセージが含む文は、例えば3文から9文程度である。この実施形態においては、パッセージDB70が記憶する各パッセージが含む文の数は様々である。これらパッセージは、上述したようにいずれも予めインターネットから収集されたものである。
文脈モデル学習システム60は、問題となり得る、又は問題を指し示す表現、キーワード、概念などを含む、予め準備されたトピック単語を列挙したトピック単語リスト74と、パッセージDB70に記憶された各パッセージに基づき、トピック単語リスト74に記憶されたトピック単語の各々を使用して、文脈モデル80の学習データを生成するための学習データ作成部72とを含む。この実施形態においては、トピック単語リスト74は、例えば問題となるキーワードを所定のデリミタにより区切って、コンピュータ読取可能な記憶媒体に記録したファイルを想定する。またトピック単語の数はNとする。
文脈モデル学習システム60はさらに、学習データ作成部72により生成された学習データを記憶するための学習データ記憶部76と、学習データ記憶部76に記憶された学習データを用いて学習部78の学習を実行するための学習部78とを含む。
図1に示す学習データ作成部72は、コンピュータハードウェアと、コンピュータハードウェアにより実行されるコンピュータプログラムとにより実現される。図2を参照して、そのコンピュータプログラムは、起動後、プログラムが使用する記憶領域の確保及び初期化、使用するファイルのオープン、初期パラメータの読み込み、データベースにアクセスするためのパラメータの設定などの初期化処理を実行するステップ150と、図1に示すトピック単語リスト74をファイルから読み出し、デリミタにより示される箇所において分離して、メモリにそれらを配列Tの各要素として展開し記憶するためのステップ152とを含む。
このプログラムはさらに、変数MAXに配列Tの添字の最大値を代入するステップ154と、図1に示すパッセージDB70に接続するステップ156とを含む。この実施形態においては、配列Tの添字は0から開始するものとする。すなわち、配列Tの要素数は変数MAXの値+1である。
このプログラムはさらに、パッセージDB70に記憶された各パッセージに対して以下のステップ160を実行して文脈モデル80の学習データを生成するステップ158と、ステップ158において生成された学習モデルを学習データ記憶部76に保存してこのプログラムの実行を終了するステップ162とを含む。
ステップ160は、処理対象のパッセージを文に分割し、各文を配列Sに展開するステップ200と、変数MAXに配列Sの最大添字の値を代入するステップ202とを含む。ステップ160はさらに、繰り返し制御変数j=1からj=MAX-1までの変数jの各値に対してステップ206の学習データを作成する処理を実行するステップ204とを含む。
図3を参照して、図2に示すステップ206は、要素数N+1の、要素が全て零のベクトルZを生成するステップ250と、文字列変数S3にS[j-1]、S[j]、及びS[j+1]を連結した文字列を代入するステップ252と、繰り返し変数i=0からN-1まで、変数iの1を1ずつ増分しながらステップ256を繰り返し実行するステップ254とを含む。ベクトルZは、要素Zから要素ZまでのN+1個の要素を持つ。Nは前述したとおり、トピック単語リスト74(図1を参照)にリストされたトピック単語の数である。
ステップ256は、処理対象のトピックワード、すなわち配列Tの添字=0の要素T[i]が文字列変数S3の表す文字列の中に存在するか否かに従って制御の流れを分岐させるステップ300と、ステップ300における判定が肯定的なときに、ベクトルZのi番目の要素Zに1を代入するステップ302とを含む。ステップ300における判定が否定的なとき、及びステップ302の後にはステップ256は終了する。
ステップ206はさらに、ステップ254の完了後に、ベクトルZの要素のうち、非零の要素数を変数Mに代入するステップ258と、変数Mの値が0か否かに従って制御の流れを分岐させるステップ260とを含む。ステップ206はさらに、ステップ260における判定が肯定的なときに、ベクトルZのN+1番目の要素に1を代入するステップ262と、ステップ260における判定が否定的なときに、ベクトルZを変数Mの値により除算するステップ264と、ステップ262及び264の後に、入力が配列Sのj番目の成分、すなわちS[j]であり、出力がベクトルZである学習データのレコードを学習データに追加してステップ206を終了するステップ266とを含む。
ステップ262の処理が実行される場合、ベクトルZの成分のうち、N+1番目の要素Zの値のみが1となり、他の全ての要素Z(k=0からN-1)の値は0となる。ステップ264が実行される場合、ベクトルZの要素のうち、要素Zk(k=0からN-1)は、文字列変数S3に代入された文字列の中に、その要素に対応するトピック単語が存在する場合には1/M、そうでない場合には0の値をとる。一方、要素Zの値は、文字列変数S3に代入された文字列の中に、その要素に対応するトピック単語が1つも存在しない場合には1、そうでない場合には0の値をとる。
図4に文脈モデル80の概略構成を示す。図4を参照して、文脈モデル80は、先頭に入力の先頭を示すCLSトークン340が、末尾に文の区切りを示すSEPトークン342が、それぞれ付された発話350を入力として受ける、ニューラルネットワークであるBERT(Bidirectional Encoder Representations from Transformers)352と、BERT352の最終隠れ層354の、CLSトークン340に対応するトランスフォーマ層であるCLS対応層356の内容をベクトルとして受けるように接続された、N+1個の出力を持つ全結合層358とを含む。文脈モデル80はさらに、全結合層358からのN+1個の出力に対してsoftMax演算を実行し、確率ベクトル362を出力するためのSoftMax層360を含む。BERT352は、この実施形態においては事前学習済のBERTLargeである。
図5は、BERT352の学習時の、BERT352と学習データとの関係を図示する。図5を参照して、学習データ400は、前述したとおり、入力として文(学習データ作成時における要素S[j])を含み、出力(正解データ)としてベクトルZを持つ。
学習時には、学習データ400内の文の先頭にCLSトークン340、末尾にSEPトークン342を付してBERT352に入力する。この入力に応答してSoftMax層360の出力には確率ベクトル362が得られる。この確率ベクトル362の各要素と学習データ400内の正解ラベルベクトル404との間の誤差を用いた誤差逆伝播法によりBERT352及び全結合層358の学習が行われる。
図6を参照して、図1に示すフィルタリング部86を実現するプログラムは、入力発話82を対話エンジン84に入力するステップ450と、ステップ450における処理に応答して対話エンジン84から出力されるシステム発話候補リストを取得するステップ452とを含む。
このプログラムはさらに、ステップ452において取得されたシステム発話候補リストの中の候補の各々について、システム発話として適切か否かを判定し、適切なら承認して残し、不適切なら棄却するステップ456を実行するステップ454と、ステップ454が完了した後に、承認された候補に対して入力発話82に対するシステム発話として適切な形式となる修正を行い、改めてスコアリングして再ランキングし、最もスコアの高いシステム発話候補をシステム発話88(図1)として出力するステップ458とを含む。
ステップ456は、対象となるシステム発話候補を文脈モデル80に入力するステップ480と、ステップ480における処理の結果、文脈モデル80から出力される確率ベクトル362を取得するステップ482と、ステップ482において取得された確率ベクトルのうち、予め好ましくない単語として指定されていた1又は複数の単語に対応する要素の最大値を取得するステップ484とを含む。
ステップ456はさらに、ステップ484において取得された値が所定のしきい値より大きいか否かを判定し、判定に従って制御の流れを分岐させるステップ486と、ステップ486における判定が肯定的なら、処理対象のシステム発話候補を破棄してステップ456を終了するステップ488と、ステップ486における判定が否定的なら、処理対象のシステム発話候補を承認し残してステップ456を終了するステップ490とを含む。
B.動作
上記第1実施形態に係る対話システム50は以下のように動作する。対話システム50の動作は、学習フェーズと対話フェーズとを含む。以下、最初に学習フェーズにおける対話システム50(文脈モデル学習システム60)の動作につき説明する。その後、対話フェーズにおける対話システム50(対話装置62)の動作につき説明する。
B1.学習フェーズ
学習フェーズにおいては、まず、パッセージDB70が準備される。パッセージDB70に記憶される各パッセージは、この実施形態においてはインターネット上から収集される。同様にトピック単語リスト74も準備される。トピック単語リスト74は、例えばパッセージDB70に記憶されたパッセージ群において出現する頻度が所定のしきい値より高い単語のリストである。すなわちこのリストは、しきい値を指定すればパッセージDB70などから自動的に抽出できる。なお、この実施形態においては、トピック単語リスト74は、各単語を所定のデリミタにより区分した文字列を格納したファイルである。
学習データ作成部72は、トピック単語リスト74を参照しながら、パッセージDB70から以下のようにして学習データを生成する。
図1を参照して、文脈モデル学習システム60が起動すると、学習データ作成部72は、コンピュータの各部を初期化する(図2のステップ150。以下、特に図面番号を指定しない限り、ステップ番号は図2に示すものである。)。この処理において学習データ作成部72は、パッセージDB70にアクセスするためのパラメータを設定し、トピック単語リスト74をオープンする。対話装置62はまた、配列T及びS、変数S3及びM、繰り返し制御変数i及びj、並びにベクトルZの記憶領域を確保する。
続いて学習データ作成部72は、トピック単語リスト74を読み、所定のデリミタで分離しながらその内容を配列Tの各要素に格納する(ステップ152)。学習データ作成部72はさらに、変数MAXに配列Tの添字の最大値を代入する(ステップ154)。学習データ作成部72はその後、図1に示すパッセージDB70に接続する(ステップ156)。この実施形態においては、配列Tの添字は0から変数MAXの値までである。
学習データ作成部72はさらに、パッセージDB70に記憶された各パッセージに対して以下のステップ160を実行することにより、学習データのレコードを生成する(ステップ158)。
ステップ160において学習データ作成部72は、まず、処理対象のパッセージを文に分割し、各文を配列Sの各要素に格納する(ステップ200)。さらに学習データ作成部72は、変数MAXに配列Sの最大添字の値を代入する(ステップ202)。学習データ作成部72はさらに、ステップ204において、繰り返し制御変数j=1からj=MAX-1までの変数jの各値に対してステップ206を実行し、学習データの新たなレコードを作成する。
図3を参照して、ステップ206においては、学習データ作成部72は、要素が全て零のベクトルZを生成する(図3のステップ250)。すなわち、このステップにおいて、ベクトルZが初期化される。続いて学習データ作成部72は、文字列変数S3にS[j-1]、S[j]、及びS[j+1]を連結した文字列を代入する(図3のステップ252)。さらに学習データ作成部72は、繰り返し変数i=0からN-1まで、変数iの1を1ずつ増分しながらステップ256を繰り返し実行する(図3のステップ254)。
学習データ作成部72は、ステップ256において、処理対象の配列Tの要素T[i]が文字列変数S3の表す文字列の中に存在するか否かを判定する(図3のステップ300)。学習データ作成部72は、ステップ300における判定が肯定的なときに、ベクトルZのi番目の要素Zに1を代入する(図3のステップ302)。ステップ300における判定が否定的なときには何も行わない。
繰り返し変数i=0からN-1まで、変数iの1を1ずつ増分しながら文脈モデル学習システム60がステップ256を実行する。この処理により、要素T[i]が文字列変数S3の表す文字列の中に存在する場合には、ベクトルZのi番目の要素Zの値が1となり、さもなければ要素Ziの値は0となる。
ステップ254が完了した後、学習データ作成部72は、ベクトルZの要素のうち、非零の要素数を変数Mに代入する(図3のステップ258)。学習データ作成部72は、変数Mの値が0か否かを判定する(図3のステップ260)。学習データ作成部72は、ステップ260における判定が肯定的なとき、すなわちベクトルZの要素の中に非零の要素が1個もなければ、ベクトルZのN+1番目の要素に1を代入する(図3のステップ262)。学習データ作成部72は、ステップ260における判定が否定的ならば、すなわちベクトルZの中に非零の要素が1個でもあれば、ベクトルZを変数Mの値により除算する(図3のステップ264)。
文脈モデル学習システム60がこの図3に示すステップ206を実行することにより、あるパッセージの、変数jのある値(1≦j≦MAX-1)により示される文と、その前後の文とを結合した文字列内(文字列変数S3の値)に、トピック単語リスト74の単語が1つでも存在していれば、ベクトルZのそれらの単語に対応する要素の値が1/Mとなり、それ以外の要素の値が0となるようなベクトルZが得られる。もしもトピック単語リスト74のいずれの単語も文字列変数S3が表す文字列内に存在していなければ、ベクトルZのN番目の要素Zは1となり、他の全ての要素の値は0となる。
この後、学習データ作成部72は、要素S[j]を入力とし、ベクトルZを出力として組み合わせることにより、要素S[j]に対応する学習データの新たなレコードを生成し、学習データ記憶部76に追加する(ステップ266)。
学習部78は、学習データの作成が完了した後、この学習データを用いて文脈モデル80の学習を行う。
図5を参照して、学習部78による文脈モデル80の学習について説明する。学習データ400は、前述したとおり、入力として文(学習データ作成時における要素S[j])を含み、出力(正解データ)としてベクトルZを持つ。図1に示す学習部78は、学習データ400の1レコードを読み、文の先頭にCLSトークン340を、末尾にSEPトークン342を付して学習用発話402を生成し、BERT352に入力する。BERT352はこの入力に対する演算を行い、その各隠れ層の内部状態を変化させる。全結合層358は、BERT352の最終隠れ層のCLS対応層356の出力ベクトルを受け、N+1個の出力をSoftMax層360に入力する。全結合層358の各位置の出力は、学習用発話402が、トピック単語リスト74にリストされた単語の中において、その位置に対応する単語と関連している確率を表す数値である。正解ラベルベクトル404は、これらN+1個の数値に対してsoftMax演算を行い、N+1個の要素P(0)からP(N)からなる確率ベクトル362を出力する。
学習部78は、この確率ベクトル362と、学習用発話402に対応する正解ラベルベクトル404の各要素との誤差を用いて、誤差逆伝播法によりBERT352及び全結合層358のパラメータの学習を行う。学習部78は、実際には上記した処理を学習データから選択したミニバッチごとに繰り返し実行する処理を所定の終了条件が成立するまで実行する。なお、この実施形態においては、この学習は以下に示す損失関数Lの値を最小化することにより行われる。
Figure 2024011901000002
このようにして学習が終了すると、文脈モデル80を対話装置62において使用できるようになる。
B2.対話フェーズ
図1を参照して、ユーザが入力発話82を対話エンジン84に入力する。対話エンジン84は、入力発話82に応答して、予めインターネットから収集した多数の文の中から入力発話82に対する応答として適切と思われる複数のシステム発話候補を選択する。入力発話82は、これら複数のシステム発話候補の各々に対し所定のスコアリング方法によりスコアを演算し、スコアに基づいてこれらシステム発話候補をランキングする。入力発話82は、このランキングによる上位の所定個数のシステム発話候補をフィルタリング部86に与える。
この実施形態においては、フィルタリング部86は、対話エンジン84から受けた各システム発話候補を文脈モデル80に入力し、その出力として確率ベクトル362を得る。フィルタリング部86は、この確率ベクトル362のうち、システム発話としてふさわしくないとして予め定められた要素の確率値が所定のしきい値より大きいか否かを判定する(ステップ486)。もしもこの判定が肯定的ならフィルタリング部86はそのシステム発話候補を破棄する(ステップ488)。もしもこの判定が否定的ならフィルタリング部86はそのシステム発話候補を承認し残す(ステップ490)。
フィルタリング部86は、このようにして残ったシステム発話候補に対し、入力発話82に対する応答としてふさわしい形にするための修正を行う。フィルタリング部86は、修正後のシステム発話候補を改めてスコアリングし、最も高いスコアのシステム発話候補をシステム発話88として出力する。
以上のようにこの実施形態によれば、システム発話候補のテキストそのものだけではなく、その文脈に出現する単語の可能性まで考慮して対話におけるシステム発話を選択する。システム発話は通常は1文であり、その前後の文脈は実際には存在しない。そのため、その発話が問題を生じ得る発話か否かをそのシステム発話のみから判定することはむずかしい。しかしこの実施形態によれば、システム発話がその前後の文脈とどのような関係を持ちうるかという情報を用いてシステム発話の選択を行うため、システム発話を出力することにより何らかの問題が生じる確率を低く抑えることができる。
C.変形例
上記第1実施形態においては、図6のステップ484からステップ490において示すように、出力確率ベクトルの中の指定された要素の値の最大値がしきい値より大きいか否かに従って、候補を破棄するか残すかを決めている。すなわち、出力確率ベクトルの要素の値をそのまま判定に用いている。しかしこの発明はそのような実施形態に限定されるわけではない。システム発話としてふさわしくないとしてあらかじめ定められた要素の確率値が所定のしきい値か否かを判定する際、確率ベクトルの1つの要素のみではなく、複数の要素を使用して判定してもよい。複数の要素を用いて判定する場合、例えば2つの要素の値がともにそれぞれ所定のしきい値以下か、あるいは他の要素がその所定のしきい値以上のどちらかが成り立つときは肯定的な判定をするというような、複数の要素に対する条件の論理式の値により判定することも可能であるし、より一般的に確率ベクトルの1又は複数の要素を所定関数に代入した値を用いて判定を行ってもよい。以下に説明するのはそのような変形例である。
図7に、第1実施形態の変形例について、図6に示す処理に対応する処理を実現するプログラムの制御構造を示す。このプログラムが図6に示すのと異なるのは、図6のステップ454に代えて、各候補についてステップ502を実行するステップ500を含む点である。
図7を参照して、ステップ502は、図6に示すものと同じステップ480及びステップ482と、出力ベクトルの要素の間で所定の演算を実行するステップ510と、ステップ510における演算の結果が1か否かに従って制御の流れを分岐させるステップ512とを含む。ステップ512における判定が肯定的なら、すなわちステップ510における論理演算の結果が1ならステップ488において処理中の候補は破棄される。ステップ512における判定が否定的なら、ステップ490において処理中の候補は承認され残される。
ステップ510における演算は、この実施形態においては予め出力確率ベクトルの要素が満たすべき条件に従って論理を組んでおくことにより実現される。出力確率ベクトルのi番目の要素をaと表せば、aは、トピック単語リストのi番目の単語がシステム発話候補の周辺に出現する確率を表す。したがって、この出力確率ベクトルの複数の要素に対して所定の論理演算を行うことにより、対象となるシステム発話候補を破棄すべきか残すべきかに関する複合的な条件が判定できる。
例えば、「トピック単語リストのi1番目の単語とi2番目の単語とがシステム発話候補の周辺に同時に出現する確率がしきい値より高いときにはそのシステム発話候補を破棄する」という条件に対しては、「もしもai1*ai2>しきい値ならシステム発話候補を破棄」というロジックを組んでおけばよい。
すなわち、この変形例によっても、第1実施形態と同様の効果を得ることができる。変形例においては、さらに第1実施形態よりも複雑な条件が設定できるので、よりシステム開発者の意図を明確に対話システムの動作に反映させることができる。
なお、第1実施形態においては、出力確率ベクトルはSoftMAX関数により全要素の値の和が1となるように正規化されている。しかし、上記したような演算を行う場合、しきい値を適切に調整できれば、SoftMAX関数への入力前のBERTの出力ベクトルをそのまま使用してもよい。また、第1実施形態と上記変形例とを組み合わせることもできる。
2.第2実施形態
A.構成
第1実施形態においては、図1に示すようにパッセージDB70に格納された各パッセージについて、対象となる文と、その直前の文と直後の文とを文脈として文脈モデル80の学習を行っている。しかしこの第2実施形態においては、対象となる表現に後続する表現のみを対象の表現の文脈として文脈モデルの学習を行う。
この第2実施形態においてはさらに、第1実施形態と異なり、対象となる表現と、その文脈である直後の表現との関係が因果関係を構成するようにして文脈モデルのための学習データを作成する点においても第1実施形態と異なる。
図8を参照して、第2実施形態に係る対話システム550は、文脈モデル580と、文脈モデル学習システム560と、学習後の文脈モデル580を利用してシステム発話のフィルタリングをして、入力発話82に対するシステム発話584を出力する対話装置562とを含む。
文脈モデル学習システム560は、インターネットから収集した多数の表現を記憶するコーパス570とコーパス570から因果関係を表す文又は表現を抽出するための因果関係抽出部572と、因果関係抽出部572が抽出因果関係を記憶するための因果関係コーパス574とを含む。
因果関係とは、因果関係の原因を表す表現である原因フレーズと、その結果を表す表現である結果フレーズとを含むフレーズ対をいう。そしてこの実施形態においては、原因フレーズに対し、対応する結果フレーズをその原因フレーズに対する文脈として文脈モデル580の学習データを生成する。
文脈モデル学習システム560はさらに、トピック単語リスト74と、トピック単語リスト74を参照しながら因果関係コーパス574に格納された各フレーズ対を用いて学習データの各レコードを作成するための学習データ作成部576と、学習データ作成部576により作成された学習データの各レコードを格納するための学習データ記憶部578とを含む。
文脈モデル学習システム560はさらに、学習データ記憶部578に格納された学習データにより文脈モデル580の学習を行うための学習部78を含む。
対話装置562は、第1実施形態と同じく、入力発話82を受けて複数個のシステム発話候補を出力するための対話エンジン84と、文脈モデル580を使用して対話エンジン84が出力する複数の応答候補をフィルタリングし、文脈モデル580によって問題がないと判定された応答候補であって入力発話82に対する応答として最適と判定された応答候補をシステム発話584として出力するためのフィルタリング部582とを含む。
因果関係抽出部572のように大量の文書を含むコーパスから因果関係を抽出する処理については、例えば特開2018-60364号公報に開示の技術を適用できる。
図9を参照して、図8に示す文脈モデル学習システム560を実現するためにコンピュータにより実行されるプログラムは、起動直後の初期化を行うステップ620と、図8に示すトピック単語リスト74をファイルから読み出し、デリミタにより示される箇所において分離して、メモリにそれらを配列Tの各要素として展開し記憶するためのステップ152とを含む。
このプログラムはさらに、変数MAXに配列Tの添字の最大値を代入するステップ154と、図8に示す因果関係コーパス574に接続するステップ622と、因果関係コーパス574に格納されている各因果関係に対してステップ626を実行することにより学習データを作成するステップ624と、ステップ624により作成された学習データを図8に示す学習データ記憶部578に保存し処理を終了するステップ628とを含む。
図10を参照して、図9に示すステップ626は、図3に示す第1実施形態のステップ206を実現するプログラムとほぼ同様の制御構造を持つ。ステップ206と異なり、ステップ626は、図3のステップ252に代えて、文字列変数S3に、処理対象の因果関係の結果フレーズを代入するステップ650を含む。ステップ206とさらに異なり、ステップ626は、図3のステップ266に代えて、入力が処理対象の因果関係の原因フレーズであり、出力がベクトルZである学習データのレコードを学習データに追加してステップ626を終了するステップ654を含む。
B.動作
上記第2実施形態に係る図8に示す対話システム550は以下のように動作する。対話システム550の動作は、学習フェーズと対話フェーズとを含む。これらのうち、対話フェーズにおける対話装置562の構成は、使用する文脈モデルが異なる点を除き第1実施形態における対話装置62と同じであり、動作も同じである。したがって、以下においては、学習フェーズにおける対話システム550(文脈モデル学習システム560)の動作につき説明する。
B1.学習フェーズ
学習フェーズに先立ち、コーパス570には大量のテキストが蓄積されている。これらのテキストは、例えばインターネットから収集するようにしてもよい。因果関係抽出部572がこれらの大量のテキストから因果関係を抽出し、因果関係コーパス574に蓄積する。
学習データ作成部576がトピック単語リスト74を参照しながら因果関係コーパス574に記憶された各因果関係を使用して学習データを作成し学習データ記憶部578に蓄積する。
図8を参照して、文脈モデル学習システム560が起動すると、学習データ作成部576は、コンピュータの各部を初期化する(図9のステップ620。以下、特に図面番号を指定しない限り、ステップ番号は図9に示すものである。)。この処理において学習データ作成部576は、因果関係コーパス574にアクセスするためのパラメータを設定し、トピック単語リスト74をオープンする。学習データ作成部576はまた、配列T及びS、変数S3及びM、繰り返し制御変数i及びj、並びにベクトルZの記憶領域を確保する。
続いて学習データ作成部576は、トピック単語リスト74を読み、所定のデリミタにより分離しながらその内容を配列Tの各要素に格納する(ステップ152)。学習データ作成部576はさらに、変数MAXに配列Tの添字の最大値を代入する(ステップ154)。学習データ作成部576はその後、図8に示す因果関係コーパス574に接続する(ステップ622)。この実施形態においても、配列Tの添字は0から変数MAXの値までである。
学習データ作成部576はさらに、因果関係コーパス574に記憶された各因果関係に対して以下のステップ626を実行することにより、学習データのレコードを生成する(ステップ624)。
図10を参照して、ステップ626において、学習データ作成部576は、要素が全て零のベクトルZを生成する(図10のステップ250)。すなわち、このステップにおいて、ベクトルZが初期化される。続いて学習データ作成部576は、文字列変数S3に処理対象の因果関係の結果フレーズの文字列を代入する(図10のステップ650)。さらに学習データ作成部576は、繰り返し変数i=0からN-1まで、変数iの1を1ずつ増分しながらステップ256を繰り返し実行する(図10のステップ652)。
学習データ作成部576は、ステップ256において、処理対象の配列Tの要素T[i]が文字列変数S3の表す文字列の中に存在するか否かを判定する(図10のステップ300)。学習データ作成部576は、ステップ300における判定が肯定的なときに、ベクトルZのi番目の要素Zに1を代入する(ステップ302)。ステップ300における判定が否定的なときには学習データ作成部576は何も行わない。
繰り返し変数i=0からN-1まで、変数iの1を1ずつ増分しながら学習データ作成部576がステップ256を実行する。この処理により、要素T[i]が文字列変数S3の表す文字列の中に存在する場合には、ベクトルZのi番目の要素Zの値が1となり、さもなければ要素Zの値は0となる。
ステップ254が完了した後、学習データ作成部576は、ベクトルZの要素の中で非零の要素の数を変数Mに代入する(図10のステップ258)。学習データ作成部576は、変数Mの値が0か否かを判定する(ステップ260)。学習データ作成部576は、ステップ260における判定が肯定的なとき、すなわちベクトルZの要素の中に非零の要素が1個もなければ、ベクトルZのN+1番目の要素Zに1を代入する(図10のステップ262)。学習データ作成部576は、ステップ260における判定が否定的ならば、すなわちベクトルZの中に非零の要素が1個でもあれば、ベクトルZを変数Mの値により除算する(図10のステップ264)。すなわち、ベクトルZの各要素を変数Mの値により除算する。
学習データ作成部576がこの図10に示すステップ626を実行することにより、ある因果関係の結果フレーズに、トピック単語リスト74の単語が1つでも存在していれば、ベクトルZのそれらの単語に対応する要素の値が1/Mとなり、それ以外の要素の値が0となるようなベクトルZが得られる。もしもトピック単語リスト74のいずれの単語も文字列変数S3が表す文字列内に存在していなければ、ベクトルZのN番目の要素Zは1となり、他の全ての要素の値は0となる。
この後、学習データ作成部576は、処理対象の因果関係の原因フレーズを入力とし、ベクトルZを出力として組み合わせることにより、処理対象の因果関係に対応する学習データの新たなレコードを生成し、図8に示す学習データ記憶部578に追加する(ステップ654)。
対話装置562は、このようにして作成された学習データを使用して文脈モデル580の学習を行う。学習部78による処理は、使用する学習データが異なるだけで、図1に示す学習部78によるものと異なるところはない。
B2.対話フェーズ
第2実施形態に係る対話装置562による対話処理も、第1実施形態において使用する文脈モデル80に代えて、上に述べた方法により学習した文脈モデル580を使う点を除き、第1実施形態に係るフィルタリング部86と異なるところはない。
このように第2実施形態によれば、予め大量の因果関係を準備しておいて、各因果関係の結果フレーズを原因フレーズの文脈とみなして第1実施形態と同様に学習データを準備する。この学習データを使用して文脈モデル580の学習を行うことにより、第1実施形態と同様、システム発話候補のテキストそのものだけではなく、文脈に出現する単語の可能性まで考慮して、システム発話が妥当なものか否かを判定する。対話におけるシステム発話は通常は1文であり、その前後の文脈は実際には存在しない。そのため、その発話が問題を生じ得る発話か否かをそのシステム発話のみから判定することはむずかしい。しかしこの実施形態によれば、システム発話がその前後の文脈とどのような関係を持ちうるかという情報を用いてシステム発話の選択を行うため、システム発話を出力することにより何らかの問題が生じる確率を低く抑えることができる。
3.第3実施形態
A.構成
上記第1実施形態及び第2実施形態においては、システム発話候補が入力されたときに、基本的にはそのシステム発話候補に対する文脈モデルの出力のみを使用して、そのシステム発話候補を破棄するか残すかを決定している。しかしこの発明はそのような実施形態には限定されない。この第3実施形態においては、システム発話候補に対する文脈モデルの出力するベクトルと、予め準備した複数の対照用ベクトルとの類似度を調べ、その類似度がある条件を満たしたときにそのシステム発話候補を破棄する。
図11に、この発明の第3実施形態に係る対話システム700のブロック図を示す。図11を参照して、対話システム700は、第1実施形態において使用したものと同様の対話エンジン84及び文脈モデル80と、対話エンジン84が出力するシステム発話候補に対して文脈モデル80が出力する出力確率ベクトルと、予め準備した複数の対照用ベクトルとのコサイン類似度を調べ、コサイン類似度が所定のしきい値以上となる対照用ベクトルの数がしきい値未満ならそのシステム発話候補を残し、そうでないならシステム発話候補を破棄して、最終的なスコアリングに基づいてシステム発話714を出力するフィルタリング部712を含む。文脈モデル80は第1実施形態に関する説明において説明した方法に従って学習済だとする。
対話システム700はさらに、フィルタリング部712がフィルタリング用に使用する対照用ベクトルを予め生成し記憶しておくフィルタリングベクトル生成部710を含む。
より具体的には、フィルタリングベクトル生成部710は、周辺に好ましくない表現が出現しやすいと考えられる複数の表現を記憶するためのフィルタリング用表現記憶部720と、フィルタリング用表現記憶部720に記憶されている各表現を文脈モデル80に入力することにより、各表現に対する文脈モデル80の出力確率ベクトルからなる対照用ベクトルを生成するための対照用ベクトル生成部722と、対照用ベクトル生成部722により生成された対照用ベクトルを記憶するための対照用ベクトル記憶部724とを含む。対照用ベクトル記憶部724はフィルタリング部712からアクセス可能なようにフィルタリング部712に接続される。
この実施形態は、周囲に好ましくない表現が出現する確率が高い表現から得られた出力確率ベクトルと、システム発話候補から得られた出力確率ベクトルとの類似度が高い場合には、そのシステム発話候補の周辺に好ましくない表現が出現する確率が高いという発見に基づくものである。すなわち、そのようなシステム発話候補を対話システムの出力とすることは望ましくないという思想は、そのような発見がなければ得ることができない。
図12に、図11に示すフィルタリング部712をコンピュータにより実現するコンピュータプログラムの制御構造をフローチャートにより示す。図12を参照して、このプログラムは、図6に示すものと同様のステップ450及びステップ452と、各システム発話候補に対してステップ802を実行するステップ800とを含む。
ステップ802は、図6に示すものと同様のステップ480及びステップ482と、ステップ482に続き、カウンタを表す変数に0を代入するステップ820とを含む。このカウンタは、以下の処理において、システム発話候補から得られた確率ベクトルとの類似度がしきい値以上であるフィルタリング用表現の数を計数するために使用される。
ステップ802はさらに、各対照用ベクトルについて、システム発話候補から得られた確率ベクトルと類似していればカウンタを1だけ増分する処理を行うステップ824と、ステップ822の処理の終了後に、カウンタの値が第2しきい値未満か否かに従って制御の流れを分岐させるステップ826と、ステップ826における判定が肯定的なときに対象となるシステム発話候補を残し、ステップ826における判定が否定的なときに、システム発話候補を破棄するステップ830とを含む。ステップ828及びステップ830によりステップ802は終了する。
ステップ824は、対象ベクトルとシステム発話候補から得られた確率ベクトルとのコサイン類似度を計算するステップ840と、ステップ840において計算されたコサイン類似度が第1しきい値以上か否かに従って制御の流れを分岐させるステップ842と、ステップ842における判定が肯定的なときに、カウンタの値を1増分してステップ824の実行を終了するステップ844とを含む。ステップ842の判定が否定的なときには、カウンタを増分することなくステップ824の実行を終了する。
第1しきい値の値は実験により定めることが望ましい。第2しきい値については1以上であればよいが、典型的には第2しきい値を1とすることが望ましいと考えられる。ただし、第2しきい値の値も、フィルタリング用の表現としてどのようなものを使用したかに依存するため、実験により定める方が望ましいと考えられる。
B.動作
この第3実施形態に係る対話システム700には、3つの動作フェーズがある。第1は対話システム700の学習フェーズである。第2は対照用ベクトルの生成フェーズである。第3はフィルタリング部712を使用する対話フェーズである。これらのうち、学習フェーズは第1実施形態に関連して説明したとおりである。したがって、ここでは対照用ベクトルの生成フェーズと、対話フェーズとを順に説明する。
B1.対照用ベクトルの生成フェーズ
図11を参照して、予め周辺に好ましくない表現が出現する確率の高い表現が、フィルタリング用表現として収集され、フィルタリング用表現記憶部720に記憶される。対照用ベクトル生成部722は、これらフィルタリング用表現の各々を文脈モデル80に与え、文脈モデル80がそれに応答して出力する確率ベクトルを得て、対照用ベクトルとして対照用ベクトル記憶部724に記憶させる。このようにして、フィルタリング用表現記憶部720に記憶されている全てのフィルタリング用表現に対し、対照用ベクトルが生成され対照用ベクトル記憶部724に記憶されれば対照用ベクトルの生成フェーズは終了である。
もちろん、この実施形態においては、フィルタリング部712の稼働後に新たに見つけられたフィルタリング用表現から対照用ベクトルを生成し対照用ベクトル記憶部724に追加してもよい。
B2.対話フェーズ
対話エンジン84は、入力発話82(図12のステップ450)に対して複数のシステム発話候補を生成しシステム発話候補リストとしてフィルタリング部712に与える(ステップ452)。
フィルタリング部712は、これら各システム発話候補について(ステップ800)以下の処理(ステップ802)を行う。フィルタリング部712はまず、各システム発話候補を文脈モデル80に入力することにより(ステップ480)、その出力確率ベクトルを取得する(ステップ482)。フィルタリング部712はカウンタを表す変数に0を代入し(ステップ820)、各対照ベクトルに対して(ステップ824)、ステップ824に示す処理を行う。
ステップ824においては、フィルタリング部712は、処理中のシステム発話候補と処理中の対照用ベクトルとのコサイン類似度を計算し(ステップ840)、その値が第1しきい値以上か否かを判定する(ステップ842)。コサイン類似度が第1しきい値以上ならステップ844においてカウンタに1を加算し、次の対照用ベクトルの処理に進む。コサイン類似度が第1しきい値未満なら何もせず、次の対照用ベクトルの処理に進む。
このようにしてステップ824の処理が全ての対照用ベクトルに対して完了すると、カウンタには、処理中のシステム発話候補とのコサイン類似度が第1しきい値以上の対照用ベクトルの数が保存されている。
フィルタリング部712はさらに、カウンタの値が第2しきい値未満か否かを判定する(ステップ826)。フィルタリング部712は、カウンタの値が第2しきい値未満なら処理中のシステム発話候補を残して(ステップ828)、次のシステム発話候補の処理を開始する。フィルタリング部712は、カウンタの値が第2しきい値以上なら、処理中のシステム発話候補を破棄し(ステップ830)、次のシステム発話候補の処理を開始する。
このようにフィルタリング部712は、全てのシステム発話候補について破棄するか残すかの判定をした後、残ったシステム発話候補について再ランキングの処理を実行し、最もスコアの高いシステム発話候補をシステム発話714(図11)として出力する。
以上のようにこの実施形態に係る対話システム700においては、文脈モデル80の出力する確率ベクトルの値のみを用いるのではなく、予め準備された複数の対照用ベクトルの各々と、システム発話候補との類似度を計算する。計算された類似度が高い対照用ベクトルの数が所定個数(第2しきい値)以上ある場合にはシステム発話候補は破棄され、そうでないシステム発話候補は残される。第2しきい値は1以上の数であればよく、簡略には第2しきい値は1としてもよい。
以上のようにこの第3実施形態においては、第1実施形態及び第2実施形態と同様の文脈モデルを用いながら、フィルタリング方法としては第1実施形態とも第2実施形態との異なるものを用いる。この第3実施形態によっても、第1実施形態及び第2実施形態と同様の効果を得ることができる。
なお、上記第3実施形態においては、対照用ベクトルとシステム発話候補との比較にベクトル類似度を用いている。しかしこの発明はそのような実施形態に限定されるわけではない。2つのベクトルの間の類似性の尺度になる値であればどのようなものを用いてもよい。例えば2つのベクトルを正規化した後に、両者を位置ベクトルと見て、両者の先端の間の距離を類似性の尺度としてもよい。又はベクトルの正規化後の対応する各要素の間の2乗誤差の和を類似性の尺度としてもよい。
4.コンピュータによる実現
図13は、上記各実施形態を実現するコンピュータシステムの1例の外観図である。図14は、図13に示すコンピュータシステムのハードウェア構成の1例を示すブロック図である。
図13を参照して、このコンピュータシステム950は、DVD(Digital Versatile Disc)ドライブ1002を有するコンピュータ970と、いずれもコンピュータ970に接続された、ユーザと対話するためのキーボード974、マウス976、及びモニタ972とを含む。もちろんこれらはユーザ対話が必要となったときのための構成の一例であって、ユーザ対話に利用できる一般のハードウェア及びソフトウェア(例えばタッチパネル、音声入力、ポインティングデバイス一般)であればどのようなものも利用できる。
図14を参照して、コンピュータ970は、DVDドライブ1002に加えて、CPU(Central Processing Unit)990と、GPU(Graphics Processing Unit)992と、CPU990、GPU992、DVDドライブ1002に接続されたバス1010と、バス1010に接続され、コンピュータ970のブートアッププログラムなどを記憶するROM(Read-Only Memory)996と、バス1010に接続され、プログラムを構成する命令、システムプログラム、及び作業データなどを記憶するRAM(Random Access Memory)998と、バス1010に接続された不揮発性メモリであるSSD(Solid State Drive)1000とを含む。SSD1000は、CPU990及びGPU992が実行するプログラム、並びにCPU990及びGPU992が実行するプログラムが使用するデータなどを記憶するためのものである。コンピュータ970はさらに、他端末との通信を可能とするネットワーク986への接続を提供するネットワークI/F(Interface)1008と、USB(Universal Serial Bus)メモリ984が着脱可能で、USBメモリ984とコンピュータ970内の各部との通信を提供するUSBポート1006とを含む。
コンピュータ970はさらに、マイクロフォン982、スピーカ980及びバス1010に接続され、CPU990により生成されRAM998又はSSD1000に保存された音声信号、映像信号及びテキストデータをCPU990の指示に従って読み出し、アナログ変換及び増幅処理をしてスピーカ980を駆動したり、マイクロフォン982からのアナログの音声信号をデジタル化し、RAM998又はSSD1000の、CPU990により指定される任意のアドレスに保存したりするための音声I/F1004を含む。
上記実施形態において、図1に示す対話システム50及び図8に示す対話システム550の各部を実現するためのプログラム、ニューラルネットワークのパラメータ並びにニューラルネットワークプログラムなどは、いずれも例えば図14に示すSSD1000、RAM998、DVD978又はUSBメモリ984、若しくはネットワークI/F1008及びネットワーク986を介して接続された図示しない外部装置の記憶媒体などに格納される。典型的には、これらのデータ及びパラメータなどは、例えば外部からSSD1000に書込まれコンピュータ970による実行時にはRAM998にロードされる。
このコンピュータシステムを、図1及び図8にそれぞれ示す対話システム50及び550並びにそれらの各構成要素の機能を実現するよう動作させるためのコンピュータプログラムは、DVDドライブ1002に装着されるDVD978に記憶され、DVDドライブ1002からSSD1000に転送される。又は、これらのプログラムはUSBメモリ984に記憶され、USBメモリ984をUSBポート1006に装着し、プログラムをSSD1000に転送する。又は、このプログラムはネットワーク986を通じてコンピュータ970に送信されSSD1000に記憶されてもよい。
もちろん、キーボード974、モニタ972及びマウス976を用いてソースプログラムを入力し、コンパイルした後のオブジェクトプログラムをSSD1000に格納してもよい。スクリプト言語の場合には、キーボード974などを用いて入力したスクリプトをSSD1000に格納してもよい。仮想マシン上で動作するプログラムの場合には、仮想マシンとして機能するプログラムを予めコンピュータ970にインストールしておく必要がある。ニューラルネットワークの訓練及びテストには大量の計算が伴うため、特に数値計算を行う実体であるプログラム部分はスクリプト言語ではなくコンピュータのネイティブなコードからなるオブジェクトプログラムとして本発明の実施形態の各部を実現する方が好ましい。
プログラムは実行のときにRAM998にロードされる。CPU990は、その内部のプログラムカウンタと呼ばれるレジスタ(図示せず)により示されるアドレスに従ってRAM998からプログラムを読み出して命令を解釈し、命令の実行に必要なデータを命令により指定されるアドレスに従ってRAM998、SSD1000又はそれ以外の機器から読み出して命令により指定される処理を実行する。CPU990は、実行結果のデータを、RAM998、SSD1000、CPU990内のレジスタなど、プログラムにより指定されるアドレスに格納する。このとき、プログラムカウンタの値もプログラムによって更新される。コンピュータプログラムは、DVD978から、USBメモリ984から、又はネットワークを介して、RAM998に直接にロードしてもよい。なお、CPU990が実行するプログラムの中で、一部のタスク(主として数値計算)については、プログラムに含まれる命令により、又はCPU990による命令実行時の解析結果に従って、GPU992にディスパッチされる。
コンピュータ970との協働により上記した実施形態に係る各部の機能を実現するプログラムは、それら機能を実現するようコンピュータ970を動作させるように記述され配列された複数の命令を含む。この命令を実行するのに必要な基本的機能のいくつかはコンピュータ970上で動作するオペレーティングシステム(OS(Operating System))若しくはサードパーティのプログラム、又はコンピュータ970にインストールされる各種ツールキットのモジュールにより提供される。したがって、このプログラムはこの実施形態のシステム及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令の中で、所望の結果が得られるように制御されたやり方で適切な機能又は「プログラミング・ツール・キット」の機能を静的にリンクすることで、又はプログラムの実行時に動的にそれら機能に動的リンクことにより、上記した各装置及びその構成要素としての動作を実行する命令のみを含んでいればよい。そのためのコンピュータ970の動作方法は周知であるので、ここでは繰返さない。
なお、GPU992は並列処理を行うことが可能であり、機械学習に伴う多量の計算を同時並列的又はパイプライン的に実行できる。例えばプログラムのコンパイル時にプログラム中で発見された並列的計算要素、又はプログラムの実行時に発見された並列的計算要素は、随時、CPU990からGPU992にディスパッチされ、実行され、その結果が直接に、又はRAM998の所定アドレスを介してCPU990に返され、プログラム中の所定の変数に代入される。
4.変形例
上記実施形態においては、トピック単語リスト74はパッセージ群などにおける出現頻度がしきい値より高い単語をリストしたものである。しかしこの発明はそのような実施形態には限定されない。たとえば、パッセージ群などにおける出現頻度が上位の所定個数の単語をリストしてもよい。そうした手法ではなく、予め手作業により収集した注意すべき表現に含まれる単語を抽出することによりトピック単語リスト74を作成してもよい。又は、パッセージ群などにおける出現頻度がしきい値より高い単語、又は出現頻度の順位が上位の所定個数の単語と、予め手作業により作成した注意すべき単語のリストとの和集合又は積集合の単語をトピック単語リスト74としてもよい。
さらに、上記実施形態においては特に単語の品詞などの種類については制限していない。しかしこの発明はそのような実施形態に限定されるわけではない。特定の品詞(例えば動詞、形容詞及び名詞)などにより単語を制限してもよいし、いわゆる内容語のみに単語を限定してもよい。またトピック単語リスト74には、単語に限らずいわゆるフレーズなどを追加してもよい。
上記実施形態においては、文脈モデルとしてBERTを使用している。しかしこの発明はそのような実施形態には限定されないBERT以外のアーキテクチャによるモデルを文脈モデルとして使用してもよい。
上記実施形態は、対話システムに関するものである。しかしこの発明はそのような実施形態には限定されない。質問応答システム、対話型タスク志向システム、ユーザからの連絡に対する応答システムなど、人と何らかのシステムとの間のコミュニケーションを対話型で行うものであればどのようなものにも適用できる。
上記第1実施形態においては、学習データを作成するために使用されるパッセージとしては特に限定を設けている訳ではない。しかし、第2実施形態のように、因果関係から学習データを作成することにより、良好な結果が得られている。したがって、第1実施形態において、例えば因果関係などの特定の表現を含むパッセージを用いて学習データを作成してもよい。
また、第2実施形態には因果関係を用いている。因果関係は、原因フレーズと結果フレーズとの組み合わせである。ある因果関係の結果フレーズと、別の因果関係の原因フレーズとが類似している場合には、2つの因果関係を連鎖させることができる。そのような因果関係の連鎖により、最初の因果関係の原因フレーズから2つの結果フレーズが得られる。同様に3個以上の結果フレーズを最初の原因フレーズと関係付けることもできる。このような関係を使用し、第2実施形態における文脈として、1つの結果フレーズだけでなく、連鎖する2個以上の結果フレーズを使用して学習データを作成してもよい。
今回開示された実施形態は単に例示であって、本発明が上記した実施形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。
50、550、700 対話システム
60、560 文脈モデル学習システム
62、562 対話装置
70 パッセージDB
72、576 学習データ作成部
74 トピック単語リスト
76、578 学習データ記憶部
78 学習部
80、580 文脈モデル
82 入力発話
84 対話エンジン
86、582、712 フィルタリング部
88、584、714 システム発話
340 CLSトークン
342 SEPトークン
350 発話
352 BERT
354 最終隠れ層
356 CLS対応層
358 全結合層
360 SoftMax層
362 確率ベクトル
400 学習データ
402 学習用発話
404 正解ラベルベクトル
570 コーパス
572 因果関係抽出部
574 因果関係コーパス
710 フィルタリングベクトル生成部
722 対照用ベクトル生成部

Claims (6)

  1. 発話を表す単語ベクトル列が入力されると、当該発話が置かれた文脈に、所定の単語群に含まれる単語の各々が現れる確率を要素とする確率ベクトルを出力するように予め学習済の文脈モデルと、
    発話を表す単語ベクトル列を前記文脈モデルに入力し、当該入力に応答して前記文脈モデルが出力する前記確率ベクトルの少なくとも1つの要素が所定の条件を充足するか否かに従って、前記発話を破棄すべきか承認すべきかを判定するための判定手段とを含む、発話フィルタリング装置。
  2. 前記判定手段は、前記確率ベクトルの少なくとも1つの要素の所定関数として定まる値が所定のしきい値以上か否かに従って、前記発話を破棄すべきか承認すべきかを判定するための手段を含む、請求項1に記載の発話フィルタリング装置。
  3. 対話装置と、
    前記対話装置の出力する発話候補を入力として受けるように前記対話装置に結合された、請求項1に記載の発話フィルタリング装置と、
    前記発話フィルタリング装置による判定結果に従って、前記対話装置の出力する前記発話をフィルタリングするための発話フィルタリング手段とを含む、対話システム。
  4. コンピュータを、
    発話を表す単語ベクトル列が入力されると、当該発話が置かれた文脈に、所定の単語群に含まれる単語の各々が現れる確率を要素とする確率ベクトルを出力するように予め学習済の文脈モデルと、
    発話を表す単語ベクトル列を前記文脈モデルに入力し、当該入力に応答して前記文脈モデルが出力する前記確率ベクトルに基づいて、所定の単語群に含まれるいずれかの単語の確率がしきい値以上か否かに従って、前記発話を破棄すべきか承認すべきかを判定するための判定手段として機能させる、コンピュータプログラム。
  5. コーパスに格納された各発話について、当該発話の文脈を抽出するための文脈抽出手段と、
    所定の単語群に含まれる単語の各々が、少なくとも前記文脈に出現しているか否かを示す文脈ベクトルを生成するための文脈ベクトル生成手段と、
    コーパスに格納された各発話について、当該発話を入力とし、前記文脈ベクトルを出力として組み合わせた学習データを生成するための学習データ生成手段とを含む、学習データの生成装置。
  6. 前記コーパスは、各々が原因部と結果部とを含む複数の因果関係表現を含み、
    前記文脈抽出手段は、前記複数の因果関係表現の各々について、当該因果関係表現の前記原因部を前記発話とし、前記因果関係表現の前記結果部を前記発話の前記文脈として抽出するための結果部抽出手段を含む、請求項5に記載の学習データの生成装置。
JP2022114229A 2022-07-15 2022-07-15 発話フィルタリング装置、対話システム、文脈モデルの学習データの生成装置及びコンピュータプログラム Pending JP2024011901A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022114229A JP2024011901A (ja) 2022-07-15 2022-07-15 発話フィルタリング装置、対話システム、文脈モデルの学習データの生成装置及びコンピュータプログラム
PCT/JP2023/022349 WO2024014230A1 (ja) 2022-07-15 2023-06-16 発話フィルタリング装置、対話システム、文脈モデルの学習データの生成装置及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022114229A JP2024011901A (ja) 2022-07-15 2022-07-15 発話フィルタリング装置、対話システム、文脈モデルの学習データの生成装置及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2024011901A true JP2024011901A (ja) 2024-01-25

Family

ID=89536452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022114229A Pending JP2024011901A (ja) 2022-07-15 2022-07-15 発話フィルタリング装置、対話システム、文脈モデルの学習データの生成装置及びコンピュータプログラム

Country Status (2)

Country Link
JP (1) JP2024011901A (ja)
WO (1) WO2024014230A1 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6650901B2 (ja) * 2017-03-23 2020-02-19 日本電信電話株式会社 発話文判定装置、方法、及びプログラム

Also Published As

Publication number Publication date
WO2024014230A1 (ja) 2024-01-18

Similar Documents

Publication Publication Date Title
JP6678764B1 (ja) 多言語での自動化されたアシスタントを用いたエンドツーエンドコミュニケーションの促進
US10936664B2 (en) Dialogue system and computer program therefor
US9330659B2 (en) Facilitating development of a spoken natural language interface
US9081411B2 (en) Rapid development of virtual personal assistant applications
KR20210146368A (ko) 숫자 시퀀스에 대한 종단 간 자동 음성 인식
US20170286397A1 (en) Predictive Embeddings
US20210034817A1 (en) Request paraphrasing system, request paraphrasing model and request determining model training method, and dialogue system
CN110741364A (zh) 确定自动化助理对话的状态
Kheddar et al. Deep transfer learning for automatic speech recognition: Towards better generalization
US11023685B2 (en) Affect-enriched vector representation of words for use in machine-learning models
US11355122B1 (en) Using machine learning to correct the output of an automatic speech recognition system
US20220165257A1 (en) Neural sentence generator for virtual assistants
JP7279099B2 (ja) 対話管理
CN113780418A (zh) 一种数据的筛选方法、系统、设备和存储介质
Shynkarenko et al. Constructive model of the natural language
WO2024069978A1 (ja) 生成装置、学習装置、生成方法、学習方法、及びプログラム
WO2024014230A1 (ja) 発話フィルタリング装置、対話システム、文脈モデルの学習データの生成装置及びコンピュータプログラム
Iori et al. The direction of technical change in AI and the trajectory effects of government funding
Debatin et al. Offline Speech Recognition Development
Gupta et al. Hybrid deep learning based automatic speech recognition model for recognizing non-Indian languages
KR20220056462A (ko) 외부 정렬정보에 기반한 실시간 동시통역 모델 학습 방법, 동시통역 방법 및 시스템
JP2017167378A (ja) 単語スコア計算装置、単語スコア計算方法及びプログラム
WO2022249946A1 (ja) 対話装置及びその訓練装置
US11379666B2 (en) Suggestion of new entity types with discriminative term importance analysis
Bowden A Review of Textual and Voice Processing Algorithms in the Field of Natural Language Processing