(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-28
(54)【発明の名称】電子メッセージング方法
(51)【国際特許分類】
G06F 16/90 20190101AFI20240321BHJP
【FI】
G06F16/90 100
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023559110
(86)(22)【出願日】2022-03-08
(85)【翻訳文提出日】2023-09-26
(86)【国際出願番号】 CN2022079755
(87)【国際公開番号】W WO2022206311
(87)【国際公開日】2022-10-06
(32)【優先日】2021-03-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100104880
【氏名又は名称】古部 次郎
(74)【復代理人】
【識別番号】100118108
【氏名又は名称】久保 洋之
(72)【発明者】
【氏名】ハンスマン、ウーヴェ、カール
(72)【発明者】
【氏名】ストーバー、トーマス
(72)【発明者】
【氏名】クスマウル、ティモ
(72)【発明者】
【氏名】エカンバラム、ヴィジャイ
(72)【発明者】
【氏名】モンダル、スネハ
(72)【発明者】
【氏名】マルヴァニヤ、スミトクマール、ナロタンバイ
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175EA01
5B175KA12
(57)【要約】
本開示は、電子メッセージを受信することを含む方法に関する。受信した電子メッセージのメッセージインテントおよび1つ以上の関連インテントが決定されてもよい。メッセージインテントの選択されたサブセットに従って、または関連インテントに従って、電子メッセージが生成されてもよい。そして、生成された電子メッセージが提供されてもよい。
【特許請求の範囲】
【請求項1】
電子メッセージングのためのコンピュータ実装方法であって、
電子通信システムの電子メッセージを受信することと、
ナレッジベースを使用して、前記受信した電子メッセージのメッセージインテントおよび1つ以上の関連インテントを決定することと、
前記メッセージインテントの選択されたサブセットに従って、または前記関連インテントに従って、電子メッセージを生成することと、
前記電子通信システムを制御して、前記受信した電子メッセージの代わりに前記生成した電子メッセージを提供するか、または、当該受信した電子メッセージに加えて当該生成した電子メッセージを提供することと、
を含む、コンピュータ実装方法。
【請求項2】
前記電子メッセージを使用して、メッセージングセッションのコンテキストを決定することであって、当該メッセージングセッションの当該コンテキストは、前記ナレッジベースに含まれるナレッジグラフの少なくともサブグラフによって定義される、ことと、
前記生成した電子メッセージが、前記受信した電子メッセージの内容とは異なるとともに前記決定したコンテキストに属するノイズを有する内容を含むように、前記サブグラフを使用して、前記関連インテントを決定することと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記電子メッセージは、前記電子通信システムのチャットアプリケーションから傍受され、当該チャットアプリケーションは、メッセージングセッション中のユーザとの会話をシミュレートするように構成され、前記受信することは、当該メッセージングセッションの所定の時点で当該チャットアプリケーションの当該電子メッセージを傍受することを含む、請求項1に記載の方法。
【請求項4】
前記電子通信システムは、チャットクライアント間でメッセージを配信するように構成されたチャットサーバである、請求項1に記載の方法。
【請求項5】
前記電子メッセージは、第1のチャットクライアントから第2のチャットクライアントを宛先として受信され、前記方法は、前記受信した電子メッセージ中の機密情報を検出することをさらに含み、前記メッセージインテントの前記選択されたサブセットは、非機密情報を含み、前記生成した電子メッセージは、当該受信した電子メッセージの代わりに提供される、請求項4に記載の方法。
【請求項6】
前記ナレッジベースに含まれるナレッジグラフの中心性指標に基づいて、またはインテント分類器から得られた前記メッセージインテントのスコアに基づいて、前記メッセージインテントのサブセットを選択することをさらに含み、当該選択することは、当該メッセージインテントのサブセットがK個(Kは所定の数)の重要度の低いメッセージインテントを含むように行われる、請求項1に記載の方法。
【請求項7】
前記関連インテントは、前記ナレッジベースに含まれるナレッジグラフのインテントであって、前記メッセージインテントのkホップ近傍(kは設定可能なパラメータの値)内にあるインテントである、請求項1に記載の方法。
【請求項8】
前記生成した電子メッセージは、前記受信した電子メッセージの内容とは異なるノイズを有する内容を含み、前記方法は、当該ノイズを有する内容の所望のノイズレベルに従って前記パラメータkの値を設定することをさらに含む、請求項7に記載の方法。
【請求項9】
前記ナレッジベースは、コンピュータ関連のバグ修正のドメインを表すナレッジグラフを含み、前記メッセージインテントは技術的問題を表し、前記方法は、
前記ナレッジグラフ内で前記メッセージインテントに関連付けられる解決策を特定することと、
前記ナレッジグラフ内で前記メッセージインテントと共起する共起インテントを特定することと、
前記共起インテントに関連付けられる解決策を特定することと、
前記メッセージインテントの前記解決策との類似度に基づいて、前記共起インテントの前記解決策をランク付けすることと、
最も低い類似度を有する前記共起インテントの前記解決策のサブセットを選択することであって、前記関連インテントは、選択した解決策に関連付けられる当該共起インテントである、ことと、
をさらに含む、請求項1に記載の方法。
【請求項10】
前記関連インテントに従って前記電子メッセージを生成することは、当該電子メッセージを生成するために、当該関連インテントに言語モデルを適用することを含む、請求項1に記載の方法。
【請求項11】
ユーザ固有の言語を模倣するために、前記電子通信システムとの通信に関与するユーザのペルソナごとに前記言語モデルを訓練することをさらに含む、請求項10に記載の方法。
【請求項12】
前記インテントの選択されたサブセットに従って前記電子メッセージを生成することは、前記受信した電子メッセージにおける当該インテントのサブセットを表す断片を除去することによって、当該電子メッセージを生成することを含む、請求項1に記載の方法。
【請求項13】
前記受信した電子メッセージを所定のベクトル空間に表現することをさらに含み、前記インテントのサブセットが選択され、前記関連インテントが、前記生成した電子メッセージが当該ベクトル空間において当該受信した電子メッセージから最小距離内にあるように決定される、請求項1に記載の方法。
【請求項14】
前記ナレッジベースはナレッジグラフを含み、前記方法は、
過去のデータ通信の通信記録もしくはログまたはその両方を用いて前記ナレッジグラフを作成することと、
前記ナレッジグラフの1つ以上のグラフ特性に従って当該ナレッジグラフのインテントをクラスタ化することであって、当該グラフ特性は、当該グラフにおける各ノードの中心性指数、および当該グラフにおける各ノードから他のノードへの距離のうちのいずれか1つを含む、ことと、
をさらに含む、請求項1に記載の方法。
【請求項15】
1つ以上のコンピュータの1つ以上のプロセッサによって実行するためのコンピュータ可読プログラム命令を実装した1つ以上のコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、当該コンピュータ可読プログラム命令は、
前記1つ以上のコンピュータによって、電子通信システムの電子メッセージを受信することと、
前記1つ以上のコンピュータによって、ナレッジベースを使用して、前記受信した電子メッセージのメッセージインテントおよび1つ以上の関連インテントを決定することと、
前記1つ以上のコンピュータによって、前記メッセージインテントの選択されたサブセットに従って、または前記関連インテントに従って、電子メッセージを生成することと、
前記電子通信システムを制御して、前記受信した電子メッセージの代わりに前記生成した電子メッセージを提供するか、または、当該受信した電子メッセージに加えて当該生成した電子メッセージを提供することと、
を実行するための命令を含む、コンピュータプログラム製品。
【請求項16】
前記命令は、前記1つ以上のプロセッサによって、
前記電子メッセージを使用して、メッセージングセッションのコンテキストを決定することであって、当該メッセージングセッションの当該コンテキストは、前記ナレッジベースに含まれるナレッジグラフの少なくともサブグラフによって定義される、ことと、
前記生成した電子メッセージが、前記受信した電子メッセージの内容とは異なるとともに前記決定したコンテキストに属するノイズを有する内容を含むように、前記サブグラフを使用して、前記関連インテントを決定することと、
を実行するための命令をさらに含む、請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記電子メッセージは、前記電子通信システムのチャットアプリケーションから傍受され、当該チャットアプリケーションは、メッセージングセッション中のユーザとの会話をシミュレートするように構成され、前記受信することは、当該メッセージングセッションの所定の時点で当該チャットアプリケーションの当該電子メッセージを傍受することを含む、請求項15に記載のコンピュータプログラム製品。
【請求項18】
1つ以上のプロセッサと、当該1つ以上のプロセッサによって実行するためのプログラム命令を記憶した1つ以上の有形記憶媒体とを備えるコンピュータシステムであって、当該プログラム命令は、
電子メッセージを受信することと、
ナレッジベースを使用して、前記受信した電子メッセージのメッセージインテントおよび1つ以上の関連インテントを決定することと、
前記メッセージインテントの選択されたサブセットに従って、または前記関連インテントに従って、電子メッセージを生成することと、
前記受信した電子メッセージの代わりに前記生成した電子メッセージを提供するか、または、当該受信した電子メッセージに加えて当該生成した電子メッセージを提供することと、
を実行するための命令を含む、コンピュータシステム。
【請求項19】
前記プログラム命令は、
前記電子メッセージを使用して、メッセージングセッションのコンテキストを決定することであって、当該メッセージングセッションの当該コンテキストは、前記ナレッジベースに含まれるナレッジグラフの少なくともサブグラフによって定義される、ことと、
前記生成した電子メッセージが、前記受信した電子メッセージの内容とは異なるとともに前記決定したコンテキストに属するノイズを有する内容を含むように、前記サブグラフを使用して、前記関連インテントを決定することと、
を実行するための命令をさらに含む、請求項18に記載のコンピュータシステム。
【請求項20】
前記電子メッセージは、前記電子通信システムのチャットアプリケーションから傍受され、当該チャットアプリケーションは、メッセージングセッション中のユーザとの会話をシミュレートするように構成され、前記受信することは、当該メッセージングセッションの所定の時点で当該チャットアプリケーションの当該電子メッセージを傍受することを含む、請求項18に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルコンピュータシステムの分野に関し、より具体的には、電子メッセージング方法に関する。
【背景技術】
【0002】
ユーザまたはシステムの自動訓練またはテストは、現在、事前に定義された質問と回答のセットを用いて行われる。しかし、現実の世界では、情報は常に単純かつ構造化された方法で提供されるとは限らない。曖昧な情報やノイズが多く含まれていたり、必要な情報の一部しか含まれていなかったり、逆に情報が多すぎる場合もある。
【発明の概要】
【0003】
様々な実施形態において、独立請求項の主題によって記載される方法、コンピュータシステム、およびコンピュータプログラム製品が提供される。有利な実施形態は、従属請求項に記載される。本発明の実施形態は、相互に排他的でない場合、互いに自由に組み合わせることができる。
【0004】
一態様において、本発明は、電子通信システムの電子メッセージを受信することと、ナレッジベースを使用して、前記受信した電子メッセージのメッセージインテントおよび1つ以上の関連インテントを決定することと、前記メッセージインテントの選択されたサブセットに従って、または前記関連インテントに従って、電子メッセージを生成することと、前記電子通信システムを制御して、前記受信した電子メッセージの代わりに前記生成した電子メッセージを提供するか、または、当該受信した電子メッセージに加えて当該生成した電子メッセージを提供することと、を含む、コンピュータ実装方法に関する。
【0005】
別の態様において、本発明は、コンピュータ可読プログラムコードを実装したコンピュータ可読記憶媒体を含むコンピュータプログラム製品に関し、当該コンピュータ可読プログラムコードは、前述の実施形態に係る方法のすべてのステップを実施するように構成される。
【0006】
別の態様において、本発明は、電子メッセージを受信することと、ナレッジベースを使用して、前記受信した電子メッセージのメッセージインテントおよび1つ以上の関連インテントを決定することと、前記メッセージインテントの選択されたサブセットに従って、または前記関連インテントに従って、電子メッセージを生成することと、前記受信した電子メッセージの代わりに前記生成した電子メッセージを提供するか、または、当該受信した電子メッセージに加えて当該生成した電子メッセージを提供することと、を実行するために構成されたコンピュータシステムに関する。
【0007】
以下、本発明の実施形態を、以下の図面を参照しながら例示としてより詳細に説明する。
【図面の簡単な説明】
【0008】
【
図1A】本主題の一例に係るコンピュータシステムを示す図である。
【
図1B】チャットセッションの記録を示すウィンドウを示す図である。
【
図2】本主題の一例に係る方法のフローチャートである。
【
図3A】本主題の一例に係る方法のフローチャートである。
【
図3B】チャットセッションの記録を示すウィンドウを示す図である。
【
図3C】電子メッセージの単語間の係り受けを表す図である。
【
図4A】本主題の一例に係る方法のフローチャートである。
【
図4B】チャットセッションの記録を示すウィンドウを示す図である。
【
図5A】本主題の一例に係る方法のフローチャートである。
【
図5B】チャットセッションの記録を示すウィンドウを示す図である。
【
図6】本主題の一例に係る、ナレッジグラフおよび言語モデルを作成する方法のフローチャートである。
【
図7】本主題に係る、テキストと画像の埋め込み空間をリンクする方法を示す図である。
【
図8】本開示に関係する方法ステップの少なくとも一部を実装するのに適した一般的なコンピュータ化システムを表す図である。
【発明を実施するための形態】
【0009】
本開示の様々な実施形態を例示として説明するが、網羅的であることや、開示する実施形態に限定することを意図したものではない。当業者には明らかなように、記載する各実施形態の範囲および主旨から逸脱することなく、多くの変更および変形が可能である。本明細書で用いられる用語は、各実施形態の原理、実際の用途、もしくは市場で確認される技術に対する技術的な改善を最もよく説明するために、または、他の当業者が本明細書に開示する各実施形態を理解できるように選択されたものである。
【0010】
メッセージングは、電子メール、SMS、アプリ内チャットなど、様々なデジタルチャネルを介して送信される書面による通信であってもよい。メッセージングは、適切な時間に関連情報を提供することができるため、有益となり得る。特に、適切な情報および頻度で実行されるメッセージングによって、電子通信システムのパフォーマンスが向上する場合がある。しかし、電子メッセージは、これらの記録を作成するために使用されるプラットフォーム、デバイス、およびシステムが増大しているため、管理が困難な場合がある。本主題は、電子メッセージの通信を制御および管理するための体系的な方法を提供するものであり、有益となり得る。これは特に、一部の機関においては、テキストやチャット/インスタントメッセージの使用が機関の任務達成に不可欠である場合があるため、有益となり得る。
【0011】
電子メッセージは、例えば、メッセージングセッション用のメッセージを生成するために、会話のログを読み取ることによって受信されてもよい。別の例では、電子メッセージは、例えば進行中のメッセージングセッション中に傍受(intercept)することによって受信されてもよい。傍受された電子メッセージは、例えば、メッセージングセッション中に提供されてもよい。メッセージングセッションは、リアルタイム形式または非リアルタイム形式でのテキスト、マルチメディア、もしくは音声またはその組み合わせを含む電子メッセージを交換することを含んでもよい。リアルタイム形式は、インスタントメッセージングまたはチャットを含んでもよく、非リアルタイム形式は、電子メールや、動的なフォーラムまたはフィードへの投稿などを含んでもよい。メッセージングセッションは、ユースケースに応じてコンテキストと関連付けられてもよい。例えば、メッセージングセッションは、チャットボットエージェントによる(被訓練者の)訓練またはユーザのテストのために、チャットボットエージェントとユーザとの間で実行されてもよい。この場合、電子メッセージは、質問と回答であってもよい。別の例では、メッセージングセッションは、複数のユーザのそれぞれのモバイルクライアントデバイス上で提供されるモバイルメッセージングアプリケーションを介して、複数のユーザ間で実行されてもよい。別の例では、メッセージングセッションは、ビデオまたは他のタイプのマルチメディアを含む、それぞれのユーザが様々なトピックを共有し議論するグループチャットを含むことができる。「チャットボット(chatbot/chat bot)」という用語は、主に世間話や訓練を行うために、聴覚的またはテキスト的な方法で1人以上の人間のユーザとの会話をシミュレートするように設計されたコンピュータプログラムを指す。このようなシミュレーションの目的は、エンドユーザに対して、プログラムの出力があたかも人間によって生成されたものであるかのように思い込ませることである。
【0012】
傍受/受信された電子メッセージは、電子メッセージを生成するために処理される。訓練のユースケースの場合、電子メッセージは、不完全な情報を提供し、曖昧さを増すために紛らわしいインテント(intent)を追加し、もしくは、誤解を生じさせるようなインテントを傍受/受信された電子メッセージに追加し、またはこれらの組み合わせを行うことによって、所定の質問の難易度を高めるように生成されてもよい。これにより、信頼性の高い自動訓練セッションが可能になる。また、データアクセス規則に従って機密情報を提供すべきではない通信システムの場合、傍受/受信された電子メッセージを処理して、データアクセス規則を満たさないインテントを特定し、非表示(mask)または除去してもよい。これにより、安全なデータ通信が可能となり得る。
【0013】
本主題は、メッセージを正確に生成するためのナレッジベース(knowledge base)を利用することができるため、有益となり得る。ナレッジベースは、例えば、ナレッジグラフであってもよい。ナレッジグラフは、1つ以上のドメインオントロジー(domain ontology)を表してもよい。例えば、ナレッジグラフは、ソフトウェアもしくはハードウェアまたはその両方のバグ修正(bug fixing)のドメインを表してもよい。この場合、ナレッジグラフのノードは、例えば、インテント、画像、および解決策(resolution)を表してもよい。インテントは、例えば、特定のソフトウェア問題を表してもよい。例えば、インテントは、それぞれ、コンピュータの発熱およびコンピュータウイルスの存在による問題を示す「#heating」または「#virus」である。解決策は、ナレッジグラフのインテントで定義された問題に関連付けられる。例えば、インテント「#virus」に関連付けられる解決策は、「#install_antivirus」であってもよい。画像は、スタックトレース(stack trace)、エラーログ、関数呼び出し、またはコマンド出力を表してもよい。グラフ内の画像は、例えば、あるインテントに関連する問題を記述したログのスクリーンショットであってもよい。例えば、「#fan_noise」の画像は、インテント「#heating」に関連付けられていてもよい。ただし、ナレッジグラフのドメインは、複数のトピックをカバーするほどに広い場合がある。バグ問題の例を続けると、ナレッジグラフにおいて複数のトピックがカバーされる場合がある。例えば、オペレーティングシステムの問題が1つのトピックをカバーし、ディスプレイが別のトピックをカバーする、などの場合がある。本主題は、ナレッジグラフをクラスタ化することによって、この問題を解決することができる。ナレッジグラフをクラスタ化し、複数のクラスタにしてもよい。あるクラスタは、例えば、ナレッジグラフのサブグラフによって表されてもよい。ここで、当該クラスタのデータは、特定のトピックを表す。クラスタは複数のサブクラスタを含んでもよい。ここで、あるサブクラスタは、一般的に発生するインテント、一般的に共起する(co-occurring)インテント、一般的に提案される解決策、推奨されない、または誤った解決策などを表してもよい。
【0014】
ナレッジグラフは、グラフであってもよい。グラフは、データ値が特性としてノードおよびエッジ上に格納されるプロパティグラフ(property graph)を指してもよい。プロパティグラフは、グラフデータベース管理システムまたは他のデータベースシステムによって管理および処理されてもよい。これらのシステムは、プロパティグラフを例えば格納用のリレーショナルテーブルに変換するラッパ層(wrapper layer)を提供するとともに、読み出しまたはクエリ時には、リレーショナルテーブルをプロパティグラフへと戻す。グラフは、例えば、有向グラフ(directed graph)であってもよい。グラフは、ノード(頂点とも呼ばれる)およびエッジの集合であってもよい。グラフのエッジは、当該グラフのいずれか2つのノードを接続する。エッジは、順序付けされたノードのペア(v1、v2)によって表すことができ、ノードv1からノードv2へとトラバースすることができる。グラフにおけるあるノードは、あるエンティティを表してもよい。エンティティは、問題や解決策などを指してもよい。エンティティ(および対応するノード)は、値を割り当て可能な1つ以上のエンティティ属性(entity attribute)または特性を有してもよい。例えば、解決策のエンティティ属性は、その解決策が一般的に推奨される解決策であるか、推奨されない解決策であるかなどを示す属性を含んでもよい。ノードを表す属性値は、当該ノードによって表されるエンティティのエンティティ属性の値である。エッジには、当該エッジに接続された2つのノード間の関係を少なくとも示す1つ以上のエッジ属性値が割り当てられてもよい。エッジを表す属性値は、エッジ属性の値である。関係は、例えば、特定の階層に従った継承(inheritance)(例えば親子)関係もしくは連想関係(associative relationship)を含んでもよい。例えば、ノードv1とv2との間の継承関係を、v1とv2との間の「is-a関係(is-a relationship)」と呼ぶ場合がある。例えば、「v2はv1の親である(v2 is-a parent of v1)」などである。また、ノードv1とv2との間の連想関係を、v1とv2との間の「has-a関係(has-a relationship)」と呼ぶ場合がある。例えば、「v2はv1とhas-a関係を有している(v2 has a has-a relationship with v1)」などである。これは、v1がv2の一部であるか、v2の構成物であるか、またはv2に関連していることを意味する。
【0015】
一実施形態によれば、本方法は、電子メッセージを使用してメッセージングセッションのコンテキストを決定することをさらに含む。メッセージングセッションのコンテキストは、ナレッジグラフの少なくともサブグラフによって定義される。関連インテント(related intent)は、生成された電子メッセージが、傍受された電子メッセージの内容とは異なるとともに同じコンテキストに属する、ノイズを有する内容(noisy content)を含むように、サブグラフを使用して決定されてもよい。ここで「関連インテント」と称されるインテントは、曖昧さを追加したり、紛らわしい情報を挿入したりするために使用することができる。一方、メッセージインテントの選択されたサブセットを使用して、不完全な情報を生成してもよい。言い換えれば、生成された電子メッセージの内容は、不完全な情報、曖昧な情報、または紛らわしい情報を提供してもよい。メッセージインテントのサブセットは、メッセージインテントの各々に割り当てられたスコアに基づいて選択されてもよい。スコアは、インテント分類器(intent classifier)によって決定されてもよい。インテント分類器は、受信した電子メッセージを入力として受け取り、メッセージインテントをそのスコアに関連付けて提供するように構成されてもよい。インテントのサブセットは、メッセージインテントのうち、最初のN個(N≧1)のランク付けされたメッセージインテントを削除することによって得られてもよい。
【0016】
メッセージングセッションのコンテキストは、メッセージングセッションのトピックであってもよい。メッセージングセッションのトピックは、電子メッセージの内容を解析することによって決定されてもよい。解析は、例えば、データマイニング技術を使用して実行されてもよい。ナレッジグラフのサブグラフは、電子メッセージのトピックを共有することが想定されるインテントを含んでもよい。サブグラフのインテントは、傍受された電子メッセージのメッセージインテントを含んでもよい。サブグラフは、例えば中心性(centrality)を用いて、サブグラフのインテントを重要度に基づいてランク付けできるため、有利に使用することができる。
【0017】
一実施形態によれば、電子メッセージは、電子通信システムのチャットアプリケーションから傍受される。チャットアプリケーションは、メッセージングセッション中にユーザとの会話をシミュレートするように構成される。本方法は、メッセージングセッションの特定の時点においてチャットアプリケーションの電子メッセージを傍受することを含む。
【0018】
チャットアプリケーションは、テキストまたはテキスト音声変換(text-to-speech)を介してオンラインチャット会話を行うために使用してもよい。例えば、チャットアプリケーションは、ユーザに対して質問を行うことによって、ユーザをテストまたは訓練するために使用してもよい。ユーザは、質問への回答を提供してもよい。電子メッセージは、例えば、質問のテキストで構成される。本実施形態は、本主題に従って電子メッセージ(例えば、質問)の修正または適合を行うことが必要なタイミングを制御することができるので、有益となり得る。
【0019】
新たな/修正された質問を生成する時点は、例えば、事前に定義されてもよいし、動的に決定されてもよい。例えば、当該時点は、ユーザ入力に基づいて動的に定義されてもよい。これにより、例えば、ユーザとの会話/訓練の異なる動作モードを使い分けることができる。例えば、簡単な訓練モードや難しい訓練モードを使用することができる。簡単な訓練モードでは、質問のごく一部(例えば、会話の最初)を修正することのみを考慮してもよいし、難しい動作モードでは、より多くの質問(例えば、会話の異なる段階)を変更してもよい。
【0020】
生成された電子メッセージは、傍受された電子メッセージのインテントを変更することによって修正されてもよい。この変更は、不完全な情報を提供するために傍受された電子メッセージのインテントを削除することによって、曖昧さを追加するために紛らわしいインテントを追加することによって、もしくは、傍受された電子メッセージに誤解を招くインテントを追加することによって、またはこれらの組み合わせを行うことによって実行されてもよい。
【0021】
一実施形態によれば、電子通信システムは、チャットクライアント間でメッセージを配信するように構成されたチャットサーバである。例えば、電子メッセージは配信される前に、本主題に従って傍受および処理される。
【0022】
一実施形態によれば、電子メッセージは、第1のチャットクライアントから第2のチャットクライアントを宛先として受信される。本方法は、傍受された電子メッセージ中の機密情報(sensitive information)を検出することをさらに含む。ここで、メッセージインテントの選択されたサブセットは、非機密情報を含み、傍受された電子メッセージの代わりに、生成された電子メッセージが提供される。機密情報は、例えば、フルネームなどの個人情報を含んでもよい。
【0023】
一実施形態によれば、本方法は、メッセージインテントのサブセットがK個(K≧1)の重要度の低いメッセージインテントを含むように、ナレッジグラフの中心性指標に基づいてメッセージインテントのサブセットを選択することをさらに含む。
【0024】
一実施形態によれば、関連インテントは、メッセージインテントのkホップ近傍(k-hop neighbourhood)内にあるナレッジグラフのインテントである(kは、設定可能なパラメータの値)。
【0025】
一実施形態によれば、生成された電子メッセージは、傍受された電子メッセージの内容とは異なる、ノイズを有する内容を含む。本方法は、ノイズを有する内容の所望のノイズレベルに従って、パラメータの値を設定することをさらに含む。ノイズは、例えば、ユーザベースのノイズであってもよいし、問題ベースのノイズであってもよい。ユーザベースのノイズは、例えば、年齢などのユーザの特性に基づいて決定されてもよい。例えば、パラメータkの値を大きくすることによって、熟練ユーザに対するノイズレベルを、通常ユーザに対するノイズレベルよりも高くしてもよい。問題ベースのノイズのレベルは、例えば、より紛らわしいインテントを追加したり、より重要なインテントを削除したりすることによって変更してもよい。
【0026】
一実施形態によれば、メッセージインテントは、技術的問題を表す。本方法は、ナレッジグラフにおいてメッセージインテントに関連付けられた解決策を特定することと、ナレッジグラフにおいてメッセージインテントと共起する共起インテント(cooccurring intent)を特定することと、共起インテントに関連付けられた解決策を特定することと、メッセージインテントの解決策との類似性に基づいて、共起インテントの解決策をランク付けすることと、R個の最も低い類似度を有する、共起インテントの解決策のサブセットを選択することと、をさらに含む。ここで、関連インテントは、選択された解決策に関連付けられた共起インテントであり、R≧1である。
【0027】
一実施形態によれば、関連インテントに従って電子メッセージを生成することは、電子メッセージを生成するために、関連インテントに言語モデルを適用することを含む。言語モデルは、例えば、RNNベースの言語モデル、LSTMベースの言語モデル、またはGANであってもよい。
【0028】
一実施形態によれば、本方法は、ユーザ固有の言語を模倣(mimic)するために、電子通信システムとの通信に関わるユーザのペルソナごとに言語モデルを訓練することをさらに含む。例えば、言語モデルは、ユーザ固有のインテント(例えば、特定の年齢を有するユーザの文)を含む文またはテキストを使用して訓練されてもよい。
【0029】
一実施形態によれば、選択されたインテントのサブセットに従って電子メッセージを生成することは、傍受された電子メッセージにおける1つ以上の重要なインテントの断片(fragment)を除去することによって、電子メッセージを生成することを含む。
【0030】
一実施形態によれば、本方法は、傍受された電子メッセージを、所定のベクトル空間に表現することをさらに含む。インテントのサブセットが選択され、関連インテントが、生成された電子メッセージがベクトル空間において傍受された電子メッセージから最小距離内にあるように決定される。
【0031】
一実施形態によれば、本方法は、過去のデータ通信の通信記録(communication transcript)もしくはログまたはその両方を使用してナレッジグラフを作成することと、ナレッジグラフの1つ以上のグラフ特性に従って、ナレッジグラフのインテントをクラスタ化することとをさらに含む。グラフ特性は、グラフにおける各ノードの中心性指標、およびグラフにおける各ノードから他のノードへの距離のうちのいずれか1つを含む。
【0032】
図1Aは、本主題の一例に係るコンピュータシステム100を示す図である。コンピュータシステム100は、エージェントコンピュータ105を含む。エージェントコンピュータ105は、電子通信システムであってもよい。コンピュータシステム100には、電子通信コントローラ101が設けられている。電子通信コントローラ101は、チャットリンク103に接続され、会話またはチャットセッション中にユーザ102とエージェントコンピュータ105との間で送信される各連続メッセージ(successive message)を受信する。リンク103は、エージェントコンピュータ105をユーザ102のリモートユーザコンピュータに接続してもよいし、エージェントコンピュータ105のディスプレイデバイスへのリンクであってもよい。リンク103は、インターネットまたは他のデータチャネルを介して設定されてもよい。リンク103によって、ユーザ102とエージェントコンピュータ105との間で交換されるテキストメッセージのストリームを含む会話またはチャットを可能にしてもよい。
【0033】
ユーザ102の連続メッセージは、エージェントコンピュータ105の解析ユニット106にて受信される。解析ユニット106は、エージェントコンピュータ105とのチャットの主題であるユーザ102の問題または問い合わせを決定するために、メッセージを解析する機能を実行する。メッセージがテキスト形式である場合、解析ユニット106は、この機能を実行するために、テキスト解析機能を備える。解析ユニット106の機能は、ユーザ102がエージェントコンピュータ105からの質問に対して提供した具体的な応答を特定するためのプロセスの一部であってもよい。
【0034】
エージェントコンピュータ105は、解析ユニット106からの入力を受信する質問ビルダ(question builder)116を含む。質問ビルダ116は、これらの入力(例えば、チャットボット)を使用して、リクエストまたは質問を構築または構成する。リクエストとは、ある問題に関連する目標のステートメントであり、ユーザ102は、この問題に対する解決策を提供する必要がある。質問ビルダ116はまた、例えばユーザ102との会話を開始するために、解析ユニットから入力を受信することなく、リクエストを生成してもよい。質問ビルダ116によって生成されたメッセージもしくはユーザ102から受信したメッセージまたはその両方は、リンク103を介して電子通信コントローラ101に入力として傍受または提供されてもよい。電子通信コントローラ101は、本主題に従って傍受されたメッセージを修正するための情報源として、ナレッジグラフ118を使用してもよい。
【0035】
ユーザ102とエージェントコンピュータ105との間で交換されたメッセージは、
図1Bに示すように、ウィンドウ130上に表示されてもよい。ウィンドウ130は、ユーザ102がエージェントコンピュータ105に直接触れている場合はエージェントコンピュータ105のユーザインタフェース上に表示されてもよいし、あるいは、ユーザ102のリモートユーザコンピュータ上に表示されてもよい。
【0036】
図1Bは、ユーザ102とエージェントコンピュータ105との間のチャットメッセージのタイムラインビューの一例を示している。チャットセッションの記録を示すウィンドウ130は、メッセージを表示するための第1の表示領域131と、チャットメッセージのタイムスタンプを表示するための第2の表示領域133とを含む。メッセージはそれぞれのタイムスタンプと整列している。
図1Bに示す例では、エージェントコンピュータ105は、メッセージ135.1~135.nを提供してもよい。各メッセージは、ユーザ102への質問であってもよい。ユーザ102は、対応する応答メッセージ136.1~136.nを提供してもよい。
【0037】
なお、別個のコンポーネントとして示しているが、別の例において、電子通信コントローラ101は、エージェントコンピュータ105の一部であってもよい。
【0038】
図2は、本主題の一例に係る方法のフローチャートである。説明の便宜上、
図2に記載の方法は、
図1Aに例示したシステムにおいて実装されてもよいが、この実装形態に限定されるものではない。
図2の方法は、例えば、電子通信コントローラ101によって実行されてもよい。
【0039】
ステップ201にて、電子通信システム105によって例えばユーザに提供される電子メッセージが、電子通信システム105において受信または特定されてもよい。電子メッセージは、会話のログファイルから受信または読み出されてもよいし、傍受されてもよい。電子メッセージは、例えば、送信側コンピュータから電子通信システム105である受信側コンピュータに送信されるメッセージであってもよい。電子メッセージは、例えば、コンピュータ105からの発信メッセージであってもよい。この場合、電子通信コントローラ101は、コンピュータ105から送信される前にこの電子メッセージを傍受するように構成されてもよい。別の例では、電子メッセージは、コンピュータへの着信メッセージであってもよい。この場合、電子通信コントローラは、コンピュータの受信側アプリケーションに提供される前にこの受信電子メッセージを傍受するように構成されてもよい。別の例では、電子メッセージは、コンピュータのアプリケーションによって生成され、当該コンピュータのインタフェース上に表示されるメッセージであってもよい。この場合、電子通信コントローラは、表示される前にこの電子メッセージを傍受するように構成されてもよい。電子通信コントローラは、コンピュータ105の一部であってもよいし、そうでなくてもよい。
【0040】
電子メッセージは、例えば、いずれのタイプの電子通信データ構造であってもよい。電子メッセージは、例えば、電子メール、インスタントメッセージ、音声メッセージ、またはテキストメッセージであってもよい。電子メッセージは、会話におけるメッセージであってもよい。電子メッセージは、会話におけるチャットメッセージの1つであってもよい。会話は、チャットエージェントと1人以上のユーザとの間で送信される一連のメッセージであってもよい。電子メッセージは、例えば、会話における最初のチャットメッセージであってもよいし、会話におけるランダムに選択された電子メッセージであってもよい。別の例では、電子メッセージは、会話における選択されたチャットメッセージであってもよい。選択は、選択基準に基づいて実行されてもよい。選択基準は、例えば、ユーザによる正解後に、修正対象のメッセージが受信されることを求めるものであってもよい。
【0041】
ステップ203にて、受信または傍受された電子メッセージのインテントが決定されてもよい。決定されたインテントを、メッセージインテントと称してもよい。メッセージインテントとは、例えば、質問またはコメントを提供する際にチャットボットエージェントが念頭に置く(has in mind)目標を指してもよい。インテントの分類は、テキストを特定の目的または目標に自動的に関連付けることであってもよい。メッセージインテントは、例えば、分類器によって決定されてもよい。分類器は、テキストの断片を分析し、これらを「コンピュータウイルス」、「発熱」などのインテントに分類してもよい。インテント分類器は、例えば、単語や表現を特定のインテントに関連付けることができる機械学習アルゴリズムを使用してもよい。
【0042】
ステップ205にて、メッセージインテントに関連するインテントが決定されてもよい。関連インテントは、例えば、メッセージインテントと同じドメインに属してもよい。ドメインは、生物学や政治など、世界の一部に属する概念やカテゴリを表す。ドメインは通常、ドメイン固有の用語の定義をモデル化する。例えば、ドメインは、ヘルスケア、広告、商業、医療、もしくは生物医学またはその組み合わせに固有の分野を指すことができる。
【0043】
例えば、インテントのデータベースを使用して、メッセージインテントと意味的に関連するインテントを検索してもよい。これらの意味的に関連するインテントが、ステップ205で決定される関連インテントであってもよい。
【0044】
別の例では、ナレッジグラフを使用して、関連インテントを有利に得ることができる。ナレッジグラフは、メッセージインテントの決定に使用されている場合があるため、関連インテントを一貫してかつ正確に決定できる場合がある。例えば、関連インテントは、メッセージインテントのkホップ近傍内にあるナレッジグラフのインテントであってもよい(kは設定可能なパラメータの値)。
【0045】
ステップ207にて、メッセージインテントのサブセットが選択されてもよい。メッセージインテントのサブセットは、例えば、メッセージインテントのサブセットがm個の重要度の低いメッセージインテントを含むように、ナレッジグラフの中心性指標に基づいて選択されてもよい(mは所定の数)。別の例では、m個のメッセージインテントのサブセットは、傍受された電子メッセージのメッセージインテントからランダムに選択されてもよい。別の例では、m個のメッセージインテントのサブセットは、各メッセージインテントに割り当てられたスコアに基づいて選択されてもよい。スコアは、インテント分類器によって決定されてもよい。インテント分類器は、受信した電子メッセージを入力として受け取り、メッセージインテントをそのスコアに関連付けて提供するように構成されてもよい。インテントのサブセットは、メッセージインテントのうち、最初のN個(N≧1)のランク付けされたメッセージインテントを削除することによって得られてもよい。
【0046】
ステップ209にて、ステップ207で選択されたメッセージインテントのサブセットに従って、電子メッセージが生成されてもよい。あるいは、電子メッセージは、ステップ205で得られた関連インテントに従って生成されてもよい。
【0047】
電子メッセージの生成は、例えば、機械学習を使用して実行されてもよい。例えば、インテントによって表されるドメインを使用して、そのインテントからメッセージを生成してもよい。ドメインは、グラフ学習ベースのモデルもしくは文法ベースのモデルまたはその両方に関連付けられてもよい。グラフ学習ベースのモデルもしくは文法ベースのモデルまたはその両方を使用して、ステップ209にて電子メッセージを生成してもよい。生成された電子メッセージは、選択されたインテントのサブセット、または関連インテントをインテントとして有してもよい。
【0048】
例えば、電子メッセージの生成は、言語モデルを使用して実行されてもよい。言語モデルは、例えば、ユーザ固有の言語を模倣するために、電子通信システムとの通信に関わるユーザのペルソナごとに訓練されてもよい。
【0049】
ステップ211にて、生成された電子メッセージが提供されてもよい。一例として、生成されたメッセージが、傍受された電子メッセージの代わりに提供されてもよい。例えば、傍受された電子メッセージが、コンピュータのインタフェース上に表示されるものであった場合、生成された電子メッセージがその代わりに表示されてもよい。別の例では、生成された電子メッセージが、傍受された電子メッセージに加えて提供されてもよい。例えば、傍受された電子メッセージが、コンピュータのインタフェース上に表示されるものであった場合、生成された電子メッセージが、(チャットフローにおいて)傍受された電子メッセージの表示前または表示後に表示されてもよい。
【0050】
生成された電子メッセージは、電子メッセージの生成元になったインテントに関連付けられたナレッジグラフの画像に関連付けて表示されてもよい。
【0051】
生成された電子メッセージを提供した後、生成された電子メッセージをユーザがノイズとして特定したかどうかを判断してもよい。ユーザが当該電子メッセージをノイズとして特定しなかった場合、電子通信コントローラは、簡単な動作モードに従って、ノイズを有する内容をさらに提供することを停止してもよい。別の例では、電子通信コントローラは、難しい動作モードに従って、ユーザが最終的に会話中のノイズを特定できるかどうかを確認するために、短時間この状態を持続してもよい。
【0052】
図3Aは、本主題の一例に係る方法のフローチャートである。説明の便宜上、
図3Aに記載の方法は、
図1Aに例示したシステムにおいて実装されてもよいが、この実装形態に限定されるものではない。
図3Aの方法は、例えば、電子通信コントローラ101によって実行されてもよい。
図3Aの方法は、対応する所定のメッセージと比較して不完全な情報を有するメッセージを生成するために有利に使用することができる。
【0053】
図3Bに示すメッセージ335.1などの電子メッセージが傍受または受信されてもよい。例えば、受信された電子メッセージ335.1は、ユーザ302とチャットエージェントとの間の会話ログ300から受信されたメッセージの1つであってもよい。別の例では、電子メッセージ335.1は、例えばリアルタイムで傍受されてもよい。電子メッセージ335.1は、チャットエージェントが送信用に準備していたものでもよく、チャットウィンドウ330に表示される前に傍受されてもよい。電子メッセージ335.1は、電子メッセージ335.1の内容を説明する画像に関連付けられていてもよいし、そうでなくてもよい。電子メッセージ335.1は、ステップ301にて、所定の埋め込み空間(embedding space)に表現されてもよい。この表現は、たとえば、BERTベースのセンテンスエンコーダ320を使用して実行されてもよい。電子メッセージ335.1に関連付けて画像が提供される場合、同時埋め込み空間(joint embedding space)を使用して、電子メッセージ335.1と関連画像の両方を表現してもよい。例えば、同時埋め込み空間は
図7を参照して定義される。
【0054】
ステップ303にて、インテント予測器または分類器318を使用して、電子メッセージ335.1内の重要なインテントをインテント情報に基づいて特定してもよい。インテント分類器318は、電子メッセージ335.1の表現を入力として受け取り、電子メッセージのインテントを提供してもよい。ここで、各インテントは、その重要度を示すスコアと関連付けられる。
【0055】
ステップ305にて、特定した重要なインテントのうちの1つ以上の重要なインテントを、電子メッセージ335.1から削除してもよい。
図3Aに示すように、削除対象のインテントは、例えば、係り受け解析(dependency parsing)によって決定されてもよい。
図3Cに、傍受された電子メッセージにおける要素の係り受け表現の一例を示す。この結果、不完全なテキストが生成されてもよい。ステップ307にて、生成された不完全なテキストの検証が行われてもよい。この検証は、不完全なテキストを埋め込み空間において例えば点321で表現し、この表現321を、埋め込み空間における傍受された電子メッセージ335.1の表現322と比較することによって行われてもよい。
【0056】
ステップ307での検証によって、2つの点321、322間の距離に基づいて、1つ以上の重要なインテントを除去して得られたメッセージが不完全であると分類できるかどうかを示すことができる。上記のメッセージが不完全であると分類できない場合、新たな追加の1つ以上の重要なインテントをさらに削除するために、または新たな異なる1つ以上の重要なインテントを削除するために、ステップ305にて、傍受された電子メッセージ335.1を再度処理してもよい。これらの新たに削除されるインテントは、メッセージングセッションのコンテキストにおいて重要であることを判断するために、会話履歴329と照合されてもよい。上記のメッセージが不完全であると分類された場合、生成された電子メッセージ335.1が、傍受されたメッセージに置き換わってもよい。これを
図3Bに示す。図示するように、生成された電子メッセージ335.1が、傍受された電子メッセージの代わりにウィンドウ330に表示される。
図3Bに示すように、ユーザが、新たに生成されたメッセージ335.1の質問に答えることができない場合、削除された情報が、チャットメッセージにおける次のメッセージ335.2に戻されてもよい。
図3Bの例を続けると、「発熱する(gets heated)」、「1時間(one hour)」、および「ビデオまたはオーディオ(video or audio)」という3つのメッセージインテントが特定されてもよい。2つのインテント「1時間」および「ビデオまたはオーディオ」が、最も重要なインテントとして選択されてもよい。例えば、
図3Cに示す係り受け解析から、依存するインテントを有しないインテントが重要なインテントであると判断されてもよい。「ノートパソコンが発熱する(laptop gets heated)」というインテントを含むテキストスニペット(text snippet)が保持されてもよい。言語モデルを使用して、他の2つのインテントを含む新たなテキストスニペットを作成してもよい。
【0057】
図4Aは、本主題の一例に係る方法のフローチャートである。説明の便宜上、
図4Aに記載の方法は、
図1Aに例示したシステムにおいて実装されてもよいが、この実装形態に限定されるものではない。
図4Aの方法は、例えば、電子通信コントローラ101によって実行されてもよい。
【0058】
図4Bに示すメッセージ435.1などの電子メッセージが傍受または受信されてもよい。電子メッセージ435.1は、ユーザ302とチャットエージェントとの間の会話300におけるメッセージの1つであってもよい。電子メッセージ435.1は、チャットエージェントによって準備され、チャットウィンドウ430に表示されたものであってもよい。電子メッセージ435.1は、ステップ401にて、例えば
図7を参照して定義するような所定の埋め込み空間に表現されてもよい。この表現は、BERTベースのセンテンスエンコーダ320を使用して実行されてもよい。
【0059】
ステップ403にて、電子メッセージ435.1内の重要なインテントを、インテント分類器318を使用して特定してもよい。重要なインテントが、セットIを形成してもよい。「曖昧な(ambiguous)」情報が依然としてコンテキストに即したものとなるように、ステップ403にて、ナレッジグラフ内でセットIのk-ホップ近傍に属する関連インテントのセットI’が決定されてもよい。これらは、インテントのセットIと同じコンテキストに属するため、関連インテントと称される。関連インテントのセットI’は、ステップ405にて、埋め込み空間における重要なインテントのセットIとの類似度/共起性(co-occurrence)によってランク付けされてもよい。ステップ405では、関連インテントのセットI’のうち、類似度が最も低いインテント(低類似度インテント(low-similarity intent)と称する)が選択されてもよい。低類似度インテントを使用して、言語モデルによって、
図4Bに示すチャット発話435.2が生成されてもよい。
【0060】
図4Bの例を続けると、電子メッセージ435.1で提供された元々の問題の説明は、次のとおりである。「最新のWindowsアップデートをインストールした後、HPのノートパソコンが起動するのに10~15分近くかかります。スタートボタンを押してから10分間黒い画面が表示され、その後デスクトップが表示されるだけです。どうしたらいいでしょうか?」。生成された電子メッセージ435.2を使用して、チャットフローに曖昧さを付加してもよい。この曖昧さは、電子メッセージ435.2が、電子メッセージ435.1と強く関係してはいないが、同じコンテキスト(例えば、コンピュータ関連の問題)に属する情報を挿入することによって実現される。
【0061】
図5Aは、本主題の一例に係る方法のフローチャートである。説明の便宜上、
図5Aに記載の方法は、
図1Aに例示したシステムにおいて実装されてもよいが、この実装形態に限定されるものではない。
図5Aの方法は、例えば、電子通信コントローラ101によって実行されてもよい。
【0062】
図5Bに示すメッセージ535.1などの電子メッセージが傍受または受信されてもよい。電子メッセージ535.1は、ユーザ302とチャットエージェントとの間の会話300におけるメッセージの1つであってもよい。電子メッセージ535.1は、チャットエージェントによって準備され、チャットウィンドウ530に表示されたものであってもよい。電子メッセージ535.1は、ステップ501にて、例えば
図7を参照して定義するような所定の埋め込み空間に表現されてもよい。この表現は、BERTベースのセンテンスエンコーダ320を使用して実行されてもよい。
【0063】
ステップ503にて、電子メッセージ535.1内の重要なインテントを、例えばインテント分類器を使用して特定してもよい。そして、ナレッジグラフを使用して、特定した重要なインテントに対応する解決策を特定してもよい。重要なインテントがセットIを形成し、解決策がセットRを形成してもよい。ステップ503にて、ナレッジグラフ内でセットIと共起する関連インテントのセットI’が決定されてもよい。そして、関連インテントのセットI’に関連付けられる解決策R’が特定されてもよい。
【0064】
ステップ505にて、関連解決策のセットR’を、埋め込み空間における重要な解決策のセットRとの類似度によってランク付けしてもよい。ステップ505では、関連解決策R’のうち、類似度が最も低い解決策が選択されてもよい。選択された解決策に関連付けられるインテントである低類似度インテントを使用して、言語モデルによって、
図5Bに示すチャット発話535.2が生成されてもよい。
【0065】
図6は、本主題の一例に係る、ナレッジグラフおよび言語モデルを作成する方法のフローチャートである。
図6の方法は、訓練フェーズで実行されてもよい。
【0066】
ステップ601にて、実際の顧客苦情記録600を使用して、重要なインテントおよび解決策を特定するとともに、顧客サービスチケットから画像を抽出してもよい。ステップ603にて、ナレッジグラフが構築されてもよい。ナレッジグラフは、ステップ605にて、
図6に記載するような基準609に基づいてクラスタ化されてもよい。基準は例えば、クラスタが、一般的に発生するインテント、一般的に共起するインテント、一般的に提案される解決策、推奨されないまたは誤った解決策などを表すことを求めるものであってもよい。
【0067】
ステップ611にて、言語モデルは、実際の顧客苦情記録600を入力として受け取ってもよい。これにより、言語モデルはステップ613にて、実際の顧客苦情記録600に関与する種々のカテゴリのユーザの言語パターンを決定するように訓練することができる。
【0068】
図7は、本主題に係る、テキストと画像の埋め込み空間をリンクする方法を示す図である。画像とテキストの関係を特定するために、シャムネットワーク(Siamese network)を訓練してもよい。画像はCNNベースのエンコーダによって解析され、テキスト記述はBERTベースの変換器によって解析される。シャムネットニューラルワークアーキテクチャに従って画像とテキストを整合させるために、ヒンジ損失(hinge loss)を用いて同時埋め込みが学習される。シャムネットワークは、ラベル付けされたデータセットを用いて訓練される。ラベル付けされたデータセットは、エントリで構成される。各エントリは、画像(スクリーンショットなど)、関連する問題テキスト/ランダムな問題テキスト、およびラベルからなるトリプレットで構成される。問題テキストがランダムなものでない場合、ラベルを1に設定し、そうでない場合、ラベルを0に設定してもよい。
【0069】
図8は、本開示に関係する方法ステップの少なくとも一部を実装するのに適した一般的なコンピュータ化システム900を表す図である。
【0070】
本明細書に記載の方法は、少なくとも部分的には非対話型(non-interactive)であり、サーバや組み込みシステムなどのコンピュータ化システムによって自動化されることを理解されたい。ただし、例示的な実施形態において、本明細書に記載の方法は、(部分的に)対話型システムで実装可能である。これらの方法は、さらに、ソフトウェア912、922(ファームウェア922を含む)、ハードウェア(プロセッサ)905、またはこれらの組み合わせで実装可能である。例示的な実施形態において、本明細書に記載の方法は、実行可能プログラムとしてソフトウェアで実装され、パーソナルコンピュータ、ワークステーション、ミニコンピュータ、またはメインフレームコンピュータなどの専用または汎用デジタルコンピュータによって実行される。したがって、最も一般的なシステム900は、汎用コンピュータ901を含む。
【0071】
例示的な実施形態において、ハードウェアアーキテクチャの観点からは、
図8に示すように、コンピュータ901は、プロセッサ905と、メモリコントローラ915に結合されたメモリ(メインメモリ)910と、ローカル入力/出力コントローラ935を介して通信可能に結合された1つ以上の入力もしくは出力またはその両方の(I/O)デバイス(または周辺機器)10、945とを含む。入力/出力コントローラ935は、特に限定されないが、当技術分野で知られているように、1つ以上のバスまたは他の有線もしくは無線接続とすることができる。図面を簡単化するために省略されているが、入力/出力コントローラ935は、通信を可能にするための追加の要素、例えばコントローラ、バッファ(キャッシュ)、ドライバ、リピータおよび受信器を含んでもよい。さらに、ローカルインタフェースは、上記のコンポーネント間の適切な通信を可能にするために、アドレス接続、制御接続もしくはデータ接続またはその組み合わせを含んでもよい。本明細書に記載するように、I/Oデバイス10、945は一般に、当技術分野で既知の任意の汎用型暗号カードまたはスマートカードを含んでもよい。
【0072】
プロセッサ905は、ソフトウェア、具体的にはメモリ910に記憶されているソフトウェアを実行するためのハードウェアデバイスである。プロセッサ905は、任意の特注または市販のプロセッサ、中央処理装置(CPU)、コンピュータ901に付随する複数のプロセッサのうちの補助プロセッサ、半導体ベースの(マイクロチップまたはチップセット型の)マイクロプロセッサ、または一般にソフトウェア命令を実行するための任意のデバイスとすることができる。
【0073】
メモリ910は、揮発性メモリ要素(例えば、ランダムアクセスメモリ(DRAM、SRAM、SDRAMなどのRAM))、および不揮発性メモリ要素(例えば、ROM、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、プログラマブルROM(PROM))のうちのいずれか1つまたはいずれかの組み合わせを含むことができる。なお、メモリ910は、様々なコンポーネントが互いに遠隔に位置しながらプロセッサ905によってアクセス可能な、分散アーキテクチャを有することができる。
【0074】
メモリ910内のソフトウェアは、1つ以上の別個のプログラムを含んでもよく、これらのプログラムの各々は、論理機能、特に本発明の実施形態に関わる機能を実装するための実行可能命令の順序付けられたリストを含む。
図8の例では、メモリ910内のソフトウェアは、データベース管理システムなどのデータベースを管理するための命令などの命令912を含む。
【0075】
メモリ910内のソフトウェアは、一般的には、適切なオペレーティングシステム(OS)911も含む必要がある。OS911は、場合によっては本明細書に記載の方法を実装するためのソフトウェア912など、他のコンピュータプログラムの実行を本質的に制御する。
【0076】
本明細書に記載の方法は、ソースプログラム912、実行可能プログラム912(オブジェクトコード)、スクリプト、または、実行対象の命令912のセットを含む任意の他の実体の形態であってもよい。ソースプログラムの場合、プログラムは、OS911に関連して適切に動作するように、コンパイラ、アセンブラ、インタプリタなどによって変換される必要がある。これらは、メモリ910内に含まれていてもよいし、含まれていなくてもよい。また、方法は、データおよびメソッドのクラスを有するオブジェクト指向プログラミング言語として、または、ルーチン、サブルーチン、もしくは関数またはその組み合わせを有する手続き型プログラミング言語として記述することができる。
【0077】
例示的な実施形態において、従来のキーボード950およびマウス955を入力/出力コントローラ935に結合することができる。I/Oデバイス945などの他の出力デバイスは、入力デバイスを含むことができる。入力デバイスは、特に限定されないが、例えばプリンタ、スキャナ、マイクロフォンなどである。最後に、I/Oデバイス10、945は、入力と出力の両方を伝達するデバイスをさらに含んでもよい。これらのデバイスは、特に限定されないが、例えば、(他のファイル、デバイス、システムまたはネットワークにアクセスするための)ネットワークインタフェースカード(NIC)または変調器/復調器、無線周波数(RF)または他の送受信器、電話インタフェース、ブリッジ、ルータなどである。I/Oデバイス10、945は、当技術分野で既知の任意の汎用型暗号カードまたはスマートカードであってもよい。システム900は、ディスプレイ930に結合されたディスプレイコントローラ925をさらに含むことができる。例示的な実施形態において、システム900は、ネットワーク965に結合するためのネットワークインタフェースをさらに含むことができる。ネットワーク965は、ブロードバンド接続を介したコンピュータ901と任意の外部サーバ、クライアント等との間の通信のためのIPベースのネットワークとすることができる。ネットワーク965は、コンピュータ901と外部システム30との間でデータを送受信する。外部システム30は、本明細書に記載の方法のステップの一部または全部の実行に関与することができる。例示的な実施形態において、ネットワーク965は、サービスプロバイダによって管理されるマネージドIPネットワークとすることができる。ネットワーク965は、例えば、WiFi(登録商標)、WiMax(登録商標)などの無線プロトコルおよび技術を使用して無線方式で実装されてもよい。また、ネットワーク965は、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロポリタンエリアネットワーク、インターネットネットワーク、または他の同様のネットワーク環境などのパケット交換網とすることもできる。ネットワーク965は、固定無線ネットワーク、無線ローカルエリアネットワーク(WLAN)、無線ワイドエリアネットワーク(WWAN)、パーソナルエリアネットワーク(PAN)、仮想プライベートネットワーク(VPN)、イントラネット、または他の適切なネットワークシステムであってもよく、信号を送受信するための装置を含む。
【0078】
コンピュータ901が、PC、ワークステーション、インテリジェントデバイスなどである場合、メモリ910内のソフトウェアは、基本入出力システム(BIOS)922をさらに含んでもよい。BIOSは、起動時にハードウェアを初期化してテストし、OS111を起動させ、ハードウェアデバイス間のデータ転送をサポートする基本的なソフトウェアルーチンのセットである。BIOSは、コンピュータ901の起動時に実行できるようにROMに記憶される。
【0079】
コンピュータ901の動作中、プロセッサ905は、メモリ910内に記憶されているソフトウェア912を実行し、メモリ910との間でデータを通信し、ソフトウェアに従ってコンピュータ901の動作を全般的に制御するように構成される。本明細書に記載の方法およびOS911は、そのすべてまたは一部、典型的には後者が、プロセッサ905によって読み出され、場合によってはプロセッサ905内でバッファリングされてから、実行される。
【0080】
本明細書に記載のシステムおよび方法が
図8に示すようにソフトウェア912で実装される場合、方法は、任意のコンピュータ関連システムまたは方法によって、またはそれらに関連して使用するために、ストレージ920などの任意のコンピュータ可読媒体に記憶することができる。ストレージ920は、HDDストレージなどのディスクストレージを含んでもよい。
【0081】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合わせとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでもよい。
【0082】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、一例として、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイスまたはこれらの適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化されたデバイス、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0083】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイス/処理デバイスへダウンロードすることができる。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくは無線ネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部ストレージデバイスへダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピューティングデバイス/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピューティングデバイス/処理デバイスにおけるコンピュータ可読記憶媒体に記憶するために転送する。
【0084】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0085】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
【0086】
これらのコンピュータ可読プログラム命令は、機械を生産するために、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供することができる。これにより、このようなコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。これらのコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他のデバイスまたはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶することができる。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0087】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他のデバイスにロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0088】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行されてもよい。例えば、関係する機能に応じて、連続して示される2つのブロックが、実際には、1つの工程として達成されてもよいし、同時もしくは略同時に実行されてもよいし、部分的もしくは全体的に時間的に重複した態様で実行されてもよいし、ブロックが場合により逆順で実行されてもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実行可能である。
【手続補正書】
【提出日】2023-10-27
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0059
【補正方法】変更
【補正の内容】
【0059】
ステップ403にて、電子メッセージ435.1内の重要なインテントを、インテント分類器318を使用して特定してもよい。重要なインテントが、セットIを形成してもよい。「曖昧な(ambiguous)」情報が依然としてコンテキストに即したものとなるように、ステップ403にて、ナレッジグラフ内でセットIのk-ホップ近傍に属する関連インテントのセットI’が決定されてもよい。これらは、インテントのセットIと同じコンテキストに属するため、関連インテントと称される。関連インテントのセットI’は、ステップ405にて、埋め込み空間における重要なインテントのセットIとの類似度/共起性(co-occurrence)によってランク付けされてもよい。ステップ405では、関連インテントのセットI’のうち、類似度が最も低いインテント(低類似度インテント(low-similarity intent)と称する)が選択されてもよい。
ステップ407にて、低類似度インテントを使用して、言語モデルによって、
図4Bに示すチャット発話435.2が生成されてもよい。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0064
【補正方法】変更
【補正の内容】
【0064】
ステップ505にて、関連解決策のセットR’を、埋め込み空間における重要な解決策のセットRとの類似度によってランク付けしてもよい。ステップ505では、関連解決策R’のうち、類似度が最も低い解決策が選択されてもよい。
ステップ507にて、選択された解決策に関連付けられるインテントである低類似度インテントを使用して、言語モデルによって、
図5Bに示すチャット発話535.2が生成されてもよい。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0068
【補正方法】変更
【補正の内容】
【0068】
図7は、本主題に係る、テキストと画像の埋め込み空間をリンクする方法を示す図である。画像とテキストの関係を特定するために、シャムネットワーク(Siamese network)
700を訓練してもよい。画像はCNNベースのエンコーダによって解析され、テキスト記述はBERTベースの変換器によって解析される。シャムネットニューラルワークアーキテクチャに従って画像とテキストを整合させるために、ヒンジ損失(hinge loss)を用いて同時埋め込みが学習される。シャムネットワークは、ラベル付けされたデータセットを用いて訓練される。ラベル付けされたデータセットは、エントリで構成される。各エントリは、画像(スクリーンショットなど)、関連する問題テキスト/ランダムな問題テキスト、およびラベルからなるトリプレットで構成される。問題テキストがランダムなものでない場合、ラベルを1に設定し、そうでない場合、ラベルを0に設定してもよい。
【国際調査報告】