(57)【要約】      （修正有）【課題】自動アシスタントシステムをトレーニングする。【解決手段】自動アシスタントシステムでは、質問をクラスにマッピングするため、長短期記憶(LSTM)分類器の形態のディープラーニングモデルが使用され、専門家のチームが、この分類器をトレーニングするために使用されるトレーニングデータを手作業で作成する。全ての個人は、自然言語を書き込む特定のスタイルを有し、特定の文脈のいくつかの単語しか使用しないので、多くの場合、トレーニングデータに言語的トレーニングバイアスが紛れ込むことになる。これらのバイアスを補正するために、生成モデルを使用して有意味なセンテンスが自動的に生成され、次いで分類モデルをトレーニングするために使用される。たとえば、変分オートエンコーダ(VAE)が、新規のセンテンスを生成するための生成モデルとして使用され、言語モデル(LM)が、尤度に基づいてセンテンスを選択するために利用される。【選択図】図５
2019057280.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ実装方法(500)であって、
1つまたは複数のプロセッサによって、ユーザからクエリを受け取るステップ(502)と、
前記1つまたは複数のプロセッサによって、推論時間において長短期記憶変分オートエンコーダ(LSTM-VAE)を使用して、前記受け取ったクエリに関連付けられたクエリのセットを生成するステップであって、前記LSTM-VAEが重み-コストアニーリング技法を使用してトレーニングされる、生成するステップ(504)と、
前記1つまたは複数のプロセッサによって、生成されたクエリの前記セットから、連続的に繰り返す単語を含む1つまたは複数のクエリを廃棄して、前記生成されたクエリのサブセットを作成するステップ(506)と、
前記1つまたは複数のプロセッサによって、トレーニングデータの第1のセットについてトレーニングされた言語モデルによる尤度に基づいて、前記生成されたクエリの前記サブセットから1つまたは複数のクエリを選択するステップであって、前記1つまたは複数の選択されたクエリが、あらかじめ定義されたデータと一致する、選択するステップ(508)と、
前記1つまたは複数のプロセッサによって、第1の分類器モデルを使用して、前記1つまたは複数の選択されたクエリを、トレーニングデータの前記第1のセットに存在するクエリ、および新しいクエリとして分類するステップ(510)と、
前記1つまたは複数のプロセッサによって、前記新しいクエリを用いてトレーニングデータの前記第1のセットを拡張して、トレーニングデータの第2のセットを取得するステップ(512)と、
前記1つまたは複数のプロセッサによって、トレーニングデータの前記第2のセットを使用して第2の分類器モデルをトレーニングし、それによってトレーニングデータにおける言語的トレーニングバイアスを補正するステップ(514)とを含む、方法。
【請求項２】
前記重み-コストアニーリング技法が、あらかじめ定義されたエポックの後に直線的にカルバック-ライブラー(KL)ダイバージェンス損失の重みを増やす、請求項1に記載の方法。
【請求項３】
トレーニングデータの前記第1のセットについてトレーニングされた前記言語モデルによる尤度に基づいて、前記生成されたクエリの前記サブセットから1つまたは複数のクエリを選択するステップが、
前記言語モデルによる尤度に基づいて、前記生成されたクエリの前記サブセット中の語彙単語について条件付き確率分布を学習するステップと、
前記語彙単語についての前記学習した条件付き確率分布に基づいて、前記生成されたクエリの前記サブセットから前記1つまたは複数のクエリを選択するステップとを含む、請求項1に記載の方法。
【請求項４】
前記第1の分類器モデルが、分類のためにトレーニングデータの前記第1のセットについてトレーニングされたLSTMユニットをもつ単一層の再帰型ニューラルネットワークである、請求項1に記載の方法。
【請求項５】
前記新しいクエリでトレーニングデータの前記第1のセットを拡張するステップが、
前記第1の分類器モデルによって正しく分類されている前記新しいクエリのうちの1つまたは複数を、ソフトマックス分布関数のエントロピーに基づいて選択するステップと、
前記第1の分類器モデルによって正しく分類されている前記新しいクエリのうちの前記1つまたは複数でトレーニングデータの前記第1のセットを拡張するステップとを含む、請求項1に記載の方法。
【請求項６】
前記1つまたは複数のプロセッサによって、前記ユーザが前記第1の分類器モデルによって誤って分類されている前記1つまたは複数のクエリを識別できるようにするステップ
をさらに含む、請求項1に記載の方法。
【請求項７】
トレーニングデータの前記第1のセットを拡張するステップが、
トレーニングデータの前記第2のセットを取得するために、前記新しいクエリおよび前記第1の分類器モデルによって誤って分類されている前記クエリで、トレーニングデータの前記第1のセットを拡張するステップを含む、請求項6に記載の方法。
【請求項８】
システム(100)であって、
1つまたは複数のメモリ(104)と、
1つまたは複数のハードウェアプロセッサ(102)とを備え、前記1つまたは複数のメモリが、前記1つまたは複数のハードウェアプロセッサに結合され、前記1つまたは複数のハードウェアプロセッサが、
ユーザからクエリを受け取ることと、
推論時間において長短期記憶変分オートエンコーダ(LSTM-VAE)を使用して、前記受け取ったクエリに関連付けられたクエリのセットを生成することであって、前記LSTM-VAEが重み-コストアニーリング技法を使用してトレーニングされる、生成することと、
生成されたクエリの前記セットから、連続的に繰り返す単語を含む1つまたは複数のクエリを廃棄して、前記生成されたクエリのサブセットを作成することと、
トレーニングデータの第1のセットについてトレーニングされた言語モデルによる尤度に基づいて、前記生成されたクエリの前記サブセットから1つまたは複数のクエリを選択することであって、前記1つまたは複数の選択されたクエリが、あらかじめ定義されたデータと一致する、選択することと、
前記1つまたは複数の選択されたクエリを、第1の分類器モデルを使用して、トレーニングデータの前記第1のセットに存在するクエリ、および新しいクエリとして分類することと、
トレーニングデータの前記第1のセットを前記新しいクエリで拡張して、トレーニングデータの第2のセットを取得することと、
トレーニングデータの前記第2のセットを使用して第2の分類器モデルをトレーニングし、それによってトレーニングデータにおける言語的トレーニングバイアスを補正することと
を行うようにプログラムされた、前記1つまたは複数のメモリに記憶されている命令を実行する、システム。
【請求項９】
前記重み-コストアニーリング技法が、あらかじめ定義されたエポックの後に直線的にカルバック-ライブラー(KL)ダイバージェンス損失の重みを増やす、請求項8に記載のシステム。
【請求項１０】
前記1つまたは複数のハードウェアプロセッサが、
前記言語モデルによる尤度に基づいて、前記生成されたクエリの前記サブセット中の語彙単語について条件付き確率分布を学習することと、
前記語彙単語についての前記学習した条件付き確率分布に基づいて、前記生成されたクエリの前記サブセットから前記1つまたは複数のクエリを選択することと
を行うようにプログラムされた命令を実行する、請求項8に記載のシステム。
【請求項１１】
前記第1の分類器モデルが、トレーニングデータの前記第1のセットについてトレーニングされた分類のためのLSTMユニットをもつ単一層の再帰型ニューラルネットワークである、請求項8に記載のシステム。
【請求項１２】
前記1つまたは複数のハードウェアプロセッサが、
前記第1の分類器モデルによって正しく分類されている前記新しいクエリのうちの1つまたは複数を、ソフトマックス分布関数のエントロピーに基づいて選択することと、
前記第1の分類器モデルによって正しく分類されている前記新しいクエリのうちの前記1つまたは複数でトレーニングデータの前記第1のセットを拡張することと
を行うようにプログラムされた命令を実行する、請求項8に記載のシステム。
【請求項１３】
前記1つまたは複数のハードウェアプロセッサがさらに、
前記ユーザが前記第1の分類器モデルによって誤って分類されている前記1つまたは複数のクエリを識別できるようにするようにプログラムされた命令を実行する、請求項8に記載のシステム。
【請求項１４】
前記1つまたは複数のハードウェアプロセッサが、
トレーニングデータの前記第2のセットを取得するために、前記新しいクエリおよび前記第1の分類器モデルによって誤って分類されている前記クエリで、トレーニングデータの前記第1のセットを拡張するようにプログラムされた命令を実行する、請求項13に記載のシステム。
【請求項１５】
コンピュータ可読プログラムであって、前記コンピュータ可読プログラムが、コンピューティングデバイス上で実行されるとき、前記コンピューティングデバイスに、
ユーザからクエリを受け取ることと、
推論時間において長短期記憶変分オートエンコーダ(LSTM-VAE)を使用して、前記受け取ったクエリに関連付けられたクエリのセットを生成することであって、前記LSTM-VAEが重み-コストアニーリング技法を使用してトレーニングされる、生成することと、
生成されたクエリの前記セットから、連続的に繰り返す単語を含む1つまたは複数のクエリを廃棄して、前記生成されたクエリのサブセットを作成することと、
トレーニングデータの第1のセットについてトレーニングされた言語モデルによる尤度に基づいて、前記生成されたクエリの前記サブセットから1つまたは複数のクエリを選択することであって、前記1つまたは複数の選択されたクエリが、あらかじめ定義されたデータと一致する、選択することと、
前記1つまたは複数の選択されたクエリを、第1の分類器モデルを使用して、トレーニングデータの前記第1のセットに存在するクエリ、および新しいクエリとして分類することと、
トレーニングデータの前記第1のセットを前記新しいクエリで拡張して、トレーニングデータの第2のセットを取得することと、
トレーニングデータの前記第2のセットを使用して第2の分類器モデルをトレーニングし、それによってトレーニングデータにおける言語的トレーニングバイアスを補正することとを行わせる、コンピュータ可読プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、2017年9月18日に出願されたインド特許出願第201721033035号に基づく優先権を主張する。上記の出願の内容全体は、参照により本明細書に組み込まれる。
【０００２】
本明細書の実施形態は、一般にトレーニングデータに関し、より詳細には、トレーニングデータにおける言語的トレーニングバイアスを補正するための技法に関する。
【背景技術】
【０００３】
近年、多国籍企業において、被雇用者のよくある質問(FAQ)に回答するために、自動アシスタントシステムが開発されている。システムは、領域専門家の小チームによって慎重に準備された質問および回答のコーパスについてトレーニングされた長短期記憶(LSTM:long short-term memory)分類器に基づいている。しかしながら、ほとんどまたはまったく変化なく特定のフレーズが使用されることにより、手作業で作成されるトレーニングデータに、言語的トレーニングバイアスが紛れ込み、これは、ディープラーニング分類器を正しくない特徴に偏らせる。たとえば、「病気休暇はいつ取れるか」という質問は、「養子縁組休暇(Adoption Leave)」に関係するカテゴリに分類され、結果的にまったく不適切な回答が得られる可能性がある。これは主として、クエリ中の「病気休暇」を囲んでいる単語が、「養子縁組休暇」のトレーニングデータ中により頻繁に現れるので発生する。その結果、そのような単語がユーザのクエリ中に現れる場合、モデルは、他の重要な単語(「病気休暇」など)を無視する可能性があり、そのような単語に基づいて、クエリを正しくないクラスに分類する。さらに、多くの場合、トレーナーによって想定されたFAQは、実際には不完全なものであり、質問-回答のペアに言語的変化を伝えると、その回答が見つからない新しい質問クラスを発見することがある。また、すべての個人が、自然言語を書き込む特定のスタイルを有し、特定の文脈のいくつかの単語しか使用しないので、人のキュレーションに依存すると、そのような言語的トレーニングバイアスがトレーニングデータに紛れ込むことになる場合がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
実施形態を基本的に理解できるように、以下に本開示のいくつかの実施形態の簡略化した概要を提示する。本概要は、実施形態の広範囲の概観ではない。実施形態の主要/重要な要素を断定すること、または実施形態の範囲を明確に示すことを意図するものではない。その唯一の目的は、以下に提示するより詳細な説明への前置きとして、いくつかの実施形態を平易な形で提示することである。
【０００５】
上記に鑑みて、本明細書での一実施形態は、トレーニングデータにおける言語的トレーニングバイアスを補正するための方法およびシステムを提供する。一態様では、プロセッサ実装方法が、ユーザからクエリを受け取るステップと、推論時間において長短期記憶変分オートエンコーダ(LSTM-VAE:long short-term memory variational autoencoder)を使用して、受け取ったクエリに関連付けられたクエリのセットを生成するステップであって、LSTM-VAEは重み-コストアニーリング技法を使用してトレーニングされる、生成するステップと、生成されたクエリのセットから、連続的に繰り返す単語を含む1つまたは複数のクエリを廃棄して、生成されたクエリのサブセットを作成するステップと、トレーニングデータの第1のセットについてトレーニングされた言語モデルによる尤度に基づいて、生成されたクエリのサブセットから1つまたは複数のクエリを選択するステップであって、1つまたは複数の選択されたクエリがあらかじめ定義されたデータと一致する、選択するステップと、第1の分類器モデルを使用して、1つまたは複数の選択されたクエリを、トレーニングデータの第1のセットに存在するクエリとして、および新しいクエリとして分類するステップと、新しいクエリでトレーニングデータの第1のセットを拡張して(augment)、トレーニングデータの第2のセットを取得するステップと、トレーニングデータの第2のセットを使用して第2の分類器モデルをトレーニングし、それによってトレーニングデータにおける言語的トレーニングバイアスを補正するステップとを含む。
【０００６】
別の態様では、トレーニングデータにおける言語的トレーニングバイアスを補正するためのシステムを提供する。システムは、1つまたは複数のメモリと、1つまたは複数のハードウェアプロセッサとを含み、1つまたは複数のメモリは、1つまたは複数のハードウェアプロセッサに結合され、1つまたは複数のハードウェアプロセッサは、ユーザからクエリを受け取ることと、推論時間において長短期記憶変分オートエンコーダ(LSTM-VAE)を使用して、受け取ったクエリに関連付けられたクエリのセットを生成することであって、LSTM-VAEは重み-コストアニーリング技法を使用してトレーニングされる、生成することと、生成されたクエリのセットから、連続的に繰り返す単語を含む1つまたは複数のクエリを廃棄して、生成されたクエリのサブセットを作成することと、トレーニングデータの第1のセットについてトレーニングされた言語モデルによる尤度に基づいて、生成されたクエリのサブセットから1つまたは複数のクエリを選択することであって、1つまたは複数の選択されたクエリがあらかじめ定義されたデータと一致する、選択することと、第1の分類器モデルを使用して、1つまたは複数の選択されたクエリを、トレーニングデータの第1のセットに存在するクエリとして、および新しいクエリとして分類することと、新しいクエリでトレーニングデータの第1のセットを拡張して、トレーニングデータの第2のセットを取得することと、トレーニングデータの第2のセットを使用して第2の分類器モデルをトレーニングし、」それによってトレーニングデータにおける言語的トレーニングバイアスを補正することとを行うように、プログラムされた、1つまたは複数のメモリに記憶されている命令を実行することができる。
【０００７】
また別の態様では、トレーニングデータにおける言語的トレーニングバイアスを補正するための方法を実行するためのコンピュータプログラムが組み込まれた非一時的コンピュータ可読媒体を提供する。方法は、ユーザからクエリを受け取るステップと、推論時間において長短期記憶変分オートエンコーダ(LSTM-VAE)を使用して、受け取ったクエリに関連付けられたクエリのセットを生成するステップであって、LSTM-VAEは重み-コストアニーリング技法を使用してトレーニングされる、生成するステップと、生成されたクエリのセットから、連続的に繰り返す単語を含む1つまたは複数のクエリを廃棄して、生成されたクエリのサブセットを作成するステップと、トレーニングデータの第1のセットについてトレーニングされた言語モデルによる尤度に基づいて、生成されたクエリのサブセットから1つまたは複数のクエリを選択するステップと、第1の分類器モデルを使用して、1つまたは複数の選択されたクエリを、トレーニングデータの第1のセットに存在するクエリとして、および新しいクエリとして分類するステップと、新しいクエリを用いてトレーニングデータの第1のセットを拡張して、トレーニングデータの第2のセットを取得するステップと、トレーニングデータの第2のセットを使用して第2の分類器モデルをトレーニングし、それによってトレーニングデータにおける言語的トレーニングバイアスを補正するステップとを含む。
【０００８】
本明細書におけるいかなるブロック図も、本主題の原理を具体化する例示的なシステムの概念図を表すことを当業者には諒解されたい。同様に、いかなるフローチャート、流れ図、状態遷移図、擬似コードなども、様々なプロセスを表し、それらのプロセスは実質的にコンピュータ可読媒体において表現され、コンピューティングデバイスまたはプロセッサが明示的に示されているか否かにかかわらず、そのようなコンピューティングデバイスまたはプロセッサによってそのように実行され得ることは諒解されよう。
【０００９】
添付の図面に関して、詳細な説明を行う。図では、参照番号の左端の桁は、その参照番号が最初に表示された図を識別する。同様の特徴およびモジュールには図面を通して同じ参照符号が使用される。
【図面の簡単な説明】
【００１０】
【図１】例示的な実施形態による、トレーニングデータにおける言語的トレーニングバイアスを補正するためのシステムのブロック図である。
【図２】例示的な実施形態による、長短期記憶(LSTM)変分オートエンコーダ(VAE)アーキテクチャを示す図である。
【図３】例示的な実施形態による、トレーニングステップにわたるKLダイバージェンス損失を表すグラフである。
【図４】例示的な実施形態による、LSTM VAEによって生成された新しいクエリを含むテーブルを示す図である。
【図５】例示的な実施形態による、トレーニングデータにおける言語的トレーニングバイアスを補正するための方法の流れ図である。
【図６】例示的な実施形態による、クエリ生成プロセスフローステップを示す図である。
【発明を実施するための形態】
【００１１】
本明細書におけるいかなるブロック図も、本主題の原理を具体化する例示的なシステムおよびデバイスの概念図を表すことを当業者には諒解されたい。同様に、いかなるフローチャート、流れ図なども、実質的にコンピュータ可読媒体に表現され、コンピュータまたはプロセッサが明示的に示されているか否かにかかわらず、そのようなコンピュータまたはプロセッサによってそのように実行可能である様々なプロセスを表すことは諒解されよう。
【００１２】
本明細書における実施形態ならびにその様々な特徴および有利な詳細については、添付の図面に示し、以下の説明で詳細を述べる非限定的な実施形態を参照して、さらに十分に説明する。本明細書で使用する例は、単に、本明細書の実施形態を実践できる方法の理解を容易にし、さらに当業者が本明細書の実施形態を実践できるようにすることを目的としている。したがって、例は、本明細書の実施形態の範囲を限定すると解釈されるべきではない。
【００１３】
本明細書での本主題は、例示的な実施形態による、トレーニングデータにおける言語的トレーニングバイアスを補正するためのシステムおよび方法を提供する。本主題は、生成モデルを使用して有意味なセンテンスを自動的に生成し、次いで、適切なアノテーションの後に分類モデルをトレーニングするためにそれらを使用する。本主題では、重みコストアニーリング技法を使用してトレーニングされる、変分オートエンコーダ(VAE)が、新規のセンテンスを生成するための生成モデルとして使用され、尤度に基づいてセンテンスを選択するために言語モデル(LM)を利用する。VAEは、LSTMユニットから成るRNNを使用してモデル化される。LSTM-VAEは、言語的に新規の質問を自動的に生成するために使用することができ、(a)トレーニングデータに補われるとき分類器バイアスを補正し、(b)回答のセットに不完全性を発見し、(c)ベースLSTM分類器の精度および汎化能力を向上させ、より小さいトレーニングデータから学習できるようにする。新規の質問は、オリジナルのトレーニングデータに存在しない、完全に新しいクラスに属することがある。
【００１４】
方法およびシステムは、本明細書で説明する特定の実施形態に限定されない。加えて、方法およびシステムは、本明細書で説明する他のモジュールおよび方法とは独立して、別個に実践することができる。各デバイス要素/モジュールおよび方法は、他の要素/モジュールおよび他の方法と組み合わせて使用することができる。
【００１５】
トレーニングデータにおける言語的トレーニングバイアスを補正するためのシステムおよび方法について、図1〜図6に関して詳細に説明している。トレーニングデータにおける言語的トレーニングバイアスを補正するための、記載した方法およびシステムの態様は、任意の数の異なるシステム、ユーティリティ環境、および/または構成において実装可能であるが、以下の例示的なシステムの文脈において実施形態を説明する。
【００１６】
図1は、例示的な実施形態による、トレーニングデータにおける言語的トレーニングバイアスを補正するためのシステム100のブロック図を示す。例示的な一実施形態では、システム100は、コンピューティングデバイスに組み込まれる場合があり、またはコンピューティングデバイスと直接通信している。システム100は、プロセッサ102などの1つまたは複数のハードウェアプロセッサと、メモリ104などの1つまたは複数のメモリと、ネットワークインターフェースユニット106などのネットワークインターフェースユニットとを含み、または場合によってはこれらと通信している。一実施形態では、プロセッサ102、メモリ104、およびネットワークインターフェースユニット106は、システムバスなどのシステムバスまたは同様の機構によって結合されてもよい。図1はシステム100の例示的な構成要素を示すが、他の実装形態ではシステム100は、より少ない構成要素、追加の構成要素、異なる構成要素、または図1に示すものとは異なる配置の構成要素を含む場合がある。
【００１７】
プロセッサ102は、特に、通信に関連付けられたオーディオおよび論理関数を実装する回路を含んでもよい。たとえば、プロセッサ102は、限定はしないが、1つもしくは複数のデジタル信号プロセッサ(DSP)、1つもしくは複数のマイクロプロセッサ、1つもしくは複数の専用コンピュータチップ、1つもしくは複数のフィールドプログラマブルゲートアレイ(FPGA)、1つもしくは複数の特定用途向け集積回路(ASIC)、1つもしくは複数のコンピュータ、様々なアナログ-デジタル変換器、デジタル-アナログ変換器、および/または他の支援回路を含んでもよい。したがってプロセッサ102は、メッセージおよび/またはデータもしくは情報を符号化する機能も含む場合がある。プロセッサ102は、特に、クロック、算術論理ユニット(ALU)、およびプロセッサ102の動作を支援するように構成された論理ゲートを含んでもよい。さらに、プロセッサ102は、メモリ104に記憶されるか、場合によってはプロセッサ102がアクセス可能であってもよい1つまたは複数のソフトウェアプログラムを実行する機能を含んでもよい。
【００１８】
「プロセッサ」と表示されたいかなる機能ブロックも含む、図に示した様々な要素の機能は、専用のハードウェア、ならびに適切なソフトウェアに関連してソフトウェアを実行することができるハードウェアの使用により提供されてもよい。プロセッサによって提供されるとき、機能は、単一の専用プロセッサによって、単一の共有プロセッサによって、またはその一部を共有することができる複数の個々のプロセッサによって、提供されてもよい。さらに、「プロセッサ」という用語の明示的な使用は、ソフトウェアを実行することができるハードウェアのみを指すと解釈されるべきではなく、暗黙的に、限定はしないが、DSPハードウェア、ネットワークプロセッサ、特定用途向け集積回路(ASIC)、FPGA、ソフトウェアを記憶するための読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、および不揮発記憶装置を含むことがある。従来型および/またはカスタム型の他のハードウェアもまた、含まれることがある。
【００１９】
インターフェース106は、様々なソフトウェアおよびハードウェアインターフェース、たとえば、キーボード、マウス、外部メモリ、およびプリンタなどの周辺デバイスのためのインターフェースを含んでもよい。インターフェース106は、たとえばローカルエリアネットワーク(LAN)、ケーブルなどのワイヤードネットワークと、ワイヤレスLAN(WLAN)、セルラー、または衛星などのワイヤレスネットワークとを含む、多種多様なネットワークおよびプロトコルタイプ内の複数の通信を容易にすることができる。
【００２０】
メモリ104などの1つまたは複数のメモリは、システムの機能を実装するためにシステムによって使用される、任意の数の情報およびデータを記憶してもよい。メモリ104は、たとえば、揮発性メモリおよび/または不揮発性メモリを含んでもよい。揮発性メモリの例は、限定はしないが、揮発性ランダムアクセスメモリを含んでもよい。不揮発性メモリは、追加または代替として、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、ハードドライブなどを含んでもよい。揮発性メモリのいくつかの例は、限定はしないが、ランダムアクセスメモリ、ダイナミックランダムアクセスメモリ、スタティックランダムアクセスメモリなどを含む。不揮発性メモリのいくつかの例は、限定はしないが、ハードディスク、磁気テープ、光ディスク、プログラマブル読取り専用メモリ、消去可能プログラマブル読取り専用メモリ、電気的消去可能プログラマブル読取り専用メモリ、フラッシュメモリなどを含む。メモリ104は、システム100が様々な例示的な実施形態により様々な機能を実行できるようにするための情報、データ、アプリケーション、命令などを記憶するように構成されてもよい。追加または代替として、メモリ104は、プロセッサ102によって実行されると、様々な実施形態において説明するようにシステムを挙動させる命令を記憶するように構成されてもよい。メモリ104は、トレーニングバイアス補正モジュール108および他のモジュールを含む。モジュール108および他のモジュールは、特定のタスクを実行する、または特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。他のモジュールは、システム100の適用および機能を補うプログラムまたはコード化された命令を含んでもよい。
【００２１】
動作時、システム100は、ユーザからクエリを受け取る。たとえば、システム100は、ユーザからクエリを受け取る、よくある質問ボット(frequently asked question-bot)を含む。一例では、ボットを構築するためのよくある質問のデータセットは、意味的に類似した質問
【００２２】
【数１】
2019057280.tif 000003
【００２３】
と、それらの対応する回答aiのセットを含む。そのような質問Qiと対応する回答aiのセットは、まとめてクエリセットsi = {Qi, ai}と呼ばれる。クエリセットsiの質問は、Qi = Q (si)と表される。データセットDは、多くのそのようなクエリセット、すなわちD = {s1 … sm}から成ると仮定する。チャットボット実装形態では、ユーザのクエリqの場合、目的は、対応する回答aが示されるように、マルチクラス分類モデルにより対応するクエリセットsを選択することである。
【００２４】
さらに、トレーニングバイアス補正モジュール108は、推論時間において長短期記憶変分オートエンコーダ(LSTM-VAE)を使用して、受け取ったクエリに関連付けられたクエリのセットを生成する。トレーニングデータD中のすべての質問、Q = UQ (si), ∀si∈ D、の場合、トレーニングバイアス補正モジュール108は、LSTM-VAEを使用して新しい質問Q'を生成する。Q'中の質問のいくつかは、Dのクエリセットのうちの1つに意味的に類似しているが、残りの質問は、既存のクエリセットのいずれにも属さない。
【００２５】
たとえば、VAEは、シーケンスオートエンコーダとは異なり、確率的エンコーダ(q・(z|x)、認識モデル)と、デコーダ(pθ(x|z)、生成モデル)とから成る生成モデルである。事後分布pθ(z|x)は、計算が困難であることが知られている。この例では、LSTMユニットをもつ単一層の再帰型ニューラルネットワーク(RNN:recurrent neural network)が、VAEのエンコーダおよびデコーダとして使用される。最初に、可変長入力クエリが、図2のアーキテクチャ200に示すようにエンコーにダおいて逆順で渡される。クエリの単語はまず、単語埋込み層を通過した後、LSTM層に供給される前に、ベクトル表現に変換される。LSTMの最後の隠れ状態
【００２６】
【数２】
2019057280.tif 000004
【００２７】
は、次いで、事後分布q・(z|x)のμおよびσを予測するフィードフォワード層を通過する。サンプリングの後、再パラメータ化トリック(re-parameterization trick)を経て、サンプリングされたエンコーディングzは、フィードフォワード層を通過して、
【００２８】
【数３】
2019057280.tif 000005
【００２９】
を取得し、これがデコーダRNNの開始状態である。さらに、エンコーディングzは、時間ステップごとに入力としてLSTM層に渡される。時間tにおいて予測された、最も高い確率をもつ単語のベクトル表現もまた、図2に示すように、次の時間ステップ(t+1)において入力として渡される。これは、実際の単語をデコーダに入力することによって生成されるクエリと比較してより多くのクエリを生成する際にLSTM-VAEの助けとなる。
【００３０】
例示的な実装形態では、LSTM-VAEは、重み-コストアニーリング技法を使用してトレーニングされる。たとえば、重み-コストアニーリング技法は、あらかじめ定義されたエポックの後に直線的にカルバック-ライブラー(KL:Kullback-Leibler)ダイバージェンス損失の重みを増やし、同時に、再構成損失の重みを減らす。この例では、KLダイバージェンス損失の重みは、すべてのeエポックの後に直線的に増やされ、同時に、再構成損失の重みを減らす。これにより、KLダイバージェンス損失は、最初に数時間ステップの間増加しても、時間ステップにつれて減少し始めるが、非ゼロにとどまる。これは、図3のグラフ300に示している。
【００３１】
この例示的な実装形態では、以下の式1で述べる重み付き損失関数が利用され、λ = 0でモデルのトレーニングが開始され、最初のeエポックの間それは固定されたままであり、すなわちλ(0 - e) = 0である。さらに、λは、eエポックごとに、rだけ増加し、すなわち、λ(e-2e) = λ(0-e) +rである。ここでは、eおよびrは、ハイパーパラメータであると仮定する。たとえば、eのチューニング範囲は[5、10、15]、rは[.1、.05、および.025]である。
【００３２】
【数４】
2019057280.tif 000006
【００３３】
この例示的な実装形態では、zは、予測された分布から最も高い確率の単語を獲得して、すなわち、貪欲デコーディング
【００３４】
【数５】
2019057280.tif 000007
【００３５】
でLSTMデコーダのすべてのステップにおいて渡される。センテンスデコーディング中にデコーダをzにより依存させるために、デコーダが貪欲デコーディングを使用することによって予測される単語の代わりに、<UNK>トークンを次のステップに渡すことによって、単語ドロップアウトが使用される。z、kを使用したセンテンスのデコード中に、単語のごく一部は、ランダムに<UNK>トークンに置き換えられ、ここでk∈[0,1]もまたハイパーパラメータと見なされる。
【００３６】
入力センテンスに類似したセンテンスを生成するために、∈はサンプリングされ、zは、式2を使用して取得され、式2は連続関数であり、したがって微分可能である。たとえば、zの次元は、[20, 30, 50]である。これらのサンプリングされたエンコーディングは、センテンスを取得するために貪欲デコーディングを使用する生成モデルによってデコードされる。
z= μ+ε・σ、但しε〜N(0,1)                                                (2)
【００３７】
さらに、トレーニングバイアス補正モジュール108は、生成されたクエリのセットから、連続的に繰り返す単語を含む1つまたは複数のクエリを廃棄して、生成されたクエリのサブセットを作成する。加えて、トレーニングバイアス補正モジュール108は、トレーニングデータの第1のセットについてトレーニングされた言語モデルによる尤度に基づいて、生成されたクエリのサブセットから1つまたは複数のクエリを選択する。1つまたは複数の選択されたクエリは、あらかじめ定義されたデータと一致している。たとえば、あらかじめ定義されたデータは、特定の領域の専門家によって生成されたクエリを含む。例示的な実装形態では、トレーニングバイアス補正モジュール108は、言語モデルによる尤度に基づいて、生成されたクエリのサブセット中の語彙単語について条件付き確率分布を学習する。さらに、トレーニングバイアス補正モジュール108は、語彙単語についての学習した条件付き確率分布に基づいて、生成されたクエリのサブセットからクエリを選択する。
【００３８】
一例では、RNN言語モデル(RNNLM)が、語彙単語について条件付き確率分布を学習する生成モデルである。それは、これまで見られた単語hiおよび現在の入力wiの表現とすると次の単語(wi+1)を、シーケンス長Nにわたって平均された、次の単語の対数尤度を最大化することp (wi+1 | hi, wi) = Softmax (Wshi +bs)によって、予測する。一般に、RNNLMの性能は、パープレキシティ(perplexity)(低い方が良い)を使用して測定され、Perplexity =
【００３９】
【数６】
2019057280.tif 000008
【００４０】
である。交差エントロピー損失は、言語モデルをトレーニングするために使用される。
【００４１】
【数７】
2019057280.tif 000009
【００４２】
さらに、トレーニングバイアス補正モジュール108は、選択されたクエリを、第1の分類器モデル(すなわち、ディープラーニング分類器)を使用してトレーニングデータの第1のセットに存在するクエリとして、またはマニュアルラベリングに基づく新しいクエリとして分類する。たとえば、第1の分類器モデル(M1)は、トレーニングデータの第1のセットについてトレーニングされた分類のためのLSTMユニットをもつ単一層の再帰型ニューラルネットワークである。これは、分類のベースラインとして使用される。一般に、分類は、第1のステップがデータの表現を要求する、2ステップのプロセスと考えることができる。第2のステップは、分類のためにこの表現を使用することを含む。データは、語順情報を無視するバッグオブワーズ(bag of words)手法を使用して、または、複数のデータセット/タスクに一般化することができない、人手で設計した特徴(hand-crafted feature)を使用して表現することができる。RNN層を通してセンテンスを渡した後に取得される、固定長ベクトル表現hで可変長センテンスを表現することによって、LSTMユニットをもつRNNを使用して、タスク固有センテンス表現を学習する。次いで、hのアフィン変換にソフトマックスが適用され、すなわち、p (c|h) = Softmax (Wsh + bs)である。上記のモデルの重みを学習するために、カテゴリカル交差エントロピー損失は最小にされ、すなわち、
【００４３】
【数８】
2019057280.tif 000010
【００４４】
ここで、ciはmクラスのうちの1つであり、yはターゲットクラスに対してのみ1であり、それ以外は0である。
【００４５】
例示的な実施形態では、トレーニングバイアス補正モジュール108は、ソフトマックス分布関数のエントロピーに基づいて第1の分類器モデルによって正しく分類されている新しいクエリのうちの1つまたは複数(上位k個)を選択する。この例示的な実装形態では、VAEによって生成された新規の質問のラベルを取得するために、トレーニングバイアス補正モジュール108は、M1を使用し、トレーニングデータを拡張するための候補として、ソフトマックス分布のエントロピーに基づいて、上位K個のセンテンスを選択する。また、トレーニングバイアス補正モジュール108は、第1の分類器モデルによって誤って分類されている選択されたクエリを、ユーザが識別できるようにする。一実施形態では、トレーニングバイアス補正モジュール108は、ユーザがラベルを確認し、ラベルがM1によって不正確に分類されている場合、ラベルを訂正できるようにする。また、トレーニングバイアス補正モジュール108は、明らかに新しいクラスに対応する質問を取り除く。
【００４６】
さらに、トレーニングバイアス補正モジュール108は、第1の分類器モデル(M1)によって正しく分類された上位k個の新しいクエリ、および第1の分類器モデルによって誤って分類されているクエリで、トレーニングデータの第1のセットを拡張して、トレーニングデータの第2のセットを取得する。さらに、トレーニングバイアス補正モジュール108は、トレーニングデータの第2のセットを使用して第2の分類器モデルをトレーニングし、それによってトレーニングデータにおける言語的トレーニングバイアスを補正する。LSTM-VAEによって生成されたクエリは、第1のトレーニングデータには存在しない、FAQチャットボット用の質問のより新しいクラスを含み、これらは導入のために領域専門家によって検討され、容認される。
【００４７】
図5は、例示的な実施形態による、トレーニングデータにおける言語的トレーニングバイアスを補正するための方法の流れ図を示す。プロセッサ実装方法500は、コンピュータ実行可能命令の一般的なコンテキストに記述されてもよい。一般に、コンピュータ実行可能命令は、特定の機能を行うまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャ、モジュール、関数などを含むことができる。方法500はまた、通信ネットワークを介してリンクされたリモート処理デバイスによって機能が実行される分散型コンピューティング環境で実施されてもよい。方法500を説明する順序は、限定と解釈されるよう意図しておらず、任意の数の説明する方法ブロックは、方法500または代替方法を実装するために、任意の順序で組み合わせることができる。さらに、方法500は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。一実施形態では、フローチャートに示した方法500は、システム、たとえば図1のシステム100によって実行されてもよい。
【００４８】
ブロック502において、ユーザからクエリが受け取られる。ブロック504において、受け取られたクエリに関連付けられたクエリのセットが、推論時間において長短期記憶変分オートエンコーダ(LSTM-VAE)を使用して生成され、LSTM-VAEは、重み-コストアニーリング技法を使用してトレーニングされる。たとえば、重み-コストアニーリング技法は、あらかじめ定義されたエポックの後に直線的にカルバック-ライブラー(KL)ダイバージェンス損失の重みを増やし、同時に、再構成損失の重みを減らす。ブロック506において、連続的に繰り返す単語を含む1つまたは複数のクエリが、生成されたクエリのセットから廃棄されて、生成されたクエリのサブセットを作成する。ブロック508において、生成されたクエリのサブセットから、トレーニングデータの第1のセットについてトレーニングされた言語モデルによる尤度に基づいて、クエリが選択され、1つまたは複数の選択されたクエリは、あらかじめ定義されたデータと一致している。たとえば、あらかじめ定義されたデータは、特定の領域における専門家によって生成されたクエリを含む。例示的な実施形態では、言語モデルによる尤度に基づいて、生成されたクエリのサブセット中の語彙単語について条件付き確率分布が学習される。さらに、クエリは、語彙単語についての学習した条件付き確率分布に基づいて、生成されたクエリのサブセットからクエリを選択する。
【００４９】
ブロック510において、選択されたクエリは、第1の分類器モデルを使用して、トレーニングデータの第1のセットに存在するクエリ、または新しいクエリとして分類される。一例では、第1の分類器モデルは、トレーニングデータの第1のセットについてトレーニングされた分類のためのLSTMユニットをもつ単一層の再帰型ニューラルネットワークである。ブロック512において、トレーニングデータの第1のセットは、トレーニングデータの第2のセットを取得するために新しいクエリで拡張される。例示的な一実施形態では、第1の分類器モデルによって正しく分類されている新しいクエリのうちの1つまたは複数は、ソフトマックス分布関数のエントロピーに基づいて選択される。さらに、トレーニングデータの第1のセットは、第1の分類器モデルによって正しく分類されている新しいクエリのうちの1つまたは複数で拡張される。いくつかの実施形態では、ユーザは、第1の分類器モデルによって誤って分類されている選択されたクエリを識別できるようにされる。さらに、トレーニングデータの第2のセットは、第1の分類器モデルによって誤って分類されているクエリで拡張される。ブロック516において、トレーニングデータの第2のセットを使用して第2の分類器モデルがトレーニングされ、それによってトレーニングデータにおける言語的トレーニングバイアスが補正される。
【００５０】
図6は、例示的な実施形態による、クエリ生成プロセスフローステップ600を示す。図6は、新規のクエリを生成するために辿るワークフロー全体を示す。図6に示すように、ブロック602においてLSTM-VAEを使用して生成された175,000個のクエリから、トレーニングデータにすでに存在するクエリ、ならびに2回以上連続的に繰り返す同じ単語を有するクエリは、ブロック604において取り除かれる。このプロセスの後に、約5,700個のクエリが取得される。これらのクエリは、次いでLMを使用してテストされ、ブロック606において尤度に基づいて上位1500個のセンテンスのみが選択される。これらのセンテンスのうちの多くは文法的に正しいとわかり、それらのうちの一部のみが意味的に不整合であった。ブロック608において、手作業のラベリングに基づいて、1066個のクエリが選択される。このプロセスでは、434個のセンテンスが、既存のクラスのいずれにも属さなかった。これらのセンテンスは、検討のために専門家に与えられ、専門家は33個の新しいクラスに属する120個のセンテンスを選択する。ブロック610において、分類器(M1)が1066個のクエリを、オリジナルのクエリセットにすでに存在しているクエリ、および新しいクエリとして分類する。ブロック612において、上位k個の正しく分類されたクエリおよび誤って分類されたクエリが識別され、オリジナルのトレーニングデータに補われて、新しいトレーニングデータを取得する。さらに、新しいトレーニングデータを使用して新しい分類器がトレーニングされ、それによってトレーニングデータにおける言語的トレーニングバイアスが補正される。
【００５１】
図1〜図6において説明する様々な実施形態は、トレーニングデータにおける言語的トレーニングバイアスを補正するために、LSTM-VAEを使用し、続いてLMを使用したセンテンス選択を行う、生成モデルのための手法を提案する。この手法では、LSTM-VAEをトレーニングするために、重み付きコストアニーリング技法が使用される。そのようなセンテンスがトレーニングセットに追加されるとき、トレーニングセットは間接的に、モデルがそのような非概念語以外の何らかの他の語に基づいてクラスを見分けることを学習するよう強いる。したがって、自動的に生成されたセンテンスでトレーニングデータを拡張すると、言語的トレーニングバイアスによる過学習を補正することができる。新たに生成されたセンテンスは、オリジナルのトレーニングデータに存在しない、完全に新しいクラスに属することがある。さらに、自動的に生成されたセンテンスでトレーニングデータを拡張すると、ディープラーニング分類器の向上した精度(2%)がもたらされる。
【００５２】
記述した説明は、いかなる当業者も実施形態を作成し、使用することができるように、本明細書の主題を説明している。主題実施形態の範囲は、特許請求の範囲によって定義され、当業者に思い付く他の変更形態を含む場合がある。そのような他の変更形態は、それらが特許請求の範囲の文字通りの言葉と違わない同様の要素を有する場合、または、特許請求の範囲の文字通りの言葉とはわずかな違いのある等価な要素を含む場合、特許請求の範囲の範囲内にあるものとする。
【００５３】
しかしながら、保護の範囲はそのようなプログラムに、さらにメッセージをその中に有するコンピュータ可読手段に広げられ、そのような非一時的コンピュータ可読記憶手段は、プログラムがサーバまたはモバイルデバイスもしくは任意の好適なプログラマブルデバイス上で動作するとき、この方法の1つまたは複数のステップを実施するためのプログラムコード手段を含むことを理解されたい。ハードウェアデバイスは、たとえば、サーバ、もしくはパーソナルコンピュータなど、またはそれらの任意の組合せのような任意の種類のコンピュータを含む、プログラム可能である任意の種類のデバイスとすることができる。デバイスは、たとえば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)のようなハードウェア手段、またはハードウェアおよびソフトウェア手段の組合せ、たとえばASICおよびFPGA、または少なくとも1つのマイクロプロセッサおよびソフトウェアモジュールがそこにある少なくとも1つのメモリを含む場合もある。したがって、手段は、ハードウェア手段とソフトウェア手段の両方を含むことができる。本明細書で説明する方法の実施形態は、ハードウェアおよびソフトウェアで実装されることがある。デバイスは、ソフトウェア手段を含む場合もある。代替的に、実施形態は、たとえば、複数のCPUを使用して、異なるハードウェアデバイス上で実装される場合がある。
【００５４】
本明細書の実施形態は、ハードウェアおよびソフトウェア要素を含むことができる。ソフトウェアで実装される実施形態は、限定はしないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含む。本明細書で説明する様々なモジュールによって行われる機能は、他のモジュールまたは他のモジュールの組合せで実装される場合がある。この説明の目的で、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連して使用されるプログラムを含む、記憶する、通信する、伝搬する、または移植することができるいかなる装置とすることもできる。
【００５５】
特定の実装形態および実施形態の上記の説明は、本明細書の実装形態および実施形態の一般的性質を十分に明らかにするので、他の人々は、この知識を適用することによって、包括的な概念から逸脱することなくこのような特定の実施形態を様々な用途のために容易に変更し、および/または適応させることができ、したがって、このような適応形態および変更形態は、開示する実施形態の均等物の意味および範囲内に含まれるべきであり、含まれるものとする。本明細書で使用される語法または用語は、説明のためであり、限定のためではないことを理解されたい。したがって、好ましい実施形態に関して本明細書の実施形態を説明したが、本明細書の実施形態は、本明細書に記載する実施形態の趣旨および範囲内で変更して実践できることを当業者には認識されよう。
【００５６】
前述の説明は、様々な実施形態に関して示した。本出願が関係する当業者には、原理、趣旨、および範囲から有意味に逸脱することなく、動作の説明した構造および方法の改変および変更を実施できることを諒解されよう。
【符号の説明】
【００５７】
100  システム
102  プロセッサ
104  メモリ
106  ネットワークインターフェースユニット
108  トレーニングバイアス補正モジュール
200  アーキテクチャ
【図１】
2019057280.tif 000011
【図２】
2019057280.tif 000012
【図３】
2019057280.tif 000013
【図４】
2019057280.tif 000014
【図５】
2019057280.tif 000015
【図６】
2019057280.tif 000016
【外国語明細書】
2019057280000001.pdf