(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023021636
(43)【公開日】2023-02-14
(54)【発明の名称】自然言語処理モデル取得装置、自然言語処理装置、自然言語処理モデル取得方法、自然言語処理方法及びプログラム
(51)【国際特許分類】
G06F 40/56 20200101AFI20230207BHJP
G06F 40/44 20200101ALI20230207BHJP
【FI】
G06F40/56
G06F40/44
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021126622
(22)【出願日】2021-08-02
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り ・ウェブサイト https://www.nvidia.com/en-us/on-demand/session/gtcspring21-s31266/ 掲載日 令和3年4月12日
(71)【出願人】
【識別番号】504126835
【氏名又は名称】エヌ・ティ・ティ レゾナント株式会社
(74)【代理人】
【識別番号】100141139
【弁理士】
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(72)【発明者】
【氏名】中辻 真
(72)【発明者】
【氏名】松野 繁雄
(72)【発明者】
【氏名】立石 修平
(72)【発明者】
【氏名】奥井 颯平
(72)【発明者】
【氏名】八島 浩文
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091CA21
5B091EA01
(57)【要約】
【課題】自然言語の処理の精度を向上させる技術を提供すること。
【解決手段】処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行部と、前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新部と、を備える自然言語処理モデル取得装置。
【選択図】
図1
【特許請求の範囲】
【請求項1】
処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行部と、
前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新部と、
を備える自然言語処理モデル取得装置。
【請求項2】
前記数理モデル実行部は、前記処理対象の文章が含む各単語の属する発話について主題(topic)を推定する、
請求項1に記載の自然言語処理モデル取得装置。
【請求項3】
前記主題を推定する処理の内容は、MML(Masked Language Model)によって更新される、
請求項2に記載の自然言語処理モデル取得装置。
【請求項4】
処理対象の文章を取得する対象取得部と、
処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行部と、前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新部と、を備える自然言語処理モデル取得装置によって更新された前記数理モデルを用いて、前記対象取得部が取得した文章に対する応答の文章を推定する推定部と、
を備える自然言語処理装置。
【請求項5】
処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行ステップと、
前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新ステップと、
を有する自然言語処理モデル取得方法。
【請求項6】
処理対象の文章を取得する対象取得ステップと、
処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行部と、前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新部と、を備える自然言語処理モデル取得装置によって更新された前記数理モデルを用いて、前記対象取得ステップにおいて取得された文章に対する応答の文章を推定する推定ステップと、
を有する自然言語処理方法。
【請求項7】
請求項1から3のいずれか一項に記載の自然言語処理モデル取得装置としてコンピュータを機能させるためのプログラム。
【請求項8】
請求項4に記載の自然言語処理装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自然言語処理モデル取得装置、自然言語処理装置、自然言語処理モデル取得方法、自然言語処理方法及びプログラムに関する。
【背景技術】
【0002】
自然言語をコンピュータによって処理する技術である自然言語処理の研究が行われている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”,arXiv:1810.04805v2, 24 May 2019
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら言語には、1つの単語の意味が文脈に応じて変化するという多義性が存在する。そのため、自然言語の処理が適切に行われない場合があった。このことは特に対話について生じる場合が多い。
【0005】
上記事情に鑑み、本発明は、自然言語の処理の精度を向上させる技術を提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明の一態様は、処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行部と、前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新部と、を備える自然言語処理モデル取得装置である。
【0007】
本発明の一態様は、処理対象の文章を取得する対象取得部と、処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行部と、前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新部と、を備える自然言語処理モデル取得装置によって更新された前記数理モデルを用いて、前記対象取得部が取得した文章に対する応答の文章を推定する推定部と、を備える自然言語処理装置である。
【0008】
本発明の一態様は、処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行ステップと、前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新ステップと、を有する自然言語処理モデル取得方法である。
【0009】
本発明の一態様は、処理対象の文章を取得する対象取得ステップと、処理対象の文章を構成する各単語について語義の曖昧性を解消する語義曖昧性解消処理と、前記文章を構成する各単語と前記語義曖昧性解消処理の結果と前記単語それぞれの前記文章内の位置とに少なくとも基づき前記文章に対する応答を推定する応答推定処理と、を含む数理モデルを実行する数理モデル実行部と、前記応答推定処理の推定の結果に基づき、前記数理モデルを更新する更新部と、を備える自然言語処理モデル取得装置によって更新された前記数理モデルを用いて、前記対象取得ステップにおいて取得された文章に対する応答の文章を推定する推定ステップと、を有する自然言語処理方法である。
【0010】
本発明の一態様は、上記の自然言語処理モデル取得装置としてコンピュータを機能させるためのプログラムである。
【0011】
本発明の一態様は、上記の自然言語処理装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0012】
本発明により、自然言語の処理の精度を向上させる技術を提供することが可能となる。
【図面の簡単な説明】
【0013】
【
図1】実施形態の自然言語処理システムを説明する説明図。
【
図2】実施形態における作用埋め込みデータの一例を説明する説明図。
【
図3】実施形態における自然言語処理モデル取得装置のハードウェア構成の一例を示す図。
【
図4】実施形態における制御部の構成の一例を示す図。
【
図5】実施形態における自然言語処理モデル取得装置が実行する処理の流れの一例を示すフローチャート。
【
図6】実施形態における自然言語処理装置のハードウェア構成の一例を示す図。
【
図7】実施形態における制御部の構成の一例を示す図。
【
図8】実施形態における自然言語処理装置が実行する処理の流れの一例を示すフローチャート。
【
図9】変形例における発話主題推定処理を説明する説明図。
【
図10】変形例における自然言語処理システムを用いた実験の結果の一例を示す第1の図。
【
図11】変形例における自然言語処理システムを用いた実験の結果の一例を示す第2の図。
【
図12】変形例における自然言語処理システムを用いた実験の結果の一例を示す第3の図。
【
図13】変形例における自然言語処理システムの適用先の一例を説明する説明図。
【発明を実施するための形態】
【0014】
(実施形態)
図1は、実施形態の自然言語処理システム100を説明する説明図である。以下、説明の簡単のため自然言語処理システム100の処理の対象が対話である場合を例に説明を行う。しかしながら、自然言語処理システム100の処理の対象は自然言語であればどのようなものであってもよく必ずしも対話に限る必要は無い。自然言語処理システム100は、自然言語処理モデル取得装置1と自然言語処理装置2を備える。自然言語処理モデル取得装置1は、機械学習等の所定の最適化の方法により、処理対象の文章(以下「作用文章」という。)に応答する文章(以下「応答文章」という。)を推定する数理モデル(以下「自然言語処理モデル」という。)を得る。文章は、単語の系列である。
【0015】
自然言語処理モデル取得装置1は、作用文章に対する応答文章を推定する予め用意された数理モデル(以下「自然言語処理プレモデル」という。)を、上述した所定の最適化の方法により更新する。以下、説明の簡単のため自然言語処理モデルを得る方法が機械学習の方法である場合を例に自然言語処理システム100を説明する。しかしながら、自然言語処理モデルを得る方法は必ずしも機械学習の方法に限らない。自然言語処理モデルを得る方法は、自然言語処理学習モデルを更新可能であれば、どのような最適化の方法であってもよい。
【0016】
数理モデルは、実行される条件と順番と(以下「実行規則」という。)が予め定められた1又は複数の処理の集合である。数理モデルを実行するとは、数理モデルが含む各種処理を予め定められた実行規則にしたがって実行することを意味する。
【0017】
機械学習の方法において自然言語処理プレモデルは、学習により更新される。すなわち機械学習の方法において自然言語処理プレモデルは、機械学習モデルの1種である。なお、機械学習モデルは、実行される条件と順番とが予め定められた1又は複数の処理を含む集合である。すなわち、機械学習モデルは数理モデルの1種である。学習済みの自然言語処理プレモデルが、自然言語処理モデルである。
【0018】
以下の説明において、Aであるように学習するとは、機械学習モデルにおけるパラメータの値がAを満たすように調整されることを意味する。Aは条件を表す。また、以下、学習用とは、機械学習モデルの更新に用いられることを意味する。
【0019】
学習済みとは、所定の終了条件(以下「学習終了条件」という。)が満たされた、ということを意味する。学習終了条件は、例えば所定の回数の学習が終了した、という条件である。学習終了条件は、例えば機械学習モデルの更新による変化が所定の変化よりも小さい、という条件であってもよい。学習終了条件が満たされた時点の自然言語処理プレモデルが自然言語処理モデルである。
【0020】
自然言語処理プレモデルは、例えばニューラルネットワークによって表現される。なお、ニューラルネットワークとは、電子回路、電気回路、光回路、集積回路等の回路であって機械学習モデルを表現する回路である。学習によってニューラルネットワークが更新されるとは、ニューラルネットワークのパラメータの値が更新されることを意味する。またニューラルネットワークのパラメータは、ニューラルネットワークを構成する回路のパラメータであり、ニューラルネットワークを構成する回路が表現する機械学習モデルのパラメータでもある。なお、機械学習モデルを実行するとは、機械学習モデルを表現する回路が機械学習モデルを実行することを意味する。
【0021】
自然言語処理装置2は、自然言語処理モデル取得装置1が得た自然言語処理モデルを用いて、入力された作用文章に対する応答文章を推定する。
【0022】
<自然言語処理プレモデルについて>
自然言語処理プレモデルについてより詳細に説明する。自然言語処理プレモデルは、語義曖昧性解消処理と、応答推定処理とを少なくとも含む。語義曖昧性解消処理は、語義曖昧性解消処理の処理対象の文章が含む各単語の語義の曖昧性を解消する処理である。語義の曖昧性を解消するとは、より具体的には、単語の定義する内容を包含する内容を定義とする単語(以下「上位単語」という。)を推定することを意味する。
【0023】
したがって、語義曖昧性解消処理によって、語義曖昧性解消処理の処理対象の文章が含む各単語について単語ごとに上位単語が得られる。すなわち、語義曖昧性解消処理によって、上位単語の系列(以下「上位単語系列」という。)が得られる。以下、語義曖昧性解消処理によって得られた上位単語の系列を、上位単語系列という。語義の曖昧性の解消する処理は、語義の曖昧性の解消を解消可能な処理であればどのような処理であってもよく、例えば以下の参考文献1に記載のLMMS(Language modelling makes sense)である。
【0024】
参考文献1:Daniel Loureiro and Alipio Jorge. 2019. Language modelling makes sense: Propagating representations through WordNet for full-coverage word sense disambiguation.In Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics, pages 5682-5691.
【0025】
LMMSでは例えば以下の式(1)で表される処理により、上位単語の推定が行われる。
【0026】
【0027】
式(1)のti,jは、文章(すなわち単語の系列)のi番目の発話が含むj番目の単語を意味する。式(1)の左辺は、単語ti,jの上位単語を意味する。式(1)のUiは、i番目のUiを意味する。式(1)の関数fは、文章が発話U1、・・・、発話Ui、・・・、発話UNuの系列である場合に、単語ti,jの上位単語を推定する処理を意味する。
【0028】
応答推定処理は、語義曖昧性解消処理の結果に少なくとも基づき、作用文章に対する応答文章を推定する処理である。応答推定処理では、例えば以下のマッチング推定処理が行われる。マッチング推定処理では、応答上位単語系列取得処理と、応答決定処理と、が実行される。
【0029】
応答上位単語系列取得処理は、予め用意された応答文章の候補(以下「応答文章候補」という。)に対して語義曖昧性解消処理を実行することで応答文章候補の上位単語系列を取得する処理である。なお予め用意された、とは例えば後述する記憶部14又は記憶部24等の所定の記憶装置に予め記憶済みであることを意味する。
【0030】
応答決定処理は、作用埋め込みデータと応答候補埋め込みデータとに基づき、作用埋め込みデータと応答候補埋め込みデータとの違いの小ささが所定の条件を満たす応答文章候補を作用文章に対する応答文章に決定する処理である。作用埋め込みデータは、少なくとも作用文章と作用文章の上位単語系列とを含む。上述したように文章は単語の系列であるため作用文章を含むとは、作用文章の各単語と、各単語の作用文章内の位置を示す情報(以下「作用文章単語位置情報」という。)と、を含むことを意味する。
【0031】
応答候補埋め込みデータは、少なくとも応答文章候補と応答文章候補の上位単語系列とを含む。上述したように文章は単語の系列であるため応答文章候補を含むとは、作用文章候補の各単語と、各単語の応答文章候補内の位置を示す情報(以下「応答文章候補単語位置情報」という。)と、を含むことを意味する。以下、作用文章単語位置情報と応答文章候補単語位置情報とをそれぞれ区別しない場合、単語位置情報という。
【0032】
作用埋め込みデータと応答埋め込みデータとは、例えば所定のベクトル空間内のベクトルで表現される。すなわち、作用埋め込みデータと応答埋め込みデータとは、所定の埋め込み空間内のベクトルで表現される。以下、情報を表現する所定のベクトル空間内のベクトルを埋め込みベクトルという。
【0033】
作用埋め込みデータは、例えば以下の式(2)で表されるベクトルである。
【0034】
【0035】
式(2)における以下の式(3)で表される記号は、作用埋め込みデータの生成に用いられる単語の系列を意味する。Nは系列長を意味する。作用埋め込みデータの生成に用いられる単語の系列は、予め定められた所定の条件を満たす発話に属する単語の系列であればどの発話に属する単語の系列であってもよい。作用埋め込みデータの生成に用いられる単語の系列は、例えば作用文章が含む最後の発話に属する単語の系列である。作用埋め込みデータの生成に用いられる単語の系列は、例えば作用文章が含む最後の発話に属する単語の系列と、最後の発話の1つ前の発話に属する単語の系列とであってもよい。
【0036】
【0037】
作用埋め込みデータと応答候補埋め込みデータとの違いの小ささは、例えば埋め込みベクトルの類似度を示すコサイン類似度で表現される。
【0038】
図2は、実施形態における作用埋め込みデータの一例を説明する説明図である。
図2の作用埋め込みデータは、”input”は作用文章を意味する。文章は、
図2の右から順番に発生する。そのため
図2の例では“?”という単語が最後に発生する。“Token embedding”は、作用文章が含む単語を意味する。より具体的には、“Token embedding”は、作用文章が含む単語を表現する埋め込みベクトル(以下「単語埋め込みベクトル」という。)を意味する。
【0039】
”Utterance embedding”は、作用文章の各単語の属する発話、を意味する。より具体的には、”Utterance embedding”は、作用文章の各単語の属する発話の主題を表現する埋め込みベクトル(以下「発話主題埋め込みベクトル」という。)を意味する。
図2は、例えば”how”という単語から”?”という単語までの合計5つの単語は、”Eu3”の発話に属することを意味する。”Class embedding”は、上位単語を意味する。より具体的には、”Class embedding”は、上位単語を表現する埋め込みベクトル(以下「上位単語埋め込みベクトル」という。)を意味する。
【0040】
“Position embedding”は、作用文章が含む単語の作用文章内の位置を示す。より具体的には、“Position embedding”は、作用文章が含む単語の作用文章内の位置を表現する埋め込みベクトル(以下「位置埋め込みベクトル」という。)を意味する。したがって、”Position embedding”は、作用文章単語位置情報の一例である。このように、
図2の例の作用埋め込みデータは”Token embedding”と”Position embedding”との組を含むため、
図2の例の作用埋め込みデータは作用文章を含む情報である。そして、
図2の例の作用埋め込みデータは、”Class embedding”を含むため、
図2の例の作用埋め込みデータは作用文章の上位単語系列を含む情報である。
【0041】
図2の例では、“Eu3”発話に属する単語について“圧縮”の処理が行われることを示す。“圧縮”の処理は、式(2)の処理である。すなわち
図2は、式(3)の記号で表される集合の一例は“Eu3”発話に属する単語の集合である、ことを意味する。“圧縮”の処理も埋め込みの処理の一種である。
【0042】
作用埋め込みデータを表現する埋め込みベクトルは、例えば単語埋め込みベクトルと、発話主題埋め込みベクトルと、上位単語埋め込みベクトルと、位置埋め込みベクトルとの和のベクトルである。なお、上述したように作用埋め込みデータは少なくとも作用文章と作用文章の上位単語系列とを含んでいればよいので、作用埋め込みデータは必ずしも発話主題埋め込みベクトルを含む必要は無い。したがって、要埋め込みデータを表現する埋め込みベクトルは、例えば単語埋め込みベクトルと、上位単語埋め込みベクトルと、位置埋め込みベクトルとの和のベクトルであってもよい。
図2は作用埋め込みデータを例に埋め込みベクトルの一例を説明したが、このことは応答埋め込みデータについても同様である。
【0043】
<学習について>
自然言語処理プレモデルの学習について説明する。自然言語処理プレモデルの学習では、作用文章と作用文章に対する応答の文章として予め定められた文章(以下「正解文章」という。)との対のデータ(以下「学習データ」という。)が用いられる。
【0044】
自然言語処理プレモデルの学習では、学習データの含む作用文章が自然言語処理プレモデルに入力され、自然言語処理プレモデルが作用文章に基づき、作用文章に応答する文章(以下「推定応答文章」という。)を推定する。推定応答文章は、具体的には応答決定処理によって決定された文章である。自然言語処理プレモデルの学習では、推定応答文書と正解文書との違いを小さくするように自然言語処理プレモデルが更新される。
【0045】
自然言語処理プレモデルの学習では、例えば以下の式(4)が表す損失関数を用いた学習が行われる。式(4)の損失関数はヒンジロスの1種である。
【0046】
【0047】
式(4)において、以下の式(5)で表される記号は正解の応答を意味し、以下の式(6)で表される記号は不正解の応答を意味する。
【0048】
【0049】
【0050】
式(4)において、以下の式(7)で表される記号は、推定応答文章を意味する。
【0051】
【0052】
図3は、実施形態における自然言語処理モデル取得装置1のハードウェア構成の一例を示す図である。自然言語処理モデル取得装置1は、バスで接続されたCPU(Central Processing Unit)等のプロセッサ91とメモリ92とを備える制御部11を備え、プログラムを実行する。自然言語処理モデル取得装置1は、プログラムの実行によって制御部11、入力部12、通信部13、記憶部14及び出力部15を備える装置として機能する。
【0053】
より具体的には、プロセッサ91が記憶部14に記憶されているプログラムを読み出し、読み出したプログラムをメモリ92に記憶させる。プロセッサ91が、メモリ92に記憶させたプログラムを実行することによって、自然言語処理モデル取得装置1は、制御部11、入力部12、通信部13、記憶部14及び出力部15を備える装置として機能する。
【0054】
制御部11は、自然言語処理モデル取得装置1が備える各種機能部の動作を制御する。制御部11は、例えば自然言語処理プレモデルを実行する。制御部11は、例えば更新処理を実行する。更新処理は、自然言語処理プレモデルの実行により得られた推定応答文書と正解文書との違いを小さくするように自然言語処理プレモデルを更新する処理である。
【0055】
制御部11は、例えば出力部15の動作を制御する。制御部11は、例えば自然言語処理プレモデルの実行により生じた各種情報を記憶部14に記録する。制御部11は、例えば更新処理の実行により生じた各種情報を記憶部14に記録する。
【0056】
入力部12は、マウスやキーボード、タッチパネル等の入力装置を含んで構成される。入力部12は、これらの入力装置を自然言語処理モデル取得装置1に接続するインタフェースとして構成されてもよい。入力部12は、自然言語処理モデル取得装置1に対する各種情報の入力を受け付ける。
【0057】
通信部13は、自然言語処理モデル取得装置1を外部装置に接続するための通信インタフェースを含んで構成される。通信部13は、有線又は無線を介して外部装置と通信する。外部装置は、例えば学習データの送信元の装置である。外部装置は、例えば自然言語処理装置2である。
【0058】
記憶部14は、磁気ハードディスク装置や半導体記憶装置などのコンピュータ読み出し可能な記憶媒体装置を用いて構成される。記憶部14は自然言語処理モデル取得装置1に関する各種情報を記憶する。記憶部14は、予め自然言語処理プレモデルを記憶する。記憶部14は、更新後の自然言語処理プレモデルを記憶する。なお、モデルを記憶するとは、モデルを表現する回路の各種パラメータの値を記憶することを意味する。記憶部14は、例えば入力部12又は通信部13を介して入力された情報を記憶する。記憶部14は、例えば自然言語処理プレモデルの実行により生じた各種情報を記憶する。記憶部14は、例えば更新処理の実行により生じた各種情報を記憶する。
【0059】
出力部15は、各種情報を出力する。出力部15は、例えばCRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等の表示装置を含んで構成される。出力部15は、これらの表示装置を自然言語処理モデル取得装置1に接続するインタフェースとして構成されてもよい。出力部15は、例えば入力部12に入力された情報を出力する。出力部15は、例えば自然言語処理プレモデルの実行の結果を表示してもよい。出力部15は、例えば更新処理の実行の結果を表示してもよい。
【0060】
図4は、実施形態における制御部11の構成の一例を示す図である。制御部11は、学習データ取得部110、自然言語処理プレモデル実行部120、更新制御部130、記憶制御部140、通信制御部150及び出力制御部160を備える。学習データ取得部110は、通信部13に入力された学習データを取得する。学習データ取得部110が取得した学習データは自然言語処理プレモデル実行部120に出力される。出力された学習データは自然言語処理プレモデルに入力される。
【0061】
自然言語処理プレモデル実行部120は、学習データ取得部110の取得した学習データが含む作用文章に対して自然言語処理プレモデルを実行する。作用文章に対する自然言語処理プレモデルの実行により自然言語処理プレモデル実行部120は、作用文章に対する推定応答文章を推定する。自然言語処理プレモデル実行部120は、語義曖昧性解消部121と応答推定部122とを備える。語義曖昧性解消部121は、作用文章に対して語義曖昧性解消処理を実行する。応答推定部122は、少なくとも語義曖昧性解消部121の実行結果と作用文章とに基づき、推定応答文章を推定する。
【0062】
更新制御部130は、更新処理を実行する。更新制御部130は、学習終了条件が満たされているか否かを判定する。更新制御部130は、学習終了条件が満たされた場合には、自然言語処理プレモデルを更新せず、自然言語処理プレモデルの学習の処理を終了する。更新制御部130は、学習終了条件が満たされた場合には学習の処理を終了しない。
【0063】
記憶制御部140は、記憶部14に各種情報を記録する。通信制御部150は通信部13の動作を制御する。出力制御部160は、出力部15の動作を制御する。
【0064】
図5は、実施形態における自然言語処理モデル取得装置1が実行する処理の流れの一例を示すフローチャートである。学習データ取得部110が学習データを取得する(ステップS101)。次に自然言語処理プレモデル実行部120が自然言語処理プレモデルを実行することで、推定応答文章を推定する(ステップS102)。次に更新制御部130が更新処理を実行する(ステップS103)。次に更新制御部130が、学習終了条件が満たされたか否かを判定する(ステップS104)。学習終了条件が満たされた場合(ステップS104:YES)、処理が終了する。処理が終了した時点の自然言語処理プレモデルが自然言語処理モデルである。一方、学習終了条件が満たされない場合(ステップS104:NO)、ステップS101の処理に戻る。
【0065】
図6は、実施形態における自然言語処理装置2のハードウェア構成の一例を示す図である。自然言語処理装置2は、バスで接続されたCPU等のプロセッサ93とメモリ94とを備える制御部21を備え、プログラムを実行する。自然言語処理装置2は、プログラムの実行によって制御部21、入力部22、通信部23、記憶部24及び出力部25を備える装置として機能する。
【0066】
より具体的には、プロセッサ93が記憶部24に記憶されているプログラムを読み出し、読み出したプログラムをメモリ94に記憶させる。プロセッサ93が、メモリ94に記憶させたプログラムを実行することによって、自然言語処理装置2は、制御部21、入力部22、通信部23、記憶部24及び出力部25を備える装置として機能する。
【0067】
制御部21は、自然言語処理装置2が備える各種機能部の動作を制御する。制御部21は、例えば自然言語処理モデル取得装置1が得た自然言語処理モデルを実行する。制御部21は、例えば出力部25の動作を制御する。制御部21は、例えば自然言語処理モデルの実行により生じた各種情報を記憶部24に記録する。
【0068】
入力部22は、マウスやキーボード、タッチパネル等の入力装置を含んで構成される。入力部22は、これらの入力装置を自然言語処理装置2に接続するインタフェースとして構成されてもよい。入力部22は、自然言語処理装置2に対する各種情報の入力を受け付ける。
【0069】
通信部23は、自然言語処理装置2を外部装置に接続するための通信インタフェースを含んで構成される。通信部23は、有線又は無線を介して外部装置と通信する。外部装置は、例えば処理対象の作用文章の送信元の装置である。外部装置は、例えば自然言語処理モデル取得装置1である。通信部23は、自然言語処理モデル取得装置1との通信により、自然言語処理モデルを取得する。
【0070】
記憶部24は、磁気ハードディスク装置や半導体記憶装置などのコンピュータ読み出し可能な記憶媒体装置を用いて構成される。記憶部24は自然言語処理装置2に関する各種情報を記憶する。記憶部24は、例えば入力部22又は通信部23を介して入力された情報を記憶する。記憶部24は、例えば自然言語処理モデルの実行により生じた各種情報を記憶する。記憶部24は、例えば自然言語処理モデルを記憶する。
【0071】
出力部25は、各種情報を出力する。出力部25は、例えばCRTディスプレイや液晶ディスプレイ、有機ELディスプレイ等の表示装置を含んで構成される。出力部25は、これらの表示装置を自然言語処理装置2に接続するインタフェースとして構成されてもよい。出力部25は、例えば入力部22に入力された情報を出力する。出力部25は、例えば自然言語処理モデルの実行結果を表示してもよい。
【0072】
図7は、実施形態における制御部21の構成の一例を示す図である。制御部21は、対象取得部210、推定部220、記憶制御部230、通信制御部240及び出力制御部250を備える。対象取得部210は、通信部23に入力された処理対象の作用文章を取得する。推定部220は、対象取得部210の取得した作用文章に対して自然言語処理モデルを実行する。推定部220は、自然言語処理モデルの実行により、作用文章に対する応答文章を推定する。
【0073】
記憶制御部230は、記憶部24に各種情報を記録する。通信制御部240は通信部23の動作を制御する。出力制御部250は、出力部25の動作を制御する。
【0074】
図8は、実施形態における自然言語処理装置2が実行する処理の流れの一例を示すフローチャートである。対象取得部210が、通信部23に入力された処理対象の作用文章を取得する(ステップS201)。次に推定部220が、ステップS201で取得された作用文章に対して自然言語処理モデルを実行する(ステップS202)。自然言語処理モデルの実行により推定部220は、ステップS201で取得された作用文章に対する応答文章を推定する。次に、通信制御部240は、通信部23の動作を制御して、所定の送信先に応答文章を送信する(ステップS203)。所定の送信先は、例えばスピーカーである。このような場合、スピーカーは受信した応答文章を発話する。ステップS203では、出力制御部250が出力部25の動作を制御して、出力部25に応答文章を出力させてもよい。
【0075】
このように構成された自然言語処理システム100は、処理対象の文章が含む各単語の語義の曖昧性を解消し、解消の結果にも基づいて、処理対象の文章に応答する文章を推定する。そのため自然言語処理システム100は、1つの単語の意味が文脈に応じて変化するという多義性に起因する自然言語の処理の精度の低さを軽減することができる。したがって、自然言語処理システム100は、自然言語の処理の精度を向上させることができる。
【0076】
(変形例)
なお、自然言語処理プレモデルは発話主題推定処理を含んでもよい。発話主題推定処理は、処理対象の文章が含む各単語の属する発話について主題(topic)を推定する処理である。上述の
図2に記載の発話主題埋め込みベクトルは、発話主題推定処理によって推定された話題を表現するベクトルの一例である。
【0077】
図9は、変形例における発話主題推定処理を説明する説明図である。発話主題推定処理はマックスプーリング処理と、主題分布取得処理と、発話埋め込みベクトル取得処理と、を含む。
【0078】
マックスプーリング処理は、発話ごとに各発話が含む各単語埋め込みベクトルの要素の最大値を取得し、取得した値を発話内の単語の並びの順番に並べたベクトル(以下「マックスプールベクトル」という。)を生成する処理である。
【0079】
主題分布取得処理は、主題の分布を取得する処理である。主題分布取得処理は、例えばフィードフォワード・ニューラルネットワークによって実行される。主題分布処理は、例えば以下の式(8)の処理である。
【0080】
【0081】
図8の左辺は、予め用意されたJ個(Jは自然数)の主題のうちのj番目の主題を表すベクトルである。式(8)中の以下の式(9)で表される記号は共有重み行列を表し、式(8)中の以下の式(10)で表される記号はバイアスを表すベクトルである。なお、共有重み行列とは、学習時に、学習データ全体で共有される行列であって、重みパラメータを示す行列である。
【0082】
【0083】
【0084】
なお
図9におけるW
p,qは、式(9)の共有重み行列のp行q列の要素を意味する。
図9のt
1~t
20は、それぞれ主題を意味する。
【0085】
発話埋め込みベクトル取得処理は、発話を表現する埋め込みベクトル(以下「発話埋め込みベクトル」という。)を取得する処理である。発話埋め込みベクトル取得処理は、例えば以下の式(11)で表される処理である。
【0086】
【0087】
式(11)の左辺の記号は、文章に含まれるi番目の発話を表現する発話埋め込みベクトルを表す。式(11)中の以下の式(12)で表される記号は共有重み行列を表し、式(11)中の以下の式(13)で表される記号はバイアスを表すベクトルである。なお、式(9)の共有重み行列は、主題(トピック)を学習するための重みパラメータ行列であり、式(12)の共有重み行列は主題を踏まえて発話を学習するための重みパラメータ行列である。
【0088】
【0089】
【0090】
式(11)中の記号Tは、予め定められたJ個の主題を示す量を各要素とするベクトルである。記号Tは、具体的には、以下の式(14)で表されるベクトルである。
【0091】
【0092】
このように、発話主題推定処理では、マックスプールベクトルに対応する主題空間内の点(すなわち主題)が推定される。主題空間は発話主題埋め込みベクトルを含む埋め込み空間である。発話主題推定処理では次に、処理対象の文章に含まれる発話と主題との対応関係が推定される。このようにして、発話主題推定処理は、各発話uiについて主題を推定する。
【0093】
自然言語処理プレモデルの学習時には、式(9)、式(10)、式(12)及び式(13)の表す値が更新される。その結果、発話主題推定処理の推定の精度が学習により向上する。
【0094】
発話主題推定処理の学習は、例えばMML(Masked Language Model)によって行われてもよい。すなわち発話主題推定処理の内容はMMLによって更新されてもよい。
【0095】
自然言語処理プレモデルが発話主題推定処理を含む場合、自然言語処理プレモデルの学習は、例えば上述の式(4)の損失関数に代えて、例えば以下の式(15)が表す損失関数を用いて行われる。
【0096】
【0097】
Lmは、MMLにおける損失関数である。αは0以上1以下の予め定められた値である。発話主題推定処理の内容を更新する学習は、語義曖昧性解消処理の内容と応答推定処理との内容を更新する学習の前に予め実行済みであってもよい。
【0098】
<実験結果>
自然言語処理システム100を用いた実験結果について説明する。
図10は、変形例における自然言語処理システム100を用いた実験の結果の一例を示す第1の図である。実験では、以下のオンライン掲示板にアップロードされた会話(以下「第1実験会話」という。)と、テレビや映画の翻訳であってオンライン上にアップロードされた翻訳に含まれる会話(第2実験会話)と、が用いられた。第1実験会話は3273386個であった。3273386個の第1実験会話には総計12190160個の発話が含まれていた。第2実験会話は2836382個であった。2836382個の会話には総計34037025個の発話が含まれていた。
【0099】
実験では、シーケンスを60文字のサブワードに切り捨てたものが使用された。全てのサブワードについて埋め込みの大きさは512次元であった。最後のエンコードについて埋め込みの大きさは512次元であった。学習率は1.0から始まり、学習が進むにつれてコサイン減衰で0.001まで下がった。L2正則化におけるハイパーパラメータλは0.00001であった。なお、コサイン減衰とは、Cosineカーブにそって減衰する現象を意味する。
【0100】
なお、シーケンスは、例えば、文を例にすれば、単語のシーケンスを意味する。シーケンスは、対話を例にすれば、発話のシーケンスである。このように、シーケンスは列を意味する。サブワードとは、単語の最小セットを意味する。したがって、「例えば」という単語を例にサブワードの具体例を説明すると、サブワードは「例え」と「ば」との組である。60文字のサブワードに切り捨てるというのは、例えば60文字の場合には60単語であり、65単語の場合には60単語に左詰めする処理である。
【0101】
実験では、Recall@kが用いられた。Recall@kは、指定されたクエリに対するN個の応答のセットが与えられた場合であって1つの応答のみが関連する場合に、関連する応答が上位k個の候補の応答で発生するかどうかを示す指標である。実験においては、N=100、k=1のRecall@kが用いられた。
【0102】
実験では以下の5つの処理についてRecall@kが算出された。5つのうちの1つは、ファインチューニングされたBERT(Bidirectional Encoder Representations from Transformers)(以下「処理a」という。)であった。5つのうちの1つは、自然言語処理システム100が実行する処理に以下の制限をかけた処理であった(以下「処理b」という。)。制限は、自然言語処理プレモデルの実行に際して上位単語の推定を行わず、さらに、発話主題推定処理も実行しない、という制限であった。
【0103】
5つのうちの1つは、自然言語処理システム100が実行する処理に以下の制限をかけた処理であった(以下「処理c」という。)。制限は、自然言語処理プレモデルの実行に際して上位単語の推定を行わない、という制限であった。5つのうちの1つは、自然言語処理システム100が実行する処理に以下の制限をかけた処理であった(以下「処理d」という。)。制限は、複数の発話を含む文章は処理の対象にしない、という制限であった。5つのうちの最後の1つは、自然言語処理システム100が実行する処理であって、発話主題推定処理と自然言語処理プレモデルとを実行する処理であった(以下「処理e」という。)。すなわち制限の無い処理であった。
【0104】
図10の(a)は処理aを意味する。
図10の(b)は処理bを意味する。
図10の(c)は処理cを意味する。
図10の(d)は処理dを意味する。
図10のeは処理eを意味する。
【0105】
図10の結果D101は第1実験会話を用いた実験の結果を示す。
図10の結果D102は第2実験会話を用いた実験の結果を示す。結果D101も結果D102も、処理eのRecall@kが最も高いことを示す。
【0106】
図11は、変形例における自然言語処理システム100を用いた実験の結果の一例を示す第2の図である。より具体的には、
図11は、応答推定処理の推定の精度の評価の結果の一例を示す。
図11において”ConvBERT(w/o topics and w/o semantics)”は、上述の処理bを意味する。
図11において、”ConvBERT(w/o semantics)”は、上述の処理cを意味する。
図11において、”ConvBERT”は、上述の処理eを意味する。
【0107】
図11において“Set1”は、スレッド型の大規模掲示板データセットを用いた結果を意味する。”OpenSub”は、Set1を用いた事前学習の後にファインチューニングされたデータセットを用いた結果を意味する。
図11の数値は、数値が大きいほど推定の精度が高いことを示す。したがって、
図11の結果は、”ConvBERT”の応答推定処理の推定の精度が他よりも高いことを示す。
【0108】
図12は、変形例における自然言語処理システム100を用いた実験の結果の一例を示す第3の図である。より具体的には、
図12は、単語の推定の精度の評価の結果の一例を示す。
図12における”ConvBERT(w/o topics and w/o semantics)”、”ConvBERT(w/o semantics)”、”ConvBERT”、”BERT-BASE”、”Set1”及び”OpenSub”の定義は、
図11と同様である。
図12の数値は、数値が大きいほど推定の精度が高いことを示す。したがって、
図12の結果は、”ConvBERT”の単語の推定の精度が他よりも高いことを示す。
【0109】
<適用例>
このように自然言語処理システム100は、少なくとも各単語について上位単語を推定することができる。そのため、自然言語処理システム100は、各発話における重要な単語を推定する精度が高い。重要な単語とは、他の単語に比べて情報量の多い単語、という意味である。そして各発話における重要な単語は、自然言語処理の分野においてエンティティ、又は、スロットと呼称される単語である。
【0110】
自然言語処理システム100は各発話における重要な単語を推定する精度が高いため、自然言語処理システム100は、ユーザが自然言語処理システム100に入力した文章の意図を高い精度で判定することができる。そこで、自然言語処理システム100は、例えば、レストラン等の施設の予約を支援する技術に適用可能である。
【0111】
図13は、変形例における自然言語処理システム100の適用先の一例を説明する説明図である。
図13は自然言語処理システム100の適用例の1つとして予約システム300を示す。予約システム300は、端末400と自然言語処理システム100とを備える。予約システム300は、ユーザの声による端末400への入力に応じて、レストランを予約するシステムである。
【0112】
端末400はプロセッサ95やメモリ96等を備えプログラムを実行するコンピュータである。端末400は、入力部401と出力部402とを備える。入力部401は、音声入力を受け付ける。出力部402は、音声を出力する。端末400は、例えばスマートフォンである。端末400はパーソナルコンピュータであってもよい。端末400は人工知能のプログラムを実行可能である。端末400は自然言語処理システム100と通信可能に接続されている。
【0113】
端末400は、人工知能のプログラムの実行により、入力部401に入力された音声をテキストデータに変換することと、テキストデータの文章を音声に変換することとが可能である。端末400の出力したテキストデータは、自然言語処理システム100が備える自然言語処理装置2に入力される。自然言語処理装置2は、通信部23を介して端末400と接続されている。
【0114】
ユーザが端末に入力する音声は例えば「東京駅の近くで7月7日の18時に予約の空いているレストランの予約をお願い」という音声である。このような場合、自然言語処理装置2は、「東京駅の近くで7月7日の18時に4人席の予約の空いているレストランの予約をお願い」という文章を示すテキストデータを受信する。自然言語処理装置2の制御部21は、受信したテキストデータが示す文章に対して、語義曖昧性解消処理を実行する。自然言語処理装置2の制御部21は、語義曖昧性解消処理の実行の結果に基づき、発話埋め込みベクトル取得処理等のスロットを推定する技術を用いて、スロットを推定する。スロットの推定は、例えば推定部220が行う。
【0115】
自然言語処理装置2の制御部21は、推定したスロットに基づき端末400が実行する動作を決定する。実行する動作の決定は、例えば推定部220が行う。決定された動作を示す情報は、通信制御部240により通信部23を介して、端末400に送信される。端末400は、指示された動作を行い、予約を行う。端末400は、予約の結果を自然言語処理装置2に送信する。自然言語処理装置2は、予約の結果を受信し、受信した結果を用いて、応答文章を生成する。受信した結果を用いた応答文章の生成は、例えば回答候補の中の文を返す方法で行われる。応答文章の生成は、例えば推定部220が行う。
【0116】
応答文章は、例えば「7月7日の18時に、あいうえおレストランの4人席の予約ができました」という文章である。自然言語処理装置2の生成した応答文章は通信部23を介して端末400に送信される。応答文章を受信した端末400の出力部402は、応答文章を音声で出力する。なお、
図13に記載の“対話型人工知能サービス”とは装置である。
【0117】
このようにして自然言語処理装置2は、レストランの予約を支援する技術に適用される。なお、予約の対象は必ずしもレストランに限らない。
【0118】
なお、自然言語処理モデル取得装置1と自然言語処理装置2とはそれぞれ、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、自然言語処理モデル取得装置1と自然言語処理装置2とのそれぞれが備える各機能部は、複数の情報処理装置に分散して実装されてもよい。
【0119】
なお、自然言語処理システム100はそれぞれ、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、自然言語処理システム100それぞれが備える各機能部は、複数の情報処理装置に分散して実装されてもよい。
【0120】
なお、自然言語処理モデル取得装置1と自然言語処理装置2と自然言語処理システム100との各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0121】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0122】
なお、自然言語処理プレモデル実行部120は数理モデル実行部の一例である。更新制御部130は、更新部の一例である。
【符号の説明】
【0123】
100…自然言語処理システム、 1…自然言語処理モデル取得装置、 2…自然言語処理装置、 11…制御部、 12…入力部、 13…通信部、 14…記憶部、 15…出力部、 110…学習データ取得部、 120…自然言語処理プレモデル実行部、 130…更新制御部、 140…記憶制御部、 150…通信制御部、 160…出力制御部、 121…語義曖昧性解消部、 122…応答推定部、 21…制御部、 22…入力部、 23…通信部、 24…記憶部、 25…出力部、 210…対象取得部、 220…推定部、 230…記憶制御部、 240…通信制御部、 250…出力制御部、 300…予約システム、 400…端末、 401…入力部、 402…出力部、 91…プロセッサ、 92…メモリ、 93…プロセッサ、 94…メモリ、 95…プロセッサ、 96…メモリ