(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023167720
(43)【公開日】2023-11-24
(54)【発明の名称】対話装置、対話システム、及び、対話方法
(51)【国際特許分類】
G06F 40/56 20200101AFI20231116BHJP
G06F 40/44 20200101ALI20231116BHJP
G06F 16/90 20190101ALI20231116BHJP
【FI】
G06F40/56
G06F40/44
G06F16/90 100
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022079113
(22)【出願日】2022-05-12
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】内田 尚和
(72)【発明者】
【氏名】本間 健
(72)【発明者】
【氏名】岩山 真
【テーマコード(参考)】
5B091
5B175
【Fターム(参考)】
5B091AA15
5B091CA01
5B091CA21
5B091EA01
5B175EA01
(57)【要約】
【課題】
さまざまなカテゴリーの有害入力に対して、それぞれのカテゴリーに合った適切な応答を返すことができる対話システムを提供する。
【解決手段】
情報処理装置205と、情報処理装置にネットワーク202を介して接続されるサーバ201を有する対話システムであって、サーバは、入力データを受け付ける入力部401と、入力データによる攻撃対象ごとに、有害な入力データに対し安全な応答文を出力するよう学習され、入力データに対し、それぞれが応答文を生成する複数の対話モデル408と、複数の応答文から、所定の基準に基づいて応答文を、選択して出力する応答選択部405と、を備える。
【選択図】
図4A
【特許請求の範囲】
【請求項1】
情報処理装置と、情報処理装置にネットワークを介して接続されるサーバを有する対話システムであって、
前記サーバは、
前記情報処理装置から、入力データを受け付ける入力部と、
入力データによる攻撃対象ごとに、有害な入力データに対し安全な応答文を出力するよう学習され、入力データに対し、それぞれが応答文を生成する複数の対話モデルと、
前記複数の対話モデルによって生成された複数の応答文から、所定の基準に基づいて最も適切な応答文を選択して出力する応答選択部と、を備える
対話システム。
【請求項2】
請求項1に記載の対話システムであって、
前記応答選択部は、
応答文が有害か否かを判定する有害性評価モデルを使用して前記複数の対話モデルが出力した複数の応答文のそれぞれの有害性スコアを算出し、
有害性スコアが所定の閾値未満、かつ、最も低い応答文を選択する
対話システム。
【請求項3】
請求項1に記載の対話システムであって、
前記複数の対話モデルのそれぞれは、
入力データによる攻撃対象ごとに、有害な入力データと入力データに対する安全な応答文で学習される
対話システム。
【請求項4】
請求項3に記載の対話システムであって、
前記サーバは、前記複数の対話モデルを作成するモデル管理部を有し、
前記モデル管理部は、
前記入力部から入力した入力データに対し有害性評価モデルを利用してアノテーションを実行し、
前記入力部から入力した入力データから、有害な入力データに対し安全な応答文が含まれる入力データを抽出し、
抽出した入力データを、前記攻撃対象ごと分類し、
分類された各入力データを利用して、汎用有害性対応対話モデルとしてベース対話モデルを追加学習し、
前記汎用有害性対応対話モデルを、当該攻撃対象に分類された入力データを利用して追加学習することで、攻撃対象ごとに攻撃対象対応対話モデルを生成する
対話システム。
【請求項5】
請求項1に記載の対話システムであって、
前記応答選択部は、
入力データによる攻撃対象ごとに有害か否かを判定する複数の有害性評価モデルを使用して前記複数の対話モデルが出力した応答文の有害性スコアを算出し、
算出された有害性スコアが所定の閾値未満、かつ、最も低い応答文を選択する
対話システム。
【請求項6】
請求項5に記載の対話システムであって、
前記サーバは、
前記複数の応答文の攻撃対象ごとの有害性スコアを管理する有害性スコアテーブルと、
攻撃対象ごとの有害性スコアの閾値と重み係数を管理する閾値、重み係数管理テーブルとを、記憶する記憶デバイスを有し、
前記応答選択部は、
攻撃対象ごとに前記有害性スコアテーブルの有害性スコアと前記閾値、重み係数管理テーブルの閾値を比較することで、応答文の有害性を判断し、
有害性の判断で安全な応答文の内、攻撃対象ごとの重み係数に基づいて、最適な応答文を選択する
対話システム。
【請求項7】
請求項4に記載の対話システムであって、
前記複数の対話モデルは、
入力データによる攻撃対象をカテゴリーとして分類し、前記カテゴリーを複数混合した混合カテゴリーで分類された有害な入力データと該入力データに対する安全な応答文で学習されたものである
対話システム。
【請求項8】
請求項7に記載の対話システムであって、
前記入力部は、
前記複数の対話モデルに含まれる対話モデルのうち、使用する攻撃対象対応対話モデルを指定し、
前記モデル管理部は、指定された攻撃対象対応対話モデルを使用して入力データに対する応答文を生成する
対話システム。
【請求項9】
入力データを受け付ける入力デバイスと、応答文を出力する出力デバイスとを有する対話装置であって、
前記入力デバイスにより入力された入力データによる攻撃対象ごとに、有害な入力データに対し安全な応答文を出力するよう学習され、前記入力データに対し、それぞれが応答文を生成する複数の対話モデルと
複数の応答文から所定の基準に基づいて応答文を選択して、前記出力デバイスに出力する応答選択部と、を備える
対話装置。
【請求項10】
入力部と出力部とを備えた対話システムを用いた対話方法であって、
前記対話システムの複数の対話モデルは、
有害な入力データに対し安全な応答文を出力するよう学習されたものであり、
前記複数の対話モデルは、入力された入力データによる攻撃対象ごとに、前記入力データに対し、それぞれが応答文を生成し、
前記複数の対話モデルのそれぞれの応答文から、所定の基準に基づいて応答文を選択して出力する
対話方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対話装置、対話システム、及び、対話方法に関する。
【背景技術】
【0002】
Web上からSNSやチャットの対話ログを収集して作成した対話システムでは、誹謗中傷などの不適切な応答を防止するため、例えば、特開2006-11592(特許文献1)に記載の技術がある。この公報では、禁止用語を含む文を出力することを防止することを目的とする。そのため、分割部81は、入力された文を単語に分割する。単語リスト記憶部83は、文中での使用を許可する単語を記憶する。文削除部82は、分割部81から供給される文のすべての単語が、単語リスト記憶部83に記憶される文中での使用を許可する単語である場合、その文を出力する。特許文献1には、例えば、対話を行うロボット装置の対話の応答文の作成に利用される入出力ペア(の出力例)の取捨選択に適用する、技術が記載されている。
【0003】
また、非特許文献1には、事前学習済言語モデルを用いた対話システムにおいて、誹謗中傷を含む発話とそれに対して適切な応答を返している対話ログをSNSから収集し、この対話ログで言語モデルを追加学習することで誹謗中傷の発話に対して適切な応答を出力する技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【非特許文献1】Ashutosh Baheti他2名“Just Say No: Analyzing the Stance of Neural Dialogue Generation in Offensive Contexts”、Georgia Institute of Technology, Atlanta, GA, USA [online]<URL:https://arxiv.org/abs/2108.11830>
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1では応答に含まれる単語のみで出力可否、つまり、不適切か否かを判定しており、有害な単語は含まれていなくとも意味としては不適切となる応答を抑制することができない。例えば、誹謗中傷に対して「私もそう思う。」と応答した場合、不適切な応答となるが、応答文に有害な単語は含まれておらず、単語のみでは不適切と判定することができない。
【0007】
非特許文献1はこのような課題を解決するものだが、有害発言には、人種・民族差別やジェンダー差別などさまざまなカテゴリーがあるのに対し、これらを一つの有害性として扱っていることから、有害発言によってカテゴリーに応じた適切な応答を出力できない場合がある。
【0008】
そこで、本発明は、さまざまなカテゴリーの有害入力に対して、それぞれのカテゴリーに合った適切な応答を返すことができる対話システムを提供する。
【課題を解決するための手段】
【0009】
上記目的を達成するために、例えば特許請求の範囲に記載の構成を採用する。
【0010】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、情報処理装置と、情報処理装置にネットワークを介して接続されるサーバを有する対話システムである。サーバは、情報処理装置から、投稿コメントやその投稿コメントに対する返信コメント等の入力文を含む入力データを受け付ける入力部と、入力データによる攻撃対象ごとに、有害な入力データに対し安全な応答文を出力するよう学習され、入力データに対し、それぞれが応答文を生成する複数の対話モデルと、複数の対話モデルから生成される複数の応答文から、所定の基準に基づいて、一つの応答文を選択して出力する応答選択部と、を備える対話システムである。
【発明の効果】
【0011】
本発明によれば、さまざまな種類の有害発言に対して、カテゴリーに応じた適切な応答を返すことができる対話システムを提供することができる。
【0012】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0013】
【
図1】第1の実施形態に係る対話システムの対話処理の説明図である。
【
図2】対話システムのシステム構成例の一例を示す説明図である。
【
図3】対話システムのハードウェア構成例の一例を示すブロック図である。
【
図4A】第1の実施形態に係る対話システムの機能的構成例の一例を示す図である。
【
図4B】第1の実施形態に係る対話システムの記憶デバイスに格納されるデータの一利絵を説明する図である。
【
図5】掲示板型SNSの対話ログの整形方法を示す説明図である。
【
図6】コメントに対するアノテーション例を示す図である。
【
図7】第1の実施形態に係る対話システムの有害性評価モデル作成処理のフローチャートを示す図である。
【
図8】第1の実施形態に係る対話システムの有害性評価モデル作成処理におけるデータフローの説明図である。
【
図9】第1の実施形態に係る対話システムの有害カテゴリー対応対話モデル作成処理のフローチャートを示す図である。
【
図10】第1の実施形態に係る対話システムの有害カテゴリー対応対話モデル作成処理におけるデータフローの説明図である。
【
図11】第1の実施形態に係る対話システムの対話処理のフローチャートを示す図である。
【
図12】第2の実施形態に係る対話システムの機能的構成例の一例を示すブロック図である。
【
図13】第2の実施形態に係る対話システムの対話処理のフローチャートを示す図である。
【
図14】第2の実施形態に係る対話システムの有害性スコアの例を示す図である。
【
図15】第2の実施形態に係る対話システムのカテゴリー別有害性スコアの閾値と総合有害性スコアを算出するための重み係数の例を示す図である。
【
図16】第3の実施形態にかかる対話システムの機能的構成例の一例を示すブロック図である。
【
図17】第3の実施形態にかかる対話システムの有害性評価モデル作成処理のフローチャートを示す図である。
【
図18】第3の実施形態にかかる共起カテゴリーの登録例を示す図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施形態を説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
【0015】
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
【0016】
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)および/またはインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路(例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit))を含んでいてもよい。
【0017】
本実施の形態による対話装置、対話システム、対話方法は、例えば、パーソナルコンピューターの操作に対するQA、保険加入に関するQAの他、受付ロボット、コールセンタや高齢者向けロボットに適応される。特に、受付ロボット、コールセンタや高齢者向けロボットでは、多岐にわたる入力文を含む入力データに対して安全な応答文を出力することができ、受付時やコールセンタへの問い合わせに対する適切なおもてなし、高齢者の孤独を和らげるといった価値を提供することできる。
【実施例0018】
本発明の第1の実施形態に係る対話処理の説明図を
図1に示す。対話システム100は、ユーザから入力文を含む入力データ110を受け取り、応答文111を出力する。入力データ110は入力文含み、入力文は有害な発言の一例であり、投稿コメント、投稿コメントと投稿コメントに対する返信コメント等を含む。以下、入力データ110を入力文110として説明を続ける。対話システム100は、有害カテゴリー1に分類される有害な入力文に適切な応答ができるよう調整した有害カテゴリー1対応対話モデル101、有害カテゴリー2に分類される有害な入力文に適切な応答ができるよう調整した有害カテゴリー2対応対話モデル102、有害カテゴリーNに分類される有害な入力文に適切な応答ができるよう調整した有害カテゴリーN対応対話モデル103を備えており、入力文をそれぞれの対話モデルに入力して応答文を生成する。
【0019】
ここで「有害カテゴリー」とは、投稿コメントを含む入力データ、投稿コメントと投稿コメントに対する返信コメントを含む入力データに含まれる入力文よって攻撃される対象「攻撃対象」であって、例えば、人種・民族差別や犯罪記事等である。そのため、有害カテゴリー1対応対話モデル101、有害カテゴリー2対応対話モデル102、有害カテゴリーN対応対話モデル103を、攻撃対象対応対話モデルと称することもできる。
【0020】
そして、対話システム100は、対話モデルが生成した各応答文に対して、有害か否かを評価して有害性スコアを算出し、有害性スコアがもっとも低い応答文を選択して出力する。
図1では、入力文110に対して、有害カテゴリー1対応対話モデル101が出力した応答文104の有害性が最も低いと判定され、応答文111として出力されている様子を表している。
【0021】
<対話システム>
図2は、実施例1にかかる対話システムのシステム構成例を示す説明図である。対話システム100は、たとえば、クライアントサーバシステムであり、サーバ201と、PC203、スマートフォン204などの情報処理装置205と、を有する。サーバ201と情報処理装置205とは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などのネットワーク202を介して通信可能である。
【0022】
クライアントサーバシステムの場合、対話プログラムは、サーバ201にインストールされる。したがって、サーバ201は、対話システムとして、応答生成、モデル管理、応答選択、対話履歴管理処理を実行する。この場合、情報処理装置205は、処理対象のテキストのサーバ201への送信、サーバ201からの処理結果の受信、処理対象のテキストを入力するインタフェースとなる。
【0023】
一方、スタンドアロン型の場合、対話プログラムは、情報処理装置205にインストールされ、サーバ201は不要である。したがって、情報処理装置205は、対話装置として、テキストの入力、入力したテキストの応答生成、結果の出力を実行する。
【0024】
<対話システムのハードウェア構成例>
図3は、対話装置300のハードウェア構成例を示すブロック図である。
【0025】
対話装置300は、対話システムの場合にはサーバ201に相当し、スタンドアロン型の場合には情報処理装置205に相当する。対話装置300は、プロセッサ301と、記憶デバイス302と、入力デバイス303と、出力デバイス304と、通信インタフェース(通信IF)305と、を有する。プロセッサ301、記憶デバイス302、入力デバイス303、出力デバイス304、および通信IF305は、バス306により接続される。プロセッサ301は、対話装置300を制御する。記憶デバイス302は、プロセッサ301の作業エリアとなる。また、記憶デバイス302は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス302としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス303は、データを入力する。入力デバイス303としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナ、マイク、生体センサがある。出力デバイス304は、データを出力する。出力デバイス304としては、たとえば、ディスプレイ、プリンタ、スピーカがある。通信IF305は、ネットワーク202と接続し、データを送受信する。
【0026】
<対話システム100の機能的構成例>
図4Aは、実施例1にかかる対話システム100の機能的構成例を示すブロック図である。対話システム100は、対話処理プログラムがインストールされたコンピュータであり、情報処置装置205、あるいはサーバ201である。対話システム100は、対話処理プログラムにより、入力部401、応答生成部404、モデル管理部402、対話モデル群408、有害性評価モデル403、応答選択部405、対話履歴管理部407、出力部406を実現する。
【0027】
図4Bに示すように、入力部401、モデル管理部402、応答生成部404、応答選択部405、出力部406、対話履歴管理部407は、プロセッサ301が記憶デバイス302に格納された対話処理プログラム410を実行することで各種機能を実現する。
【0028】
また、対話モデル群408、有害性評価モデル403、ベース対話モデル1002も、記憶デバイス302に格納される。
【0029】
また、後述する有害単語リスト802、アノテーションデータ600等の各種データは、記憶デバイス302の各種データ411内に格納される。
【0030】
入力部401は、
図3の入力デバイス303に対応し、入力文であるテキストデータを読み込むモジュールで、テキストデータの加工と応答生成部404への入力を行う。また、有害性評価モデル403と対話モデル群408作成時のテキストデータの登録は、すべて入力部401を介して行われる。
【0031】
モデル管理部402は、応答生成部404が使用する対話モデル群408と、応答選択部405が使用する有害性評価モデル403を管理する。モデル管理部402は、応答生成部404の指示に従って所定のモデルにテキスト(入力文)を入力し、モデルの出力結果(応答文)を返す。また、モデル管理部402は、応答選択部405の指示に従って所定のモデルに応答文を入力し、所定のモデルにより応答文の有害性スコアを算出し、応答文の有害性を把握する。さらに、モデル管理部402は、各種モデルの作成と登録も行う。
【0032】
応答生成部404は、入力部401から受け取ったテキスト(入力文)を、モデル管理部402を介して対話モデル群408に入力し、それぞれの有害カテゴリー対応対話モデル(以下、単に対話モデルと称する)から応答文を取得する。対話モデルは、テキストを入力するとそのテキストに対する応答文を生成する。対話モデルは、SNSなどから取得した複数往復の対話文で学習したニューラル言語モデルである。
【0033】
図5は、入力部401から入力される掲示板型SNSから取得した投稿コメントと返信コメントのテキストで、ニューラル言語モデルの学習を行って対話モデルを作成するまでの説明図である。
【0034】
500は、入力部401から入力される掲示板型SNSのスレッド(投稿と一連の返信のツリー構造)を示す一例である。投稿コメント501に対する返信コメントが502と505である。また、返信コメント502に対する返信として返信コメント503が、さらにその返信として返信コメント504がある。
【0035】
510は、入力部401において、500の投稿コメントと返信コメントをニューラル言語モデルの学習用に整形したデータである。500は502~504と505~506の2つの枝を持ち、510では、それぞれの枝が511と512として整形されている。511は、501~504のコメントを連結したテキストで、「|」はコメントとコメントの境界を示す特殊なトークン(単語)であり、ニューラル言語モデルはこのトークンをもとに複数のコメントで構成されるテキストからそれぞれのコメントの範囲を認識する。
【0036】
入力文として、投稿コメントと返信コメントを含む510の形式で大量の対話データを用意してニューラル言語モデルを学習することで、対話モデル522が作成され、例えば、対話モデル522に入力文521「午後から雪が降るそうです。」を与えると、この入力に対して尤もらしい応答として出力523「初雪ですね。」が得られる。対話モデル群408の対話モデルは、後述の方法で有害発言に対して適切な応答を出力できるよう学習された対話モデルである。
【0037】
ニューラル言語モデルを用いた対話モデルには、例えば、GPT-2(Generative Pre-trained Transformer 2)を用いて作成できる。例えば、SNSから取得したデータをGPT-2アーキテクチャで学習した対話モデルに、DialoGPTがある。なお、複数往復の対話履歴を含むテキストを入力としてその応答のテキストを出力することができればよく、これ以外の技術を用いて実現してもよい。例えば、別のアーキテクチャとして、BART(Bidirectional Auto-Regressive Transformer)が挙げられる。
【0038】
有害性評価モデル403は、入力部401から入力されたテキストが有害発言等の有害な内容か否かを判別する文分類モデルで、入力されたテキスト(入力文)に対して有害か否かの二値の分類を行う。また、分類モデルの出力をソフトマックス関数に通して算出した分類結果の確率を、有害性スコアとして出力する。
【0039】
有害性評価モデル403も、GPT-2(Generative Pre-trained Transformer 2)によって実現される。有害性評価モデル403は、後述の方法で有害な内容か安全な内容かの二値のラベルをコメント単位で付与したデータを用意し、文を入力した際にその文のラベルを予測するよう追加学習を行う。
【0040】
応答選択部405は、応答生成部404が対話モデルによって出力した各応答文に対してモデル管理部402を介して有害性評価モデル403による評価を行う。応答選択部405は、有害性スコアが所定の閾値未満でかつ、もっとも低い応答文を出力部406と対話履歴管理部407に出力する。出力部406は、応答選択部405が選択した応答文を出力デバイス304に出力する。
【0041】
対話履歴管理部407は、応答選択部405が選択した応答文を対話履歴として保持し、入力部401が入力を受け取ったときに、保持していた対話履歴を応答生成部404に出力する。例えば、対話履歴管理部407は、
図5の入力される投稿コメント521に対し、応答選択部405により選択された応答文523との対応を管理する。
【0042】
<有害性評価モデル作成処理>
有害性評価モデル作成処理は、実施例1にかかる対話システム100において、モデル管理部402が、対話処理に必要な有害性評価モデルの作成、および、有害カテゴリー対応対話モデルの作成処理に使用するカテゴリー別有害性評価モデルの作成を行う処理である。モデル管理部402は、掲示板型SNSから取得した投稿コメントとそれに対する返信コメントに対し、ユーザを介して有害性有無のアノテーションを行い、これを使用して有害性評価モデルの学習を行う。有害性評価モデルを作成する処理のフローチャートを
図7に、また、この処理におけるデータフローを
図8に示す。アノテーションを行うデータの例を
図6に示す。
【0043】
図8に示すように、モデル管理部402は、まず、SNSのダンプデータ801から有害発言を含むスレッドを抽出し、有害性評価モデルの学習用にデータの整形を行う(ステップS701)。ダンプデータ801は、一定期間のSNSのログをまとめたデータである。ダンプデータが取得できない場合は、SNSのクローリングによってデータを、入力部401から取得する。
【0044】
有害発言を含むスレッドの抽出は、有害発言関連用語リスト802の単語を含むスレッドをスクリーニングする。有害単語リスト802は誹謗中傷等の有害発言で頻出する単語のリストであり、記憶デバイス302の各種データ411として格納されている。単語リストは、Web上で公開されている禁止用語のリストなどを利用すればよく、また、ユーザが独自に作成してもよい。ステップS701のデータ整形は、
図5で例示した形式500のデータを形式510のデータに整形する入力部401の処理である。
【0045】
次にモデル管理部402は、ステップS701で整形されたデータ803に対して有害性有無に関するデータを付与するアノテーションを行う。アノテーションは人手で行うため、モデル管理部402がアノテーション対象のデータを出力デバイス304に出力し、入力デバイス303を通してユーザの入力を受け付ける。
【0046】
モデル管理部402は、整形済データ803から一つのデータを取り出す(ステップS702)。ここで、データとは、
図5の511、512で例示した投稿コメントとその返信コメントを結合したデータである。このように投稿コメントとその返信コメントのアノテーションを同時に実施することで、コメント単体ではなく前のコメントも踏まえた有害性をアノテーションする。例えば、有害なコメントに同意するコメントも有害とする。
【0047】
有害性は、予め定義されたカテゴリーから選択する。「有害性のカテゴリー」は、投稿コメントを含む入力データ、投稿コメントと投稿コメントに対する返信コメント等の入力文を含む入力データによって攻撃される対象「攻撃対象」であって、たとえば、人種・民族、ジェンダー、宗教、容姿、健康(障がい)、政治・社会経済などである。また、たとえば、特定の人種の特定の性別のように複数のカテゴリーにまたがった有害発言もあるため、有害性のラベルは複数カテゴリーを指定できるようにしておく。このようにして、一つのデータに含まれるすべてのコメントに対してアノテーションを行う(ステップS703)。
【0048】
アノテーションデータの例を
図6に示す。
図6は、アノテーションデータ600を示し、投稿コメント601とその返信コメント602~604に対し、有害性のカテゴリーとしてラベルが付与されている。前述の通り、モデル管理部402は一連の返信コメントをまとめて出力デバイス304に出力し、ユーザに対してアノテーションを実行させることで、文脈を考慮したラベルを付与できるようにする。605~608はアノテーションによって付与されたラベルである。アノテーションデータ600は、コメントに対する攻撃対象を特定するカテゴリーをラベルとして付与されたデータである。
【0049】
コメント601「あの国は犯罪者が多いですね。」は、人種・民族差別的なコメントであるため、「人種・民族」のラベルを付与する。コメント602「そんなことはない。」は、コメント601に反対するコメントであり有害性はないため、「有害性なし」のラベルが付与する。コメント603「いや、その通りだと思う。」は、コメント単体では有害性はないが、コメント601に同意する人種・民族差別的なコメントと判断できるため「人種・民族」のラベルを付与する。コメント604「あの国の男は怠け者の犯罪者だ。」は、人種・民族差別とジェンダー差別の二つの有害性を含むため、608の通り、「人種・民族」と「ジェンダー」の二つのラベルを付与する。
【0050】
ユーザが一つのデータのアノテーションを完了し、ユーザから入力デバイス303を通して登録指示を受け付けると、モデル管理部402は、当該データを登録するとともに、このデータを含めて、これまでアノテーションされたデータについてカテゴリーごとのデータ数を集計する。
【0051】
モデル管理部402は、アノテーションされたデータ数が、あらかじめ設定されたデータ数に満たないカテゴリーがある場合、ステップS702に戻り、次のデータを取り出してアノテーションを続ける。このように、カテゴリーごとに十分な数のデータが登録できるまでアノテーションを行うことで、有害性評価モデルにカテゴリー間の精度差が出ることを防ぐ。
【0052】
すべてのカテゴリーについて所定の数のデータが登録されると(ステップS704:YES)、モデル管理部402は、アノテーション済データ804を使用して有害性評価モデル403の学習を行う(ステップS705)。各データは、カテゴリーを含めた有害性がアノテーションされているが、このステップでは、モデル管理部402は、カテゴリーを分けずに有害か否かの二値分類を行う有害性評価モデルを作成する。したがって、モデル管理部402は、アノテーションされたデータに対して、正解ラベルを有害か否かの二値に変換して有害性評価モデル403の学習を行う。
【0053】
次に、モデル管理部402は、カテゴリーごとの有害性評価モデル403を作成するため、アノテーション済データ804をカテゴリーごとに分類する(ステップS706)。データの分類後、モデル管理部402は、そのうちの一つのカテゴリーに着目し(ステップS707)、当該カテゴリーのデータ805を使用して有害性評価モデルの学習を行う(ステップS708)。そして、モデル管理部402は、未処理のカテゴリーがあれば(ステップS709:YES)、ステップS707に戻り、当該カテゴリーの有害性評価モデルの学習を行う。このようにしてすべてのカテゴリーの有害性評価モデルの学習が終わると(ステップS709)、有害性評価モデル作成処理が完了する。
【0054】
<有害カテゴリー対応対話モデル作成処理>
有害カテゴリー対応対話モデル(対話モデル)作成処理は、有害発言に対して適切な応答ができる対話モデルを、攻撃対象、即ち有害カテゴリーごとに作成する処理である。モデル管理部402が、有害性評価モデルを用いて、入力部401から入力されたSNSのダンプデータから有害発言に対して適切な応答を行っているスレッドを抽出し、このようなスレッドを使用してベース対話モデルの追加学習を行う。
【0055】
実施例1にかかる対話システム100において各種有害発言に対応した対話モデルの作成処理のフローチャートを
図9に、また、この処理におけるデータフローを
図10に示す。
【0056】
モデル管理部402は、まず、有害カテゴリー対応対話モデルのもとになるベース対話モデル1002を、ネットワーク202を介して外部装置から読み込み、記憶デバイス302に格納する(ステップS901)。ベース対話モデル1002は、SNS等から取得した大量の対話ログを用いて学習されたニューラル言語モデルで、第三者が公開しているニューラル対話モデルを流用する。
【0057】
なお、使用する対話モデルは、モデル管理部402が扱うアーキテクチャで、対話システム100の対話処理で扱う言語と同じ言語の学習データ、または当該言語を一定量含む多言語データで学習されたモデルとする。学習済みの対話モデルがない場合、対話システム100によって、SNSのダンプデータの取得からデータ整形、言語モデルの学習を行って作成する。
【0058】
次に、モデル管理部402は、有害性評価モデル作成処理の過程で入力部401が作成した整形済データ803を読み込む(ステップS902)。そして、モデル管理部402は、有害性評価モデル作成処理で作成した有害性評価モデル403を使用して、整形したデータに対して有害性の自動アノテーションを行う(ステップS903)。有害性評価モデル403による自動アノテーションは、有害性評価モデル作成処理のアノテーションと同様にコメント単位で行われる。なお、ここでの自動アノテーションは、有害か否かの二値である。
【0059】
次にモデル管理部402は、有害なコメントを含み最後の返信コメントが有害ではないデータ1001を、有害性評価モデル403を用いて抽出する(ステップS904)。このスクリーニングによって、有害発言に対して適切な応答を行っている対話データを収集する。
【0060】
次にモデル管理部402は、有害性評価モデル作成処理で作成したカテゴリー別の有害性評価モデルを使用して、ステップS904で抽出したデータ1001を有害性のカテゴリー別に分類する(ステップS905)。そして、次のステップにて、モデル管理部402は、有害カテゴリー対応対話モデルの追加学習を行っていく。
【0061】
まず、モデル管理部402は、有害カテゴリーの一つに着目する(ステップS906)。そして、モデル管理部402は、ステップS901で読み込んだベース対話モデル1002に対して、ステップS904で抽出したデータを使用した追加学習を行い、汎用有害性対応対話モデル1003を作成する(ステップS907)。作成された汎用有害性対応対話モデル1003は記憶デバイス302に格納される。
【0062】
そして、モデル管理部402は、ステップS905で分類したカテゴリー別のデータから着目しているカテゴリーのデータを選択する。モデル管理部402は、さらに、ステップS907で追加学習を行った汎用有害性対応対話モデル1003に対して選択したデータを使用した追加学習を行い、当該カテゴリーのカテゴリー対応対話モデルを作成する。
【0063】
未処理のカテゴリーがある場合(ステップS909:YES)、ステップS906に戻り、未処理のカテゴリーの対話モデルを作成する。このようにしてすべてのカテゴリーの対話モデルを作成し(ステップS909:NO)、処理を終了する。このように、カテゴリー別データによる追加学習の前に、全カテゴリーのデータで追加学習を行うことで、有害発話全般に対する汎用性と特定の有害カテゴリーに対する専用性の両方の性質を獲得する効果がある。
【0064】
<対話処理>
実施例1にかかる対話システム100における対話処理のフローチャートを
図11に示す。対話処理では、有害性評価モデル作成処理で作成した有害性評価モデル403と、有害カテゴリー対応対話モデル作成処理で作成した、有害カテゴリー別の複数の対話モデルを使用して、有害入力に対して適切な応答を出力する処理である。
【0065】
対話処理は、入力デバイス303を通してユーザからテキストが入力されることで開始される。まず、入力部401が入力データを読み込み、入力データに含まれる入力文を、応答生成部404に出力する(ステップS1101)。ここで応答生成部404は、対話履歴管理部407が対話履歴を保持していた場合、対話履歴と入力文を結合する。次に、応答生成部404が、モデル管理部402を介して、入力文を各対話モデルに入力する(ステップS1102)。尚、対話履歴管理部407に対話履歴を保持していない場合には、入力文のみを各対話モデルに入力する。モデル管理部402は、すべての対話モデルから入力文に対する応答文を取得し、応答生成部404へ出力する。
【0066】
応答生成部404は、モデル管理部402から受け取った応答文を応答選択部405に入力し、応答選択部405がこれらの応答文の有害性を評価する(ステップS1103)。応答選択部405は、モデル管理部402を介して、有害性評価モデル403に各応答文を入力し、応答文ごとに有害性スコアを得る。有害性スコアは、有害性評価モデル403が出力をソフトマックス関数に通して算出した分類結果の確率で0~1の値を取る。有害性スコアが1に近いほど、有害である確率が高いことを示す。
【0067】
次に応答選択部405は、算出した有害性スコアをもとに応答選択部405が出力した複数の応答文から最も適切な一つの応答文を選択する。応答選択部405は、まず、有害性スコアが閾値未満、つまり、安全な応答文があるかを判定する(ステップS1104)。有害性スコアが閾値未満の応答文があった場合(ステップS1104:YES)、応答選択部405は、その中から有害性スコアがもっとも低い応答文を選択する(ステップS1105)。なお、閾値未満の応答文が一つであった場合、この処理は省略される。
【0068】
有害性スコアが閾値未満の応答文がなかった場合(ステップS1104:NO)、つまり、すべての応答文を有害であると判定された場合、応答選択部405は、例外処理として、予め設定しておいた定型の応答文を出力する(ステップS1106)。定型の応答文とは、たとえば、「その発言には同意できません。」、あるいは「わかりません。」など、その有害入力文に対して同意しないことを示す応答である。このように処理することで、いずれの対話モデルからも適切な応答が得られなかった場合でも、有害な応答を出力することを防ぐ。
【0069】
そして、応答選択部405は、選択した応答文を出力部406に出力するとともに、入力文と選択した応答文を対話履歴として対話履歴管理部407に出力する(ステップS1107)。対話履歴管理部407は、応答選択部405が出力した入力文と応答文を対話履歴に追加する。対話履歴管理部407は、次の対話処理が開始された際に、対話履歴を応答生成部404に出力する。
【0070】
以上説明した実施例1によれば、さまざまな種類の有害発言に対して適切な応答を返すことができる対話システムを提供することができる。
【0071】
実施例1によれば、さまざまなカテゴリーに分類される有害発言に対して、カテゴリーごとに生成された対話モデルが適切な応答を生成し、応答選択部が各対話モデルにより生成した応答から最も適切な応答を選択することができる。換言すると、さまざまなカテゴリーの有害入力文に対して、適切な応答を返すことができる。
本実施例では、有害性評価に有害カテゴリー別の有害性評価モデルを使用し、有害カテゴリーごとに有害性スコアの閾値を設定することで、有害カテゴリーごとの重要度を指定できるよう構成した対話システムについて説明する。
応答選択部405は、次に、有害性スコアが閾値未満の応答文があるかを判定する(ステップS1304)。応答選択部405は、カテゴリー別有害性評価モデルごとに得られたすべての有害性スコアが閾値未満かを判定する。つまり、応答選択部405は、攻撃対象ごとに有害性スコアテーブル1400の有害性スコアと閾値、重み係数管理テーブル1500の閾値1501を比較することで、応答文の有害性を判断する。
有害性スコアが閾値未満の応答文1402と1403があるため(ステップS1304:YES)、応答選択部405は、それぞれの応答文に対して、重み係数1502を用いて総合有害性スコア1406を算出する(ステップS1305)。総合有害性スコアは、カテゴリー別有害性スコアにそれぞれ指定された重み係数を乗算したときの最大値である。応答文1402のカテゴリーごとの有害性スコアそれぞれに重み係数を乗算すると、ジェンダーは有害性スコア0.4に重み係数1.2を乗算した0.48が最大となり、この値が応答文1402の総合有害性スコアとなる。同様の方法で計算すると、応答文1403の総合有害性スコアは0.4となる。
以上説明した実施例2によれば、すべての有害カテゴリーを同等に扱うか、または、特定のカテゴリーについて有害性の判断における重要度を変えるかを任意に設定できる対話システムを提供することができる。