(58)【調査した分野】(Int.Cl.,DB名)
ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて前記問い合わせと各候補トピックとの間の類似性スコアを決定する前に、前記複数の候補トピックから第2の1つまたは複数のトピックを選択するための第1のランク付けを実行するステップと、
前記第2の1つまたは複数のトピックの各々が規定された基準を満たさないと判定することに応じて、ユーザのクリックデータに基づいて訓練された前記VPCGモデルに基づいて第2のランク付けを実行するステップであって、
ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて前記問い合わせと各候補トピックとの間の類似性スコアを決定する前記ステップ、および
前記類似性スコアに基づいて前記複数の候補トピックをランク付けする前記ステップを含む、実行するステップとをさらに含む、請求項1に記載のコンピュータ実装方法。
前記ユーザのクリックデータが、複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を含み、前記複数のユーザの選択の各々が、前記ユーザの問い合わせに基づいて前記ユーザに提供された複数の候補トピックの中で前記ユーザの問い合わせに対して関連性のあるトピックのそれぞれのユーザの選択を含む請求項1に記載のコンピュータ実装方法。
前記語彙の中の前記複数の単語要素による前記ユーザからの前記問い合わせのベクトル表現を決定することが、前記ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいて前記ユーザからの前記問い合わせを表すことを含む請求項5に記載のコンピュータ実装方法。
Nグラムの前記集合が、前記ユーザのクリックデータ内の複数の問い合わせの各々の前記ベクトル表現に基づく前記語彙の中の前記複数の単語要素によるNグラムの前記集合内の各Nグラムのベクトル表現を含む請求項6に記載のコンピュータ実装方法。
前記ユーザのクリックデータが、複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を含み、前記複数のユーザの選択の各々が、前記ユーザの問い合わせに基づいて前記ユーザに提供された複数の候補トピックの中で前記ユーザの問い合わせに対して関連性のあるトピックのそれぞれのユーザの選択を含む請求項9に記載のコンピュータによって実装されるシステム。
前記ユーザのクリックデータが、複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を含み、前記複数のユーザの選択の各々が、前記ユーザの問い合わせに基づいて前記ユーザに提供された複数の候補トピックの中で前記ユーザの問い合わせに対して関連性のあるトピックのそれぞれのユーザの選択を含む請求項14に記載の非一時的コンピュータ可読記録媒体。
【発明を実施するための形態】
【0010】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【0011】
以下の詳細な説明は、クリックグラフ上のベクトル伝播(VPCG)モデルに基づくインテリジェントなカスタマーサービスを説明し、当業者が1つまたは複数の特定の実装の文脈で開示される対象を作製し、使用することを可能にするために提示される。開示される実装の様々な修正、変更、および並べ替えが、行われることが可能であり、当業者に容易に明らかになり、定義される広い原理が、本開示の範囲を逸脱することなくその他の実装および応用に適用されることが可能である。場合によっては、説明される対象を理解するために不必要な詳細は、そのような詳細が当業者の技能のうちである限り、不必要な詳細によって1つまたは複数の説明される実装を曖昧にしないために省略されること可能性がある。本開示は、説明されるまたは図示される実装に限定されるように意図されておらず、説明される原理および特徴に合致する最も広い範囲を与えられるべきである。
【0012】
インテリジェントなカスタマーサービスシステムは、コンピュータによって実装される技術によって顧客(またはユーザ)とインタラクションし、自動カスタマーサービスを提供することができる。例示的なインテリジェントなカスタマーサービスシステムは、たとえば、カスタマーサービスロボットまたは質問および回答(Q&A)システムとして実装され得る。
【0013】
概して、既存のテクノロジーは、まず、入力された質問を分析し、質問が何についてであるかを理解しようとし、それから、質問に答えるためにどの方法を使用すべきかについての予備的分析を行う。いくつかの予備的検索が、その後行われることが可能であり、代替的な答えが、生成されることが可能である。すべての生成された答えは、スコアを付けられる。最も高いスコアを有する答えは、最も有用であると考えられ、顧客に返される。一部のQ&Aシステムは、ユーザによって表現された言葉にのみ依拠するアルゴリズムを使用してユーザの質問に基づいて質問のカテゴリまたは関連する知識分野を判定する。これらのシステムは、ユーザの意図のこれらのシステムの理解または推測の不十分さが原因で芳しくない分類結果に直面する。たとえば、インテリジェントなカスタマーサービスを使用するとき、ユーザは、カスタマーサービスロボットとのそれらのユーザのインタラクション中に口語のおよび簡略化された言葉を使用する見込みがより大きい。顧客によって尋ねられる質問の50%よりも多くは、特に顧客が質問を開始する場合、10個以下の単語を含む。顧客の問題を解決するためにユーザの文字表現および通常の自然言語処理(NLP)技術にだけ依拠することは、困難および限界を有する。電子商取引アプリケーションを使用する顧客の数の増加につれて、顧客によって尋ねられる質問の数およびそのような質問の複雑さが、それに応じて増え、ユーザのニーズを満たすインテリジェントなカスタマーサービスを提供する際にさらなる課題を突きつける。
【0014】
本開示の実装は、ユーザの問い合わせに応答するためにユーザのニーズまたは意図のより正確な予測または判定を提供するためにクリックグラフ上のベクトル伝播(VPCG)モデルに基づくインテリジェントなカスタマーサービスを導入する。説明される実装は、クリックデータに基づいて訓練されるVPCGモデルを、たとえば、顧客の質問および対応する答えのスコアを計算するスコア付けプロセスに適用する。開示される実装は、改善されたカスタマーサービスを実現するためにQ&Aエンジンに組み込まれ得る。
【0015】
一部の実装では、カスタマーサービスのQ&Aのインタラクションのシナリオにおいて、顧客の質問に対する答えについて定かでないとき、インテリジェントなカスタマーサービスシステムは、顧客にいくつかの(たとえば、3つの)答えを提供し、顧客が顧客の質問に対する最も関連性がある答えを選択することを可能にすることができる。したがって、システムは、異なるユーザによってなされた多数の異なる質問および答えのそれらのユーザのそれぞれのクリックまたは選択を収集することができる。質問および選択された答えの収集は、ユーザのクリックデータを構成する。開示される技術は、ユーザの意図をマイニングし、ユーザによって望まれる正しいトピックまたは対象をマッチングするためにそのようなデータを利用する。
【0016】
一部の実装において、開示されるシステムは、2部グラフを使用してユーザのクリックデータをモデリングする。結果として得られる2部グラフは、クリックグラフと呼ばれ得る。ユーザの問い合わせおよび候補トピックのベクトル表現を取得するために、クリックグラフにベクトル伝播が適用され得る。トピックは、たとえば、ユーザの質問において扱われるトピックまたはユーザの質問に表される題材を含み得る。たとえば、トピックは、タイトル、カテゴリ、分類、またはユーザの問い合わせの内容もしくはナレッジポイントに基づくその他の対象を含み得る。例として、ユーザの問い合わせqは、「how to withdraw funds?」である可能性があり、トピックは、「cash out」、「redemption」、「bond」、およびその他の対象を含み得る。
【0017】
ユーザのクリックデータに基づいて、語彙の中の単語要素(word element)を使用してユーザの問い合わせおよびトピックの各々を表すベクトルを含むVPCGモデルが、構築されることが可能である。一部の実装においては、VPCGモデルの応用を広げるために、Nグラムの集合(Nグラム辞書とも呼ばれる)が、語彙の中の要素を使用して各Nグラムのベクトル表現を得るためにユーザのクリックデータに基づいて訓練されることも可能である。計算言語学の分野において、Nグラムは、テキストまたは発話の所与のサンプルからのn個のアイテムの連続したシーケンスであることが可能である。アイテムは、応用に応じて音素、音節、文字、単語、または基本ペア(base pair)であることが可能である。
【0018】
ユーザからの新しい問い合わせを受け取ると、開示されるシステムは、たとえば、ユーザの問い合わせの取得されたベクトル表現またはNグラムのベクトル表現に基づいてVPCGモデルを使用して新しい問い合わせのベクトル表現を予測することができる。各候補トピックのベクトル表現に対する新しい問い合わせのベクトル表現に基づいて、スコアが計算され得る。計算されたスコアは、ユーザの問い合わせに対応する返されるトピックの間のより近い一致を提供するのを助けるために検索およびランク付けエンジンに組み込まれ得る。結果として、インテリジェントなカスタマーサービスシステムは、ユーザのニーズおよび意図のより深い理解を示すことによって高められたユーザエクスペリエンスを提供することができる。
【0019】
図1は、本開示の実装によるクリックグラフ上のベクトル伝播(VPCG)モデルに基づいてインテリジェントなカスタマーサービスを提供するための例示的な環境100を示すブロック図である。インテリジェントなカスタマーサービスは、たとえば、顧客の質問に対する答えを顧客に提供するデータサービスエンジンによって提供され得る。例示的な環境100は、ユーザ102、コンピュータ104、ネットワーク106、およびバックエンドシステム108を含む。例示的な環境100は、さらなるユーザ、コンピュータ、ネットワーク、システム、またはその他の構成要素を含み得る。例示的な環境100は、一部の実装において別の方法で構成され得る。
【0020】
一部の実装において、ネットワーク106は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはこれらのもしくはその他のネットワークの組合せを含む。ネットワーク106は、ワイヤレスネットワークまたは有線ネットワークのうちの1つまたは複数を含み得る。ネットワーク106は、コンピューティングデバイス(たとえば、コンピュータ104)およびバックエンドシステム(たとえば、バックエンドシステム108)を接続する。一部の実装において、ネットワーク106は、有線および/またはワイヤレス通信リンクを介してアクセスされ得る。
【0021】
示された例において、バックエンドシステム108は、少なくとも1つのサーバシステム110およびデータストア112を含む。一部の実装において、バックエンドシステム110は、コンピュータ104がインタラクションする可能性がある1つまたは複数のコンピュータによって実装されるデータサービスへのアクセスを提供する。コンピュータによって実装されるデータサービスは、たとえば、少なくとも1つのサーバシステム110およびデータストア112上でホストされる可能性がある。コンピュータによって実装されるデータサービスは、たとえば、ユーザの質問および収集されたクリックデータに基づいてユーザに答えを提供するためにコンピュータ104によって使用される可能性があるQ&Aデータサービスを含む可能性がある。たとえば、電子商取引会計サービスの一部として、サーバシステム110は、少額ローンサービスを得ることに関するユーザ102の質問に対応する1つまたは複数の答えを生成する可能性がある。
【0022】
一部の実装において、コンピュータ104は、対応する答えを得るためにサーバシステム110にユーザ102の質問を送信する。サーバシステム110は、受信された質問を分析し、質問の内容をデータストア112に記憶された1つまたは複数のトピックとマッチングする。サーバシステム110は、たとえば、一致するトピックをリアルタイムで検索することによって例示的な環境100内でクリックグラフ上のベクトル伝播(VPCG)モデルに基づくインテリジェントなカスタマーサービスを動的に提供することができる。
【0023】
一部の実装において、バックエンドシステム108は、ネットワーク106を通じてアクセスされるときにシームレスなリソースの単一のプールとして働くクラスタ化されたコンピュータおよび構成要素を使用するコンピュータシステムを含む。たとえば、そのような実装は、データセンター、クラウドコンピューティング、ストレージエリアネットワーク(SAN)、およびネットワーク接続ストレージ(NAS)アプリケーションにおいて使用される可能性がある。一部の実装においては、バックエンドシステム108が展開され、仮想マシンを通じてコンピュータによって実装されるサービスを提供する。
【0024】
図2は、本開示の実装によるユーザのクリックデータに基づいて訓練された例示的なVPCGモデル200を示すブロック図である。
図2に示されるように、VPCGモデル200は、ユーザの問い合わせq
1およびq
2をそれぞれ表すノード202aおよび202b (集合的に、問い合わせコード202)の組ならびにトピックd
1、d
2、およびd
3をそれぞれ表すノード204a、204b、および204c (集合的に、トピックコード204)の別の組を有するクリックグラフを含む。トピックdは、たとえば、ナレッジポイントまたは文脈に基づく対象を表す1つまたは複数の単語、語句、または単語要素のその他の集合であることが可能である。たとえば、トピックd
1、d
2、およびd
3は、それぞれ、「cash out」、「redemption」、および「bond」であることが可能である。
【0025】
辺206a、206b、206c、206d、または206eなどの、問い合わせノード202とトピックノード204との間の各辺は、ユーザの特定の問い合わせに対応する特定のトピック(または対象)のユーザのクリック(または選択)の数を表す重みまたは値を有する。異なるユーザに関する同じ質問のクリックの挙動は異なる可能性があるので、異なる辺に関する重み値は、異なることが可能である。
【0026】
図2に示される例示的な実施形態においては、ユーザの問い合わせq
1 202aならびにトピックd
1 204a、d
2 204b、およびd
3 204cを接続する3つの辺206a、206b、および206cが存在する。辺206aは、重み値4を有し、辺206bは、重み値2を有し、辺206cは、重み値1を有する。これは、同じ問い合わせq
1を尋ね、候補トピックd
1、d
2、およびd
3を与えられるとき、4人のユーザが、トピックd
1 204aをクリックし、2人のユーザが、トピックd
2 204bをクリックし、1人のユーザが、トピックd
3 204cをクリックすることを示す。つまり、同じ質問の問い合わせq
1に関して、4人のユーザが、トピックd
1 204aがそれらのユーザの質問に対して最も関連性があると考え、2人のユーザが、トピックd
2 204bがそれらのユーザの質問に対して最も関連性があるであると考え、1人のユーザが、トピックd
3 204cがそのユーザの質問に対して最も関連性があるであると考える。
【0027】
q
1がユーザからの問い合わせ「how to withdraw funds?」を表し、候補トピックd
1、d
2、およびd
3のトピックがそれぞれ「cash out」、「redemption」、および「bond」である可能性がある上記の例において、辺206a、206b、および206cに関する重みは、それぞれ、4、2、および1である。これは、1群の顧客が同じ質問「how to withdraw funds?」を尋ねた後、システムが、3つの候補ナレッジポイントトピック「cash out」、「redemption」、および「bond」をそれらの顧客に提供し、顧客にそれらの顧客の質問に対して最も関連性がある1つを選択させたことを示す。1群の顧客の中で、顧客のうちの4人は、ナレッジポイントトピック「cash out」を選択し、2人の顧客は、「redemption」を選択し、1人の顧客は、「bond」を選択した。
【0028】
一部の実装において、ユーザの問い合わせqおよびトピックdの各々は、語彙の中の単語要素のベクトルとして表され得る。語彙は、より長い文字列(たとえば、問い合わせ、トピック、またはNグラム)のベクトル表現のための基礎をなす文字、単語、語句、またはその他のエントリの辞書を含み得る。一部の実装において、各ユーザの問い合わせqのベクトル表現は、ワンホット(one-hot)フォーマットでまたは別の方法で語彙の中の単語要素に基づいて初期化され得る。ユーザの問い合わせq
iを例として取り挙げる。問い合わせq
iがセグメントに分解され、各セグメント内の関連がなく意味のない文字または単語を削除された後、問い合わせq
iは、ベクトルq
1: w
1,w
2,w
4,w
6, w
k∈W, k=1,2, ..., vと表されることが可能であり、Wは、語彙、つまり、単語要素の集合であり、集合Wのサイズまたは次元は、vである。一部の実装において、問い合わせq
iは、疎表現q
i: (w
1:1, w
2:1, w
4:1, w
6:1)を持ち得る。
【0029】
一部の実装においては、ユーザのクリックデータ内のそれぞれのユーザの問い合わせq
1、q
2、...、q
nのベクトル表現が生成された後、ユーザのクリックデータ内の各トピックdのベクトル表現も、同様の方法でクリック2部グラフに基づいて生成され得る。たとえば、トピックd
iが、同じ語彙の中の単語要素に基づいて単語要素のベクトルとして表され得る。例として、トピックd
iは、疎表現d
i: (w
i:1, w
j:1), w
i, w
j∈Wを有する可能性がある。
【0030】
一部の実装において、各ユーザの問い合わせqおよびトピックdのベクトル表現は、反復的に取得され得る。たとえば、トピックdの生成されたベクトル表現が、ユーザの問い合わせqのベクトル表現を更新するために逆伝播され、したがって、1回の反復が、完了される。下の式(1)および(2)は、n回目の反復におけるユーザの問い合わせqおよびトピックdのベクトル表現の例を示す。
【数1】
【数2】
式中、出力
【数3】
および
【数4】
は、n回目の反復後のトピックd
jおよびユーザの問い合わせq
iのベクトル表現である。それが1回目の反復である場合、
【数5】
は、q
iのベクトル表現の初期値を表す。C
i,jは、
図2の2部グラフ200に関連して説明されたようにユーザのクリックデータに基づいて導出されたq
iとd
jとの間の辺の重みを示す。たとえば、C
i,jは、ユーザのクリックデータ内のユーザの問い合わせq
iに関するトピックd
jのユーザのクリックまたは選択の総数を示す。q
iとd
jとを接続する辺がない場合、値は0である。Qは、ユーザのクリックデータ内のユーザの問い合わせの総数を表し、q
i, i=1,2, ..., Qである。Dは、ユーザのクリックデータ内のトピック(たとえば、ナレッジポイントタイトルベクトル)の総数を表し、d
j, j=1,2, ..., Dである。
【0031】
反復の総回数は、たとえば、予め決められる可能性がある。たとえば、反復アルゴリズムは、n=5、つまり、5回反復するときに終了される可能性がある。反復プロセスが終了した後、ユーザのクリックデータ内のそれぞれのユーザの問い合わせqおよびトピックdのベクトル表現が生成され得る。
【0032】
概して、異なるユーザからの問い合わせは様々である。ユーザのクリックデータ内のユーザの問い合わせは、ユーザが尋ねる可能性があるすべての可能な質問を包含しない可能性がある。一般化するために、一部の実装においては、Nグラムの集合が、新しいユーザの問い合わせがNグラムの集合に基づいて表され得るようにユーザのクリックデータ内のユーザの問い合わせに基づいて訓練され得る。たとえば、新しいユーザの問い合わせqは、1つまたは複数のNグラムのシーケンス、加重和、または別の組合せによって表され得る。
図2に示されるように、ノード214a、214b、214c、および214dは、それぞれ、Nグラム1、Nグラム2、Nグラム3、およびNグラム4を表す。Nグラムは、たとえば、顧客の質問に頻繁に現れる完全な単語または語句である可能性がある。例として、問い合わせ「how to withdraw funds」は、2つのNグラム「how to」および「withdraw fund」にセグメント分けされ得る。
【0033】
ユーザの問い合わせqをNグラムの表現に変換するためにNグラムの集合G (つまり、Nグラム辞書)が取得され得る。集合Gは、ユーザの問い合わせqの表現のために使用される候補Nグラムの集合全体である可能性がある。一部の実装において、Nグラムの各々は、最大3の次数(order)を有する。Nグラムは、それらのNグラムの発生の頻度によってソートされ得る。一部の実装において、集合Gは、最も多い発生の頻度を有するいくつかのNグラムを含み得る。たとえば、集合Gは、g個の最も頻繁に発生するNグラムを含み得る。この場合、集合Gのサイズはgであり、つまり、|G|= gである。
【0034】
一部の実装において、ユーザの問い合わせqは、たとえば、前方最大一致(forward maximum match)アルゴリズムまたは別のアルゴリズムによってG内のNグラムを使用して表され得る。一部の実装において、ユーザの問い合わせqは、Nグラム集合G内のNグラムを使用して表され得る。
図2は、Nグラム
1 214a、Nグラム
2 214b、Nグラム
3 214c、およびNグラム
4 214dを含むNグラム集合Gを示す。Nグラム集合Gは、さらなるまたは異なるNグラムを含み得る。示されるように、q
1は、Nグラム
1、Nグラム
2、およびNグラム
3を使用して表されることが可能であり、q
2は、Nグラム
3およびNグラム
4を使用して表されることが可能である。
【0035】
上述の反復方法を使用して、qのベクトル表現が、Nグラムに逆伝播されることが可能であり、ユーザの問い合わせq
i, i=1,2, ..., Nの観点によるNグラムのベクトル表現をもたらす。それぞれのユーザの問い合わせqのベクトル表現が、たとえば、式(1)および(2)に関連して説明された例示的な技術に基づいて複数回の反復後に生成されるので、ユーザの問い合わせqのベクトル表現は、完全で十分であると考えられ得る。一部の実装においては、ユーザの問い合わせq
i, i=1,2, ..., Nを使用してNグラムのベクトル表現を生成するために逆伝播だけが必要とされる。たとえば、
図2に示されるように、Nグラム
3 214cは、ユーザの問い合わせq
1 202aおよびユーザの問い合わせq
2 202bを使用して表され得る。
【0036】
一部の実装において、ユーザの問い合わせは、それぞれの重みを有するG内のNグラムによって表され得る。Nグラムに対応する重みは、たとえば、語彙W内の単語要素を使用するqのベクトル表現にできるだけ近い、Nグラムを使用した後のqのベクトル表現を有するように計算され得る。一部の実装において、Nグラムに対応する重みは、たとえば、次の式に従ってこれら2つの値の間の誤差を最小化するように計算され得る。
【数6】
式中、u
jは、(語彙W内の単語要素の観点による) Nグラムのベクトル表現を表し、j=1, ..., gであり、w
jは、u
jに対応する重みであり、q
iは、反復後の問い合わせのベクトル表現を表し、
【数7】
は、問い合わせq
i内のNグラムの集合を表す。一部の実装において、上の式内のNグラムの重みw
j∈Wは、たとえば、勾配降下法または別の方法を使用して反復的に計算され得る。
図2に示されるように、q
1は、それぞれの重みw
1、w
2、およびw
3を有するNグラム
1、Nグラム
2、およびNグラム
3を用いて表されることが可能であり、q
2は、それぞれの重みw
3およびw
4を有するNグラム
3およびNグラム
4を用いて表されることが可能である。
【0037】
図3は、本開示の実装による、訓練されたVPCGモデルを使用してユーザの問い合わせqおよび候補ナレッジポイントトピックdのスコアを計算する例示的なプロセス300を示す流れ図である。一部の実装において、方法300の様々なステップは、並列に、組み合わせて、ループして、または任意の順序で実行され得る。明瞭に示すために、以下の説明は、この説明のその他の図の文脈で方法300を全体的に説明する。しかし、方法300は、必要に応じて、たとえば、任意の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行される可能性があることが理解されよう。たとえば、方法300は、1つもしくは複数のプロセッサを含み得るかまたは1つもしくは複数のプロセッサによって実装され得るスコアエンジンまたは別のデータ処理装置によって実行され得る。
【0038】
302において、ユーザの問い合わせおよびいくつかの候補トピックが、受信される。ユーザの問い合わせは、Q&Aシステムまたは別のインテリジェントなカスタマーサービスプラットフォームから受信された新しいユーザの問い合わせである可能性がある。いくつかの候補トピックは、たとえば、(たとえば、大雑把なもしくは予備的な選択に基づく)候補トピックの予め選択された集合または別の予め決められた数の候補トピックに一致するユーザの問い合わせのために使用される候補トピックの集合全体である可能性がある。一部の実装において、いくつかの候補トピックは、ユーザのクリックデータに基づくトピックの訓練されたベクトル表現を含む訓練されたVPCGモデルからのものである可能性がある。302の後、プロセス300は、304に進む。
【0039】
304において、ユーザの問い合わせが、前処理され得る。たとえば、問い合わせは、セグメントに分割されることが可能であり、関連がなく意味のない単語が、各セグメントから削除される。304の後、プロセス300は、306に進む。
【0040】
306において、ユーザの問い合わせがユーザのクリックデータによって訓練され、VPCGモデルに記憶された訓練されたユーザの問い合わせに一致するかどうかが、判定される。問い合わせが(たとえば、
図2に関連して説明された技術によって) VPCGモデルにおいて反復的に計算された訓練されたユーザの問い合わせと一致すると判定される場合、ユーザの問い合わせの訓練されたベクトル表現は、たとえば、データストアから訓練されたベクトル表現を取り出すことによって直接取得されることが可能であり、方法300は、312に進む。そうでない場合、方法300は、308に進む。
【0041】
308において、ユーザの問い合わせがVPCGモデル内のいかなる訓練されたユーザの問い合わせにも一致しないと判定することに応じて、ユーザの問い合わせのNグラム表現が、たとえば、前方最大一致アルゴリズムまたは別のアルゴリズムによって取得され得る。言い換えると、ユーザの問い合わせは、ユーザのクリックデータ内のユーザの問い合わせに基づいて訓練されたNグラム集合
【数8】
(たとえば、
図2に関連して説明されたNグラム辞書G)内の1つまたは複数のNグラムによって表される。つまり、
【数9】
である。一部の実装において、ユーザの問い合わせは、1つまたは複数のNグラムによるベクトル表現を使用して、たとえば次の式に基づく加重和として表され得る。
【数10】
式中、u
jは、Nグラムのベクトル表現を表し、j=1, ..., gであり、gは、Nグラム集合
【数11】
のサイズを表し、w
jは、Nグラムu
jに対応する重みを表し、q
iは、ユーザの問い合わせiのベクトル表現を表す。308の後、プロセス300は、310に進む。
【0042】
310において、問い合わせのベクトル表現が、ユーザの問い合わせのNグラム表現に基づいて決定される。たとえば、問い合わせのベクトル表現は、ユーザの問い合わせのNグラム表現において使用されたNグラムのベクトル表現および重みに基づいて決定され得る。式(4)に関連する例に示されるように、語彙の中の単語要素を使用するユーザの問い合わせq
iのベクトル表現は、ユーザの問い合わせq
iをNグラム{u
j}の加重和に変換することによって取得され、各u
jは、語彙の中の単語要素を使用するそのu
jのそれぞれのベクトル表現で表されている。310の後、プロセス300は、312に進む。
【0043】
312において、いくつかの候補トピックの各々のベクトル表現が、取得される。一部の実装において、いくつかの候補トピックの各々のベクトル表現は、ユーザのクリックデータに基づくトピックの訓練されたベクトル表現を含む訓練されたVPCGモデルから取り出され得る。一部の実装において、いくつかの候補トピックの各々のベクトル表現は、ユーザの問い合わせに関連して上で説明された技術と同様のNグラム表現などの別の方法で取得され得る。312の後、プロセス300は、314に進む。
【0044】
314において、問い合わせおよび候補トピックのベクトル表現の類似性スコアが、決定される。ユーザの問い合わせおよび候補トピックの各々をそれぞれのベクトル表現に変換することによって、ユーザの問い合わせは、たとえば、それらのそれぞれのベクトル表現に基づいてそれら2つの相関または距離もしくは誤差の測定基準の計算によって候補トピックの各々と効率的に比較され得る。ユーザの問い合わせおよび候補トピックの各々のペアの間の距離または誤差の測定基準は、候補トピックの各々とのユーザの問い合わせの類似性または一致を判定するために使用される類似性スコアとして返され得る。一部の実装においては、出力される類似性スコアの例として、ユーザの問い合わせおよび候補トピックのベクトル表現の間のコサイン距離が、計算される。314の後、プロセス300は終了する。
【0045】
図4は、本開示の実装によるVPCGモデルに基づいてインテリジェントなカスタマーサービスを提供する例示的なシステム400を示すブロック図である。システム400は、検索エンジン404、精密ランク付けエンジン406、および再ランク付けエンジン412を含む。システム400は、ユーザの問い合わせ402を受け取り、たとえば、類似性スコアに基づいてユーザの問い合わせ402に対して最も関連性がある予め決められた数のトピック(たとえば、上位3つのトピック414または416)を出力することができる。また、システム400は、たとえば、再ランク付けエンジン412に基づいて例示的なプロセス300から出力された類似性スコアによって実行された再ランク付けに基づいて上位3つのトピック416を決定するために、ユーザのクリックデータ410に基づいて訓練されるVPCGモデル408を使用する。
【0046】
入力されたユーザの問い合わせ402は、テキストに基づく可能性がある。ユーザは、書いてまたは口頭で問い合わせを行うことができ、その問い合わせが、後でテキストに変換されることが可能である。システム400がユーザの問い合わせ402を受け取った後、検索エンジン404 (たとえば、Apache Lucene検索システム)は、ユーザの問い合わせ402に関連するトピックの各々の関連性に基づいてトピックの大雑把なランク付け(またはソート)を有するように、システムのデータベースに記憶されたすべてのトピックを呼び出すことができる。一部の実装において、検索エンジンは、たとえば、精密ランク付けエンジン406に供給するために予め決められた数のトピック(たとえば、上位400個のトピック405)を取り出すことができる。検索エンジン404内で、顧客の問い合わせ402と関係がないトピックは、除去され得る。
【0047】
呼び出された上位400個のトピック405は、精密ランク付けエンジン406によって精密にランク付けするための候補トピックとして働くことができる。ユーザの問い合わせ402およびトピックに関連する特徴が、抽出され得る。Word Mover's Distance (WMD)スコア、Second Sortスコア、インテンションツリー(intention tree)スコアなどのこれらの特徴に関連するランク付けスコアが、計算され得る。計算されたランク付けスコアは、たとえば、LambdaMARTモデルを使用して精密ランク付けエンジン406によってソートされ得る。いくつかの上位にランク付けされたトピックが十分な一致が見つかったことを示す特定の基準を満たす(たとえば、スコアが十分に高いかまたは予め決められた信頼性の閾値を超えている)場合、いくつかの上位にランク付けされたトピック(たとえば、上位3つのトピック414)は、たとえば、ユーザインターフェース(UI)を介してユーザに精密なランク付けの結果として出力され得る。そうでない場合、精密ランク付けエンジン406は、ユーザの問い合わせおよび候補トピックの各々の類似性スコア409をさらに計算するためにVPCGモデル408を呼び出すことができる。
【0048】
再ランク付けエンジン412は、たとえば、
図3に関連して説明された技術によってVPCGモデル408に基づいて計算された類似性スコア409を受け取り得る。再ランク付けエンジン412は、類似性スコア409と、ランク付けモデル、たとえば、LambdaMARTなどの勾配ブースティング決定木(GBDT: Gradient Boosting Decision Tree)モデルに基づくその他のランク付けスコアとに基づいて候補トピックを再ランク付けすることができる。結果として、いくつかの上位にランク付けされたトピック(たとえば、上位3つのトピック416)が、たとえば、ユーザインターフェース(UI)を介してユーザに再ランク付けの結果として出力され得る。一部の実装において、ユーザのクリックデータ410は、たとえば、ジニ係数またはその他の基準に基づいて特定のランク付けの特徴の重要性を決定するためにランク付けモデルを訓練するためにも使用され得る。一部の実装において、ユーザのクリックデータ410は、ユーザからの約150万のクリックのログを含む。VPCGモデル408および再ランク付けエンジン412は、それらのそれぞれの訓練プロセスにおいてユーザのクリックデータ410を使用することができる。
【0049】
図5は、本開示の実装によるVPCGモデルに基づいてインテリジェントなカスタマーサービスを提供するための例示的な方法500を示す流れ図である。一部の実装において、方法500の様々なステップは、並列に、組み合わせて、ループして、または任意の順序で実行されることが可能である。明瞭に示すために、以下の説明は、この説明のその他の図の文脈で方法500を全体的に説明する。しかし、方法500は、必要に応じて、たとえば、任意の好適なシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行される可能性があることが理解されよう。たとえば、方法500は、1つもしくは複数のプロセッサを含み得るかまたは1つもしくは複数のプロセッサによって実装され得るデータサービスエンジンまたは別のデータ処理装置によって実行され得る。例示的なシステム400は、データサービスエンジンの例である。
【0050】
502において、問い合わせが、ユーザからデータサービスエンジンにおいて受け取られる。問い合わせは、文字列、たとえば、一連の文字または単語要素を含み得る。問い合わせは、たとえば、Q&Aシステムまたは別のインテリジェントなカスタマーサービスプラットフォームのユーザインターフェース(UI)から受信され得る。ユーザは、テキストに基づく問い合わせまたは口頭の問い合わせを行うことができ、後者の場合、口頭の問い合わせは、その口頭の問い合わせがデータサービスエンジンにおいて受信される前にテキストに変換され得る。502の後、プロセス500は、504に進む。
【0051】
504において、いくつかの候補トピックが、データサービスエンジンによって問い合わせに基づいて特定される。いくつかの候補トピックを特定することは、たとえば、メモリもしくは別のデータストア(たとえば、ユーザのクリックデータに基づくトピックの訓練されたベクトル表現を含む訓練されたVPCGモデル)からいくつかの候補トピックを取得すること、別のソースからいくつかの候補トピックを取り出すこと、デバイスから候補トピックを受信すること、またはそれ以外の方法で候補トピックを決定することを含み得る。504の後、プロセス500は、506に進む。
【0052】
506において、第1のランク付けが、1つまたは複数のトピックを選択するために実行される。一部の実装において、第1のランクは、たとえば、
図4に関連して説明された技術による問い合わせに関連するトピックの各々の関連性に基づくトピックの大雑把なランク付け(もしくはソート)または予備的な選択であることが可能である。506の後、プロセス500は、508に進む。
【0053】
508において、1つまたは複数のトピックが規定された基準を満たすかどうかが判定される。1つまたは複数のトピックが規定された基準を満たすと(たとえば、1つまたは複数のトピックが
図4に関連して説明された技術によってスコアおよび信頼性の閾値などの特定の測定基準に基づいて問い合わせと十分に関連性があるかどうかを)判定することに応じて、1つまたは複数のトピックが、たとえば、インテリジェントなカスタマーサービスプラットフォームのユーザインターフェース(UI)を介してユーザに出力されることが可能であり、方法500は、516に進む。そうではなく、トピックが規定された基準を満たさないと判定される場合、1つまたは複数のトピックを選択するための第2のランク付け(たとえば、
図4に関連して説明された技術による精密なランク付け)が、実行され、方法500は、510に進む。
【0054】
510において、問い合わせといくつかの候補トピックの各々との間の類似性スコアが、ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて決定される。一部の実装において、ユーザのクリックデータは、複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を含み、複数のユーザの選択の各々は、ユーザの問い合わせに基づいてユーザに提供された複数の候補トピックの中でユーザの問い合わせに対して関連性のあるトピックのそれぞれのユーザの選択を含む。
【0055】
VPCGモデルを訓練する例示的な技術が、
図2に関連して説明される。一部の実装において、VPCGモデルを訓練することは、ユーザのクリックデータ内で複数のユーザからの複数の問い合わせを特定することと、ユーザのデータ内で複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を特定することと、語彙の中の複数の単語要素による複数の問い合わせの各々のベクトル表現を決定することと、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定することとを含む。
【0056】
一部の実装において、語彙の中の複数の単語要素による複数の問い合わせの各々のベクトル表現を決定することは、複数の候補トピックを使用して複数の問い合わせの各々を表すことを含む。たとえば、複数の問い合わせを使用して複数の候補トピックの各々を表すことは、式(1)に従って複数の問い合わせの各々を表すことを含む。
【0057】
一部の実装において、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定することは、複数の問い合わせを使用して複数の候補トピックの各々を表すことを含む。たとえば、複数の候補トピックを使用して複数の問い合わせの各々を表すことは、式(2)に従って複数の問い合わせ加重和によって複数の候補トピックの各々を表すことを含む。
【0058】
一部の実装において、類似性スコアを決定することは、たとえば、問い合わせおよび候補トピックの各々をそれぞれのベクトル表現に変換することと、それら2つの距離または誤差の測定基準をそれら2つのそれぞれのベクトル表現に基づいて計算することと、ユーザの問い合わせおよび候補トピックの各々のペアの間の距離または誤差の測定基準を類似性スコアとして返すこととを含む。一部の実装においては、出力される類似性スコアの例として、ユーザの問い合わせおよび候補トピックのベクトル表現の間のコサイン距離が、計算される。
【0059】
たとえば、ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて問い合わせと複数の候補トピックの各々との間の類似性スコアを決定することは、語彙の中の複数の単語要素によるユーザからの問い合わせのベクトル表現を決定すること、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定すること、問い合わせのベクトル表現と複数の候補トピックの各々のベクトル表現との間の類似性スコアを計算することを含む。
【0060】
一部の実装において、語彙の中の複数の単語要素によるユーザからの問い合わせのベクトル表現を決定することは、ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいてユーザからの問い合わせを表すことを含む。一部の実装において、Nグラムの集合は、ユーザのクリックデータ内の複数の問い合わせの各々のベクトル表現に基づく語彙の中の複数の単語要素によるNグラムの集合内の各Nグラムのベクトル表現を含む。
【0061】
一部の実装において、ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいてユーザからの問い合わせを表すことは、ユーザからの問い合わせを式(4)に従ってNグラムの集合の加重和として表すことを含む。510の後、プロセス500は、512に進む。
【0062】
512において、いくつかの候補トピックが、類似性スコアに基づいてランク付けされる。一部の実装において、データサービスエンジンは、510において決定された類似性スコアを受け取り、類似性スコアに基づいて候補トピックをランク付けまたは再ランク付けすることができる。一部の実装において、データサービスエンジンは、たとえば、
図4に関連して説明された技術によって、候補トピックをランク付けするときに、ランク付けモデル、たとえば、GDBPモデルに基づくその他のランク付けスコアも使用する。512の後、プロセス500は、514に進む。
【0063】
514において、1つまたは複数のトピックが、ランク付けされた候補トピックから選択される。一部の実装においては、たとえば、いくつかの上位にランク付けされたトピック(たとえば、上位3つのトピック)が、ランク付けされた候補トピックから選択され得る。514の後、プロセス500は、516に進む。
【0064】
516において、選択されたトピックが、データサービスエンジンのユーザインターフェース(UI)を介して出力される。一部の実装において、選択されトピックは、グラフィックユーザインターフェース(GUI)またはその他のUI内で表、チャットボックス、ポップウィンドウなどに表示され得る。516の後、プロセス500は停止する。
【0065】
図6は、本開示の実装によるVPCGモデルに基づくインテリジェントなカスタマーサービスと深層セマンティック類似性モデル(DSSM)に基づくインテリジェントなカスタマーサービスとの間の性能比較を示すグラフである。
図6に示されるように、VPCGモデルのスコアプラグインは、C++のコードに基づくモデルのサーバ配置に基づき、約1msの平均呼び出し遅延を有する一方、DSSMは、およそ70msかかり、これは、VPCGモデルが、オンライン動作の効率を大幅に改善し、アルゴリズムのレイテンシーを削減することを示す。より多くの候補トピックを与えられると、VPCGモデルに基づく実装は、より多くの時間の節約を達成することができる。VPCGモデルに基づく再ランカーエンジンの導入によって、LambdaMARTのソートの結果は、ndcg@1インジケータを2%改善し、オンラインテスト単一エンジン解決率(on-line test single-engine resolution rate)は、約1.5%向上する。
【0066】
Table 1(表1)は、ユーザの問い合わせのいくつかの例示的なベクトル表現を示す。「ベクトル表現」列において、コロン(「:」)の前の各単語または語句(たとえば、「fund」または「transfer out」)は、語彙の中の単語要素を表す。コロン(「:」)に続く値(たとえば、「0.83」および「0.06」)は、単語要素に対応する重みを表す。Table 1(表1)に示されるように、VPCGモデルに基づいて、ユーザの問い合わせの内容は、ユーザの問い合わせに現れない単語要素によってさえも、単語要素によってより完全に表され得る。VPCGモデルは、機械学習によって様々なベクトル表現を学習することもできる。たとえば、ユーザの問い合わせ「How to redeem the fund」のベクトル表現は、ユーザの問い合わせのセマンティクス(semantics)を十分に表す単語要素「sell」、「transfer」、「sale」などを含む。そのような表現は、ユーザのニーズまたは意図により一致し、したがって、ユーザの問い合わせに対するより適切なまたは効果的な答えを提供することができる。
【表1】
【0067】
図7は、実装による、本開示において説明される記載のアルゴリズム、メソッド、関数、プロセス、フロー、およびプロシージャに関連する計算機能を提供するために使用される例示的なコンピュータシステム700のブロック図である。示されるコンピュータ702は、サーバ、デスクトップコンピュータ、ラップトップ/ノートブックコンピュータ、ワイヤレスデータポート、スマートフォン、携帯情報端末(PDA)、タブレットコンピューティングデバイス、これらのデバイス内の1つもしくは複数のプロセッサ、またはコンピューティングデバイスの物理的なインスタンスもしくは仮想的なインスタンス(もしくはそれら両方)を含む任意のその他の好適な処理デバイスなどの任意のコンピューティングデバイスを包含するように意図される。加えて、コンピュータ702は、キーパッド、キーボード、タッチスクリーン、またはユーザ情報を受け付けることができるその他のデバイスなどの入力デバイスと、デジタルデータ、ビジュアルもしくはオーディオ情報(もしくは情報の組合せ)、またはグラフィカル式のユーザインターフェース(UI)(もしくはGUI)を含むコンピュータ702の動作に関連する情報を運ぶ出力デバイスとを含むコンピュータを含む可能性がある。
【0068】
コンピュータ702は、本開示において説明される対象を実行するためのコンピュータシステムのクライアント、ネットワーク構成要素、サーバ、データベースもしくはその他の永続性、または任意のその他の構成要素としての役割(あるいは役割の組合せ)をすることができる。示されたコンピュータ702は、ネットワーク730に通信可能なように結合される。一部の実装において、コンピュータ702の1つまたは複数の構成要素は、クラウドコンピューティングに基づく、ローカルの、グローバルな、またはその他の環境(または環境の組合せ)を含む環境内で動作するように構成される可能性がある。
【0069】
高いレベルで、コンピュータ702は、説明される対象に関連するデータおよび情報を受信、送信、処理、記憶、または管理するように動作可能な電子的なコンピューティングデバイスである。一部の実装によれば、コンピュータ702は、アプリケーションサーバ、電子メールサーバ、ウェブサーバ、キャッシュサーバ、ストリーミングデータサーバ、もしくはその他のサーバ(もしくはサーバの組合せ)を含むかまたはそれに通信可能なように結合される可能性もある。
【0070】
コンピュータ702は、(たとえば、別のコンピュータ702上で実行される)クライアントアプリケーションからネットワーク730を介して要求を受信し、適切なソフトウェアアプリケーションを使用して受信された要求を処理することによって受信された要求に応答することができる。加えて、要求は、内部ユーザ(たとえば、コマンドコンソールからもしくはその他の適切なアクセス方法による)、外部関係者または第三者、その他の自動化されたアプリケーション、および任意のその他の適切な主体、個人、システム、またはコンピュータからコンピュータ702に送信される可能性もある。
【0071】
コンピュータ702の構成要素の各々は、システムバス703を使用して通信することができる。一部の実装において、コンピュータ702、ハードウェア、またはソフトウェア(またはハードウェアとソフトウェアとの両方の組合せ)の構成要素のいずれかまたはすべては、アプリケーションプログラミングインターフェース(API)712またはサービスレイヤ713 (またはAPI 712とサービスレイヤ713との組合せ)を使用してシステムバス703を介して互いにまたはインターフェース704(またはこれら両方の組合せ)とインターフェースをとる可能性がある。API 712は、ルーチン、データ構造、およびオブジェクトクラスに関する規定を含む可能性がある。API 712は、コンピュータ言語に依存しないかまたは依存するかのどちらかである可能性があり、完全なインターフェース、単一の機能、または1組のAPIさえ指す可能性がある。サービスレイヤ713は、コンピュータ702またはコンピュータ702に通信可能なように結合されるその他の構成要素(図示されるか否かにかかわらず)にソフトウェアサービスを提供する。コンピュータ702の機能は、このサービスレイヤを使用してすべてのサービスの消費者がアクセスし得る可能性がある。サービスレイヤ713によって提供されるソフトウェアサービスなどのソフトウェアサービスは、定義されたインターフェースを通じて再利用可能な定義された機能を提供する。たとえば、インターフェースは、拡張可能マークアップ言語(XML)フォーマットまたはその他の好適なフォーマットでデータを提供するJAVA(登録商標)、C++、またはその他の好適な言語で記述されたソフトウェアである可能性がある。コンピュータ702の統合された構成要素として示されるが、代替的な実装は、API 712またはサービスレイヤ713を、コンピュータ702のその他の構成要素またはコンピュータ702に通信可能なように結合されるその他の構成要素(図示されるか否かにかかわらず)に関連するスタンドアロンの構成要素として示す可能性がある。さらに、API 712またはサービスレイヤ713のいずれかのまたはすべての部分は、本開示の範囲を逸脱することなく別のソフトウェアモジュール、エンタープライズアプリケーション、またはハードウェアモジュールの子またはサブモジュ
ールとして実装される可能性がある。
【0072】
コンピュータ702は、インターフェース704を含む。
図7には単一のインターフェース704として示されるが、2つ以上のインターフェース704が、コンピュータ702の特定のニーズ、希望、または特定の実装に応じて使用される可能性がある。インターフェース704は、分散環境においてネットワーク730に接続されるその他のシステム(図示されるか否かにかかわらず)と通信するためにコンピュータ702によって使用される。概して、インターフェース704は、ソフトウェアまたはハードウェア(またはソフトウェアおよびハードウェアの組合せ)に符号化された論理を含み、ネットワーク730と通信するように動作可能である。より具体的には、インターフェース704は、ネットワーク730またはインターフェースのハードウェアが、図示されたコンピュータ702の内外で物理的な信号を伝えるように動作可能であるように、通信に関連する1つまたは複数の通信プロトコルをサポートするソフトウェアを含む可能性がある。
【0073】
コンピュータ702は、プロセッサ705を含む。
図7には単一のプロセッサ705として示されるが、2つ以上のプロセッサが、コンピュータ702の特定のニーズ、希望、または特定の実装に応じて使用される可能性がある。概して、プロセッサ705は、本開示において説明されるようにコンピュータ702の動作ならびに任意のアルゴリズム、メソッド、関数、プロセス、フロー、およびプロシージャを実行するために命令を実行し、データを操作する。
【0074】
コンピュータ702は、ネットワーク730に接続され得るコンピュータ702またはその他の構成要素(またはそれら両方の組合せ) (図示されるか否かにかかわらず)に関するデータを保持することができるデータベース706も含む。たとえば、データベース706は、本開示に合致するデータを記憶するインメモリの、通常の、またはその他の種類のデータベースであることが可能である。一部の実装において、データベース706は、コンピュータ702および説明される機能の特定のニーズ、希望、または特定の実装に応じて2つ以上の異なるデータベースの種類の組合せ(たとえば、ハイブリッドのインメモリのおよび通常のデータベース)であることが可能である。
図7には単一のデータベース706として示されるが、(同じ種類のまたは組み合わされた種類の)2つ以上のデータベースが、コンピュータ702および説明される機能の特定のニーズ、希望、または特定の実装に応じて使用され得る。データベース706はコンピュータ702の一体的な構成要素として示されるが、代替的な実装において、データベース706は、コンピュータ702の外部にあることが可能である。示されるように、データベース706は、ユーザの問い合わせ、候補トピック、Nグラムなどのベクトル表現を含み得る1つまたは複数のベクトル表現データ716、VPCGモデルデータ718、およびクリックデータ726を保持する。
【0075】
コンピュータ702は、ネットワーク730に接続され得るコンピュータ702またはその他の構成要素(またはそれら両方の組合せ) (図示されるか否かにかかわらず)に関するデータを保持することができるメモリ707も含む。メモリ707は、本開示に合致する任意のデータを記憶することができる。一部の実装において、メモリ707は、コンピュータ702および説明される機能の特定の必要、希望、または特定の実装に応じて2つ以上の異なる種類のメモリの組合せ(たとえば、半導体と磁気ストレージとの組合せ)であることが可能である。
図7には単一のメモリ707として示されるが、(同じ種類のまたは組み合わされた種類の) 2つ以上のメモリ707が、コンピュータ702および説明される機能の特定のニーズ、希望、または特定の実装に応じて使用され得る。メモリ707はコンピュータ702の一体的な構成要素として示されるが、代替的な実装において、メモリ707は、コンピュータ702の外部にあることが可能である。
【0076】
アプリケーション708は、特に本開示において説明される機能に関連して、コンピュータ702の特定のニーズ、希望、または特定の実装に応じて機能を提供するアルゴリズム的なソフトウェアエンジンである。たとえば、アプリケーション708は、1つまたは複数の構成要素、モジュール、またはアプリケーションとして働くことができる。さらに、単一のアプリケーション708として示されるが、アプリケーション708は、コンピュータ702上に複数のアプリケーション708として実装される可能性がある。加えて、コンピュータ702と一体的であるものとして示されるが、代替的な実装において、アプリケーション708は、コンピュータ702の外部にあることが可能である。
【0077】
コンピュータ702は、電源714も含み得る。電源714は、ユーザが交換することができるかまたはユーザが交換することができないかのどちらかであるように構成されることが可能である充電可能なまたは充電不可能なバッテリを含み得る。一部の実装において、電源714は、(充電、スタンバイ、またはその他の電力管理機能を含む)電力変換または管理回路を含み得る。一部の実装において、電源714は、たとえば、コンピュータ702に電力を供給するかまたは充電式バッテリに充電するためにコンピュータ702が壁のコンセントまたはその他の電源につながれることを可能にする電源プラグを含み得る。
【0078】
コンピュータ702を含むコンピュータシステムに関連するまたはコンピュータ702を含むコンピュータシステムの外部の任意の数のコンピュータ702が存在する可能性があり、各コンピュータ702はネットワーク730を介して通信する。さらに、用語「クライアント」、「ユーザ」、およびその他の適切な専門用語は、本開示の範囲を逸脱することなく必要に応じて交換可能なように使用される可能性がある。さらに、本開示は、多くのユーザが1つのコンピュータ702を使用する可能性があること、または1人のユーザが複数のコンピュータ702を使用する可能性があることを想定する。
【0079】
対象の説明される実装は、1つまたは複数の特徴を単独でまたは組み合わせて含み得る。
【0080】
たとえば、第1の実装においては、コンピュータによって実施される方法が、ユーザからの問い合わせをデータサービスエンジンにおいて受け取るステップであって、問い合わせが、文字列を含む、受け取るステップと、問い合わせに基づいて複数の候補トピックをデータサービスエンジンによって特定するステップと、ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて問い合わせと複数の候補トピックの各々との間の類似性スコアを決定するステップと、類似性スコアに基づいて複数の候補トピックをランク付けするステップと、ランク付けされた候補トピックから1つまたは複数のトピックを選択するステップと、ユーザインターフェース(UI)を介して選択されたトピックを出力するステップとを含む。
【0081】
上述のおよびその他の説明される実装は、それぞれ、任意で、以下の特徴のうちの1つまたは複数を含み得る。
【0082】
ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて問い合わせと各候補トピックとの間の類似性スコアを決定する前に、複数の候補トピックから第2の1つまたは複数のトピックを選択するための第1のランク付けを実行するステップをさらに含む、下の特徴のいずれかと組み合わされ得る第1の特徴。第2の1つまたは複数のトピックの各々が規定された基準を満たさないと判定することに応じて、ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて第2のランク付けを実行するステップであって、ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて問い合わせと各候補トピックとの間の類似性スコアを決定するステップと、類似性スコアに基づいて複数の候補トピックをランク付けするステップとを含む、実行するステップ。
【0083】
ユーザのクリックデータが、複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を含み、複数のユーザの選択の各々が、ユーザの問い合わせに基づいてユーザに提供された複数の候補トピックの中でユーザの問い合わせに対して関連性のあるトピックのそれぞれのユーザの選択を含む、前のまたは下の特徴のいずれかと組み合わされ得る第2の特徴。
【0084】
ユーザのクリックデータに基づいてVPCGモデルを訓練するステップであって、ユーザのクリックデータ内で複数のユーザからの複数の問い合わせを特定することと、ユーザのデータ内で複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を特定することと、語彙の中の複数の単語要素による複数の問い合わせの各々のベクトル表現を決定することと、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定することとを含む、訓練するステップをさらに含む、前のまたは下の特徴のいずれかと組み合わされ得る第3の特徴。
【0085】
語彙の中のいくつかの単語要素による複数の問い合わせの各々のベクトル表現を決定することが、複数の候補トピックを使用していくつかの問い合わせの各々を表すことを含み、語彙の中のいくつかの単語要素による複数の候補トピックの各々のベクトル表現を決定することが、複数の問い合わせを使用していくつかの候補トピックの各々を表すことを含む、前のまたは下の特徴のいずれかと組み合わされ得る第4の特徴。
【0086】
複数の候補トピックを使用して複数の候補トピックの各々を表すことが、式、
【数12】
に従って複数の問い合わせの加重和によって複数の問い合わせの各々を表すことを含み、複数の問い合わせを使用して複数の問い合わせの各々を表すことが、式、
【数13】
に従って複数の候補トピックの各々を表すことを含み、式中、
【数14】
は、(n)回目の反復におけるトピックd
jのベクトル表現を表し、
【数15】
は、(n-1)回目の反復における問い合わせq
iのベクトル表現を表し、C
i,jは、ユーザのクリックデータ内の問い合わせq
iに関するトピックd
jのユーザのクリックまたは選択の総数を表し、Qは、ユーザのクリックデータ内のユーザの問い合わせの総数を表し、q
i, i=1,2, ..., Qである。Dは、ユーザのクリックデータ内のタイトルの総数を表し、d
j, j=1,2, ..., Dである、前のまたは下の特徴のいずれかと組み合わされ得る第5の特徴。
【0087】
ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて問い合わせと複数の候補トピックの各々との間の類似性スコアを決定するステップが、語彙の中の複数の単語要素によるユーザからの問い合わせのベクトル表現を決定することと、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定することと、問い合わせのベクトル表現と複数の候補トピックの各々のベクトル表現との間の類似性スコアを計算することとを含む、前のまたは下の特徴のいずれかと組み合わされ得る第6の特徴。
【0088】
語彙の中の複数の単語要素によるユーザからの問い合わせのベクトル表現を決定することが、ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいてユーザからの問い合わせを表すことを含む、前のまたは下の特徴のいずれかと組み合わされ得る第7の特徴。
【0089】
Nグラムの集合が、ユーザのクリックデータ内の複数の問い合わせの各々のベクトル表現に基づく語彙の中の複数の単語要素によるNグラムの集合内の各Nグラムのベクトル表現を含む、前のまたは下の特徴のいずれかと組み合わされ得る第8の特徴。
【0090】
ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいてユーザからの問い合わせを表すことが、式、
【数16】
に従ってユーザからの問い合わせをNグラムの集合の加重和として表すことを含み、式中、u
jは、Nグラムjのベクトル表現を表し、j=1, ..., gであり、gは、Nグラムの集合内のNグラムの総数を表し、w
jは、u
jに対応する重みを表し、
【数17】
は、ユーザのクリックデータに基づいて訓練されたNグラムの集合を表す、前のまたは下の特徴のいずれかと組み合わされ得る第9の特徴。
【0091】
第2の実装においては、コンピュータによって実装されるシステムが、1つまたは複数のコンピュータと、1つまたは複数のコンピュータと相互に利用可能なように結合され、1つまたは複数のコンピュータによって実行されるときに、ユーザからの問い合わせをデータサービスエンジンにおいて受け取る動作であって、問い合わせが、文字列を含む、受け取る動作、問い合わせに基づいて複数の候補トピックをデータサービスエンジンによって特定する動作、ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて問い合わせと複数の候補トピックの各々との間の類似性スコアを決定する動作、類似性スコアに基づいて複数の候補トピックをランク付けする動作、ランク付けされた候補トピックから1つまたは複数のトピックを選択する動作、およびユーザインターフェース(UI)を介して選択されたトピックを出力する動作を含む動作を実行する命令を記憶する有形の非一時的機械可読媒体を有する1つまたは複数のコンピュータメモリデバイスとを含む。
【0092】
上述のおよびその他の説明される実装は、それぞれ、任意で、以下の特徴のうちの1つまたは複数を含み得る。
【0093】
動作が、ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて問い合わせと各候補トピックとの間の類似性スコアを決定する前に、複数の候補トピックから第2の1つまたは複数のトピックを選択するための第1のランク付けを実行する動作と、第2の1つまたは複数のトピックの各々が規定された基準を満たさないと判定することに応じて、ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて第2のランク付けを実行する動作であって、ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて問い合わせと各候補トピックとの間の類似性スコアを決定する動作、および類似性スコアに基づいて複数の候補トピックをランク付けする動作を含む、実行する動作とをさらに含む、下の特徴のいずれかと組み合わされ得る第1の特徴。
【0094】
ユーザのクリックデータが、複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を含み、複数のユーザの選択の各々が、ユーザの問い合わせに基づいてユーザに提供された複数の候補トピックの中でユーザの問い合わせに対して関連性のあるトピックのそれぞれのユーザの選択を含む、前のまたは下の特徴のいずれかと組み合わされ得る第2の特徴。
【0095】
動作が、ユーザのクリックデータに基づいてVPCGモデルを訓練する動作であって、ユーザのクリックデータ内で複数のユーザからの複数の問い合わせを特定することと、ユーザのデータ内で複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を特定することと、語彙の中の複数の単語要素による複数の問い合わせの各々のベクトル表現を決定することと、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定することとを含む、訓練する動作をさらに含む、前のまたは下の特徴のいずれかと組み合わされ得る第3の特徴。
【0096】
語彙の中のいくつかの単語要素による複数の問い合わせの各々のベクトル表現を決定することが、複数の候補トピックを使用していくつかの問い合わせの各々を表すことを含み、語彙の中のいくつかの単語要素による複数の候補トピックの各々のベクトル表現を決定することが、複数の問い合わせを使用していくつかの候補トピックの各々を表すことを含む、前のまたは下の特徴のいずれかと組み合わされ得る第4の特徴。
【0097】
複数の候補トピックを使用して複数の候補トピックの各々を表すことが、式、
【数18】
に従って複数の問い合わせの加重和によって複数の問い合わせの各々を表すことを含み、複数の問い合わせを使用して複数の問い合わせの各々を表すことが、式、
【数19】
に従って複数の候補トピックの各々を表すことを含み、式中、
【数20】
は、(n)回目の反復におけるトピックd
jのベクトル表現を表し、
【数21】
は、(n-1)回目の反復における問い合わせq
iのベクトル表現を表し、C
i,jは、ユーザのクリックデータ内の問い合わせq
iに関するトピックd
jのユーザのクリックまたは選択の総数を表し、Qは、ユーザのクリックデータ内のユーザの問い合わせの総数を表し、q
i, i=1,2, ..., Qであり、Dは、ユーザのクリックデータ内のトピックの総数を表し、d
j, j=1,2, ..., Dである、前のまたは下の特徴のいずれかと組み合わされ得る第5の特徴。
【0098】
ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて問い合わせと複数の候補トピックの各々との間の類似性スコアを決定する動作が、語彙の中の複数の単語要素によるユーザからの問い合わせのベクトル表現を決定することと、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定することと、問い合わせのベクトル表現と複数の候補トピックの各々のベクトル表現との間の類似性スコアを計算することとを含む、前のまたは下の特徴のいずれかと組み合わされ得る第6の特徴。
【0099】
語彙の中の複数の単語要素によるユーザからの問い合わせのベクトル表現を決定することが、ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいてユーザからの問い合わせを表すことを含む、前のまたは下の特徴のいずれかと組み合わされ得る第7の特徴。
【0100】
Nグラムの集合が、ユーザのクリックデータ内の複数の問い合わせの各々のベクトル表現に基づく語彙の中の複数の単語要素によるNグラムの集合内の各Nグラムのベクトル表現を含む、前のまたは下の特徴のいずれかと組み合わされ得る第8の特徴。
【0101】
ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいてユーザからの問い合わせを表すことが、式、
【数22】
に従ってユーザからの問い合わせをNグラムの集合の加重和として表すことを含み、式中、u
jは、Nグラムjのベクトル表現を表し、j=1, ..., gであり、gは、Nグラムの集合内のNグラムの総数を表し、w
jは、u
jに対応する重みを表し、
【数23】
は、ユーザのクリックデータに基づいて訓練されたNグラムの集合を表す、前のまたは下の特徴のいずれかと組み合わされ得る第9の特徴。
【0102】
第3の実装においては、非一時的コンピュータ可読媒体が、ユーザからの問い合わせをデータサービスエンジンにおいて受け取る動作であって、問い合わせが、文字列を含む、受け取る動作と、問い合わせに基づいて複数の候補トピックをデータサービスエンジンによって特定する動作と、ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて問い合わせと複数の候補トピックの各々との間の類似性スコアを決定する動作と、類似性スコアに基づいて複数の候補トピックをランク付けする動作と、ランク付けされた候補トピックから1つまたは複数のトピックを選択する動作と、ユーザインターフェース(UI)を介して選択されたトピックを出力する動作とを含む動作を実行するためにコンピュータによって実装されるシステムによって実行可能な1つまたは複数の命令を記憶する。
【0103】
上述のおよびその他の説明される実装は、それぞれ、任意で、以下の特徴のうちの1つまたは複数を含み得る。
【0104】
動作が、ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて問い合わせと各候補トピックとの間の類似性スコアを決定する前に、複数の候補トピックから第2の1つまたは複数のトピックを選択するための第1のランク付けを実行する動作と、第2の1つまたは複数のトピックの各々が規定された基準を満たさないと判定することに応じて、ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて第2のランク付けを実行する動作であって、ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて問い合わせと各候補トピックとの間の類似性スコアを決定する動作、および類似性スコアに基づいて複数の候補トピックをランク付けする動作を含む、実行する動作とをさらに含む、下の特徴のいずれかと組み合わされ得る第1の特徴。
【0105】
ユーザのクリックデータが、複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を含み、複数のユーザの選択の各々が、ユーザの問い合わせに基づいてユーザに提供された複数の候補トピックの中でユーザの問い合わせに対して関連性のあるトピックのそれぞれのユーザの選択を含む、前のまたは下の特徴のいずれかと組み合わされ得る第2の特徴。
【0106】
動作が、ユーザのクリックデータに基づいてVPCGモデルを訓練する動作であって、ユーザのクリックデータ内で複数のユーザからの複数の問い合わせを特定することと、ユーザのデータ内で複数のユーザからの複数の問い合わせに応じた複数のユーザの選択を特定することと、語彙の中の複数の単語要素による複数の問い合わせの各々のベクトル表現を決定することと、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定することとを含む、訓練する動作をさらに含む、前のまたは下の特徴のいずれかと組み合わされ得る第3の特徴。
【0107】
語彙の中のいくつかの単語要素による複数の問い合わせの各々のベクトル表現を決定することが、複数の候補トピックを使用していくつかの問い合わせの各々を表すことを含み、語彙の中のいくつかの単語要素による複数の候補トピックの各々のベクトル表現を決定することが、複数の問い合わせを使用していくつかの候補トピックの各々を表すことを含む、前のまたは下の特徴のいずれかと組み合わされ得る第4の特徴。
【0108】
複数の候補トピックを使用して複数の候補トピックの各々を表すことが、式、
【数24】
に従って複数の問い合わせの加重和によって複数の問い合わせの各々を表すことを含み、複数の問い合わせを使用して複数の問い合わせの各々を表すことが、式、
【数25】
に従って複数の候補トピックの各々を表すことを含み、式中、
【数26】
は、(n)回目の反復におけるトピックd
jのベクトル表現を表し、
【数27】
は、(n-1)回目の反復における問い合わせq
iのベクトル表現を表し、C
i,jは、ユーザのクリックデータ内の問い合わせq
iに関するトピックd
jのユーザのクリックまたは選択の総数を表し、Qは、ユーザのクリックデータ内のユーザの問い合わせの総数を表し、q
i, i=1,2, ..., Qであり、Dは、ユーザのクリックデータ内のトピックの総数を表し、d
j, j=1,2, ..., Dである、前のまたは下の特徴のいずれかと組み合わされ得る第5の特徴。
【0109】
ユーザのクリックデータに基づいて訓練されたVPCGモデルに基づいて問い合わせと複数の候補トピックの各々との間の類似性スコアを決定する動作が、語彙の中の複数の単語要素によるユーザからの問い合わせのベクトル表現を決定することと、語彙の中の複数の単語要素による複数の候補トピックの各々のベクトル表現を決定することと、問い合わせのベクトル表現と複数の候補トピックの各々のベクトル表現との間の類似性スコアを計算することとを含む、前のまたは下の特徴のいずれかと組み合わされ得る第6の特徴。
【0110】
語彙の中の複数の単語要素によるユーザからの問い合わせのベクトル表現を決定することが、ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいてユーザからの問い合わせを表すことを含む、前のまたは下の特徴のいずれかと組み合わされ得る第7の特徴。
【0111】
Nグラムの集合が、ユーザのクリックデータ内の複数の問い合わせの各々のベクトル表現に基づく語彙の中の複数の単語要素によるNグラムの集合内の各Nグラムのベクトル表現を含む、前のまたは下の特徴のいずれかと組み合わされ得る第8の特徴。
【0112】
ユーザのクリックデータに基づいて訓練されたNグラムの集合に基づいてユーザからの問い合わせを表すことが、式、
【数28】
に従ってユーザからの問い合わせをNグラムの集合の加重和として表すことを含み、式中、u
jは、Nグラムjのベクトル表現を表し、j=1, ..., gであり、gは、Nグラムの集合内のNグラムの総数を表し、w
jは、u
jに対応する重みを表し、
【数29】
は、ユーザのクリックデータに基づいて訓練されたNグラムの集合を表す、前のまたは下の特徴のいずれかと組み合わされ得る第9の特徴。
【0113】
この言動の中で説明された対象の実装および機能の動作は、この言動の中で開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらの1つもしくは複数の組合せで実装され得る。説明された対象のソフトウェアの実装は、1つまたは複数のコンピュータプログラム、つまり、コンピュータもしくはコンピュータによって実装されるシステムによる実行のために、またはコンピュータもしくはコンピュータによって実装されるシステムの動作を制御するために有形の非一時的コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、コンピュータまたはコンピュータによって実装されるシステムによる実行のために受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号内/上に符号化され得る。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはコンピュータストレージ媒体の組合せであることが可能である。1つまたは複数のコンピュータを構成することは、ソフトウェアが1つまたは複数のコンピュータによって実行されるときに特定の計算動作が実行されるように、1つまたは複数のコンピュータがハードウェア、ファームウェア、またはソフトウェア(またはハードウェアと、ファームウェアと、ソフトウェアとの組合せ)をインストールしたことを意味する。
【0114】
(当業者によって理解される)用語「リアルタイム(real-time)」、「リアルタイム(real time)」、「リアルタイム(realtime)」、「リアル(ファスト)タイム(RFT: real (fast) time)」、「近リアルタイム(NRT: near(ly) real-time)」、「準リアルタイム(quasi real-time)」、または同様の用語は、アクションおよび応答が実質的に同時に起こるのを個人が知覚するようにアクションおよび応答が時間的に非常に近いことを意味する。たとえば、データにアクセスするための個人のアクションの後のデータの表示への応答に関する(または表示の開始に関する)時間差は、1ミリ秒(ms)未満であるか、1秒(s)未満であるか、または5s未満であることが可能である。要求されたデータは、即座に表示される(または表示のために着手される)必要はないが、説明されたコンピューティングシステムの処理の制限と、たとえば、データを集めるか、正確に測定するか、分析するか、処理するか、記憶するか、または送信するために必要とされる時間とを考慮に入れて、いかなる意図的な遅延もなしに表示される(または表示のために着手される)。
【0115】
当業者によって理解される用語「データ処理装置」、「コンピュータ」、または「電子コンピュータデバイス」(または等価な用語)は、データ処理ハードウェアを指す。データ処理ハードウェアは、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。コンピュータは、専用論理回路、たとえば、中央演算処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、もしくは特定用途向け集積回路(ASIC)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。一部の実装において、コンピュータもしくはコンピュータによって実装されるシステムまたは専用論理回路(またはコンピュータもしくはコンピュータによって実装されるシステムおよび専用論理回路の組合せ)は、ハードウェアに基づくまたはソフトウェアに基づく(またはハードウェアとソフトウェアとの両方の組合せに基づく)ことが可能である。任意で、コンピュータは、コンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または実行環境の組合せを構成するコードを含み得る。本開示は、何らかの種類のオペレーティングシステム、たとえば、LINUX、UNIX(登録商標)、WINDOWS(登録商標)、MAC OS、ANDROID(登録商標)、IOS、別のオペレーティングシステム、またはオペレーティングシステムの組合せを用いるコンピュータまたはコンピュータによって実装されるシステムの使用を想定する。
【0116】
プログラム、ソフトウェア、ソフトウェアアプリケーション、ユニット、モジュール、ソフトウェアモジュール、スクリプト、コード、またはその他の構成要素とも呼ばれ得るかまたは記載され得るコンピュータプログラムは、コンパイル型もしくはインタープリタ型言語または宣言型もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、コンピューティング環境において使用するために、たとえば、スタンドアロンプログラム、モジュール、構成要素、またはサブルーチンを含む任意の形態で展開されることが可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語の文書に記憶された1つもしくは複数のスクリプト、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように展開され得る。
【0117】
様々な図に示されたプログラムの一部は様々なオブジェクト、メソッド、またはその他のプロセスを使用して説明された特徴および機能を実装するユニットまたはモジュールなどの個々の構成要素として示され得るが、プログラムは、その代わりに、必要に応じていくつかのサブユニット、サブモジュール、第三者サービス、構成要素、ライブラリ、およびその他の構成要素を含み得る。逆に、様々な構成要素の特徴および機能は、必要に応じて単一のコンポーネントに組み合わされ得る。コンピュータによる判定を行うために使用される閾値は、静的に、動的に、または静的と動的との両方で決定され得る。
【0118】
説明された方法、プロセス、または論理フローは、本開示に合致する機能の1つまたは複数の例を表し、本開示を説明されたまたは図示された実装に限定するように意図されておらず、説明された原理および特徴に合致する最も広い範囲を与えられるべきである。説明された方法、プロセス、または論理フローは、入力データに対して演算を行い、出力データを生成することによって機能を実行する1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。方法、プロセス、または論理フローは、専用論理回路、たとえば、CPU、FPGA、またはASICによって実行されることも可能であり、コンピュータは、専用論理回路、たとえば、CPU、FPGA、またはASICとして実装されることも可能である。
【0119】
コンピュータプログラムの実行のためのコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、それら両方、または別の種類のCPUに基づくことが可能である。概して、CPUは、命令およびデータをメモリから受け取り、メモリに書き込む。コンピュータの必須の要素は、命令を遂行または実行するためのCPU、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概して、コンピュータは、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスに動作可能なように結合され、それらの大容量ストレージデバイスからデータを受信するか、またはそれらの大容量ストレージデバイスにデータを転送するか、またはその両方を行う。しかし、コンピュータは、そのようなデバイスを備えていなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはポータブルメモリストレージデバイスに組み込まれ得る。
【0120】
コンピュータプログラム命令およびデータを記憶するための非一時的コンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、およびフラッシュメモリデバイスと、磁気デバイス、たとえば、テープ、カートリッジ、カセット、内蔵/リムーバブルディスクと、光磁気ディスクと、光メモリデバイス、たとえば、デジタルバーサタイル/ビデオディスク(DVD)、コンパクトディスク(CD)-ROM、DVD+/-R、DVD-RAM、DVD-ROM、高精細/密度(HD)-DVD、およびBLU-RAY/BLU-RAY DISC (BD)、ならびにその他の光メモリテクノロジーとを含むすべての形態の永続的/非永続的または揮発性/不揮発性メモリ、媒体、およびメモリデバイスを含み得る。メモリは、キャッシュ、クラス、フレームワーク、アプリケーション、モジュール、バックアップデータ、ジョブ、ウェブページ、ウェブページテンプレート、データ構造、データベーステーブル、動的な情報を記憶するリポジトリ、または任意のパラメータ、変数、アルゴリズム、命令、規則、制約、もしくは参照を含むその他の適切な情報を含む様々なオブジェクトまたはデータを記憶することができる。加えて、メモリは、ログ、ポリシー、セキュリティもしくはアクセスデータ、またはレポートファイルなどのその他の適切なデータを含み得る。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0121】
ユーザとのインタラクションを提供するために、この言動の中で説明された対象の実装は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、ブラウン管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、またはプラズマモニタと、ユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウス、トラックボール、またはトラックパッドとを有するコンピュータ上に実装され得る。入力は、圧力感知式のタブレットコンピュータの表面、静電容量もしくは電気感知を使用するマルチタッチスクリーン、または別の種類のタッチスクリーンなどのタッチスクリーンを使用するコンピュータに与えられることも可能である。その他の種類のデバイスが、ユーザとインタラクションするために使用され得る。たとえば、ユーザに与えられるフィードバックは、(視覚、聴覚、触覚、またはフィードバックの種類の組合せなどの)任意の形態の感覚フィードバックであることが可能である。ユーザからの入力は、音響、発話、または触覚入力を含む任意の形態で受け取られ得る。加えて、コンピュータは、ユーザによって使用されるクライアントコンピューティングデバイスに文書を送信し、ユーザによって使用されるクライアントコンピューティングデバイスから文書を受信することによって(たとえば、ウェブブラウザから受信された要求に応答してユーザのモバイルコンピューティングデバイス上のウェブブラウザにウェブページを送信することによって)ユーザとインタラクションすることができる。
【0122】
用語「グラフィカルユーザインターフェース」または「GUI」は、1つまたは複数のグラフィカルユーザインターフェースおよび特定のグラフィカルユーザインターフェースの表示の各々を説明するために単数形または複数形で使用され得る。したがって、GUIは、情報を処理し、情報の結果をユーザに効率的に提示するウェブブラウザ、タッチスクリーン、またはコマンドラインインターフェース(CLI)を含むがこれらに限定されない任意のグラフィカルユーザインターフェースを表し得る。概して、GUIは、インタラクティブなフィールド、プルダウンリスト、およびボタンなどのウェブブラウザに一部またはすべてが関連するいくつかのユーザインターフェース(UI)要素を含み得る。これらのおよびその他のUI要素は、ウェブブラウザの機能に関連するかまたはウェブブラウザの機能を表すことが可能である。
【0123】
この言動の中で説明された対象の実装は、バックエンド構成要素を、たとえば、データサーバとして含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、それによってユーザがこの言動の中で説明された対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムに実装され得る。システムの構成要素は、任意の形態または媒体の有線またはワイヤレスデジタルデータ通信(または、データ通信の組合せ)、たとえば、通信ネットワークによって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、マイクロ波アクセスのための世界的相互運用性(WIMAX: Worldwide Interoperability for Microwave Access)、たとえば、802.11a/b/g/nまたは802.20 (または802.11xと802.20もしくは本開示に合致するその他のプロトコルとの組合せ)を使用するワイヤレスローカルエリアネットワーク(WLAN)、インターネットのすべてまたは一部、別の通信ネットワーク、あるいは通信ネットワークの組合せを含む。通信ネットワークは、たとえば、ネットワークノード間でインターネットプロトコル(IP)のパケット、フレームリレーのフレーム、非同期転送モード(ATM)のセル、音声、映像、データ、またはその他の情報を用いて通信することができる。
【0124】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。
【0125】
この言動は多くの特定の実装の詳細を含むが、これらは、いかなる発明の概念の範囲または特許請求され得るものの範囲に対する限定ともみなされるべきでなく、むしろ、特定の発明の概念の特定の実装に特有であることが可能である特徴の説明とみなされるべきである。別々の実装の文脈でこの言動の中で説明されている特定の特徴が、単一の実装に組み合わせて実装されることも可能である。反対に、単一の実装の文脈で説明されている様々な特徴が、複数の実装に別々に、または任意の部分的組合せで実装されることも可能である。さらに、上述の特徴は、特定の組合せで働くものとして説明されることが可能であり、最初にそのように主張されることさえ可能であるが、主張された組合せの1つまたは複数の特徴は、場合によってはその組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とすることが可能である。
【0126】
対象の特定の実装が、説明された。説明された実装のその他の実装、変更、および並べ替えは、当業者に明らかであろうように、添付の請求項の範囲内にある。動作が特定の順序で図中に示され、請求項に記載されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行される(一部の動作は任意と考えられることが可能である)ことを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクまたは並列処理(またはマルチタスクと並列処理との組合せ)が、有利であり、適切と考えられるように実行されることが可能である。
【0127】
さらに、上述の実装における様々なシステムモジュールおよび構成要素の分割または統合は、すべての実装においてそのような分割または統合を必要とするものと理解されるべきでなく、説明されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0128】
したがって、上述の例示的な実装は、本開示を定義または制約しない。また、その他の改変、置き換え、および変更が、本開示の精神および範囲を逸脱することなく可能である。
【0129】
さらに、任意の特許請求される実装が、少なくともコンピュータによって実施される方法、コンピュータによって実施される方法を実行するためのコンピュータ可読命令を記憶する非一時的コンピュータ可読媒体、およびコンピュータによって実施される方法または非一時的コンピュータ可読媒体に記憶された命令を実行するように構成されたハードウェアプロセッサと相互に利用可能なように結合されたコンピュータメモリを含むコンピュータシステムに適用可能であると考えられる。
問い合わせが、データサービスエンジンにおいてユーザから受け取られる。問い合わせは、文字列を含む。いくつかの候補トピックが、データサービスエンジンによって問い合わせに基づいて特定される。類似性スコアが、ユーザのクリックデータに基づいて訓練されたクリックグラフ上のベクトル伝播(VPCG)モデルに基づいて問い合わせと複数の候補トピックの各々との間で決定される。いくつかの候補トピックが、類似性スコアに基づいてランク付けされる。1つまたは複数のトピックが、ランク付けされた候補トピックから選択される。選択されたトピックが、ユーザインターフェース(UI)を介して出力される。