(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-08-27
(45)【発行日】2025-09-04
(54)【発明の名称】情報処理システム、情報処理方法およびプログラム
(51)【国際特許分類】
G06F 16/383 20190101AFI20250828BHJP
G06N 20/00 20190101ALI20250828BHJP
G06N 5/00 20230101ALI20250828BHJP
G06F 16/90 20190101ALI20250828BHJP
【FI】
G06F16/383
G06N20/00
G06N5/00
G06F16/90 100
(21)【出願番号】P 2023186944
(22)【出願日】2023-10-31
【審査請求日】2023-11-09
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】グェン テイ ミン
(72)【発明者】
【氏名】チャン トゥアン トゥ
(72)【発明者】
【氏名】ゴー ドゥク トゥアン
【審査官】富岡 寛凱
(56)【参考文献】
【文献】米国特許出願公開第2017/0169101(US,A1)
【文献】特開2006-085381(JP,A)
【文献】ASAI, Akari et al.,Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection,arXiv,Version 1,2023年10月17日,[検索日 2025.3.18], Internet<https://arxiv.org/abs/2310.11511>
【文献】徳永 陽子ほか,単語の出現度合いを考慮した質問文マルチタスク分類,第6回データ工学と情報マネジメントに関するフォーラム (第12回日本データベース学会年次大会) [online] ,日本,電子情報通信学会データ工学研究専門委員会 日本データベース学会 情報処理学会データベースシステム研究会,2014年05月30日,Internet<URL:http://db-event.jpn.org/deim2014/final/proceedings/C6-3.pdf>
【文献】中田 敦,中田敦のGAFA深読み,日経コンピュータ,日本,日経BP Nikkei Business Publications,Inc.,2023年09月27日,第1104号,p.128
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/00-40/58
G06Q 10/00-99/00
G06N 20/00
G06N 5/00
(57)【特許請求の範囲】
【請求項1】
ユーザからの入力に基づいて質問を取得する質問取得手段と、
前記質問が所定の分野を対象とするか否かの判定結果を取得する質問判定手段と、
前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得する情報取得手段と、
前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得する回答取得手段と、
前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送る回答手段と、
を含
み、
前記質問判定手段は、前記質問が所定の分野を対象とするか否か、および、前記質問が回答を拒絶する対象であるか否かを判定し、
前記回答取得手段は、前記質問が所定の分野を対象とせず、かつ、前記質問が回答を拒絶する対象でないと判定された場合に、前記質問に基づいて回答を作成することを前記回答用の言語モデルに依頼し、当該言語モデルから回答を取得する、
情報処理システム。
【請求項2】
請求項
1に記載の情報処理システムにおいて、
前記回答手段は、前記質問が回答を拒絶する対象であると判定された場合に、前記質問に回答できないことを示す情報を前記ユーザへ向けて送る、
情報処理システム。
【請求項3】
請求項1に記載の情報処理システムにおいて、
前記質問判定手段は、前記質問が前記所定の分野を対象とするか否かの判定を、判定用の言語モデルに依頼し、当該言語モデルが出力する情報に基づいて、前記質問が所定の分野を対象とするか否かを判定する、
情報処理システム。
【請求項4】
ユーザからの入力に基づいて質問を取得する質問取得手段と、
前記質問が所定の分野を対象とするか否かの判定結果を取得する質問判定手段と、
前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得する情報取得手段と、
前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得する回答取得手段と、
前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送る回答手段と、
を含み、
前記質問判定手段は、前記所定の分野と、前記データベースから取得される、前記質問に対応する回答基礎情報のトピックを示す情報とに基づいて、前記質問が前記所定の分野を対象とするか否か判定することを
、判定用の言語モデルに依頼し、当該言語モデルが出力する情報に基づいて、前記質問が所定の分野を対象とするか否かを判定する、
情報処理システム。
【請求項5】
請求項1に記載の情報処理システムにおいて、
前記回答取得手段は、前記質問と前記取得された回答基礎情報とに基づいて前記質問に対する回答を作成することを前記回答用の言語モデルに依頼し、当該言語モデルから回答を取得する、
情報処理システム。
【請求項6】
請求項1に記載の情報処理システムにおいて、
前記データベースは、前記質問から特徴ベクトルを生成し、前記生成された特徴ベクトルに類似する特徴ベクトルと関連付けられた回答基礎情報を取得する、
情報処理システム。
【請求項7】
1以上のプロセッサを含む情報処理システムが、
ユーザからの入力に基づいて質問を取得するステップと、
前記質問が所定の分野を対象とするか否かを判定するステップと、
前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得するステップと、
前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得するステップと、
前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送るステップと、
を含
み、
前記判定するステップでは、前記質問が所定の分野を対象とするか否か、および、前記質問が回答を拒絶する対象であるか否かを判定し、
前記言語モデルから回答を取得するステップでは、前記質問が所定の分野を対象とせず、かつ、前記質問が回答を拒絶する対象でないと判定された場合に、前記質問に基づいて回答を作成することを前記回答用の言語モデルに依頼し、当該言語モデルから回答を取得する、
情報処理方法。
【請求項8】
1以上のプロセッサを含む情報処理システムが、
ユーザからの入力に基づいて質問を取得するステップと、
前記質問が所定の分野を対象とするか否かを判定するステップと、
前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得するステップと、
前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得するステップと、
前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送るステップと、
を含み、
前記判定するステップでは、前記所定の分野と、前記データベースから取得される、前記質問に対応する回答基礎情報のトピックを示す情報とに基づいて、前記質問が前記所定の分野を対象とするか否か判定することを、判定用の言語モデルに依頼し、当該言語モデルが出力する情報に基づいて、前記質問が所定の分野を対象とするか否かを判定する、
情報処理方法。
【請求項9】
ユーザからの入力に基づいて質問を取得する質問取得手段、
前記質問が所定の分野を対象とするか否かを判定する質問判定手段、
前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得する情報取得手段、
前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得する回答取得手段、および、
前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送る回答手段、
としてコンピュータを機能させ
、
前記質問判定手段は、前記質問が所定の分野を対象とするか否か、および、前記質問が回答を拒絶する対象であるか否かを判定し、
前記回答取得手段は、前記質問が所定の分野を対象とせず、かつ、前記質問が回答を拒絶する対象でないと判定された場合に、前記質問に基づいて回答を作成することを前記回答用の言語モデルに依頼し、当該言語モデルから回答を取得する、
プログラム。
【請求項10】
ユーザからの入力に基づいて質問を取得する質問取得手段、
前記質問が所定の分野を対象とするか否かを判定する質問判定手段、
前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得する情報取得手段、
前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得する回答取得手段、および、
前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送る回答手段、
としてコンピュータを機能させ、
前記質問判定手段は、前記所定の分野と、前記データベースから取得される、前記質問に対応する回答基礎情報のトピックを示す情報とに基づいて、前記質問が前記所定の分野を対象とするか否か判定することを、判定用の言語モデルに依頼し、当該言語モデルが出力する情報に基づいて、前記質問が所定の分野を対象とするか否かを判定する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理システム、情報処理方法およびプログラムに関する。
【背景技術】
【0002】
大規模言語モデル(large language model、LLM)の性能が大幅に向上している。大規模言語モデルは、質問に対して自然な文章で回答することができる。大規模言語モデルは、例えばChatGPT(登録商標)のようなチャットボットに用いられている。
【0003】
特許文献1には、膨大なラベルなしテキストを機械学習することで得られた大規模言語モデルを用いて、ユーザの求める要約文を生成する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
大規模言語モデルのような言語モデルは質問に対して自然な文章を出力することはできるが、その質問の対象とする分野によっては不正確な回答が出力されることがあった。一方で、言語モデルをその分野の知識を用いて学習させることは容易ではない。
【0006】
本開示は、言語モデルの出力に基づく回答の正確性を向上させる技術を提供する。
【課題を解決するための手段】
【0007】
(1)ユーザからの入力に基づいて質問を取得する質問取得手段と、前記質問が所定の分野を対象とするか否かの判定結果を取得する質問判定手段と、前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得する情報取得手段と、前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得する回答取得手段と、前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送る回答手段と、を含む情報処理システム。
【0008】
(2)(1)において、前記回答取得手段は、前記質問が前記所定の分野を対象としないと判定された場合に、前記質問に基づいて回答を作成することを前記回答用の言語モデルに依頼し、当該言語モデルから回答を取得する、情報処理システム。
【0009】
(3)(1)において、前記質問判定手段は、前記質問が所定の分野を対象とするか否か、および、前記質問が回答を拒絶する対象であるか否かを判定し、前記回答取得手段は、前記質問が所定の分野を対象とせず、かつ、前記質問が回答を拒絶する対象でないと判定された場合に、前記質問に基づいて回答を作成することを前記回答用の言語モデルに依頼し、当該言語モデルから回答を取得する、情報処理システム。
【0010】
(4)(3)において、前記回答手段は、前記質問が回答を拒絶する対象であると判定された場合に、前記質問に回答できないことを示す情報を前記ユーザへ向けて送る、
情報処理システム。
【0011】
(5)(1)から(4)のいずれかにおいて、前記質問判定手段は、前記質問が前記所定の分野を対象とするか否かの判定を、判定用の言語モデルに依頼し、当該言語モデルが出力する情報に基づいて、前記質問が所定の分野を対象とするか否かを判定する、情報処理システム。
【0012】
(6)(5)において、前記質問判定手段は、前記所定の分野と、前記データベースから取得される、前記質問に対応する回答基礎情報のトピックを示す情報とに基づいて、前記質問が前記所定の分野を対象とするか否か判定することを、前記判定用の言語モデルに依頼し、当該言語モデルが出力する情報に基づいて、前記質問が所定の分野を対象とするか否かを判定する、情報処理システム。
【0013】
(7)(1)から(6)のいずれかにおいて、前記回答取得手段は、前記質問と前記取得された回答基礎情報とに基づいて前記質問に対する回答を作成することを前記回答用の言語モデルに依頼し、当該言語モデルから回答を取得する、情報処理システム。
【0014】
(8)(1)から(7)のいずれかにおいて、前記データベースは、前記質問から特徴ベクトルを生成し、前記生成された特徴ベクトルに類似する特徴ベクトルと関連付けられた回答基礎情報を取得する、情報処理システム。
【0015】
(9)ユーザからの入力に基づいて質問を取得するステップと、前記質問が所定の分野を対象とするか否かを判定するステップと、前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得するステップと、前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得するステップと、前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送るステップと、を含む情報処理方法。
【0016】
(10)ユーザからの入力に基づいて質問を取得する質問取得手段、前記質問が所定の分野を対象とするか否かを判定する質問判定手段、前記所定の分野についてのデータベースから、前記質問に対応する回答基礎情報を取得する情報取得手段、前記質問が前記所定の分野を対象とすると判定された場合に、前記取得された回答基礎情報に基づいて前記質問に対する回答を作成することを回答用の言語モデルに依頼し、当該言語モデルから回答を取得する回答取得手段、および、前記取得された回答に基づいて、前記質問に回答する情報を前記ユーザへ向けて送る回答手段、としてコンピュータを機能させるためのプログラム。
【発明の効果】
【0017】
本発明により、言語モデルの出力に基づく回答の正確性を向上させることができる。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施形態にかかる問い合わせ管理システムに関連する要素の一例を示す図である。
【
図2】問い合わせ管理システムが実現する機能を示すブロック図である。
【
図3】特徴データベースに格納されるデータの一例を示す図である。
【
図5】ユーザ端末に表示される画面の一例を示す図である。
【
図6】ユーザ端末に表示される画面の他の一例を示す図である。
【
図7】問い合わせ管理システムの処理の一例を示すフローチャートである。
【
図8】問い合わせ管理システムの処理の一例を示すフローチャートである。
【
図9】質問分類部が大規模言語モデルに入力する命令テキストの一例を示す図である。
【
図10】回答取得部が大規模言語モデルに入力する命令テキストの一例を示す図である。
【
図11】回答取得部が大規模言語モデルに入力する命令テキストの一例を示す図である。
【発明を実施するための形態】
【0019】
以下では、本発明の実施形態を図面に基づいて説明する。同じ符号を付された構成に対しては、重複する説明を省略する。
【0020】
図1は、本発明の実施形態にかかる問い合わせ管理システム2に関連する要素の一例を示す図である。問い合わせ管理システム2は、ユーザが操作するユーザ端末1から質問の情報を受け取り、その情報に基づく質問文を大規模言語モデルサービス3に入力し、大規模言語モデルサービス3が出力する文章に応じた回答をユーザ端末1に向けて出力する。
【0021】
ユーザ端末1は、例えばパーソナルコンピュータ、スマートフォンのような、ユーザインタフェースを有するコンピュータである。
【0022】
大規模言語モデルサービス3は、コンピュータにより実現される汎用的な大規模言語モデルを含む。大規模言語モデルサービス3は、問い合わせ管理システム2から命令を受け取り、その命令を大規模言語モデルに入力することにより得られた出力を問い合わせ管理システム2へ受け渡す。この命令はテキスト形式であり、プロンプトとも呼ばれる。以下ではテキスト形式の命令を命令テキストとも記載する。この汎用的な大規模言語モデルは、幅広い分野のデータにより学習されている。大規模言語モデルサービス3は、例えばChatGPT(登録商標)のようなサービスであってよい。
【0023】
以下では単に「大規模言語モデル」と記載した場合、大規模言語モデルサービス3に含まれる大規模言語モデルを指すものとし、問い合わせ管理システム2は、大規模言語モデルへ情報を入力し、大規模言語モデルからの出力を取得する処理を、大規模言語モデルサービス3が提供するAPIを利用することにより実行する。問い合わせ管理システム2は、すべての情報を一度のAPI呼び出しで入力するとは限らず、複数のAPI呼び出しにより情報を部分ごとに入力してもよい。なお大規模言語モデルサービス3は、問い合わせ管理システム2の中に設けられてもよい。本実施形態では、問い合わせ管理システム2は、大規模言語モデルになんらかの回答の作成を依頼する情報を入力し、大規模言語モデルの出力をその回答として取得する。以下では、なんらかの回答の作成を依頼する情報を大規模言語モデルに入力することを、大規模言語モデルに回答を作成することを依頼するとも記載する。
【0024】
問い合わせ管理システム2は、1または複数のコンピュータ(例えばサーバコンピュータ)を含む。問い合わせ管理システム2は、1または複数のプロセッサ21、1または複数のストレージ22、1または複数の通信部23を含む。問い合わせ管理システム2は、それぞれ1または複数のプロセッサ21、ストレージ22、通信部23を含む複数のコンピュータを含んでもよいし、1または複数のプロセッサ21およびストレージ22を有する1つのコンピュータを含んでもよい。なお問い合わせ管理システム2は1または複数の仮想サーバまたはコンテナ基盤上に実装されてよい。
【0025】
プロセッサ21は、ストレージ22に格納されるプログラム(命令コードともいう)に従って動作する。またプロセッサ21は通信部23を制御する。プロセッサ21は、例えばCPU(Central Processing Unit)を含み、さらにGPU(Graphic Processing Unit)やNPU(Neural Processing Unit)を含んでよい。なお、上記プログラムは、インターネット等を介して提供されるものであってもよいし、フラッシュメモリやDVD-ROM等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよい。
【0026】
ストレージ22は、RAMおよびフラッシュメモリ等のメモリ素子と、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)のような外部記憶装置とによって構成されている。ストレージ22は、上記プログラムを格納する。また、ストレージ22は、プロセッサ21、通信部23から入力される情報や演算結果を格納する。
【0027】
通信部23は、例えばネットワークインタフェースカードのような、他の装置と通信する通信インタフェースである。通信部23は、例えば無線LAN、有線LANを実現する集積回路やアンテナ、通信端子などにより構成されている。通信部23は、プロセッサ21の制御に基づいて、ネットワークを介して、他の装置から受信した情報をプロセッサ21やストレージ22に入力し、他の装置に情報を送信する。
【0028】
なお、問い合わせ管理システム2のハードウェア構成は、上記の例に限られない。例えば、問い合わせ管理システム2は、コンピュータ読み取り可能な情報記憶媒体を読み取るデバイス(例えば、光ディスクドライブやメモリカードスロット)や外部機器とデータの入出力をするデバイス(例えば、USBポート)を含んでもよい。外部機器は入力デバイスや出力デバイスであってもよい。
【0029】
次に、問い合わせ管理システム2が提供する機能について説明する。
図2は、問い合わせ管理システム2が実現する機能を示すブロック図である。問い合わせ管理システム2は、機能的に、管理部50、知識データベース60、注文管理API65を含む。また管理部50は、機能的に、質問文取得部51、質問分類部52、知識取得部53,回答取得部54、回答修正部55、整合判定部56、回答出力部57を含む。知識データベース60は、機能的に、サーチエンジン61、知識文書格納部62を含む。管理部50、知識データベース60および注文管理API65は、プロセッサ21が、ストレージ22に格納される各機能に対応するプログラムを実行し、通信部23などを制御することにより実現される。
【0030】
知識データベース60は、所定の知識分野の知識情報が格納されるデータベースである。知識データベース60は、ユーザからの質問を示す情報を管理部50から取得し、その情報に対応する知識情報を検索し、検索により見つかった知識情報を管理部50へ引き渡す。知識データベース60は大規模言語モデルサービス3の大規模言語モデルとは異なる構成を有する。知識情報は、知識文書、および、その知識文書のトピックを示す文字列を含んでよい。知識文書格納部62は、ある知識分野に属する知識情報として知識文書を格納する。知識文書は、例えばFAQにおける質問と回答のセットを含む文書のデータであってよい。ここでFAQにおける質問は知識文書のトピックとして扱われてよい。知識情報は文書以外であってもよい。知識文書を含む知識情報は、大規模言語モデルが質問に対する回答を作成する際の基礎となる情報(回答基礎情報)として利用される。
【0031】
サーチエンジン61は、ユーザからの質問を示す情報を取得し、その検索条件に対応する知識情報を検索する。質問を示す情報は取得された質問文であってよい。サーチエンジン61は、機械学習モデルである特徴抽出モデルと、知識情報のそれぞれから抽出された特徴ベクトルを格納する特徴データベースとを含む。サーチエンジン61は、質問を示す情報を特徴抽出モデルに入力し、特徴抽出モデルから出力された特徴ベクトルをクエリベクトルとして取得する。サーチエンジン61は、特徴データベースからクエリベクトルに類似する特徴ベクトルを検索する。サーチエンジン61は、その類似する特徴ベクトルを出力する。サーチエンジン61は、類似度として、例えばクエリベクトルと特徴データベース内の特徴ベクトルとのコサイン類似度を算出し、その類似度が最も大きい特徴ベクトルを類似する特徴ベクトルとして選択し、その選択された特徴ベクトルに対応する知識情報を取得してよい。ここでは、知識情報である文書のそれぞれについて特徴ベクトルが抽出される。
【0032】
図3は、特徴データベースに格納されるデータの一例を示す図である。
図3の例では、特徴ベクトルは、知識文書の文書ID、知識文書のタイトル(FAQの質問およびトピックに相当)、API名、文書利用と関連付けて記憶される。API名、文書利用の意味については後述する。
【0033】
図4は、知識文書の一例を示す図である。
図4では、知識文書のうち、FAQの回答に相当する部分のみ示している。この知識文書は、
図3におけるタイトル「ご注文のキャンセル方法」の行の特徴ベクトルと関連付けられている。また
図4では実際の記載の一部を省略して記載している。知識文書のそれぞれの文字数は問い合わせ管理システム2が質問の回答として出力可能とされた文字数より大きい。
【0034】
ここで特徴抽出モデルは、学習用の文書データを用いて学習される。学習の際には、特徴抽出モデルにより、クエリの特徴ベクトルと、そのクエリに対応する文書データの特徴ベクトルとが抽出される。そして、クエリの特徴ベクトルと対応する文書データの特徴ベクトルとの類似度が大きくなり、対応しない文書データについての類似度が小さくなるように特徴抽出モデルの学習が行われる。学習における文書データは知識文書のうちトピックまたは質問に相当する部分のみであってよい。この学習は、以下の2つの論文に示される手法に基づいて行われてよい。
【0035】
論文1:Wataru Sakata, Tomohide Shibata, Ribeka Tanaka, and Sadao Kurohashi. 2019. FAQ Retrieval using Query-Question Similarity and BERT-Based Query-Answer Relevance. In Proceedings of the 42nd International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR'19). Association for Computing Machinery, New York, NY, USA, 1113-1116.
【0036】
論文2:Seo, J.; Lee, T.; Moon, H.; Park, C.; Eo, S.; Aiyanyo, I.D.; Park, K.; So, A.; Ahn, S.; Park, J. Dense-to-Question and Sparse-to-Answer: Hybrid Retriever System for Industrial Frequently Asked Questions. Mathematics 2022, 10, 1335.
【0037】
注文管理API65は、ユーザに固有の情報を取得するためのAPIである。注文管理API65は、例えば、ユーザが過去に電子商取引システムに対してした注文の現在の状態(例えば決済完了、発送済、配達完了)を取得するAPIを含んでよい。
【0038】
管理部50は、ユーザ端末1からの質問の情報を取得し、知識データベース60からその質問に関連する情報を取得する。また管理部50は、大規模言語モデルサービス3を用いて質問に対する回答を生成し、回答をユーザ端末1へ向けてネットワークを介して出力する。
【0039】
質問文取得部51は、ユーザからの入力に基づいて、質問文を取得する。ユーザからの入力は、具体的には、ユーザがユーザ端末1を操作して入力され、ユーザ端末1から受け取る質問の情報である。質問の情報は文章形式であってもよいし、キーワードであってもよい。質問文取得部51は、文章形式で入力された質問の情報をそのまま質問文として取得してもよいし、質問の情報に含まれる複数のキーワードまたは文章を加工することにより質問文を生成してもよい。
【0040】
図5は、ユーザ端末1に表示される画面の一例を示す図である。
図5には、チャット形式で質問を入力する画面が示されている。
図5の例では、ユーザにより質問文そのものが入力されている。
【0041】
質問文取得部51は、質問の情報として取得された複数のキーワードまたは文章から質問文を作成させるプロンプトを大規模言語モデルに入力し、そのプロンプトに対する大規模言語モデルの出力を質問文として取得してもよい。ここで、大規模言語モデルサービス3に入力する情報は個人情報を含まない方が望ましい。そこで質問文取得部51は、事前に個人情報が取り除かれた情報を大規模言語モデルに入力してよい。
【0042】
質問分類部52は、取得された質問文が、大規模言語モデルのみで回答することが可能か、また、所定の知識分野を対象とするものであるか否か、回答を拒絶する対象であるか否かの判定結果を取得する。所定の知識分野は、知識データベース60に格納される知識情報が属する知識分野であり、問い合わせ管理システム2が回答可能な知識分野である。ここで質問分類部52は、取得された質問文と、回答可能な知識分野と、に基づく、その質問文がその知識分野に属するかの判定を大規模言語モデルに依頼し、その大規模言語モデルから判定結果を取得する。質問分類部52は、前記データベースから取得される、前記質問に対応する回答基礎情報のトピックを示す情報にさらに基づく、その質問文がその知識分野に属するかの判定を大規模言語モデルに依頼してよい。なお、質問分類部52は、単に質問が所定の分野を対象とするか否かの判定を依頼してもよいし、単に大規模言語モデルのみで回答することが可能か否かの判定を依頼してもよいし、上記3つのカテゴリのうち任意の2つのカテゴリに属するか否かの判定を依頼してもよい。
【0043】
本実施形態では、この判定は、質問文が複数のカテゴリ(種別)のうち特定のカテゴリに分類されるかの判定である。複数のカテゴリは、質問文が所定の知識分野(回答可能な知識分野)に属することを示すカテゴリ(先述の特定のカテゴリに相当)と、大規模言語モデルのみで回答することを示すカテゴリと、回答を拒絶する対象であることを示すカテゴリとを含む。依頼する情報は、具体的には、依頼する命令のテキストであってよい。
【0044】
知識取得部53は、知識データベース60のサーチエンジン61へ質問文をクエリとして送信し、知識文書格納部62に格納され、その質問文により検索された知識情報を知識データベース60から取得する。
【0045】
回答取得部54は、質問文が所定の知識分野を対象とすると判定された場合に、質問文と取得された知識情報とに基づく回答作成を依頼する情報を汎用的な大規模言語モデルに入力し、大規模言語モデルから出力された文章を取得する。以下では、回答取得部54が大規模言語モデルから取得した文章をモデル回答文と呼ぶ。なお、モデル回答文の文字数は、知識情報の文字数より小さく、回答作成の依頼は、一種の要約の依頼である。回答作成を依頼する情報は質問文を含まなくてもよいが、質問文を含む方がより適切なモデル回答文を得られる蓋然性が高い。
【0046】
ここで、質問文が所定の知識分野を対象とせず、かつ、質問文が回答を拒絶する対象でないと判定された場合に、回答取得部54は、質問文に基づいて回答を作成することを汎用的な大規模言語モデルに依頼し、その大規模言語モデルから出力からモデル回答文を取得する。回答取得部54は回答を拒絶する対象であるか否かを用いなくてもよい。例えば、質問分類部52による分類の対象となる複数のカテゴリが、回答を拒絶する対象であることを示すカテゴリを含まない場合には、回答取得部54は、質問文が所定の知識分野を対象としない場合に、質問文に基づいて回答を作成することを汎用的な大規模言語モデルに依頼し、その大規模言語モデルから出力からモデル回答文を取得してよい。また質問文が回答を拒絶する対象であると判定された場合に、回答取得部54は、汎用的な大規模言語モデルに質問に回答できないことを示す回答を作成することを依頼し、質問に回答できないことを示すモデル回答文を取得する。
【0047】
回答修正部55は、モデル回答文に含まれる特定の文字列を修正する。例えば回答修正部55は、モデル回答文に含まれるハイパーリンクの文字列のフィルタリング、および、モデル回答文に含まれる特定の文字列のデコードをしてよい。特定の文字列のデコードでは、回答修正部55は、モデル回答文が、個人情報がエンコードされた文字列を含む場合に、その文字列を元の個人情報に戻す。
【0048】
整合判定部56は、取得または修正されたモデル回答文が、取得された知識情報に整合しているか判定する。ここで整合判定部56は、モデル回答文に含まれる複数の単語のそれぞれが、知識情報に含まれる単語に含まれるか否かに基づいて、整合を判定する。整合の判定の手法については後述する。
【0049】
回答出力部57は、整合の判定の結果と、モデル回答文とに基づいて、ユーザへ向けて出力される回答を生成する。回答出力部57は、モデル回答文が知識情報に整合していると判定された場合には、モデル回答文と知識情報を特定する情報(例えばハイパーリンク)を含む回答を生成する。回答出力部57は、モデル回答文が知識情報に整合していないと判定された場合には、モデル回答文と回答の信頼性の低さを示す情報とを含む回答を生成する。また回答出力部57は、生成された回答をそのユーザのユーザ端末1へ向けて出力する。
【0050】
図6は、ユーザ端末1に表示される画面の他の一例を示す図である。
図6は、知識情報として
図4に示される知識文書が検索された場合に作成される回答の例を示している。
図6の例では整合判定部56によりモデル回答文が知識情報に整合していると判定され、ハイパーリンクを含む回答が出力されている。
【0051】
次に問い合わせ管理システム2の処理についてより詳細に説明する。
図7,8は、問い合わせ管理システム2の処理の一例を示すフローチャートである。主に管理部50の処理が
図7,8に記載されている。
【0052】
はじめに管理部50の質問文取得部51は、ユーザ端末1から入力される質問の情報に基づいて質問文を取得する(S101)。質問の情報はネットワークを介して入力される。質問の情報は文章またはキーワードを含むテキストであってよく、いわゆる入力補完機能を介して入力されたテキストであってもよい。質問文取得部51は、文章形式で入力された質問の情報をそのまま質問文として取得してもよいし、対話形式で入力された複数の関連した質問の情報からコンテキストを意識した質問文を生成させる命令テキストを大規模言語モデルに入力した際の出力から質問文を生成してもよい。この場合、質問文取得部51は、ユーザからの質問の情報のうち個人情報の文字列をエンコードして別の文字列に置き換え、置き換え後の質問の情報を含む命令テキストを大規模言語モデルに入力してよい。
【0053】
次に質問分類部52は、取得された質問文を複数のカテゴリのうちいずれかに分類する(S102)。
図7,8の例では、複数のカテゴリは、カテゴリ1、カテゴリ2、カテゴリ3を含む。カテゴリ1は、回答可能な知識分野に属さない質問文の種別である。カテゴリ2は、回答可能な知識分野に属する質問文の種別である。カテゴリ3は、回答可能な知識分野に属さない質問文のうち、特に、回答を拒絶する質問文の種別である。
【0054】
質問分類部52は、より具体的には、分類を依頼する命令テキストを大規模言語モデルに入力する。命令テキストは、取得された質問文と、回答可能な知識分野と、質問文に対応するトピックとからその質問文をカテゴリに分類させる文字列である。
【0055】
図9は、質問分類部52が大規模言語モデルに入力する命令テキストの一例を示す図である。
図9では、{knowledge_fields}、{topic}という記載があるが、実際には、それぞれ、回答可能な知識分野を示すテキスト、および質問文に対応するトピックに置換される。トピックは、質問分類部52により、知識データベース60に質問文をクエリとして送った際のその知識データベース60の応答から取得される。
図9に示される命令テキストにより、プロンプト、電話番号、ウェブサイトのURL、非道徳的な質問のトピック、特定の会社のデメリットについての質問文はカテゴリ3に分類される。知識分野およびトピックに関する質問文はカテゴリ2に分類される。あいさつやクレーム、大規模言語モデル自身への質問はカテゴリ1に分類される。カテゴリ1,3は、他の分類がなされてもよい。
【0056】
回答可能な知識分野(所定の知識分野に相当)は、問い合わせ管理システム2の用途、および、知識データベース60の知識文書の属する知識分野に応じて予め定められている。トピックは、質問文に応じて動的に決定される。より具体的には、命令テキストを大規模言語モデルに入力する前に、質問分類部52は知識データベース60のサーチエンジン61へ質問文をクエリとして送り、サーチエンジン61からそのクエリに類似する知識文書のタイトルを取得する。質問分類部52は取得されたタイトルをトピックとして命令テキストに組み込み、大規模言語モデルに入力する。ここで大規模言語モデルに対してトピックを含む命令テキストを送るのは、回答可能な知識分野の文字列のみでは判定が難しいケースにおける判定制度を向上させるためである。例えば、クレジットカードが不正利用されたという質問に対して、クレジットカード会社へ連絡するという一般的な回答ではなく、電子商取引の店舗への連絡方法を回答するといったケースで有効である。このケースでは、コンテキストによってその知識分野の知識が必要となる。
【0057】
質問文が分類されると、質問分類部52は、分類されたカテゴリが、質問文に回答する際にその知識分野の知識が必要であることを示すか判定する(S103)。質問分類部52は具体的には、分類されたカテゴリがカテゴリ2に分類されるか判定する。
【0058】
分類されたカテゴリがその知識分野の知識が不要であることを示す場合には(S103のN)、質問分類部52または回答取得部54は、分類されたカテゴリが回答を拒絶することを示すか判定する(S104)。回答を拒絶することを示さない場合は(S104のN)、回答取得部54は大規模言語モデルに、質問文に基づく回答文を生成させる(S105)。具体的には、回答取得部54は質問文に基づく回答文を生成させる命令テキストを大規模言語モデルに入力し、大規模言語モデルから出力された回答文を取得する。この命令テキストは、知識情報(特に知識文書)を含まず、またカテゴリに応じたものであってよい。
【0059】
図10は、回答取得部54が大規模言語モデルに入力する命令テキストの一例を示す図である。
図10に示される命令テキストは、{name}、{assistant}という記載があるが、実際には、それぞれ、チャットボットの名前、およびこの問い合わせ管理システム2が担当する業種の名前に置換される。
図10に示される命令テキストは、知識データベース60からの情報を含まず、その情報を用いずに大規模言語モデルに回答文の生成を依頼するものである。回答文は大規模言語モデルに含まれる汎用的な知識から生成される。
【0060】
そして回答出力部57は、生成された回答文をユーザ端末1へ向けて出力する(S106)。そして
図7,8に示される処理を終了する。
【0061】
一方、分類されたカテゴリが回答を拒絶することを示す場合には(S104のY)、回答取得部54は前記質問に回答できないことを示す回答文を生成する(S107)。S106において回答出力部57は、生成された回答文をユーザ端末1へ向けて出力する。生成される回答文は予めストレージ22に格納される定型文であってもよいし、回答取得部54が大規模言語モデルに回答の生成を依頼することにより取得される文章であってもよい。また、回答取得部54は、S104に相当する依頼文を含む命令テキストにより大規模言語モデルに回答文の生成を依頼し、大規模言語モデルから回答文を取得してもよい。
【0062】
一方、分類されたカテゴリがその知識分野の知識が必要であることを示す場合には(S103のY)、S108の処理を実行する。S108では、知識取得部53は、ユーザに関する動的情報が必要な場合には、注文管理API65経由でそのユーザに関する動的情報を取得する。ユーザに関する動的情報が必要であるか否かは、知識取得部53が、知識データベース60のサーチエンジン61へクエリとして質問文を送った返答として取得される、API名が存在するか否かにより判定する。API名が存在する場合には、知識取得部53は注文管理API65に含まれかつAPI名に対応するAPIを、ユーザを特定する情報を含むパラメータとともに呼び出す。またAPI名は、S102において知識データベース60からトピックを取得する際に取得されたものを用いてよい。例えば、
図3の例によれば、質問文が注文の状況を知りたいタイトルと類似している場合に、注文状態のAPIが呼び出される。
【0063】
S108の次には、S109の処理が実行される。S109では、知識取得部53は、知識情報として知識文書が必要な場合には、知識データベース60から出力される、質問文に対応する知識文書を取得する。この知識文書は、知識データベース60のサーチエンジン61へクエリとして質問文を送った返答として取得される。
図3の例によれば、質問文が注文のキャンセル方法を問い合わせるものである場合には、
図4に示される文書IDが000009739の知識文書が取得される。ここで、知識取得部53は、文書利用がtrueでない場合には、知識文書は取得しない。知識取得部53は文書利用の代わりに、単に文書IDが存在するか否かで知識文書を取得するか決めてもよい。知識文書が取得されないケースは、例えば、単なる注文の状況の確認など、注文管理API65から取得される情報と、質問文とから回答を生成できるようなケースである。
【0064】
S108,S109の処理が終わると、回答取得部54は、大規模言語モデルに、回答文を生成させる命令テキストを入力し、その出力をモデル回答文として取得する(S110)。命令テキストは、質問文と、動的情報または知識文書とから回答文を生成させる命令を含む。
【0065】
図11は、回答取得部54が大規模言語モデルに入力する命令テキストの一例を示す図である。
図11の例では、
図9の例と同様に、{knowledge_fields}、{topic}という記載は、実際にはそれぞれ、回答可能な知識分野を示すテキスト、および質問文に対応するトピックに置換される。また
図10の{name}、{assistant}の記載は、実際にはそれぞれ、チャットボットの名前、この問い合わせ管理システム2が担当する業種の名前に置換される。{observation_data}は、知識文書のテキストまたは動的情報に置換される。
図11の例には質問文が記載されていないが、事前に入力される図示しない命令テキストに含まれている。
【0066】
図11の例によれば、命令テキストは、知識文書等の知識情報が十分な場合には大規模言語モデルが有する情報を使わずにモデル回答文を生成させる命令を含み、400文字以内のモデル回答文を生成させる命令を含む。したがって、大規模言語モデルは、その指定された文字数以下の文字列からなるモデル回答文を生成し出力する。
【0067】
モデル回答文が取得されると、回答修正部55は、モデル回答文に含まれる特定の文字列を修正する(S111)。具体的には回答修正部55は、モデル回答文にハイパーリンクの文字列が含まれる場合にはその文字列を削除する。また回答修正部55は個人情報がエンコードされた文字列をモデル回答文が含む場合に、その文字列を元の個人情報に戻す。
【0068】
そして整合判定部56は、モデル回答文と、知識文書との整合性があるか否かを判定する(S112)。ここで整合判定部56は、形態素解析によりモデル回答文から条件を満たす複数の単語(例えば動詞および名詞の単語)を抽出し、それらの単語のそれぞれが知識文書に含まれるか否かに基づいて、整合性があるか否かを判定する。より具体的には、整合判定部56はそれらの単語のうち知識文書に含まれない単語の割合が閾値を超える場合に整合性がないと判定し、閾値以下の場合に整合性があると判定してよい。
【0069】
そして、整合性があると判定された場合には(S112のY)、回答出力部57は、モデル回答文に知識文書を特定する情報が付加された出力文を生成し、出力文をユーザ端末1へ向けて出力する(S113)。知識文書を特定する情報は、例えば知識文書へのハイパーリンクであってもよいし、知識文書を参照する方法を示す文字列であってもよい。一方、整合性がないと判定された場合には(S112のN)、回答出力部57は、モデル回答文に、警告文が付加された出力文を生成し、出力文をユーザ端末1へ向けて出力する(S114)。この警告文は、回答文の信頼性の低さを示す情報であり、より具体的には、回答文が必ずしも正しくなく、確認が必要である旨の文章であってよい。ユーザ端末1はS113またはS114で出力された出力文を受け取り、ユーザに提示する。
【0070】
なおS110において命令テキストに知識文書が含まれない場合にはS112の処理は実行されず、回答出力部57はモデル回答文をそのまま出力してよい。
【0071】
本実施形態では、問い合わせ管理システム2は、大規模言語モデルに対して質問に対する回答を生成させる前に、特定の知識分野についての知識情報が格納される知識データベース60から、回答の元となる知識文書を取得している。そして、質問文とその知識文書とを用いて大規模言語モデルに回答文の案(つまりモデル回答文)を生成させている。これにより、大規模言語モデルにおける回答すべき分野についての回答能力が不十分な場合でも、大規模言語モデルから出力される回答の正確性を向上させることができる。
【0072】
なお問い合わせ管理システム2は、そのモデル回答文と元の知識情報との整合性を確認している。この整合性の確認により、モデル回答文が質問と関係ない回答をしている場合に対処することが可能になり、ユーザによる事実誤認を防ぐことができる。
【0073】
本実施形態では、質問文取得部51が質問文の生成に用いる大規模言語モデルと、質問分類部52が取得された質問文を判定するための大規模言語モデルと、モデル回答文を生成するための大規模言語モデルは同じものであるが、互いに異なる大規模言語モデルが用いられてもよい。例えば、質問文を判定するための大規模言語モデルと、モデル回答文を生成するための大規模言語モデルとが異なっていてもよい。
【0074】
本実施形態では、整合性がないと判定されても警告文を付加するのみであったが、他の方法で回答文が生成されてもよい。例えば、回答出力部57は、モデル回答文および警告文の代わりに、知識データベース60が、質問文に対して出力した類似する複数の知識情報へのリンクおよび定型文を回答文として出力してもよい。
【0075】
本実施形態では大規模言語モデルを用いているが、その実装およびパラメータ数の規模については特に限定されない。自然言語を扱う機械学習モデル(言語モデル)に対して本発明を適用可能である。
【符号の説明】
【0076】
1 ユーザ端末、2 問い合わせ管理システム、3 大規模言語モデルサービス、21 プロセッサ、22 ストレージ、23 通信部、50 管理部、51 質問文取得部、52 質問分類部、53 知識取得部、54 回答取得部、55 回答修正部、56 整合判定部、57 回答出力部、60 知識データベース、61 サーチエンジン、62 知識文書格納部、65 注文管理API。