(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-04
(54)【発明の名称】深層学習における意味ベースの節の階層型検索のためのシステム及び方法
(51)【国際特許分類】
G06F 16/31 20190101AFI20240528BHJP
【FI】
G06F16/31
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023571263
(86)(22)【出願日】2022-01-26
(85)【翻訳文提出日】2024-01-15
(86)【国際出願番号】 US2022013926
(87)【国際公開番号】W WO2022245406
(87)【国際公開日】2022-11-24
(32)【優先日】2021-05-17
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-11-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】506332063
【氏名又は名称】セールスフォース インコーポレイテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リウ,イエ
(72)【発明者】
【氏名】橋本 和真
(72)【発明者】
【氏名】ジョウ,インボー
(72)【発明者】
【氏名】ヤブズ,セミフ
(72)【発明者】
【氏名】ション,カイミング
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175JC05
(57)【要約】
本明細書に記載される実施形態は、文書レベル及び節レベルの密な検索モデルを使用して、文書のコーパスに対するオープンドメインの質問及び回答のための密な階層型検索を提供する。具体的には、各文書は、セクション、サブセクション及び段落を有する構造的集合とみなされる。各文書は、短い長さの節に分割されてよく、ここで、文書レベル検索モデル及び節レベル検索モデルを適用して、フィルタリングされたテキストのより小さなセットを返すことができる。質問と文書を符号化し、符号化された質問に対する文書関連性スコアを決定した後に、上位文書が識別され得る。その後、節を符号化したこと及び符号化された質問に対する節関連性スコアを決定したことに基づいて、上位節のセットが更に識別される。文書及び節関連スコアは、上位節のセットを有する文書の最終的な検索ランキングを決定するために、組み合わせて使用され得る。
【特許請求の範囲】
【請求項1】
深層学習における密な階層型検索のためのシステムであって、
機械実行可能コードを記憶している非一時的メモリと、
前記非一時的メモリに結合される1つ以上のハードウェアプロセッサであって、該1つ以上のハードウェアプロセッサに、
文書のコーパスについて質問を受信するステップであって、前記コーパス内の前記文書は、節のそれぞれのセットに関連付けられる、ステップと、
前記文書の前記コーパス及び前記文書についての符号化された文書のインデックスにアクセスするステップであって、前記符号化された文書は、前記文書の要約又は前記文書の線形化された目次のうちの少なくとも一方に基づく、ステップと、
前記文書の文書レベル検索モデル及び前記節の節レベル検索モデルについての前記質問を符号化するステップと、
前記文書レベル検索モデルを使用して、前記質問に対する前記文書の文書関連性スコアを決定するステップであって、前記文書関連性スコアは、前記符号化された質問と前記符号化された文書とに基づく、ステップと、
前記文書関連性スコアを使用して、前記文書から無関係の文書をフィルタリングして前記文書のうちの少なくとも1つの文書を識別するステップと、
前記節の節レベル検索モデルを使用して、前記文書のうちの前記少なくとも1つの文書内の前記節を符号化するステップであって、前記節を符号化するステップは、前記文書のうちの前記少なくとも1つの文書の少なくとも1つの文書構造を更に使用するステップと、
前記文書関連性スコアと前記符号化された節とを使用して、前記文書のうちの前記少なくとも1つの文書から、前記質問についての上位評価の節を取得するステップと、
を含む動作を実行させる前記機械実行可能コードを実行するよう構成可能な1つ以上のハードウェアプロセッサと、
を備える、システム。
【請求項2】
前記上位評価の節を取得するステップは、
前記節レベル検索モデルと前記符号化された節を使用して、前記質問についての節関連性スコアを決定するステップと、
前記文書関連性スコア及び前記節関連性スコアからの組合せ関連性スコアを使用して、前記文書からフィルタリングされた節のセットを決定するステップと、
を含む、請求項1に記載のシステム。
【請求項3】
前記節は、前記少なくとも1つの文書構造を用いて前記節を符号化する前に拡張され、前記少なくとも1つの文書構造は、前記文書のうちの対応する1つの文書の要約、目次、1つ以上のセクションタイトル、1つ以上のサブセクションタイトル又は1つ以上の段落タイトルリストのうちの少なくとも1つを含む、
請求項1に記載のシステム。
【請求項4】
前記文書関連性スコアを決定するステップは、前記文書レベル検索モデルのトレーニング中に提供されるトレーニングデータについての前記節のランキングに更に基づく、
請求項1に記載のシステム。
【請求項5】
前記質問を受信する前に、前記機械実行可能コードは、前記1つ以上のハードウェアプロセッサに、
前記コーパス内の前記文書の前記要約又は前記線形化された目次のうちの少なくとも1つを決定するステップと、
前記要約又は前記線形化された目次のうちの前記少なくとも1つに基づいて、第1深層学習モデルを使用して、前記文書を符号化するステップと、
前記インデックス内の前記符号化されたドキュメントのオフラインインデックス化を実行するステップと、
を含む動作を更に実行させる、請求項1に記載のシステム。
【請求項6】
前記機械実行可能コードは、前記1つ以上のハードウェアプロセッサに、
第2深層学習モデルを使用して、トレーニング質問についての上位節のセットを検索するステップと、
前記トレーニング質問のために前記検索された上位節のセットからの文書内否定的サンプル及びセクション内否定的サンプルに対する否定的サンプリング操作を使用して、前記節レベル検索モデルをトレーニングするステップと、
を含む動作を更に実行させる、請求項5に記載のシステム。
【請求項7】
前記否定的サンプリング操作は、前記検索された上位節のセットからの対応する文書又は対応するセクション内の肯定的節に対する否定的節の近さに基づいて重み付けされたバイアスを適用する、
請求項6に記載のシステム。
【請求項8】
深層学習における密な階層型検索の方法であって、当該方法は、
文書のコーパスについて質問を受信するステップであって、前記コーパス内の前記文書は、節のそれぞれのセットに関連付けられる、ステップと、
前記文書の前記コーパス及び前記文書についての符号化された文書のインデックスにアクセスするステップであって、前記符号化された文書は、前記文書の要約又は前記文書の線形化された目次のうちの少なくとも一方に基づく、ステップと、
前記文書の文書レベル検索モデル及び前記節の節レベル検索モデルについての前記質問を符号化するステップと、
前記文書レベル検索モデルを使用して、前記質問に対する前記文書の文書関連性スコアを決定するステップであって、前記文書関連性スコアは、前記符号化された質問と前記符号化された文書とに基づく、ステップと、
前記文書関連性スコアを使用して、前記文書から無関係の文書をフィルタリングして前記文書のうちの少なくとも1つの文書を識別するステップと、
前記節の節レベル検索モデルを使用して、前記文書のうちの前記少なくとも1つの文書内の前記節を符号化するステップであって、前記節を符号化するステップは、前記文書のうちの前記少なくとも1つの文書の少なくとも1つの文書構造を更に使用するステップと、
前記文書関連性スコアと前記符号化された節とを使用して、前記文書のうちの前記少なくとも1つの文書から、前記質問に対する上位評価の節を取得するステップと、
を含む、方法。
【請求項9】
前記上位評価の節を取得するステップは、
前記節レベル検索モデルと前記符号化された節を使用して、前記質問についての節関連性スコアを決定するステップと、
前記文書関連性スコア及び前記節関連性スコアからの組合せ関連性スコアを使用して、前記文書からフィルタリングされた節のセットを決定するステップと、
を含む、請求項8に記載の方法。
【請求項10】
前記節は、前記少なくとも1つの文書構造を用いて前記節を符号化する前に拡張され、前記少なくとも1つの文書構造は、前記文書のうちの対応する1つの文書の要約、目次、1つ以上のセクションタイトル、1つ以上のサブセクションタイトル又は1つ以上の段落タイトルリストのうちの少なくとも1つを含む、
請求項8に記載の方法。
【請求項11】
前記文書関連性スコアを決定するステップは、前記文書レベル検索モデルのトレーニング中に提供されるトレーニングデータについての前記節のランキングに更に基づく、
請求項8に記載の方法。
【請求項12】
前記質問を受信する前に、当該方法は、
前記コーパス内の前記文書の前記要約又は前記線形化された目次のうちの少なくとも1つを決定するステップと、
前記要約又は前記線形化された目次のうちの前記少なくとも1つに基づいて、第1深層学習モデルを使用して、前記文書を符号化するステップと、
前記インデックス内の前記符号化されたドキュメントのオフラインインデックス化を実行するステップと、
を更に含む、請求項8に記載の方法。
【請求項13】
第2深層学習モデルを使用して、トレーニング質問についての上位節のセットを検索するステップと、
前記トレーニング質問のために前記検索された上位節のセットからの文書内否定的サンプル及びセクション内否定的サンプルに対する否定的サンプリング操作を使用して、前記節レベル検索モデルをトレーニングするステップと、
を更に含む、請求項12に記載の方法。
【請求項14】
前記否定的サンプリング操作は、前記検索された上位節のセットからの対応する文書又は対応するセクション内の肯定的節に対する否定的節の近さに基づいて重み付けされたバイアスを適用する、
請求項13に記載の方法。
【請求項15】
深層学習における密な階層型検索の方法を実行するために構成可能な命令を記憶している非一時的機械読取可能媒体であって、前記命令は、機械に、
文書のコーパスについての質問を受信するステップであって、前記コーパス内の前記文書は、節のそれぞれのセットに関連付けられる、ステップと、
前記文書の前記コーパス及び前記文書についての符号化された文書のインデックスにアクセスするステップであって、前記符号化された文書は、前記文書の要約又は前記文書の線形化された目次のうちの少なくとも一方に基づく、ステップと、
前記文書の文書レベル検索モデル及び前記節の節レベル検索モデルについての前記質問を符号化するステップと、
前記文書レベル検索モデルを使用して、前記質問に対する前記文書の文書関連性スコアを決定するステップであって、前記文書関連性スコアは、前記符号化された質問と前記符号化された文書とに基づく、ステップと、
前記文書関連性スコアを使用して、前記文書から無関係の文書をフィルタリングして前記文書のうちの少なくとも1つを識別するステップと、
前記節の節レベル検索モデルを使用して、前記文書のうちの少なくとも1つの文書内の前記節を符号化するステップであって、前記節を符号化するステップは、前記文書のうちの前記少なくとも1つの文書の少なくとも1つの文書構造を更に使用するステップと、
前記文書関連性スコアと前記符号化された節とを使用して、前記文書のうちの前記少なくとも1つの文書から、前記質問に対する上位評価の節を取得するステップと、
を含む動作を実行させる機械実行可能コードを含む、非一時的機械読取可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[相互参照]
本出願は、2021年11月23日に出願された米国非仮出願第17/533,613号及び2021年5月17日に出願された米国仮出願第63/189,505号の優先権を主張し、これらの出願は、その全体が参照により本明細書に明示的に組み込まれる。
[著作権の表示]
本特許文書の開示の一部は、著作権保護の対象となる資料を含む。著作権所有者は、特許商標庁の特許ファイル又は記録に現れる特許文書又は特許開示の何人かによるファクシミリ複製に対して異論はないが、それ以外の場合は、いかなる場合でもすべての著作権を保有する。
【0002】
[技術分野]
実施形態は、一般に、機械学習システム及び深層学習に関し、より具体的には、意味ベースのデータの階層型検索フレームワーク(hierarchical retrieval framework)に関する。
【背景技術】
【0003】
背景技術のセクションで議論される主題事項は、単に背景技術のセクションでの言及の結果として先行技術であると仮定されるべきではない。同様に、背景技術のセクションで言及されるか又は背景技術のセクションの主題に関連する問題は、以前に先行技術で認識されていたと仮定されるべきではない。背景技術のセクションの主題は、単に異なるアプローチを表しているだけであり、それ自体も発明である可能性がある。
【0004】
機械学習(ML、machine learning)及びニューラルネットワーク(NN、neural network)システムは、例えば人間のコミュニケーションの全体的な意図、構文及び/又は意味を理解するために、人間の発話(speech)及び記述(writing)を理解しようとするために利用され得る。このようなML/NNシステムは、ラベルで事前に注釈が付けられるか(教師あり)又は事前に注釈が付けられたラベルのない(教師なし)、異なる文書コーパスを含む、大量のトレーニングテキストを使用してトレーニングされることがある。MLシステムをトレーニングするとき、文書からの文字、単語、フレーズ、節(passages)及び内容を含む、異なるトレーニングデータが利用されることがある。しかしながら、トレーニングデータ及びそのようなデータの仕様は範囲が異なり、大きな文書コーパスを使用するときに、異なる予測及び分類を引き起こす可能性がある。さらに、異なる文書や文書からの節等を有するトレーニングデータの異なる使用は、ML/NNモデルがトレーニングされると、予測不能及び/又はより遅い検索結果をもたらす可能性がある。
【0005】
密なニューラル検索器(dense neural retrievers)に関する最近の研究は、ML/NNシステムによるオープンドメイン質問回答(QA)で有望な結果を達成しており、そこでは、質問と節の潜在的表現が、検索プロセスにおける最大内積検索に利用されることがある。しかしながら、密な検索器をトレーニングすることは、文書を短い節に分割する必要があり、その節の表現は、局所的な内容、部分的な内容、そしてときには偏った内容を含むことがあるので、トレーニングは分割プロセスに大きく依存する。その結果、トレーニングはモデル内に不正確で誤解を招く隠れた表現をもたらし、したがって、ML/NNシステムによる最終的な検索結果を劣化させる。
【図面の簡単な説明】
【0006】
【
図1】いくつかの実施形態による、データベースクエリ結果を予測するためのシステム及び方法が使用され得る、例示的な環境のブロック図を示す図である。
【0007】
【
図2】いくつかの実施形態による別の例示的な環境のブロック図を示す図である。
【0008】
【
図3】いくつかの実施形態による、深層学習における階層型検索を使用して文書及び節を検索するための例示的なコンピューティングシステムのブロック図を示す図である。
【0009】
【
図4】いくつかの実施形態による、深層学習における意味ベースの節の階層型検索を使用して検索され得る、文書コーパス内の例示的な文書及び節の簡略図である。
【0010】
【
図5】いくつかの実施形態による、深層学習における意味ベースの節の階層型検索のための例示的な構成要素の簡略図である。
【0011】
【
図6】いくつかの実施形態による、
図3、
図4及び
図5に記載される文書レベル及び節レベルの検索器を使用して、深層学習における意味ベースの節の階層型検索のためのフローチャートの簡略図である。
【0012】
図面において、同じ符号を有する要素は、同一又は類似の機能を有する。
【発明を実施するための形態】
【0013】
本説明及び態様、実施形態、実装又は適用を例示する添付図面は、保護される発明を定義する請求項を限定するものと解釈されるべきではない。本説明及び特許請求の範囲の精神及び範囲から逸脱することなく、様々な機械的、組成的、構造的、電気的及び動作的な変更が行われてもよい。いくつかの例では、周知の回路、構造又は技術は、当業者に公知であるので、詳細には示されず、説明されていない。2つ以上の図面における同様の番号は、同一又は類似の要素を表す。
【0014】
本説明において、本開示と一致するいくつかの実施形態を説明する具体的な詳細が説明される。実施形態の完全な理解を提供するために、多くの具体的な詳細が説明される。しかしながら、当業者には、これらの具体的な詳細の一部又は全部なしに、いくつかの実施形態が実施されてもよいことが明らかであろう。本明細書に開示される具体的な実施形態は、例示的であるが、限定的ではないように意図される。当業者は、本明細書では具体的に説明しないが、本開示の範囲及び精神内にある他の要素を理解することができる。加えて、不必要な繰り返しを避けるために、1つの実施形態に関連して示され説明される1つ以上の特徴は、特に記載がない限り、あるいは1つ以上の特徴が実施形態を機能しないようにする場合、他の実施形態に組み込まれることがある。
【0015】
深層学習は、ML及びNNシステムで広く使用されている。対照的な学習では、オープンドメインQAが擬似事実についての質問に答えるために使用されることがある。以前は、質問に答えるために密な節検索(dense passage retrieval)が使用されることがあった。一般的なアプローチの1つは、回答を提供するためにretriever-readerアプローチを利用することである。このようなオープンドメイン質問回答では、質問が与えられ、文書コーパス内の関連するコンテキストのセットが予測される。しかしながら、ウィキペディアのような大きな文書コーパスから関連するコンテキストを抽出することは困難であり、類似したトピックが特定の質問に関連している可能性がある等の弱点に悩まされる。さらに、文書からの節は、局所的かつ特定の情報のみを含む可能性があり、注意をそらす表現につながる。
【0016】
代わりに、密な階層型検索(DHR、Dense Hierarchical Retrieval)は、文書内のマクロ的意味と各節に固有のミクロ的意味の両方を利用することによって、節の正確な密な表現を生成するために使用されることがある。まず、例えば文書コーパスからの文書を符号化することに基づいて、質問に関連する文書が検索される。文書は、文書内の要約、目次及び/又は他のタイトル表を使用して、文書レベルで符号化され得る。その後、関連する節が、文書レベルの関連性で較正される節レベルの検索モデルによって検索され得る。グローバルな意味を更に強化するために、各節は階層的なタイトルリストと組み合わされる。肯定的な節をより良く学習するために、2つの否定的サンプリング戦略が導入されることがある、すなわち、文書内(in-Doc)否定的サンプルとセクション内(in-Sec)否定的サンプルが、ハードコントラストサンプルとして使用されることがある。DHRは大規模オープンドメインQAデータセットに適用され、ここで、密な階層型検索モデルは密な節検索器よりも性能が優れていることがあり、エンドツーエンドのQAシステムが複数のオープンドメインQAベンチマークでより良い結果を確立するのに役立つ。
【0017】
本明細書で使用されるとき、「ネットワーク」という用語は、任意の人工知能ネットワーク又はシステム、NN又はシステム、並びに/あるいはそれらの上に又はそれらとともに実装される任意のトレーニング又は学習モデルを含む、任意のハードウェア又はソフトウェアベースのフレームワークを含み得る。
【0018】
本明細書で使用されるとき、「モジュール」という用語は、1つ以上の機能を実行する任意のハードウェア又はソフトウェアベースのフレームワークを含み得る。いくつかの実施形態では、モジュールは、1つ以上のNN上に実装され得る。
【0019】
概要
マルチテナントデータベースシステムのような複数の別個の組織によってアクセス可能なデータベースシステムに対して、文書レベル検索モデル(document-level retrieval model)及び節レベル検索モデル(passage-level retrieval model)を使用して文書コーパスを処理するために方法、データ構造及びシステムが提供される。データベースシステムは、文書コーパス又は複数の文書コーパスと呼ばれる、データベースシステムのユーザによってアクセス可能な多数の文書を記憶する。文書は、例えば入力、記事、要求、及び情報記事や百科事典的エントリ(encyclopedic entries)、ヘルプ要求、トレーニングマニュアル、パンフレット又は情報を提供する主題に関する他の記事のような何らかの情報を提供する他の文書に基づいて、データベースシステムのユーザ又は管理者(例えば組織のエージェント)によって生成され得る。データベースシステムによって記憶される少なくともいくつかの文書は、文書のタイトル又は主題について関連するテキストを有する節に関連付けられる。文書コーパス内の文書は、要約、目次(ToC、table of contents)、セクション及び対応するセクションタイトル、サブセクション及び対応するサブセクションタイトル、タイトルの表、段落、文及び/又は他のテキストを含む、1つ以上の文書構造を更に含むことがある。
【0020】
本明細書に記載される実施形態は、ML及びNN技法を採用する文書レベル検索モデル及び節レベル検索モードを使用して、文書から意味ベースの節を階層的に検索するための方法、コンピュータプログラム製品及びコンピュータデータベースシステムを提供する。オンラインシステムは、ユーザにオンラインサービス及び文書コーパスへのアクセスを提供する。例えばオンラインシステムは、百科事典的リソース(encyclopedic resources)及び/又は顧客関係管理(CRM)ソフトウェアアプリケーションへのアクセスをユーザに提供するウェブベースのシステムであり得る。ユーザにサービスを提供する一部として、オンラインシステムは、オンラインシステムのユーザによってアクセス可能であり、かつトレーニングされたML/NNプロセス及び/又は自然言語プロセッサのような他の検索エンジンを使用して検索可能な、文書コーパスを記憶する。文書コーパスは、例えば文書の入力及び識別に基づいて、オンラインシステムのユーザ又は管理者によって生成され得る。
【0021】
いくつかの実施形態によると、複数の別個の異なる組織によってアクセス可能なマルチテナントデータベースシステムにおいて、各文書、文書構造及び節の特異性を考慮して、文書コーパスを処理し、DHRを使用して関連する意味ベースの節を提供するためにニューラルネットワークモデルが提供され、それによって、組織に関連付けられるユーザの経験を向上させ、より高速な検索結果を提供し、テキスト検索のための時間処理コストを最小化する。
【0022】
例示的環境
本開示のシステム及び方法は、データベースの環境とともに又はデータベースの環境内に含まれ、組み込まれ又は動作することができ、いくつかの実施形態では、このデータベースを、マルチテナントのクラウドベースのアーキテクチャとして実装することができる。マルチテナントクラウドベースのアーキテクチャは、データセキュリティを犠牲にすることなく、顧客テナント間の共同、統合及びコミュニティベースの協力を改善するために開発された。一般的に言うと、マルチテナントは、単一のハードウェア及びソフトウェアプラットフォームが、共通のデータストレージ要素(「マルチテナントデータベース」とも呼ばれる)からの複数のユーザグループ(「組織」又は「テナント」とも呼ばれる)を同時にサポートするシステムを指す。マルチテナント設計は、従来のサーバ仮想化システムに比べて多くの利点を提供する。第1に、マルチテナントプラットフォームのオペレータは、多くの場合、テナントコミュニティ全体からの集合的な情報に基づいて、プラットフォームに対する改善を成すことができる。さらに、マルチテナント環境内のすべてのユーザが共通の処理スペース内でアプリケーションを実行するため、マルチテナントプラットフォーム内の任意のユーザに対して特定のデータセットへのアクセスを許可又は拒否することが比較的容易であり、それにより、アプリケーションと、様々なアプリケーションによって管理されるデータとの間の共同及び統合を改善する。したがって、マルチテナントアーキテクチャは、ユーザの複数のセット間で類似のアプリケーション機能の便利で費用対効果の高い共有を可能にする。
【0023】
図1は、いくつかの実施形態による例示的な環境110のブロック図を示す。環境110は、ユーザシステム112、ネットワーク114、システム116、プロセッサシステム117、アプリケーションプラットフォーム118、ネットワークインタフェース120、テナントデータストレージ122、システムデータストレージ124、プログラムコード126、及びアプリケーションホスティングサービスの一部としてアプリケーションを実行する等、データベースシステムプロセス及びテナント固有のプロセスを実行するためのプロセス空間128を含み得る。他の実施形態では、環境110は、列挙された構成要素のすべてを有しないことがあり、かつ/又は、上記で列挙された構成要素の代わりに又はこれに加えて、他の要素を有することがある。
【0024】
いくつかの実施形態では、環境110は、オンデマンドデータベースサービスが存在する環境である。ユーザシステム112は、データベースユーザシステムにアクセスするためにユーザによって使用される任意の機械又はシステムであってもよい。例えばユーザシステム112のいずれかを、ハンドヘルドコンピューティングデバイス、携帯電話、ラップトップコンピュータ、ノートパッドコンピュータ、ワークステーション及び/又はコンピューティングデバイスのネットワークとすることができる。
図1(及び
図2でより詳細に)に図示されるように、ユーザシステム112は、ネットワーク114を介して、システム116であるオンデマンドデータベースサービスと対話し得る。
【0025】
システム116を使用して実装することができるようなオンデマンドデータベースサービスは、システム116へのアクセスを所有、維持又は提供する企業の外部のユーザに利用可能にされるサービスである。上述のように、そのようなユーザは、システム116の構築及び/又は維持に必ずしも関与する必要はない。代わりに、システム116によって提供されるリソースは、ユーザがシステム116によって提供されるサービスを必要とするとき、例えばユーザの要求に応じて、そのようなユーザの使用のために利用可能であり得る。いくつかのオンデマンドデータベースサービスは、共通データベースイメージのテーブルに記憶された1つ以上のテナントからの情報を記憶して、マルチテナントデータベースシステム(MTS)を形成することがある。したがって、「オンデマンドデータベースサービス116」及び「システム116」は、本明細書では交換可能に使用される。「マルチテナントデータベースシステム」という用語は、データベースシステムのハードウェア及びソフトウェアの様々な要素が1以上の顧客又はテナントによって共有され得るシステムを指すことができる。例えば所与のアプリケーションサーバは、多数の顧客に対する要求を同時に処理することがあり、所与のデータベーステーブルは、潜在的にはるかに多数の顧客に対するフィードアイテムのようなデータの行(row)を記憶することがある。データベースイメージは、1つ以上のデータベースオブジェクトを含むことがある。リレーショナルデータベース管理システム(RDBMS)又は均等物は、データベースオブジェクトに対する情報の記憶及び検索を実行し得る。
【0026】
アプリケーションプラットフォーム118は、ハードウェア及び/又はソフトウェアインフラストラクチャ、例えばオペレーティングシステムのように、システム116のアプリケーションの実行を可能にするフレームワークであり得る。一実施形態では、システム116は、オンデマンドデータベースサービスのプロバイダ、ユーザシステム112を介してオンデマンドデータベースサービスにアクセスするユーザ、又はユーザシステム112を介してオンデマンドデータベースサービスにアクセスする第三者アプリケーション開発者によって開発される、1つ以上のアプリケーションを作成、管理及び実行することを可能にするアプリケーションプラットフォーム118を含み得る。
【0027】
ユーザシステム112のユーザは、そのそれぞれの容量が異なることがあり、ユーザシステム112の特定の1つのユーザシステムの容量は、現在のユーザに対する許可(許可レベル)によって完全に決定されることがある。例えばある販売員がシステム116と対話するために特定のユーザシステム112を使用している場合、そのユーザシステムは、その販売員に割り当てられた容量を有する。しかしながら、管理者がそのユーザシステム112を使用してシステム116と対話している間、そのユーザシステム112は、その管理者に割り当てられた容量を有する。階層ロールモデルを用いるシステムでは、ある許可レベルのユーザは、より低い許可レベルのユーザによりアクセス可能なアプリケーション、データ及びデータベース情報へのアクセスを有し得るが、より高い許可レベルのユーザによってアクセス可能な特定のアプリケーション、データベース情報及びデータへのアクセスを有し得ない。したがって、異なるユーザは、アプリケーション及びデータベース情報へのアクセス及び修正に関して、ユーザのセキュリティ又は許可レベルに応じて、異なる機能を有する。
【0028】
ネットワーク114は、互いに通信するデバイスの任意のネットワーク又はネットワークの組合せである。例えばネットワーク114は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、電話ネットワーク、無線ネットワーク、ポイントツーポイントネットワーク、スターネットワーク、トークンリングネットワーク、ハブネットワーク又は他の適切な構成のいずれか1つ又は任意の組合せとすることができる。現在使用されている最も一般的なタイプのコンピュータネットワークは、転送制御プロトコル及びインターネットプロトコル(TCP/IP)ネットワーク、例えば大文字「I」の「Internet」としばしば呼ばれるネットワークのグローバルインターネットワークである。しかしながら、TCP/IPは頻繁に実装されるプロトコルであるが、本実施形態が使用し得るネットワークは、それに限定されないことを理解されたい。
【0029】
ユーザシステム112は、TCP/IPを使用してシステム116と通信し、より高いネットワークレベルでは、他の一般的なインターネットプロトコルを使用して通信し得る。ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、アンドリューファイルシステム(AFS)、無線アプリケーションプロトコル(WAP)等である。HTTPが使用される例では、ユーザシステム112は、システム116においてHTTPサーバとの間でHTTPメッセージを送受信するための、一般に「ブラウザ」と呼ばれるHTTPクライアントを含み得る。このようなHTTPサーバは、システム116とネットワーク114との間の唯一のネットワークインタフェースとして実装され得るが、同様に又は代わりに他の技術が使用されてもよい。いくつかの実装では、システム116とネットワーク114との間のインタフェースは、負荷をバランスさせ、着信HTTP要求を複数のサーバにわたって均等に分配するためのラウンドロビンHTTP要求ディストリビュータのような負荷共有機能を含む。少なくとも、そのサーバにアクセスしているユーザに対しては、複数のサーバの各々がMTSデータへのアクセスを有するが、他の代替的な構成が代わりに使用されてもよい。
【0030】
いくつかの実施形態では、
図1に示されるシステム116は、ウェブベースのCRMシステムを実装する。例えば一実施形態では、システム116は、CRMソフトウェアアプリケーションを実装して実行するだけでなく、関連データ、コード、フォーム、ウェブページ及び他の情報をユーザシステム112との間で提供し、データベースシステム関連データ、オブジェクト及びウェブページコンテンツに記憶し、これらから検索するように構成されたアプリケーションサーバを含む。マルチテナントシステムでは、複数のテナントのデータを同じ物理データベースオブジェクトに記憶し得る。しかしながら、テナントデータは、典型的に、あるテナントのデータが他のテナントのデータから論理的に分離された状態に保たれるように配置され、その結果、あるテナントは、そのようなデータが明示的に共有されない限り、別のテナントのデータにアクセスすることができない。特定の実施形態では、システム116は、CRMアプリケーション以外のアプリケーション、又はCRMアプリケーションに加えてアプリケーションを実装する。例えばシステム16は、CRMアプリケーションを含む複数のホストされた(標準及びカスタム)アプリケーションへのテナントアクセスを提供し得る。ユーザ(又は第三者開発者)アプリケーションは、CRMを含むことも含まないこともあるが、アプリケーションプラットフォーム118によってサポートされてもよく、アプリケーションプラットフォーム118は、システム116のプロセス空間内の仮想機械におけるアプリケーションの作成、1つ以上のデータベースオブジェクトへのアプリケーションの記憶、及びアプリケーションの実行を管理する。
【0031】
ネットワークインタフェース120、アプリケーションプラットフォーム118、テナントデータ123のためのテナントデータストレージ122、システム116及び場合によっては複数のテナントに対してアクセス可能なシステムデータ125のためのシステムデータストレージ124、システム116の様々な機能を実装するためのプログラムコード126、及びアプリケーションホスティングサービスの一部としてアプリケーションを実行するような、MTSシステムプロセス及びテナント固有プロセスを実行するためのプロセス空間128を含む、システム116の要素のための1つの構成が
図1に示されている。システム116上で実行し得る追加のプロセスは、データベースインデックス付けプロセスを含む。
【0032】
図1に示されるシステムのいくつかの要素は、本明細書では簡単に説明される従来の周知の要素を含む。例えばユーザシステム112の各々は、デスクトップパーソナルコンピュータ、ワークステーション、ラップトップ、ノートパッドコンピュータ、PDA、携帯電話、あるいは任意の無線アクセスプロトコル(WAP)対応デバイス又はインターネット又は他のネットワーク接続に直接的又は間接的にインタフェースすることができる任意の他のコンピューティングデバイスを含むことができる。ユーザシステム112の各々は、典型的に、HTTPクライアント、例えばMicrosoft(登録商標)のInternet Explorerブラウザ、NetscapeのNavigatorブラウザ、Operaのブラウザ、あるいは携帯電話、ノートパッドコンピュータ、PDA又は他の無線デバイス等の場合にはWAP対応ブラウザのようなブラウジングプログラムを実行し、ユーザシステム112のユーザ(例えばマルチテナントデータベースシステムの加入者)が、ネットワーク114を介してシステム116から利用可能な情報、ページ及びアプリケーションにアクセスし、処理し、閲覧することを可能にする。また、ユーザシステム112の各々は、典型的に、システム116又は他のシステム又はサーバによって提供されるページ、フォーム、アプリケーション及び他の情報とともに、ディスプレイ(例えばモニタスクリーン、液晶ディスプレイ(LCD)モニタ、発光ダイオード(LED)モニタ、有機発光ダイオード(OLED)モニタ等)上のブラウザによって提供されるグラフィカルユーザインタフェース(GUI)と対話するための、キーボード、マウス、トラックボール、タッチパッド、タッチスクリーン、ペン等のような1つ以上のユーザインタフェースデバイスを含む。例えばユーザインタフェースデバイスは、システム116によってホストされるデータ及びアプリケーションにアクセスし、記憶されたデータに対する検索を実行し、あるいは、ユーザが、ユーザに提示され得る様々なGUIページと対話することを可能にするために使用され得る。上述したように、実施形態は、インターネットとの使用に適しており、インターネットは、ネットワークの特定のグローバルなインターネットワークを指す。しかしながら、インターネットの代わりに、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、非TCP/IPベースのネットワーク、任意のLAN又はWAN等のような他のネットワークを使用することができることを理解されたい。
【0033】
一実施形態によると、ユーザシステム112の各々及びその構成要素のすべては、Intel Pentium(登録商標)プロセッサ等のような中央処理ユニットを使用して実行されるコンピュータコードを含む、ブラウザのようなアプリケーションを使用してオペレータ構成可能である。同様に、システム116(及び2つ以上存在する場合はMTSの追加インスタンス)及びその構成要素のすべては、Intel Pentium(登録商標)プロセッサ等を含み得るプロセッサシステム117のような中央処理ユニット及び/又は複数のプロセッサユニットを使用して実行されるコンピュータコードを含む、アプリケーションを使用してオペレータ構成可能であり得る。コンピュータプログラム製品の実施形態は、本明細書に記載される実施形態のプロセスのいずれかを実行するようにコンピュータをプログラムするために使用され得る、命令がその上/その中に記憶された機械読取可能記憶媒体を含む。ウェブページ、アプリケーション及び本明細書に記載する他のデータ及び媒体コンテンツを相互通信し、処理するようにシステム116を動作させ、構成するためのコンピュータコードは、好ましくは、ハードディスクにダウンロードされ、記憶されるが、プログラムコード全体又はその一部はまた、読取専用メモリ(ROM)又はランダムアクセスメモリ(RAM)のような周知の任意の他の揮発性又は不揮発性のメモリ媒体又はデバイスに記憶されてもよく、あるいは、フロッピーディスク、光ディスク、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、マイクロドライブ及び光磁気ディスク、磁気又は光カード、ナノシステム(分子メモリ集積回路(IC)を含む)、又は命令及び/又はデータを記憶するのに適した任意のタイプの媒体又はデバイスを含む任意のタイプの回転媒体のような、プログラムコードを記憶することができる任意の媒体に提供されてもよい。さらに、プログラムコード全体又はその一部は、ソフトウェアソースから伝送媒体を介して、例えばインターネットを介して又は周知のように別のサーバから伝送及びダウンロードされてもよく、あるいは、周知のように任意の通信媒体及びプロトコル(例えばTCP/IP、HTTP、HTTPS、Ethernet(登録商標)等)を使用して、周知のように任意の他の従来のネットワーク接続(例えばエクストラネット、仮想プライベートネットワーク(VPN)、LAN等)を介して伝送されてもよい。本開示の実施形態を実装するためのコンピュータコードを、例えばC、C++、HTML、任意の他のマークアップ言語、Java(登録商標)、JavaScript、ActiveX、VBScriptのような任意の他のスクリプト言語、及び周知の多くの他のプログラミング言語等、クライアントシステム及び/又はサーバ又はサーバシステム上で実行可能な任意のプログラミング言語で実装することができることも理解されよう(Java(登録商標)は、Sun MicroSystems,Inc.の商標である)。
【0034】
一実施形態によると、システム116は、ウェブページ、フォーム、アプリケーション、データ及びメディアコンテンツをユーザ(クライアント)システム112に提供して、システム116のテナントとしてユーザシステム112によるアクセスをサポートするように構成される。このように、システム116は、データが共有されない限り、各テナントのデータ分離を保つためのセキュリティ機構を提供する。2つ以上のMTSが使用される場合、それらは互いに近接して(例えば単一の建物又はキャンパスに配置されるサーバファーム内に)配置されてもよく、あるいは互いに離れた場所(例えば都市Aに配置された1つ以上のサーバと都市Bに配置された1つ以上のサーバ)に分散されてもよい。本明細書で使用されるとき、各MTSは、ローカルに又は1つ以上の地理的位置にわたって分散された1つ以上の論理的及び/又は物理的に接続されたサーバを含むことができる。さらに、「サーバ」という用語は、処理ハードウェア及びプロセス空間を含むコンピュータシステムと、関連するストレージシステム及びデータベースアプリケーション(例えばオブジェクト指向データベース管理システム(OODBMS)又は合理的データベース管理システム(RDBMS、rational database management system))を含むように意図される。また、「サーバシステム」及び「サーバ」は、本明細書ではしばしば互換的に使用されることも理解されるべきである。同様に、本明細書に記載されるデータベースオブジェクトは、単一のデータベース、分散データベース、分散データベースの集合、冗長なオンライン又はオフラインのバックアップ又は他の冗長性を有するデータベース等として実装されることができ、分散データベース又はストレージネットワーク及び関連する処理インテリジェンスを含み得る。
【0035】
図2はまた環境110を図示しており、環境110は、本明細書に記載される実施形態を実装するために使用され得る。
図2は更に、いくつかの実施形態による、システム116の要素及び様々な相互接続を図示している。
図2は、ユーザシステム112の各々が、プロセッサシステム112A、メモリシステム112B、入力システム112C及び出力システム112Dを含み得ることを示す。
図2は、ネットワーク114とシステム116を示す。
図2はまた、システム116が、テナントデータストレージ122、テナントデータ123、システムデータストレージ124、システムデータ125、ユーザインタフェース(UI)230、アプリケーションプログラムインタフェース(API)232、PL/Salesforce.comオブジェクトクエリ言語(PL/SOQL)234、保存ルーチン236、アプリケーションセットアップ機構238、アプリケーションサーバ2001~200N、システムプロセス空間202、テナントプロセス空間204、テナント管理プロセス空間210、テナントストレージエリア212、ユーザストレージ214及びアプリケーションメタデータ216を含み得ることも示す。他の実施形態では、環境110は、上記で列挙された要素と同じ要素を有していなくてもよく、かつ/又は上記に列挙された要素の代わりに又はこれに加えて、他の要素を有してもよい。
【0036】
ユーザシステム112、ネットワーク114、システム116、テナントデータストレージ122及びシステムデータストレージ124は、
図1において上記で議論された。ユーザシステム112に関して、プロセッサシステム112Aは、1つ以上のプロセッサの任意の組合せであってもよい。メモリシステム112Bは、1つ以上のメモリデバイス、短期メモリ及び/又は長期メモリの任意の組合せであってよい。入力システム112Cは、1つ以上のキーボード、マウス、トラックボール、スキャナ、カメラ及び/又はネットワークへのインタフェースのような入力デバイスの任意の組合せであってよい。出力システム112Dは、1つ以上のモニタ、プリンタ及び/又はネットワークへのインタフェースのような出力デバイスの任意の組合せであってもよい。
図2に示されるように、システム116は、HTTPアプリケーションサーバ200、アプリケーションプラットフォーム118、テナントデータストレージ122及びシステムデータストレージ124のセットとして実装される(
図1の)ネットワークインタフェース120を含み得る。また、個々のテナントプロセス空間204及びテナント管理プロセス空間210を含むシステムプロセス空間202も示されている。各アプリケーションサーバ200は、テナントデータストレージ122及びその中のテナントデータ123、並びにシステムデータストレージ124及びその中のシステムデータ125にアクセスして、ユーザシステム112の要求に応えるように構成され得る。テナントデータ123は、個々のテナントストレージエリア212に分割されてよく、テナントストレージエリア212はデータの物理的配置及び/又は論理的配置のいずれかとすることができる。各テナントストレージエリア212内において、ユーザストレージ214及びアプリケーションメタデータ216は、各ユーザに対して同様に割り当てられてもよい。例えばユーザの最も最近使用した(MRU、most recently used)アイテムのコピーはユーザストレージ214に記憶され得る。同様に、テナントである組織全体のMRUアイテムのコピーは、テナントストレージエリア212に記憶され得る。UI230はユーザインタフェースを提供し、API232は、システム116常駐プロセスに対して、そしてユーザシステム112のユーザ及び/又は開発者に対して、アプリケーションプログラマインタフェースを提供する。テナントデータ及びシステムデータは、1つ以上のOracle(登録商標)データベースのような様々なデータベースに記憶され得る。
【0037】
アプリケーションプラットフォーム118は、アプリケーション開発者によるアプリケーションの作成及び管理をサポートするアプリケーションセットアップ機構238を含み、該アプリケーションは、例えばテナント管理プロセス空間210によって管理される1つ以上のテナントプロセス空間204として加入者によって実行されるために、保存ルーチン236によってメタデータとしてテナントデータストレージ122に保存され得る。このようなアプリケーションに対する呼出しは、API232にプログラミング言語スタイルのインタフェース拡張を提供するPL/SOQL234を使用してコーディングされ得る。PL/SOQL言語のいくつかの実施形態は、2007年9月21日に出願された「Method and System For Allowing Access to Developed Applications Via a Multi-Tenant On-Demand Database Service,」という名称の米国特許第7,730,478号において更に詳細に議論されており、これは参照により本明細書に組み込まれる。アプリケーションに対する呼出しは、1つ以上のシステムプロセスによって検出されてよく、該1つ以上のシステムプロセスは、加入者についてアプリケーションメタデータ216を検索し、呼出しを行い、仮想機械内のアプリケーションとしてメタデータを実行することを管理する。
【0038】
各アプリケーションサーバ200は、例えば異なるネットワーク接続を介してシステムデータ125及びテナントデータ123へのアクセスを有するデータベースシステムに通信可能に結合され得る。例えばあるアプリケーションサーバ2001は、ネットワーク114(例えばインターネット)を介して結合されてよく、別のアプリケーションサーバ200N-1は、直接ネットワークリンクを介して結合されてよく、別のアプリケーションサーバ200Nは、更に異なるネットワーク接続によって結合され得る。転送制御プロトコル及びインターネットプロトコル(TCP/IP)は、アプリケーションサーバ200とデータベースシステムとの間で通信するための典型的なプロトコルである。しかしながら、当業者には明らかなように、使用されるネットワーク接続に応じて、他のトランスポートプロトコルを使用してシステムを最適化してもよい。
【0039】
ある実施形態では、各アプリケーションサーバ200は、テナントである任意の組織に関連付けられる任意のユーザについての要求を処理するように構成される。任意の理由におり、いつでもサーバプールにアプリケーションサーバを追加したり、サーバプールからアプリケーションサーバを削除したりできることが望ましいので、特定のアプリケーションサーバ200に対する、ユーザ及び/又は組織のサーバアフィニティ(server affinity)がないことが好ましい。したがって、一実施形態では、負荷バランシング機能を実装するインタフェースシステム(例えばF5 Big-IP負荷バランサ)が、アプリケーションサーバ200とユーザシステム112との間で通信可能に結合され、要求をアプリケーションサーバ200に分散する。一実施形態では、負荷バランサは、最小接続アルゴリズムを使用して、ユーザ要求をアプリケーションサーバ200にルーティングする。ラウンドロビン及び観測応答時間のような、負荷バランシングアルゴリズムの他の例も使用することができる。例えばある実施形態では、同じユーザからの3つの連続した要求が3つの異なるアプリケーションサーバ200にヒットする可能性があり、異なるユーザからの3つの要求が同じアプリケーションサーバ200にヒットする可能性がある。このように、システム116はマルチテナントであり、ここで、システム116は、別個のユーザ及び組織にわたる異なるオブジェクト、データ及びアプリケーションの記憶及びそれらへのアクセスを処理する。
【0040】
ストレージの例として、1つのテナントは、各販売員がシステム116を使用して、自分の販売プロセスを管理し、かつ/又は検索可能であり得る他のユーザ、エージェント及び管理者に情報を提供する販売部隊(sales force)を雇用する会社であり得る。したがって、ユーザは、連絡先データ、リードデータ、顧客フォローアップデータ、性能データ、目標及び進捗データ、トレーニング資料、リ検索記事等、そのユーザに適用可能なすべてのものを(例えばテナントデータストレージ122内に)維持し得る。MTS構成の例では、アクセス、閲覧、修正、報告、送信、計算等をすべきデータ及びアプリケーションのすべてを、ネットワークアクセス以外の何も持たないユーザシステムによって維持し、アクセスすることができるので、ユーザは、多くの異なるユーザシステムの任意のものから自身の情報を管理することができる。例えば販売員が顧客を訪問しており、顧客がロビーでインターネットアクセスを有する場合、販売員は、顧客がロビーに到着するのを待っている間に、その顧客に関する重要な更新情報を取得することができる。
【0041】
各ユーザのデータは、各ユーザの雇用者に関係なく、他のユーザのデータから分離されていることがあるが、一部のデータは、テナントである所与の組織の複数のユーザ又は該ユーザのすべてによって共有されるか又はアクセス可能な組織規模のデータであり得る。したがって、テナントレベルで割り当てられるシステム116によって管理されるいくつかのデータ構造が存在するが、一方、他のデータ構造はユーザレベルで管理されることがある。MTSは、可能性のあるコンペティタを含む複数のテナントをサポートすることがあるので、MTSは、データ、アプリケーション、及びアプリケーションの使用の分離を保つセキュリティプロトコルを有するべきである。また、多くのテナントは、自身のシステムを維持するよりもMTSへのアクセスを選択することがあるので、冗長性、アップタイム及びバックアップは、MTSで実装され得る追加の機能である。ユーザ固有データ及びテナント固有データに加えて、システム116は、複数のテナント又は他のデータによって使用可能なシステムレベルデータも維持し得る。このようなシステムレベルのデータは、テナント間で共有可能な業界レポート、ニュース、投稿等を含み得る。
【0042】
ある実施形態では、ユーザシステム112(クライアントシステムであり得る)は、アプリケーションサーバ200と通信して、テナントデータストレージ122及び/又はシステムデータストレージ124に1つ以上のクエリを送信することを必要とし得るシステム116からのシステムレベル及びテナントレベルのデータを要求し、更新する。システム116(例えばシステム116内のアプリケーションサーバ200)は、所望の情報にアクセスするように設計された1つ以上の構造化クエリ言語(SQL)ステートメント(例えば1つ以上のSQLクエリ)を自動的に生成する。他の実施形態では、自然言語プロセッサ又は機械学習エンジンのような、他のタイプの検索が入力データに基づいて実行されてもよい。システムデータストレージ124は、データベースから要求されたデータにアクセスするためのクエリプランを生成してよく、該クエリプランは、文書内のオブジェクトへの参照に基づいて外部オブジェクトを含み得る。
【0043】
図1及び
図2に関して示され、説明されるシステム116のようなデータベースシステムでは、データ又は情報は、カテゴリ又はグルーピングで編成又は配置され得る。各データベースは、一般に、事前定義されたカテゴリに適合するデータを含む、論理テーブルのセットのような、オブジェクトの集合とみなすことができる。「テーブル」は、データオブジェクトの1つの表現であり、本明細書では、オブジェクト及びカスタムオブジェクトの概念的説明を簡略化するために使用され得る。「テーブル」及び「オブジェクト」は、本明細書では交換可能に使用され得ることを理解されたい。各テーブルは、通常、表示可能なスキーマの列又はフィールドとして論理的に配置される1つ以上のデータカテゴリを含む。テーブルの各行又は各レコードは、フィールドによって定義された各カテゴリのデータのインスタンスを含む。
【0044】
百科事典システム及び/又はCRMシステムでは、例えばこれらのカテゴリ又はグルーピングは、コーパスに属する文書のリストのような文書のコーパスに関連付けられる様々な標準テーブル、並びにシステムに提示されたそれらのコーパスの検索に関連付けられる情報(例えば符号化された文書、要約、ToC、テキスト節及び追加の前述の文書テキスト)を含むことができる。例えばデータベースは、文書のコーパス(例えば主題又はシステム自体について検索され得る1つ以上の文書)を記述するテーブルを含んでよく、コーパス内の文書のこのテキストを含み得る。いくつかのマルチテナントデータベースシステムでは、データベース内のテーブル及び文書は、すべてのテナントによる使用のために提供さてよく、あるいはシステムの一部のテナント及びエージェント(例えばユーザ及び管理者)によってのみ閲覧可能であってよい。
【0045】
いくつかのマルチテナントデータベースシステムでは、テナントは、カスタムオブジェクトを作成して記憶することが許容されてよく、あるいは、テナントは、例えばカスタムインデックスフィールドを含む、標準オブジェクトのためのカスタムフィールドを作成することによって、標準エンティティ又はオブジェクトをカスタマイズすることが許容されてよい。マルチテナントデータベースシステムにおいてカスタムオブジェクトを作成するとともに標準オブジェクトをカスタマイズするためのシステム及び方法は、2004年4月2日に出願された「Custom Entities and Fields in a Multi-Tenant Database System」という名称の米国特許第7,779,039号に詳細に記載されており、これは参照により本明細書に組み込まれる。ある実施形態では、例えばすべてのカスタムエンティティデータ行が、単一のマルチテナント物理テーブルに記憶され、このテーブルは、組織ごとに複数の論理テーブルを含み得る。顧客にとっては、複数の「テーブル」が実際には1つの大きなテーブルに記憶されていること、あるいは顧客のデータが他の顧客のデータと同じテーブルに記憶されている可能性があることは明白である。
【0046】
上述のマルチテナントデータベースシステム116は、百科事典的エントリ、照会(inquiry)、課題(problem)、質問、問題(issue)、サポート関連事項、トレーニング又は教育等の検索及び/又はブラウズに関して、複数の顧客、クライアント又は他の人(一般に「ユーザ」)によってアクセスされ、使用され得る。しかしながら、他の実施形態では、他のタイプの検索システムも、本明細書に記載されるプロセスを利用して、文書内の意味ベースの節の密な階層型検索を提供し得る。システム116とユーザとの間の対話を容易にするために、検索バー、音声インタフェース又は同様のユーザインタフェースツールが提供される。検索ツールは、ユーザが、データベースにクエリして、ユーザに関連する様々な文書、オブジェクト及び/又はエンティティに関する又はこれらに関連する情報又はデータにアクセスすることを可能にする。
【0047】
しかしながら、多くのレコード及び情報を有する大規模なデータベースの場合、文書の一部又はすべてが1つ以上の文書構造(例えば要約、ToC、セクション及び対応するセクションタイトル、サブセクション及び対応するサブセクションタイトル、タイトルの表等)及び節(例えば段落、文及び/又は他のテキスト)を含む、大量の文書が存在する可能性がある。例えば文書は、セクション及び節を指定する文書構造と、節の対応するテキストとを含み得る。文書を検索するとき、オープンドメインQAのための従来の検索技術(例えば文字又は単語の埋め込み又はベクトルを使用してトレーニングされた機械学習システム)は、文書内の節を分割し、検索のために質問と節を符号化することによってのみ、文書の内容を検索することができる。したがって、データベースシステムの検索インデックスデータは、節に加えて文書及び文書構造を考慮しないとき、検索クエリに対する適切な検索結果を予測するための正確な基礎とはならない可能性がある。大規模な文書コーパスに対してユーザによって実行された検索に対して、検索結果を予測し、順序付けることは困難な作業である。Salesforce.comのようなマルチテナントシステムでは、文書は文書構造、節等を含み得る。この例を続けると、ユーザは、すべての返されたデータを有する、クエリについての関連する検索結果に最も関心がある可能性があるので、最適な又は高められたユーザ体験のために、データベースシステムが、ユーザの検索又はクエリに最も関連するか又は適用可能な文書を予測し、その結果、所望の情報又はデータが、最少回数のキーストローク、マウスクリック、ユーザインタフェース等でユーザに提示されることが望ましい又は好ましいことがある。したがって、いくつかの実施形態によると、文書レベル検索モデル及びエンコーダと節レベル検索モデル及びエンコーダを含み得る1つ以上の密な階層型検索モデルを使用して、検索結果を予測し返すためのシステム及び方法が提供される。
【0048】
密な階層型検索モデル
いくつかの実施形態によると、
図1及び
図2に関して示され、説明されるシステム116のような、複数の別個の異なる組織によってアクセス可能なマルチテナントデータベースシステムにおいて、1つ又は複数のコーパスの文書の節レベルデータを有する文書レベルデータ及び構造を考慮して、所与のクエリに最も関連する結果をデータベースに返すインテリジェント検索プロセスのための密な階層型検索モデルが提供され、それにより、ユーザ体験の向上が提供される。
【0049】
図3は、本明細書に記載されるいくつかの実施形態による、深層学習のための意味ベースのトレーニングデータの階層型検索を実装するコンピューティングデバイスの簡略図である。
図3に示されるように、コンピューティングデバイス300は、メモリ320に結合されたプロセッサ310を含む。コンピューティングデバイス300の動作は、プロセッサ310によって制御される。また、コンピューティングデバイス300は、1つのプロセッサ310のみを有するように示されているが、プロセッサ310は、コンピューティングデバイス300内の1つ以上の中央処理ユニット、マルチコアプロセッサ、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィクス処理ユニット(GPU)等を表してよいことが理解される。コンピューティングデバイス300は、スタンドアロンサブシステムとして、コンピューティングデバイスに追加されたボードとして及び/又は仮想機械として実装されてもよい。
【0050】
メモリ320は、コンピューティングデバイス300によって実行されるソフトウェア及び/又はコンピューティングデバイス300の動作中に使用される1つ以上のデータ構造を記憶するために使用され得る。メモリ320は、1つ以上のタイプの機械読取可能媒体を含んでもよい。機械読取可能媒体のいくつかの一般的な形態は、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップ又はカートリッジ及び/又はプロセッサ又はコンピュータが読み出すように適合される任意の他の媒体を含み得る。
【0051】
プロセッサ310及び/又はメモリ320は、任意の適切な物理的配置で配置されてよい。いくつかの実施形態では、プロセッサ310及び/又はメモリ320は、同じボード上、同じパッケージ内(例えばシステム・イン・パッケージ)、同じチップ上(例えばシステム・オン・チップ)等で実装されてもよい。いくつかの実施形態では、プロセッサ310及び/又はメモリ320は、分散、仮想化及び/又はコンテナ化されたコンピューティングリソースを含んでもよい。そのような実施形態と一致して、プロセッサ310及び/又はメモリ320は、1つ以上のデータセンタ及び/又はクラウドコンピューティング設備内に配置されてもよい。
【0052】
いくつかの例では、メモリ320は、非一時的な有形の機械読取可能媒体、及び/又は1つ以上のプロセッサ(例えばプロセッサ310)によって実行されると、1つ以上のプロセッサに、本明細書で更に詳細に説明される方法を実行させることができる実行可能コードを含む媒体を含んでよい。例えば図示されるように、メモリ320は、システム及びモデルを実装及び/又はエミュレートするために、かつ/又は本明細書に更に記載される任意の方法を実装するために使用され得る、深層学習モジュール330のための命令を含む。いくつかの例では、深層学習モジュール330は、データインタフェース315を介して、例えば文書のコーパスに対する質問のような入力340を受信し得る。深層学習モジュール330はまた、質問についての1つ以上の文書コーパスを受信及び/又はアクセスしてもよい。データインタフェース315は、QAデータセットに対する質問を受信するユーザインタフェース、あるいは別のシステムから及び/又はデータベースによって記憶された以前に要求された質問を受信又は検索し得る通信インタフェースのいずれかであってもよい。深層学習モジュール330は、入力340の質問に基づいて、文書コーパスからの回答結果のような出力350を生成し得る。回答結果は、深層学習モジュール330を使用して決定された1つ以上の文書及び/又は文書からの節を含んでよく、これらは、文書レベル検索モデル及び節レベル検索モデルを使用して決定された質問との関連性に基づいて、ランク付け、リスト、分類及び/又はスコア付けされ得る。
【0053】
いくつかの実施形態では、深層学習モジュール330は、密な階層型検索モジュール331と、文書及び節エンコーダモジュール(document and passage encoder module)332とを更に含んでよい。密な階層型検索モジュール331と文書及び節エンコーダモジュール332は、密な節レベル検索モデルと組み合わせて密な文書レベル検索モデルを使用して質問を考慮するDHR方法論を使用することによって、オープンドメイン質問により良い結果を提供するために使用され得る。文書コーパス上のオープンドメインQAについての質問は、その質問を使用して検索するために識別される文書コーパスについて、密な階層型検索モジュール331によって受信され、符号化され得る。密な文書レベル検索モデルは、文書及び節エンコーダモジュール332によって符号化されてインデックス付けされる、符号化された文書(例えばその要約、ToC及び/又は他の文書構造に基づく)を使用してよい。密な階層型検索モジュール331は、文書及び節エンコーダモジュール332を利用して、文書コーパスからの節を有する1つ以上の文書を識別し得る。無関係な文書は、密な階層型検索モジュール331によってフィルタリングされ、検索及び/又はランキングのための1つ以上の文書が識別され得る。
【0054】
文書及び節エンコーダモジュール332の密な節レベル検索モデルは、文書レベル検索モデル及び符号化された質問から識別された文書から節を符号化するときに使用され得る。符号化された節及び質問は、上位評価(top-rated)の文書から上位評価の節を取得するために、密な節レベル検索モデルによって使用されてよく、これらの節は、文書コーパス上のオープンドメインQAからの質問に戻るためにスコア付け又はランク付けされる。返された文書及び/又は節の関連性スコアは、密な文書レベル検索モデルからの文書関連性スコアと、密な節レベル検索モデルからの節関連性スコアとの組合せ関連性スコアに基づいて決定されてもよい。密な階層型検索モジュール331及び文書及び節エンコーダモジュール332の更なる機能性は、
図4~
図6に関して更に詳細に説明される。いくつかの例では、深層学習モジュール330及びサブモジュール331~332は、ハードウェア、ソフトウェア及び/又はハードウェアとソフトウェアの組合せを使用して実装されてもよい。
【0055】
いくつかの実施形態によると、深層学習モジュール330を含むコンピューティングデバイス300の機能性は、検索モデルサービス(SMS、Search Model Service)プラグインに実装又は組み込まれてよい。SMSは、機械学習モデルをホストして実行するgRPCマイクロサービスである。SMSは、Protobufファイルを介してパラメータを取り込み、それらの入力パラメータを使用してモデルを実行する。SMSは、定義された応答パラメータに従って、クライアント(例えばユーザデバイス)に応答を返す。いくつかの実施形態では、SMS実装は、システム116のようなマルチテナントデータベースシステムのコアアプリケーションとは別個の又は独立した、コンテナ化されたアプリケーション(例えばSalesforce Application Model(SAM))のための環境で実行される。SMSは、モデルのより早い展開を提供し得る。SMSはまた、Java仮想機械(JVM)の分離/コンテナ化も提供し、その結果、そのモデル実行に関連するクラッシュは、データベースシステムのアプリケーションサーバに影響を与えたり、影響したりすることはない。SMSプラグインは、特定のモデルタイプのモデルデータを初期化し、モデル固有の特徴処理を実行し、特徴ベクトル及び他のパラメータに基づいてモデルを実行することができる、分離コードである。プラグインアーキテクチャは、モデル実行者コード(model executor code)に対する変更を行うことなくプラグインコードに対する変更を行うことができること、ロードバランシング、ルーティング及び並列化に関する懸念がプラグインにより軽減又は排除されることを含め、様々な利点を提供する。
【0056】
図4は、いくつかの実施形態による、深層学習における意味ベースの節の階層型検索を使用して検索され得る、文書コーパス内の例示的な文書及び節の簡略図を示す。
図4の文書400は、記事、百科事典的エントリ、トレーニング資料、顧客ヘルプ要求と応答、並びにデータベースシステム内の他の文書のような、文書コーパス内のテキストの節を有する文書を構成する文書構造及び構造要素を表示する。したがって、文書400は、1つ以上の文書構造に基づく文書エンコーディング、並びに文書400の段落内のテキストの短い長さの分割された節からの節エンコーディングを生成するために使用され得る。
【0057】
文書400は、文書タイトル402、要約404、目次(ToC)406、第1セクション408及び第2セクション410を含む。文書400は、オンライン百科事典又は他の検索可能なデータベース及びプラットフォームのための百科事典的エントリのような、文書コーパス内の文書に対応し得る。この点に関して、文書400は、構造文書とみなされてよく、ここで、異なる入力及びデータが抽出され、文書レベル検索モデル及び節レベル検索モデルの入力として使用される。DHRのこれらのモデルは、関連性スコアの組合せを決定して、オープンドメインQAのために提示される質問について文書及び節をより良好に検索し、スコア付けし、かつ/又はランク付けするために使用され得る。この点に関して、コーパスからの文書の文書レベル検索のために、密な文書レベル検索モデルは、インデックスからの符号化された文書を利用し得る。符号化された文書は、1つ以上の文書構造に基づいて文書コーパスから符号化されてよく、オフライン環境内でインデックス付けされ得る。したがって、質問がランタイム時に提示されてクエリされると、インデックスがアクセスされて、文書レベルの検索のために質問のエンコーディングとともに使用され得る。
【0058】
文書レベル検索のために、文書コーパス内の文書の各々に対して1つ以上の文書構造を符号化する必要がある。エンコーディングは、文書を符号化するために使用される文書構造の構成要素の部分に基づいて文書を表す、埋め込み又はベクトル表現(例えばn個の特徴、変数又は属性を有する)を作成することに対応し得る。この点に関して、文書400は、文書レベル検索のために文書400を符号化するのに使用される文書構造に対応し得る、ToC406を含む。いくつかの実施形態では、文書タイトル402及び/又は要約404も、文書レベル検索エンコーディングに使用されてもよい。文書400は、節レベル検索のために文書400の節を符号化するときに使用され得る要約404、第1セクション408及び第2セクション410を更に含む。
【0059】
ToC406は、セクション及び/又はサブセクションタイトルリスト412を含み、該リストは、次いで、抽出動作414を使用して抽出され、クリーンにされて階層タイトルリスト416を生成する。階層タイトルリスト416は次いで、質問がクエリされて符号化されるときに、文書レベル検索モデル及び文書レベル検索器のために文書400を符号化するために使用され得る。したがって、各文書は、セクションS、サブセクションSs及びそれらの対応する段落を有する構造的な集合とみなされてもよい。各セクション又はサブセクションは、対応するタイトルを有する。したがって、各文書Diはまた、タイトル[[TS1[TSs1;...;TSsn]];...;[TSm[TSs1;...;TSsl]]]の独自のネストされたテーブルも含むことがある。TDは、コーパス内の文書を区別するための一意の識別情報とみなされてよい。
【0060】
さらに、文書400の節レベル検索を実行するために、要約404、第1セクション408、第2セクション410及び/又は文書400の他のテキストが、短い長さの節に分割されることがある。この点に関して、セクション内分割節テキスト(in-section split passage text)418は、要約404、第1セクション408及び第2セクション410を短い長さの節に分割するときに生成され得る。これは、同じセクション又はサブセクションのタイトル下にある段落を、限られた長さの節に分割することによってのみ行われ得る。各節は、ネストされたタイトルを有するトークンのシーケンスに対応し得る。コーパスC={P1;P2;,...,;PM}には合計M個の節が存在することがあり、各節Piに対して、それが属する対応する文書は、TDを見ることによって決定され得る。したがって、f:p→dが、所与の節pをその文書dにマップする関数として定義される場合、g:d→Pは、所与の文書dをその節Pにマップする。要約404、第1セクション408及び第2セクション410から生成される節は、セクションタイトル情報を更に含み、トレーニング中に、in-Doc及び/又はin-Sec否定的トレーニングが、節レベル検索モデルをトレーニングするために使用され得る。階層タイトルリスト416及び/又はセクション内分割節テキスト418の抽出は、WikiExtractorコードを使用して、記事のクリーンテキスト部分を抽出し、テーブル、インフォボックス(infoboxes)、リスト及び/又は曖昧さ回避ページのような半構造化データを除去し得る。しかしながら、階層タイトルリスト416は、文書400に対して保持される。さらに、同じセクション下のテキストは連結されてよく、各セクションは、最大長が100ワードを超えない複数の互いに素なテキストブロックに分割されてもよい。
【0061】
図5は、いくつかの実施形態による、深層学習における意味ベースの節の階層型検索のための例示的な構成要素の簡略図を示す。いくつかの実施形態では、
図5の密な文書レベル検索モデル及び密な節レベル検索モデルを使用する密な階層型検索は、コンピューティングデバイス300の深層学習モジュール330の実装とすることができる。
【0062】
図5の構成要素500は、文書レベル検索モデル及び節レベル検索モデルを使用して、文書コーパスから意味ベースの特徴及び節の密な階層型検索のためのシステム図に対応し得る。例えば質問501は、オープンドメインQAシステムに提供され、質問エンコーダを使用してE
Q(q)として符号化され得る。質問501についてより良い検索を提供するために、文書レベル検索器502が使用されてもよく、該文書レベル検索器502は、符号化された文書E
D(d)とともに使用される文書レベル検索モデルに対応し得る(例えばそれらの符号化された文書構造及び要素に基づく)。文書は、文書コーパス504内の文書に対応してよく、これは、文書レベル符号化及び/又は文書の埋め込みを使用して検索され得る。文書コーパス504は、異なる主題文書を含み得る文書の大きなセットに対応し得る。文書コーパス504内では、各文書は節に関連付けられ、該節は、節レベル検索モデルの更なる節レベルエンコーディングのために文書コーパス504から分離され得る。
【0063】
上位k1個の文書506は、符号化された文書及び質問から文書レベル検索モデルに基づいて決定される。無関係な文書はフィルタリングされてよく、文書レベル検索器502のためのトレーニングされたモデルに基づいて、1つ以上の上位評価の又はランク付けされた文書が返されてよい。上位k1個の文書506が決定されると、節レベル検索器508は、節レベル検索モデルを実行して、それらの文書から上位ランク付け又は評価付けされた節を決定し得る。しかしながら、最初に、文書-節マッピングを利用して、上位k1個の文書506について検索された符号化された文書にマッピングされた節を決定し得る。マッピングされた節は、上位k1個の文書からの節510として識別され得る。上位k1個の文書からの節510が決定されると、これらの節は符号化され、節レベル検索器508に提供され得る。
【0064】
質問501のエンコーディングはまた、節レベル検索器508とともに使用されてもよく、ここで、節レベル検索モデルが上位k1個の文書からのスコア付けされた節512を決定するために、上位k1個の文書からの節510が符号化される。節レベル検索器508のモデルが、上位k1個の文書からの節510から符号化された節EP(p)に適用されると、上位k1個の文書からのスコア付けされた節512が、次いで、質問501に関連する可能性のある文書及び対応する節のより小さなフィルタリングされたサブセットとして決定されてよい。しかしながら、文書レベル検索モデルから決定された上位k1個の文書506の関連性スコアは、文書及び節のランク付け及び出力に関連する可能性があるため、上位k1個の文書506の関連性スコアと上位k1個の文書からのスコア付けされた節512の関連性スコアを組み合わせる再ランク付けが実行され得る。再ランク付けは、文書レベル検索器502及び節レベル検索器508からの組合せ関連性スコアに基づいて、スコアを組み合わせて再ランク付け上位k2個の節514を取得する。これは、DHRが、文書レベル検索モデルと節レベル検索モデルの両方を使用して、文書コーパス504を用いて質問501を検索することを可能にする。
【0065】
文書レベル検索器502及び節レベル検索器508のモデルをトレーニングし、符号化された文書ED(d)及び符号化された節EP(p)のエンコーディングを生成するために、トレーニング動作がDHRに対して実行され得る。いくつかの実施形態では、文書コーパス内の文書の第1セクションは、百科事典的エントリのような、文書内のトピックの中心となる情報を含む文書の説明及び/又は要約であってよい。これは、要約を含んでよく、文書は、文書内のセクション及びサブセクションを強調するToCを更に含んでよい。ネストされた目次は、Ttable=TS1,TSs1,...,TSsl又はTtable=TS1[SEP]TSs1[SEP]...[SEP]TSslのように、カンマ又は特別なトークン[SEP]を使用することによって、[[TS1[TSs1;...;TSsn]];...;[TSm[TSs1;...;TSsl]]]と線形化され得る。最終的な文書Dは、[CLS]TD[SEP]WD[SEP]Ttable[SEP]と表されてよい。
【0066】
密な文書レベル検索は、BERT(Bidirectional Encoder Representations from Transformers)深層NNモデルに基づいて、質問エンコーダと文書エンコーダを使用し得る。BERTは、NNモデル層における深層双方向表現のトレーニングを可能にする言語表現深層学習モデルに対応する。質問及び文書は、密な表現ベクトルとして符号化されてよく、質問に対する文書の関連性スコアは、内積によって計算されてもよい:Sim(q,d)=<EQ(q),ED(d)>、ここで、q及びdは、それぞれ質問及び文書エンコーディングからの低次元ベクトルであってよく、<.>は、ドット積を表してよい。
【0067】
密な文書レベル検索モデルのエンコーダをトレーニングするとき、トレーニングデータのためのQAデータセットが使用されてよい。これらは、実際のGoogle(登録商標)検索からマイニングされた質問と、注釈者によって識別された百科事典的な記事の対応する回答とを有する自然質問(NQ、Natural Questions)、ウェブから収集された回答を持つトリビア質問のセットを有するTriviaQA、Google(登録商標)Suggest APIを使用して選択された質問と、Freebaseのエンティティに対応する回答とを有するWebQuestions、及び/又はTREC QAトラックからの質問並びに非構造化テキストからのオープンドメインQAを目的とした様々なウェブソースを有するCuratedTREC(TREC)を含む、標準化されたオープンドメインQA評価データセットを含み得る。肯定的な節を選択するとき、質問と回答のペアがTRECとTriviaQAにおいて提供され得る。したがって、回答を含むベストマッチ25(BM25)の深層学習モデルを使用して決定された最高ランクの節は、肯定的な節に対応し得る。上位100個の検索された節のいずれにも回答が含まれていない場合、質問は破棄される可能性がある。さらに、否定的な文書及び節(例えば肯定的な節として現れるが、回答を含まないもの)に関する否定的なサンプリング及びトレーニングも、モデルトレーニングに使用されてよく、ここで、節のランキングは、トレーニングデータに基づく密なモデルのトレーニングに影響を及ぼす可能性がある。これは、節に対するin-Doc及びin-Secネガティブ(negatives)の使用を含んでよく、これは、回答を含む肯定的な節に対するin-Doc及び/又はin-Secネガティブの近さに基づいて、より多くバイアスされるか、より重く重み付けされることがある。
【0068】
例えばデータセットをトレーニングするとき、所与の質問に対してゴールドタイトル(例えば肯定的な及び/又は最もよく一致するタイトル)を含むデータセットにおいて、肯定的な文書は、ゴールドタイトルを有する文書であり得る。他のデータセットでは、BM25を使用するとき、文書テキスト全体の回答を含むトップ1文書が肯定的な文書として検索される。その後、トレーニングのために、3つの異なるタイプのネガティブが使用される。イントロネガティブ(intro negative)は、第1セクションを使用して各文書を表してよく、次いでBM25が上位文書を検索するために使用され得るが、文書テキスト全体に回答を含まない。全テキストネガティブは、文書テキスト全体を使用して各文書を表してよく、次いでBM25が上位文書を検索するために使用され得るが、文書テキスト全体に回答を含まない。さらに、バッチ内ネガティブ(in-batch negatives)は、トレーニングデータセットに現れる他の質問とペアになった節から使用され得る。
【0069】
節レベル検索器508は、節レベル検索のためにトレーニングされた節レベル検索モデルを使用して節の符号化を更に必要とし得る。密な節レベル検索モデルのエンコーダをトレーニングするとき、サブタイトルリスト(例えばセクション及び/又はサブセクションのタイトルリスト)が文書タイトルとともに考慮され得る。節Pは、[CLS]タイトル[SEP]サブタイトル1、サブタイトル2,...,サブタイトルn[SEP]節[SEP]として表現される。異なるEQ(.)が、密な文書レベル検索モデルと密な節レベル検索モデルで使用され得る。したがって、質問に対する節の関連性スコアは、内積によって計算され得る:Sim(q,d)=<EQ(q),ED(p)>、ここで、q及びpは、それぞれ質問及び節符号化からの低次元ベクトルであり得る。
【0070】
肯定的及び否定的な節は、密な節検索(DPR)と同様の方法で、トレーニングのために決定され得る。例えば所与の質問に対するゴールド(例えばベスト又はトップ1)コンテキストを有するデータセットにおいて、肯定的な節は、節セット{P}内のゴールドコンテキストを有する節のマッピングであり得る。他のデータセットについては、BM25を使用して、回答を含むトップ1節を検索し得る。また、BM25ネガティブ及びバッチ内ネガティブも使用されてよい。さらに、文書レベル検索から肯定的な文書を所与として肯定的な節を見つけるためのモデル能力を向上させるために、in-Docネガティブ及びin-Secネガティブが、検索された節のために使用され得る。in-Docネガティブは、肯定的な節と同じ文書内に回答を含まない節であってよく、一方、In-Secネガティブは、肯定的な節と同じセクションに回答を含まない他の節であり得る。
【0071】
したがって、推論時間中に、文書レベル検索器502は、上位k1個の文書506を選択するために適用される。文書-節マッピングを使用して、上位k1個の文書506内の節は、上位k1個の文書からのスコア付けされた節512を決定するために節レベル検索器508に送られ、上位k1個の文書からのスコア付けされた節512は、文書と節の関連性スコアの組合せを使用して再ランク付けされ、再ランク付けされた上位k2個の節514を取得する。推論時間の前に、文書エンコーダEDは、オフラインでインデックス付けされる文書コーパス504からの文書を符号化する。実行時に質問qが与えられると、埋め込みが導出され、質問qに最も近い埋め込みを有する上位k1個の文書506が検索される。上位k1個の文書506からのすべての節がマッピングから検索され、節エンコーダEPが、検索されたすべての節に適用される。上位k1個の文書からのスコア付けされた節512、及び文書レベル検索及び節レベル検索からのランキング又は関連性スコアが、節を再ランク付けするために使用される。
【0072】
したがって、密な文書検索及び密な節検索の両方からの検索ランキング及び/又は関連性スコアは、再ランクされた上位k2個の節514の最終的なランキングに寄与する。これを行うために、文書関連性スコアは、Sim(q,Dj)+λ*Sim(q,Pi),Pi∈Djによって計算される節関連性スコアと組み合わされ、ここで、λは2つのスコア間で使用される係数である。スコアは実質的に類似であってよく、したがって、λは1に近いか又は1に等しくてもよい。さらに、反復トレーニングを適用して、文書レベル検索モデルと節レベル検索モデルの両方をトレーニングすることができる。例えば初期トレーニングの後、データセット及びポジティブ/ネガティブを使用する再トレーニングを使用して、モデルによる予測意思決定及び文書/節検索を更に改良することができる。
【0073】
図6は、いくつかの実施形態による、
図3、
図4及び
図5に記載された文書レベル検索器及び節レベル検索器を使用して、深層学習における意味ベースの節の階層型検索のためのフローチャートの簡略図を示す。方法600のプロセス602~614のうちの1つ以上は、少なくとも部分的に、1つ以上のプロセッサによって実行されると、該1つ以上のプロセッサにプロセス602~614のうちの1つ以上を実行させることができる非一時的な有形の機械読取可能媒体に記憶される、実行可能コードの形式で実装されてよい。いくつかの実施形態では、方法600は、
図1及び
図2の環境110内の1つ以上のコンピューティングデバイスによって実行することができる。
【0074】
深層学習モジュール330のモデルは、データ解析、抽出、符号化、変換及びQA予測プロセスを使用して、文書レベル検索モデル及び節レベル検索モデルに基づいて、データベースシステム(例えばシステム116)内の意味ベースの節及び/又は文書の密な階層型検索を実行する。いくつかの実施形態では、これらは、データベースシステムの標準であり、CRM又は他のシステムの顧客に提供され得る、文書及び文書のコーパス(例えば記事、百科事典的エントリ、トレーニング資料、顧客ヘルプ要求及び回答、並びに特定のデータベースシステムに関連し得る他の文書)を含む。
【0075】
これを達成するために、
図4及び
図5を参照すると、方法600はプロセス602から開始する。プロセス602において、深層学習モジュール330は、文書コーパスについての質問を受信し、ここで、コーパス内の文書は、節のそれぞれのセットに関連付けられる。文書コーパスは、文書コーパス504に対応してよく、情報記事、百科事典的エントリ、ヘルプ要求、トレーニングマニュアル、パンフレット又は情報を提供する主題に関する他の記事のような、文書400に類似する文書を含んでよい。質問501は、オープンドメインQAのためのクエリである入力質問に対応してよい。プロセス604では、文書コーパスと符号化された文書のインデックスがアクセスされる。例えば密な文書レベル検索モデルは、文書400を含み、かつ/又は文書コーパス504から、文書のエンコーディングを生成するために使用されてよく、このエンコーディングはE
D(d)と指定されてよい。この点に関して、文書レベル検索器502は、密モデルについて符号化した後にE
D(d)を検索してよい。
【0076】
プロセス606において、質問が符号化される。質問501はるEQ(q)として符号化されてよく、これは、例えば文書レベル検索器502のためにED(d)を生成している文書エンコーダとともに利用され得る質問エンコーダを使用して符号化され得る。プロセス608において、質問に対する文書の文書関連性スコアが、文書レベル検索モデルを使用して決定される。文書レベル検索器は、質問501のエンコーディングEQ(q)に基づいて、上位k1個の文書506を検索し得る。文書関連性スコアは、質問501に対する上位k1個の文書506の関連性を決定するためのスコア付けされた値、ランク付けされた値又は他の方法で重み付けされた値に対応し得る。この点に関して、上位k1個の文書506は、そのエンコーディングED(d)に基づいてスコア付け及び/又は順序付けされてよく、該エンコーディングED(d)は、文書400の1つ以上の文書構造及び/又は文書コーパス504からの文書から決定され得る。
【0077】
プロセス610において、関連のない文書が、文書関連性スコアに基づいて、文書からフィルタリングされる。例えば上位k1個の文書506は、それらの対応する関連性スコアに基づいて、文書コーパス504からのフィルタリングされた文書のサブセットに対応し得る。さらに、文書-節のマッピングは、上位k1個の文書506内の文書のエンコーディングED(d)から節を決定するために必要とされることがある。これは、上位k1個の文書からの節510を返すことを可能にする。プロセス612において、(フィルタリングされて返された文書及び節に基づいて)文書のうちの少なくとも1つ文書における節が、節レベル検索モデルを使用して符号化される。節レベル検索508は、符号化された節EP(p)を生成するために、上位k1個の文書からの節510を符号化し得る。
【0078】
プロセス614において、質問について上位評価の節が取得される。EQ(q)で符号化された節EP(p)を使用して(例えば質問501のエンコーディング)、上位k1個の文書からのスコア付けされた節512が、節レベル検索508によって返され得る。これは、質問及び節のエンコーディングに基づいて、対応する密なモデルを使用して決定され得る。しかしながら、上位k1個の文書からのスコア付けされた節512だけを返す前に、上位k1個の文書506からの関連性スコアと上位k1個の文書からのスコア付けされた節512とを組み合わせ、かつ/又は処理して、再ランク付けされた上位k2個の節514を取得し得る。これらの上位ランクの節は、文書コーパス504上のオープンドメインQAについて質問501の出力として提供され得る。
【0079】
上述のプロセスのために、1つ以上のニューラルネットワークモデルは、トレーニングデータに基づいてトレーニングされてもよい。いくつかの実施形態では、トレーニングのために、ニューラルネットワークは、例えばトレーニングテキスト内の各単語、単語の一部又は文字について、トレーニングデータに対して前処理を実行し得る。埋め込みは、例えばニューラルネットワークの1つ以上の符号化層で符号化され、それぞれのベクトルを生成する。前処理層は、テキスト入力シーケンス内の単語ごとに埋め込みを生成する。各埋め込みはベクトルとすることができる。いくつかの実施形態では、これらは、例えばword2vec、FastText又はGloVeのようなメソッドを実行することによって取得されるような単語埋め込みとすることができ、それぞれが有用な特性を有する単語ベクトルを学習する方法を定義する。いくつかの実施形態では、特定の次元の事前トレーニングされたベクトルが使用されてよい。いくつかの実施形態では、埋め込みは、単語の部分に関連する部分的な単語埋め込みを含むことがある。例えば単語「where」は、部分「wh」、「whe」、「her」、「ere」及び「re」を含む。部分的な単語埋め込みは、サブワード情報/FastTextで単語ベクトルを豊かにするのに役立つ。同様に、トレーニングデータからの単語及び/又はフレーズに前処理層を適用するとき、文書及び文書構造内の単語のシーケンスに基づいて、単語ベクトルのシーケンスが生成されてよい。いくつかの例では、例えばトレーニングのために使用されるテキスト入力シーケンスは、少数の単語を含むことがあり、その場合、前処理層からの埋め込み出力を、例えばゼロで「パディング」することができる。マスク層は、このような数字(numbers)をマスクし、その結果、そのような数字は、例えばトレーニング時間を短縮するのに役立つように、後続の層で無視されるか処理されない。
【0080】
符号化層は、テキスト入力シーケンスの単語から高レベルの特徴を学習する。各符号化層は、テキスト入力シーケンス内の単語をより高い次元空間にマッピングする、エンコーディング(例えばベクトル)を生成する。エンコーディングは、単語間の意味的関係を符号化することができる。いくつかの実施形態では、符号化層又はエンコーダスタックは、リカレントニューラルネットワーク(RNN)で実装される。RNNは、可変長のベクトルシーケンスを処理する深層学習モデルである。これにより、RNNは単語ベクトルのシーケンスを処理するのに適したものとなる。いくつかの実施形態では、符号化層は、1つ以上のゲート付き回帰型ユニット(GRU、gated recurrent units)で実装することができる。GRUは、リカレントニューラルネットワーク(RNN)の特定のモデルであり、ノードのシーケンスを介した接続を使用してタスクの機械学習を実行するように意図している。GRUは、RNNに共通する問題である勾配消失問題を解決するために、ニューラルネットワークの入力重みを調整するのに役立つ。いくつかの実施形態では、符号化層を、1つ以上の長期短期メモリ(LSTM)エンコーダで実装することができる。
【0081】
複数のGRUは、行に配列されてもよい。GRUの最初の行は、第1の(例えば「順方向」)方向のテキスト入力シーケンス内のそれぞれの単語の情報(例えば埋め込み又はエンコーディング)を見るか、それに対して作用し、各GRUは、対応する状態ベクトルを生成し、そのベクトルを、その行内の次のGRUに渡す(例えば左から右を指す矢印によって示されるように)。GRUの第2の行は、第2の(例えば「逆方向」)方向の入力シーケンス内のそれぞれの単語の情報(例えば埋め込み又はエンコーディング)を見るか、それに対して作用し、各GRUは、対応する隠れ状態ベクトルを生成し、そのベクトルをその行内の次のGRUに渡す。埋め込み行列の重み(値)は、ランダムに及び/又は個別に初期化され、トレーニング時に逆伝播を使用して更新/学習されてもよい。
【0082】
いくつかの実施形態によると、埋め込みは、機械学習エンジン及び/又はニューラルネットワークモデル(他の特徴を有する)をその分類タスクでトレーニングしながら、エンドツーエンドで学習され得る。このトレーニングの結果、文字、単語、フレーズ又は文ごとに1つのベクトルが得られ、ベクトルをクラスタ化される。例えば類似した埋め込みを持つ2つの文字、単語、フレーズ又は文は、最終的に遠い埋め込みよりも近くの類似したベクトルを持つことになる。次に、埋め込みは、それぞれのフラット化器(flattener)で平坦化され、かつ/又はそれぞれの連結器(concatenator)で連結される。
【0083】
ニューラルネットワークのモデルは、連結された特徴又はベクトルを使用してトレーニングされる。トレーニングのために、ニューラルネットワークは、1つ以上の層を有する多層又はディープニューラルネットワーク又はニューラルモデルを含むか、又はそれを用いて実装されてもよい。いくつかの実施形態によると、多層ニューラルネットワークの例は、ResNet-32、DenseNet、PyramidNet、SENet、AWD-LSTM、AWD-QRNN及び/又は同様のニューラルネットワークを含む。ResNet-32ニューラルネットワークは、2015年12月10日に提示された、He等による「Deep Residual Learning for Image Recognition」arXiv:1512.03385において更に詳細に記載されており;DenseNetニューラルネットワークは、2014年4月7日に提示された、Iandola等による「Densenet: Implementing Efficient Convnet Descriptor Pyramids」arXiv:1404.1869において更に詳細に記載されており;PyramidNetニューラルネットワークは、2016年10月10日に提示された、Han等による「Deep Pyramidal Residual Networks」、arXiv:1610.02915において更に詳細に記載されており;SENetニューラルネットワークは、2017年9月5日に提示された、Hu等による「Squeeze-and-Excitation Networks」、arXiv:1709.01507において更に詳細に記載されており;AWD-LSTMニューラルネットワークは、2016年11月5日に提示された、Bradbury等による「Quasi-Recurrent Neural Networks」arXiv:1611.0157において更に詳細に記載されており、これらの各々は、参照により本明細書に組み込まれる。
【0084】
各ニューラルネットワーク層は、特徴又はベクトルを操作又は処理する、例えば正則化(regularization)(例えばL2及びL1正則化、早期停止(Early stopping)等)、正規化(normalization)及び活性化(activation)を行うことができる。いくつかの実施形態では、各ニューラルネットワーク層は、密な層、バッチ正規化及び深層学習のためのドロップアウトを含むことがある。いくつかの実施形態では、各層の端部にあるそれぞれの整流線形ユニット(ReLU、rectifier linear unit)が、ReLU活性化関数を実行する。ニューラルネットワークの出力層は、ソフトマックス関数を実行して、すべてのコンテキストに対して1つの単一モデルを作成又は生成する。グローバルモデルは、システム116のようなデータベースシステムへの現在のクエリのためのケースオブジェクト又はテストケースオブジェクトを予測する。いくつかの実施形態では、モデルは、所与のトレーニング文書及び/又は文書構造(例えば節及び文書構造を有する文書の1つ又は複数のコーパス)に関する、文書及び/又は文書構造(標準又はカスタムのいずれか)内の埋め込みの確率分布を含むか、又はこれを表す。分布に関して、各埋め込みは、現在の検索に対するそのような埋め込みの関連性を表すか又は示す、対応する数値を有する。いくつかの実施形態では、ソフトマックスのボトルネック問題を緩和するために、ソフトマックス層を、ソフトマックスの混合(MOS、Mixture of Softmaxes)と呼ばれる高ランク言語モデルで実装することができる。
【0085】
上記され、ここで更に強調されるように、
図3、
図4、
図5及び
図6は、特許請求の範囲を過度に限定するものではない、トレーニング及び使用のための深層学習モジュール330及び対応する方法600の単なる実施例である。当業者は、多くの変形、代替及び修正を認識するであろう。
【0086】
コンピューティングデバイス300のようなコンピューティングデバイスのいくつかの例は、1つ以上のプロセッサ(例えばプロセッサ310)によって実行されると、該1つ以上のプロセッサに方法600のプロセスを実行させることができる実行可能コードを含む、非一時的な有形の機械読取可能媒体を含んでよい。方法600のプロセスを含み得る機械読取可能媒体のいくつかの一般的な形態は、例えばフロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップ又はカートリッジ、及び/又はプロセッサ又はコンピュータが読み出すように適合される任意の他の媒体である。
【0087】
例示的な実施形態を示し、説明してきたが、広範囲の修正、変更及び置換が、前述の開示において考慮され、いくつかの例では、実施形態のいくつかの特徴は、他の特徴の対応する使用なしに使用されてよい。当業者は、多くの変形、代替及び修正を認識するであろう。したがって、本出願の範囲は、以下の特許請求の範囲によってのみ限定されるべきであり、特許請求の範囲は、広く、かつ、本明細書に開示される実施形態の範囲と一致する方法で解釈されることが適切である。
【国際調査報告】