(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】検索クエリについての解釈の評価
(51)【国際特許分類】
G06F 16/38 20190101AFI20241001BHJP
【FI】
G06F16/38
(21)【出願番号】P 2023500066
(86)(22)【出願日】2020-12-10
(86)【国際出願番号】 US2020064234
(87)【国際公開番号】W WO2022005511
(87)【国際公開日】2022-01-06
【審査請求日】2023-02-15
(32)【優先日】2020-07-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジェフ・バーグマン
(72)【発明者】
【氏名】パブロ・パリャコフ
(72)【発明者】
【氏名】チフェン・ウェン
(72)【発明者】
【氏名】マット・ドーソン
(72)【発明者】
【氏名】ケヴィン・ロティ
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2019-185323(JP,A)
【文献】特開2019-191686(JP,A)
【文献】特開2009-163303(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
検索クエリについての人間解釈の正確さを評価するための方法であって、
1つまたは複数の処理回路によって、トレーニングデータセットを受信するステップであって、前記トレーニングデータセットは、複数の過去の検索クエリ、前記複数の検索クエリの各々についての人間解釈、および前記人間解釈が正しかったかどうかという、前記複数の過去の検索クエリの各々についての人間評価ラベルを含む、ステップと、
前記1つまたは複数の処理回路によって、前記トレーニングデータセットを使用して第1のモデルをトレーニングするステップであって、前記第1のモデルは、検索クエリについての人間解釈が正しいかどうかを評価するようにトレーニングされる、ステップと、
前記1つまたは複数の処理回路によって、検索クエリを受信するステップであって、前記検索クエリは、所望の情報を要求するためにユーザインターフェースを介して入力された1つまたは複数の単語、および前記検索クエリについての人間解釈を含み、前記人間解釈は、前記所望の情報の解釈を定義する1つまたは複数の単語を含む、ステップと、
前記1つまたは複数の処理回路によって、前記検索クエリについての前記人間解釈が正しいかどうかという初期評価を、前記第1のモデルを使用して判断するステップと、
前記1つまたは複数の処理回路によって、前記第1のモデルからの前記初期評価、前記検索クエリに関する時間特徴、および前記検索クエリに関するクラスタ特徴を使用して第2のモデルを生成するステップ
であって、前記クラスタ特徴は、所定のクラスタに割り当てられた前記検索クエリにおける前記所定のクラスタの特徴である、生成するステップと、
前記1つまたは複数の処理回路によって、前記検索クエリについての前記人間解釈が正しいかどうかという最終評価を、前記第2のモデルを使用して判断するステップとを含む、コンピュータによって実行される方法。
【請求項2】
前記検索クエリは第1の検索クエリであり、前記方法は、
前記1つまたは複数の処理回路によって、前記第1の検索クエリが、前記第1の検索クエリ後の所定の時間間隔以内に受信された第2の検索クエリに関連付けられるかどうかを判断するステップと、
前記1つまたは複数の処理回路によって、前記第1および第2の検索クエリの各々のための前記第1のモデルからのトークン埋込みを受信するステップであって、トークンが検索クエリの中の単語である、ステップと、
前記1つまたは複数の処理回路によって、前記第1および第2の検索クエリの各々のための前記第1のモデルからの前記トークン埋込みを平均することによって、前記第1および第2の検索クエリの各々のためのベクトル文表現を判断するステップとをさらに含む、請求項1に記載のコンピュータによって実行される方法。
【請求項3】
前記第1のモデルは、自然言語データのセットで事前トレーニングされ、前記トレーニングデータセットを使用して前記第1のモデルをトレーニングすることで、前記第1のモデルを特定の分類問題に合わせる、請求項2に記載のコンピュータによって実行される方法。
【請求項4】
前記1つまたは複数の処理回路によって、距離アルゴリズムを使って、前記第1および第2の検索クエリを解析するステップであって、前記距離アルゴリズムは、ユークリッド距離アルゴリズムまたはコサイン類似度アルゴリズムのうちの少なくとも1つである、ステップをさらに含む、請求項2に記載のコンピュータによって実行される方法。
【請求項5】
前記1つまたは複数の処理回路によって、第2の検索クエリが前記第1の検索クエリの検索絞り込みであるかどうかを判断するステップであって、検索絞り込みは、前記検索クエリについての正しくない人間解釈の重み付き指示である、ステップをさらに含む、請求項2に記載のコンピュータによって実行される方法。
【請求項6】
前記1つまたは複数の処理回路によって
、クラスタ中の検索クエリの間の類似度に少なくとも部分的に基づいて、異なるサイズの、検索クエリのクラスタを生成するステップと、
前記1つまたは複数の処理回路によって、新たな検索クエリを受信したことに応答して、生成されたクラスタを更新するステップとをさらに含む、請求項1に記載のコンピュータによって実行される方法。
【請求項7】
前記1つまたは複数の処理回路によって、前記検索クエリについてのレポートを閲覧するための入力が前記ユーザインターフェースを介して受信されたかどうかを判断するステップであって、レポートを閲覧するための前記入力は、前記検索クエリについての正しい人間解釈の重み付き指示である、ステップをさらに含む、請求項1に記載のコンピュータによって実行される方法。
【請求項8】
検索クエリについての人間解釈の正確さを評価するために構成されたシステムであって、
1つまたは複数のハードウェアプロセッサを備え、前記1つまたは複数のハードウェアプロセッサは、機械可読命令によって、
1つまたは複数の処理回路によって、トレーニングデータセットを受信することであって、前記トレーニングデータセットは、複数の過去の検索クエリ、前記複数の検索クエリの各々についての人間解釈、および前記人間解釈が正しかったかどうかという、前記複数の過去の検索クエリの各々についての人間評価ラベルを含む、ことと、
前記1つまたは複数の処理回路によって、前記トレーニングデータセットを使用して第1のモデルをトレーニングすることであって、前記第1のモデルは、検索クエリについての人間解釈が正しいかどうかを評価するようにトレーニングされる、ことと、
前記1つまたは複数の処理回路によって、検索クエリを受信することであって、前記検索クエリは、所望の情報を要求するためにユーザインターフェースを介して入力された1つまたは複数の単語、および前記検索クエリについての人間解釈を含み、前記人間解釈は、前記所望の情報の解釈を定義する1つまたは複数の単語を含む、ことと、
前記1つまたは複数の処理回路によって、前記検索クエリについての前記人間解釈が正しいかどうかという初期評価を、前記第1のモデルを使用して判断することと、
前記1つまたは複数の処理回路によって、前記第1のモデルからの前記初期評価、前記検索クエリに関する時間特徴、および前記検索クエリに関するクラスタ特徴を使用して第2のモデルを生成すること
であって、前記クラスタ特徴は、所定のクラスタに割り当てられた前記検索クエリにおける前記所定のクラスタの特徴である、生成することと、
前記1つまたは複数の処理回路によって、前記検索クエリについての前記人間解釈が正しいかどうかという最終評価を、前記第2のモデルを使用して判断することとを行うように構成される、システム。
【請求項9】
前記検索クエリは第1の検索クエリであり、前記1つまたは複数のハードウェアプロセッサは、機械可読命令によって、
前記1つまたは複数の処理回路によって、前記第1の検索クエリが、前記第1の検索クエリ後の所定の時間間隔以内に受信された第2の検索クエリに関連付けられるかどうかを判断することと、
前記1つまたは複数の処理回路によって、前記第1および第2の検索クエリの各々のための前記第1のモデルからのトークン埋込みを受信することであって、トークンが検索クエリの中の単語である、ことと、
前記1つまたは複数の処理回路によって、前記第1および第2の検索クエリの各々のための前記第1のモデルからの前記トークン埋込みを平均することによって、前記第1および第2の検索クエリの各々のためのベクトル文表現を判断することとを行うようにさらに構成される、請求項8に記載のシステム。
【請求項10】
前記第1のモデルは、自然言語データのセットで事前トレーニングされ、前記トレーニングデータセットを使用して前記第1のモデルをトレーニングすることで、前記第1のモデルを特定の分類問題に合わせる、請求項9に記載のシステム。
【請求項11】
前記1つまたは複数のハードウェアプロセッサは、機械可読命令によって、
前記1つまたは複数の処理回路によって、距離アルゴリズムを使って、前記第1および第2の検索クエリを解析することであって、前記距離アルゴリズムは、ユークリッド距離アルゴリズムまたはコサイン類似度アルゴリズムのうちの少なくとも1つである、ことを行うようにさらに構成される、請求項9に記載のシステム。
【請求項12】
前記1つまたは複数のハードウェアプロセッサは、機械可読命令によって、
前記1つまたは複数の処理回路によって、第2の検索クエリが前記第1の検索クエリの検索絞り込みであるかどうかを判断することであって、検索絞り込みは、前記検索クエリについての正しくない人間解釈の重み付き指示である、ことを行うようにさらに構成される、請求項9に記載のシステム。
【請求項13】
前記1つまたは複数のハードウェアプロセッサは、機械可読命令によって、
前記1つまたは複数の処理回路によって
、クラスタ中の検索クエリの間の類似度に少なくとも部分的に基づいて、異なるサイズの、検索クエリのクラスタを生成することと、
前記1つまたは複数の処理回路によって、新たな検索クエリを受信したことに応答して、生成されたクラスタを更新することとを行うようにさらに構成される、請求項8に記載のシステム。
【請求項14】
前記1つまたは複数のハードウェアプロセッサは、機械可読命令によって、
前記1つまたは複数の処理回路によって、前記検索クエリについてのレポートを閲覧するための入力が前記ユーザインターフェースを介して受信されたかどうかを判断することであって、レポートを閲覧するための前記入力は、前記検索クエリについての正しい人間解釈の重み付き指示である、ことを行うようにさらに構成される、請求項8に記載のシステム。
【請求項15】
命令を
備えるコンピュータ可読記憶媒体であって、前記命令は、自然言語検索クエリについての人間解釈の正確さを評価するための動作を実施するように、1つまたは複数のプロセッサによって実行可能であり、前記動作は、
1つまたは複数の処理回路によって、トレーニングデータセットを受信することであって、前記トレーニングデータセットは、複数の過去の検索クエリ、前記複数の検索クエリの各々についての人間解釈、および前記人間解釈が正しかったかどうかという、前記複数の過去の検索クエリの各々についての人間評価ラベルを含む、ことと、
前記1つまたは複数の処理回路によって、前記トレーニングデータセットを使用して第1のモデルをトレーニングすることであって、前記第1のモデルは、検索クエリについての人間解釈が正しいかどうかを評価するようにトレーニングされる、ことと、
前記1つまたは複数の処理回路によって、検索クエリを受信することであって、前記検索クエリは、所望の情報を要求するためにユーザインターフェースを介して入力された1つまたは複数の単語、および前記検索クエリについての人間解釈を含み、前記人間解釈は、前記所望の情報の解釈を定義する1つまたは複数の単語を含む、ことと、
前記1つまたは複数の処理回路によって、前記検索クエリについての前記人間解釈が正しいかどうかという初期評価を、前記第1のモデルを使用して判断することと、
前記1つまたは複数の処理回路によって、前記第1のモデルからの前記初期評価、前記検索クエリに関する時間特徴、および前記検索クエリに関するクラスタ特徴を使用して第2のモデルを生成することと、
前記1つまたは複数の処理回路によって、前記検索クエリについての前記人間解釈が正しいかどうかという最終評価を、前記第2のモデルを使用して判断することとを含む、コンピュータ可読記憶媒体。
【請求項16】
前記検索クエリは第1の検索クエリであり、
前記動作は、前記1つまたは複数の処理回路によって、前記第1の検索クエリが、前記第1の検索クエリ後の所定の時間間隔以内に受信された第2の検索クエリに関連付けられるかどうかを判断し、
前記動作は、前記1つまたは複数の処理回路によって、前記第1および第2の検索クエリの各々のための前記第1のモデルからのトークン埋込みを受信し、トークンが検索クエリの中の単語であり、
前記動作は、前記1つまたは複数の処理回路によって、前記第1および第2の検索クエリの各々のための前記第1のモデルからの前記トークン埋込みを平均することによって、前記第1および第2の検索クエリの各々のためのベクトル文表現を判断する、請求項15に記載のコンピュータ可読記憶媒体。
【請求項17】
前記第1のモデルは、自然言語データのセットで事前トレーニングされ、前記トレーニングデータセットを使用して前記第1のモデルをトレーニングすることで、前記第1のモデルを特定の分類問題に合わせる、請求項16に記載のコンピュータ可読記憶媒体。
【請求項18】
前記動作は、
前記1つまたは複数の処理回路によって、距離アルゴリズムを使って、前記第1および第2の検索クエリを解析することであって、前記距離アルゴリズムは、ユークリッド距離アルゴリズムまたはコサイン類似度アルゴリズムのうちの少なくとも1つである、ことをさらに含む、請求項16に記載のコンピュータ可読記憶媒体。
【請求項19】
前記動作は、
前記1つまたは複数の処理回路によって、第2の検索クエリが前記第1の検索クエリの検索絞り込みであるかどうかを判断する動作であって、検索絞り込みは、前記検索クエリについての正しくない人間解釈の重み付き指示である、動作をさらに含む、請求項16に記載のコンピュータ可読記憶媒体。
【請求項20】
前記動作は、
前記1つまたは複数の処理回路によって
、クラスタ中の検索クエリの間の類似度に少なくとも部分的に基づいて、異なるサイズの、検索クエリのクラスタを生成する動作
であって、前記クラスタ特徴は、所定のクラスタに割り当てられた前記検索クエリにおける前記所定のクラスタの特徴である、生成する動作と、
前記1つまたは複数の処理回路によって、新たな検索クエリを受信したことに応答して、生成されたクラスタを更新する動作とをさらに含む、請求項15に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年7月1日に出願された米国仮特許出願第63/047,039号の優先権を主張し、その内容全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
多くのシステムでは、検索クエリについての解釈の品質を測定することは、検索クエリを正しく解釈し、適切な結果を与える代わりに、検索クエリの結果についての選択など、ユーザインターフェース対話を使用することを含む。ただし、自然言語検索クエリに対する回答のいくつかの実装では、検索クエリに対する結果は、検索クエリが入れられるとすぐに、パネルの中で立案される。したがって、検索クエリに応答して与えられた結果の品質を測るために、対話信号を分析することはできない。検索クエリに対する回答の品質を測定する別の方法は、回答の品質をレーティングするために、人間評価を使用するものである。ただし、品質を手作業でレーティングするために、検索クエリの解釈および結果を人間へ送るのは、コストがかかり、時間を消費し得る。さらに、人間を使って検索クエリについての解釈の品質を評価することは、検索クエリが膨大な数の言語向けにスケーリングされると、過度に難しくなる。したがって、効率を上げ、分析データの品質を評価するコストを改善し、検索クエリによって戻された結果の品質を改善するための、自然言語検索クエリについての解釈の正確さの評価において、予測方法が要望されている。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の一態様は、検索クエリについての人間解釈の正確さを評価するための方法に関する。この方法は、1つまたは複数の処理回路によって、トレーニングデータセットを受信するステップを含み得る。トレーニングデータセットは、複数の過去の検索クエリ、複数の過去の検索クエリの各々についての人間解釈、および人間解釈が正しかったかどうかという、複数の過去の検索クエリの各々についての人間評価ラベルを含み得る。方法は、1つまたは複数の処理回路によって、トレーニングデータセットを使用して第1のモデルをトレーニングするステップを含み得る。第1のモデルは、検索クエリについての人間解釈が正しいかどうかを評価するようにトレーニングされてよい。方法は、1つまたは複数の処理回路によって、検索クエリを受信するステップであって、検索クエリは、所望の情報を要求するためにユーザインターフェースを介して入力された1つまたは複数の単語を含む、ステップと、検索クエリについての人間解釈を受信するステップとを含み得る。人間解釈は、所望の情報の解釈を定義する1つまたは複数の単語を含み得る。方法は、1つまたは複数の処理回路によって、検索クエリについての人間解釈が正しいかどうかという初期評価を、第1のモデルを使用して判断するステップを含み得る。方法は、1つまたは複数の処理回路によって、第1のモデルからの初期評価、検索クエリに関する時間特徴、および検索クエリに関するクラスタ特徴を使用して第2のモデルを生成するステップを含み得る。方法は、1つまたは複数の処理回路によって、検索クエリについての人間解釈が正しいかどうかという最終評価を、第2のモデルを使用して判断するステップを含み得る。
【0004】
方法のいくつかの実装形態では、検索クエリは第1の検索クエリであってよい。方法のいくつかの実装形態では、方法は、1つまたは複数の処理回路によって、第1の検索クエリが、第1の検索クエリ後の所定の時間間隔以内に受信された第2の検索クエリに関連付けられるかどうかを判断するステップを含み得る。方法のいくつかの実装形態では、方法は、1つまたは複数の処理回路によって、第1および第2の検索クエリの各々のための第1のモデルからのトークン埋込みを受信するステップを含み得る。方法のいくつかの実装形態では、トークンは、検索クエリの中の単語であってよい。方法のいくつかの実装形態では、方法は、1つまたは複数の処理回路によって、第1および第2の検索クエリの各々のための第1のモデルからのトークン埋込みを平均することによって、第1および第2の検索クエリの各々のためのベクトル文表現を判断するステップを含み得る。
【0005】
方法のいくつかの実装形態では、第1のモデルは、自然言語データのセットで事前トレーニングされてよく、第1のモデルは、第1のモデルを特定の分類問題に合わせるように、トレーニングデータセットを使用してトレーニングされてよい。
【0006】
方法のいくつかの実装形態では、方法は、1つまたは複数の処理回路によって、距離アルゴリズムを使って、第1および第2の検索クエリを解析するステップを含み得る。方法のいくつかの実装形態では、距離アルゴリズムは、ユークリッド距離アルゴリズムまたはコサイン類似度アルゴリズムのうちの少なくとも1つであってよい。
【0007】
方法のいくつかの実装形態では、方法は、1つまたは複数の処理回路によって、第2の検索クエリが第1の検索クエリの検索絞り込みであるかどうかを判断するステップを含み得る。方法のいくつかの実装形態では、検索絞り込みは、検索クエリについての正しくない人間解釈の重み付き指示であってよい。
【0008】
方法のいくつかの実装形態では、方法は、1つまたは複数の処理回路によって、クラスタ中の検索クエリの間の類似度に少なくとも部分的に基づいて検索クエリのクラスタを生成するステップを含み得る。方法のいくつかの実装形態では、方法は、1つまたは複数の処理回路によって、新たな検索クエリを受信したことに応答して、生成されたクラスタを更新するステップを含み得る。
【0009】
方法のいくつかの実装形態では、方法は、1つまたは複数の処理回路によって、検索クエリについてのレポートを閲覧するための入力がユーザインターフェースを介して受信されたかどうかを判断するステップを含み得る。方法のいくつかの実装形態では、レポートを閲覧するための入力は、検索クエリについての正しい人間解釈の重み付き指示であってよい。
【0010】
本開示の別の態様は、検索クエリについての人間解釈の正確さを評価するために構成されたシステムに関する。システムは、機械可読命令によって構成された1つまたは複数のハードウェアプロセッサを含み得る。プロセッサは、1つまたは複数の処理回路によって、トレーニングデータセットを受信するように構成されてよい。トレーニングデータセットは、複数の過去の検索クエリ、複数の過去の検索クエリの各々についての人間解釈、および人間解釈が正しかったかどうかという、複数の過去の検索クエリの各々についての人間評価ラベルを含み得る。プロセッサは、1つまたは複数の処理回路によって、トレーニングデータセットを使用して第1のモデルをトレーニングするように構成されてよい。第1のモデルは、検索クエリについての人間解釈が正しいかどうかを評価するようにトレーニングされてよい。プロセッサは、1つまたは複数の処理回路によって、検索クエリを受信することであって、検索クエリは、所望の情報を要求するためにユーザインターフェースを介して入力された1つまたは複数の単語を含む、ことと、検索クエリについての人間解釈を受信することとを行うように構成されてよい。人間解釈は、所望の情報の解釈を定義する1つまたは複数の単語を含み得る。プロセッサは、1つまたは複数の処理回路によって、検索クエリについての人間解釈が正しいかどうかという初期評価を、第1のモデルを使用して判断するように構成されてよい。プロセッサは、1つまたは複数の処理回路によって、第1のモデルからの初期評価、検索クエリに関する時間特徴、および検索クエリに関するクラスタ特徴を使用して第2のモデルを生成するように構成されてよい。プロセッサは、1つまたは複数の処理回路によって、検索クエリについての人間解釈が正しいかどうかという最終評価を、第2のモデルを使用して判断するように構成されてよい。
【0011】
システムのいくつかの実装形態では、検索クエリは第1の検索クエリであってよい。システムのいくつかの実装形態では、プロセッサは、1つまたは複数の処理回路によって、第1の検索クエリが、所定の時間間隔以内に受信された第2の検索クエリに関連付けられるかどうかを判断するように構成されてよい。システムのいくつかの実装形態では、プロセッサは、1つまたは複数の処理回路によって、第1および第2の検索クエリの各々のための第1のモデルからのトークン埋込みを受信するように構成されてよい。システムのいくつかの実装形態では、トークンは、検索クエリの中の単語であってよい。システムのいくつかの実装形態では、プロセッサは、1つまたは複数の処理回路によって、第1および第2の検索クエリの各々のための第1のモデルからのトークン埋込みを平均することによって、第1および第2の検索クエリの各々のためのベクトル文表現を判断するように構成されてよい。
【0012】
システムのいくつかの実装形態では、第1のモデルは、自然言語データのセットで事前トレーニングされてよく、トレーニングデータセットを使用して第1のモデルをトレーニングすることで、第1のモデルを特定の分類問題に合わせる。
【0013】
システムのいくつかの実装形態では、プロセッサは、1つまたは複数の処理回路によって、距離アルゴリズムを使って、第1および第2の検索クエリを解析するように構成されてよい。システムのいくつかの実装形態では、距離アルゴリズムは、ユークリッド距離アルゴリズムまたはコサイン類似度アルゴリズムのうちの少なくとも1つであってよい。
【0014】
システムのいくつかの実装形態では、プロセッサは、1つまたは複数の処理回路によって、第2の検索クエリが第1の検索クエリの検索絞り込みであるかどうかを判断するように構成されてよい。システムのいくつかの実装形態では、検索絞り込みは、検索クエリについての正しくない人間解釈の重み付き指示である。
【0015】
システムのいくつかの実装形態では、プロセッサは、1つまたは複数の処理回路によって、クラスタ中の検索クエリの間の類似度に少なくとも部分的に基づいて検索クエリのクラスタを生成するように構成されてよい。システムのいくつかの実装形態では、プロセッサは、1つまたは複数の処理回路によって、新たな検索クエリを受信したことに応答して、生成されたクラスタを更新するように構成されてよい。
【0016】
システムのいくつかの実装形態では、プロセッサは、1つまたは複数の処理回路によって、検索クエリについてのレポートを閲覧するための入力がユーザインターフェースを介して受信されたかどうかを判断するように構成されてよい。システムのいくつかの実装形態では、レポートを閲覧するための入力は、検索クエリについての正しい人間解釈の重み付き指示であってよい。
【0017】
本開示のさらに別の態様は、命令を実施した非一時的コンピュータ可読記憶媒体に関し、命令は、1つまたは複数のプロセッサによって、検索クエリについての人間解釈の正確さを評価するための動作を実施するように実行可能である。動作は、1つまたは複数の処理回路によって、トレーニングデータセットを受信することを含み得る。トレーニングデータセットは、複数の過去の検索クエリ、複数の過去の検索クエリの各々についての人間解釈、および人間解釈が正しかったかどうかという、複数の過去の検索クエリの各々についての人間評価ラベルを含み得る。動作は、1つまたは複数の処理回路によって、トレーニングデータセットを使用して第1のモデルをトレーニングすることを含み得る。第1のモデルは、検索クエリについての人間解釈が正しいかどうかを評価するようにトレーニングされてよい。動作は、1つまたは複数の処理回路によって、検索クエリを受信することであって、検索クエリは、所望の情報を要求するためにユーザインターフェースを介して入力された1つまたは複数の単語を含む、ことと、検索クエリについての人間解釈を受信することとを含み得る。人間解釈は、所望の情報の解釈を定義する1つまたは複数の単語を含み得る。動作は、1つまたは複数の処理回路によって、検索クエリについての人間解釈が正しいかどうかという初期評価を、第1のモデルを使用して判断することを含み得る。動作は、1つまたは複数の処理回路によって、第1のモデルからの初期評価、検索クエリに関する時間特徴、および検索クエリに関するクラスタ特徴を使用して第2のモデルを生成することを含み得る。動作は、1つまたは複数の処理回路によって、検索クエリについての人間解釈が正しいかどうかという最終評価を、第2のモデルを使用して判断することを含み得る。
【0018】
コンピュータ可読記憶媒体のいくつかの実装形態では、検索クエリは第1の検索クエリであってよい。コンピュータ可読記憶媒体のいくつかの実装形態では、動作は、1つまたは複数の処理回路によって、第1の検索クエリが、所定の時間間隔以内に受信された第2の検索クエリに関連付けられるかどうかを判断することを含み得る。コンピュータ可読記憶媒体のいくつかの実装形態では、動作は、1つまたは複数の処理回路によって、第1および第2の検索クエリの各々のための第1のモデルからのトークン埋込みを受信することを含み得る。コンピュータ可読記憶媒体のいくつかの実装形態では、トークンは検索クエリの中の単語であってよい。コンピュータ可読記憶媒体のいくつかの実装形態では、動作は、1つまたは複数の処理回路によって、第1および第2の検索クエリの各々のための第1のモデルからのトークン埋込みを平均することによって、第1および第2の検索クエリの各々のためのベクトル文表現を判断することを含み得る。
【0019】
コンピュータ可読記憶媒体のいくつかの実装形態では、第1のモデルは、自然言語データのセットで事前トレーニングされてよく、トレーニングデータセットを使用して第1のモデルをトレーニングすることで、第1のモデルを特定の分類問題に合わせる。
【0020】
コンピュータ可読記憶媒体のいくつかの実装形態では、動作は、1つまたは複数の処理回路によって、距離アルゴリズムを使って、第1および第2の検索クエリを解析することを含み得る。コンピュータ可読記憶媒体のいくつかの実装形態では、距離アルゴリズムは、ユークリッド距離アルゴリズムまたはコサイン類似度アルゴリズムのうちの少なくとも1つであってよい。
【0021】
コンピュータ可読記憶媒体のいくつかの実装形態では、動作は、1つまたは複数の処理回路によって、第2の検索クエリが第1の検索クエリの検索絞り込みであるかどうかを判断することを含み得る。コンピュータ可読記憶媒体のいくつかの実装形態では、検索絞り込みは、検索クエリについての正しくない人間解釈の重み付き指示であってよい。
【0022】
コンピュータ可読記憶媒体のいくつかの実装形態では、動作は、1つまたは複数の処理回路によって、クラスタ中の検索クエリの間の類似度に少なくとも部分的に基づいて検索クエリのクラスタを生成することを含み得る。コンピュータ可読記憶媒体のいくつかの実装形態では、動作は、1つまたは複数の処理回路によって、新たな検索クエリを受信したことに応答して、生成されたクラスタを更新することを含み得る。
【0023】
本明細書で説明される主題の1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0024】
【
図1】例示的実装形態による、検索クエリについての人間解釈の正確さを評価するために構成されたシステム、および関連付けられた環境のブロック図である。
【
図2】例示的実装形態による、検索クエリについての人間解釈の正確さを評価するために構成された
図1のシステムのブロック図である。
【
図3】例示的実装形態による、検索クエリについての人間解釈の正確さを評価するためのプロセスの流れ図である。
【
図4】例示的実装形態による、検索クエリを分析して、検索クエリについての人間解釈が正確な解釈であるかどうかを評価するためのプロセスの流れ図である。
【
図5】例示的実装形態による、検索クエリについての人間解釈の正確さを評価するために使用されるプロセスの流れ図である。
【
図6】例示的実装形態による、検索クエリについての人間解釈の正確さを評価するのに、クラスタを使用するためのプロセスの流れ図である。
【
図7】例示的実装形態による、
図1のシステムによって使用される第1のモデルおよび最終モデル向けの入力および出力のブロック図である。
【
図8】例示的実装形態による、
図1のシステムによって使用される第1のモデルの構造の図である。
【
図9】例示的実装形態による、検索クエリを入れ、検索クエリの人間解釈および結果を閲覧するためのユーザインターフェースを示す図である。
【
図10】例示的実装形態によるコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【0025】
以下に続くのは、自然言語検索クエリについての人間解釈の品質を評価することに関連した様々な概念、ならびにコンピュータネットワークを使って情報を提供するための方法、装置、およびシステムの実装形態のより詳細な説明である。説明される概念はどのような特定の実装方式にも限定されないので、上で紹介され以下でより詳しく論じられる様々な概念は多数の方法のいずれで実装されてもよい。具体的な実装形態および応用の例は、主に説明を目的に与えられる。
【0026】
図面を全体的に参照すると、コンテンツプロバイダにクエリ結果を与えるための様々な例示的システムおよび方法が示される。より詳細には、本開示は、検索クエリ(たとえば、自然言語検索クエリ)についての人間解釈の正確さを評価するためのシステムおよび方法に関する。
【0027】
検索クエリについての品質データ結果を生じるために、システムおよび方法は、検索クエリからユーザによって所望されるタイプの情報の正しい解釈に依存する。したがって、本明細書に記載するシステムおよび方法は、自然言語検索クエリの人間解釈が、所望されるタイプの情報の正しい解釈であるかどうかを自動的に評価するための方法に関する。たとえば、「どのようなページに、人々は最も多くの時間を費やすか」という検索クエリは、「ページに対する平均時間による最上位ページ」という正しい人間解釈を有する。別の例として、「最も遅いページ」という検索クエリは、「ページ閲覧による最下位ページ」という正しくない人間解釈、および「平均ページ読込み時間による最下位ページ」という正しい人間解釈を有し得る。
【0028】
典型的なシステムでは、特定の結果の選択(たとえば、クリック)などのユーザインターフェース対話が、検索クエリが正しく解釈されたかどうかを判断するために分析され、したがって、より適切であり正確な結果を与える。しかしながら、いくつかのシステムでは、検索クエリについての解釈の品質を判断するために、ユーザ対話信号が考慮されない場合がある。たとえば、いくつかのシステムでは、ユーザが検索クエリを入れるとすぐに、検索クエリに対する単一の、最良の結果が選ばれ、結果パネルに表示される場合がある。他のシステムでは、人間からの手動入力が、検索クエリに対する回答の品質を評価するのに使用される。個人を使って検索クエリに対する解釈の正確さを評価するには、過度の量の時間およびコストを要し得る。さらに、検索クエリについての解釈の品質を判断するために人間評価を使用することは、検索クエリの量が、いくつかの言語を含むように増えると、特に難題となる。したがって、自然言語検索クエリに対する回答の品質を評価する際に必要とされる時間およびコストを有益に減らすように、解釈を評価するための、よりスケーラブルな予測方法が開示される。
【0029】
さらに、第1の検索クエリが間違って回答されたからといってユーザがフォローアップ検索クエリを入れる必要をなくすように検索クエリに回答することが望ましい。検索クエリが、システムによって不正確に解釈された場合、後続検索クエリについての新たな結果を与えるために、別の検索クエリが入れられ、処理される必要がある。この追加処理は、貴重なサーバおよびネットワークリソースを浪費する場合があり、問題および解決法を多数の言語にスケーリングすることに応じてますますコストがかかる可能性がある、全体的コンピューティングシステムにおけるより大きい非効率性を引き起こす。刻々と起こる検索クエリの頻度を考慮して、検索クエリを入れ直すのを回避することにより、不必要なネットワークパケットが送られること、およびサーバ時間の非効率的使用を防止することができる。したがって、前に入れられた検索クエリを再検索する頻度を低減することにより、有利には、ネットワークの使用および帯域幅効率を改善することができる。さらに、第1の検索クエリが間違って回答されたからといってユーザがフォローアップ検索クエリを入れる必要を防ぐための方法は、不正確な結果のせいで分析サービスをユーザが放棄する見込みを減らすことができる。
【0030】
この予測手法は、トランスフォーマによる双方向エンコーダ表現(BERT:bidirectional encoder representations from transformers)モデルなどの自然言語処理(NLP)モデルが、ウィキペディアなどの大規模な言語データを使って事前トレーニングされるように、次いで、検索クエリ、および品質について人間によってレーティングされた、検索クエリについての解釈のデータセットを使ってさらにトレーニングされる(すなわち、微調整される)ようにする。検索クエリについての人間解釈が正しいかどうかを評価するようにNLPモデルをトレーニングした後、予測方法は、検索クエリについての人間解釈が正しいかどうかの最終評価(たとえば、予測)を判断するのに使われる、ロジスティック回帰モデルなど、新しい、最終的なモデルを生成する。NLPモデルは、クラスタ化のために検索クエリを埋め込むのにも使われる。これらのクラスタ特徴は次いで、平均でどれだけ頻繁に検索クエリがクラスタで発行されるか、何人の異なるユーザが検索クエリをクラスタで発行したかなどのような、最終モデル向けの入力として使用される。NLPモデルからの埋込みは、検索クエリに関する他の時間特徴とともに、類似検索クエリが短い時間期間内に再発行されるかどうかを判断するためにさらに使用され、これは、検索クエリについての元の人間解釈が正しくなかったと評価するためのインジケータとして使うことができる。
【0031】
NLPモデルを微調整することの利点は、検索クエリと、人間によってレーティングされる人間解釈とからなるトレーニングデータセットを小さくし、依然として正確なモデルを生じることができることであり得る。モデルは依然として、高レベルの正確な評価を維持することができるが、それは、全体的な、事前トレーニングされたモデルがすでに、多くのNLP概念を効果的に表すことができるからである。したがって、本明細書で開示される予測方法は、依然として、以前の方法でのように正確な評価(たとえば、予測)を生成するが、モデルをトレーニングするのに要する手動分類は、はるかに少ない。
【0032】
本開示では、検索クエリに対する「人間解釈」、「解釈」、および「回答」という用語は、検索クエリから、どのような情報が所望されるかの解釈を指すように、交換可能に使われる。たとえば、「最も遅いページ」という検索クエリは、「ページ閲覧での最下位ページ」という所与の解釈を有する可能性がある。別の例として、「ユーザが最も多い国」という検索クエリは、「ユーザでの最上位国」という所与の回答を有し得る。さらに、「クエリ」、「検索クエリ」、および「質問」という用語は、単一検索において、所望の情報についての、ユーザからの入力を記述するように、本明細書では交換可能に使われる。
【0033】
本明細書において論じられるシステムがユーザについての個人情報を収集および/もしくは使用する、または個人情報を利用し得る状況において、ユーザは、プログラムまたは機能が個人情報(たとえば、ユーザのソーシャルネットワーク、社会的な行動もしくは活動、ユーザの選好、ユーザの現在のロケーションについての情報など)を収集してよいかどうかを制御するための、または、ユーザにより関連があり得るコンテンツサーバからコンテンツを受信するかどうか、および/もしくはどのように受信するかを制御するための、機会を与えられ得る。さらに、特定のデータが、記憶され、または使われる前に、パラメータ(たとえば、人口統計パラメータ)を生成するとき、個人を識別できる情報が削除されるように1つまたは複数のやり方で匿名化されてもよい。たとえば、ユーザの識別情報は、個人を識別できる情報がユーザについて判断できないように匿名化されてよく、またはユーザの地理的ロケーションは、ユーザの具体的なロケーションを判断できないように、ロケーション情報が取得される場合に(都市、郵便番号、もしくは州のレベルなどに)一般化されてよい。したがって、ユーザは、情報がどのようにユーザについて収集されコンテンツサーバによって使用されるかを制御することができる。さらに、個々のユーザ情報自体はコンテンツプロバイダに対して表明されないので、コンテンツプロバイダは、特定のユーザに関連付けられた対話を見分けることができない。
【0034】
ここで
図1を参照すると、手短な概要において、例示的実装形態による、検索クエリ(たとえば、自然言語検索クエリ)についての人間解釈の正確さを評価するためのコンピューティング環境のブロック図が示されている。1つまたは複数のユーザデバイス104が、ユーザによって、様々なアクションを実施し、かつ/または、ネットワーク102(たとえば、インターネット、LAN、WANなど)を介してそのいくつかが提供され得る様々なタイプのコンテンツにアクセスするのに使われてよい。たとえば、ユーザデバイス104は、ウェブページ(たとえば、インターネットブラウザを使う)、メディアファイル、および/またはどの他のタイプのコンテンツにアクセスするのに使われてもよい。コンテンツ管理システム108は、リソース(たとえば、ウェブページ、アプリケーションなど)内での、ユーザへの表示用にコンテンツを選択するように、また、コンテンツデータベース126からユーザデバイス104へ、リソース内での表示用にコンテンツ項目128を提供するように構成されてよい。コンテンツ管理システム108がそこから選択をするコンテンツ項目128は、1つまたは複数のコンテンツプロバイダデバイス106を使って、ネットワーク102を介して、1つまたは複数のコンテンツプロバイダによって提供されてよい。いくつかの実装形態では、コンテンツ管理システム108は、複数のコンテンツプロバイダからの複数のコンテンツ項目の中の、1つまたは複数のコンテンツプロバイダからの1つまたは複数のコンテンツ項目128を選択してよい。そのような実装形態では、コンテンツ管理システム108は、コンテンツ項目またはコンテンツプロバイダのメトリックまたは他の特性に少なくとも部分的に基づいて、ユーザデバイス104上に示されるリソース(たとえば、ウェブページ、アプリケーションなど)の1つまたは複数のコンテンツインターフェースにおいて公開されるべきコンテンツを判断してよい。
【0035】
図1をより詳細に参照すると、ユーザデバイス104および/またはコンテンツプロバイダデバイス106は、テレビジョンおよび/もしくはセットトップボックス、モバイル通信デバイス(たとえば、セルラー電話、スマートフォンなど)、コンピュータおよび/もしくはメディアデバイス(デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、ネットブックコンピュータ、タブレットデバイス、ゲーム用システムなど)、または任意の他のタイプのコンピューティングデバイスなど、どのタイプのコンピューティングデバイス(たとえば、プロセッサおよびメモリまたは他のタイプのコンピュータ可読記憶媒体を有する)であってもよい。いくつかの実装形態では、1つまたは複数のユーザデバイス104は、セットトップボックス、またはテレビセットと一緒に使うための他のデバイスであってよい。いくつかの実装形態では、コンテンツは、ウェブベースのアプリケーションおよび/またはユーザデバイス104上にあるアプリケーションを介して提供されてよい。いくつかの実装形態では、ユーザデバイス104および/またはコンテンツプロバイダデバイス106は、様々なタイプのソフトウェアおよび/またはオペレーティングシステムを使うように設計されてよい。様々な例示的実装形態では、ユーザデバイス104および/またはコンテンツプロバイダデバイス106は、入力/出力デバイス110を装備し、かつ/またはデバイス110に関連付けられてよい。たとえば、入力デバイスは、1つまたは複数のユーザ入力デバイス(たとえば、キーボード、マウス、リモコン、タッチスクリーンなど)を含み得る。入力/出力デバイス110は、1つもしくは複数のディスプレイデバイス(たとえば、テレビジョン、モニタ、CRT、プラズマ、LCD、LED、タッチスクリーンなど)、またはユーザデバイス104のユーザおよび/もしくはコンテンツプロバイダデバイス106のユーザに対して情報を出力するための他のデバイスも含んでよい。
【0036】
ユーザデバイス104および/またはコンテンツプロバイダデバイス106は、ネットワークインターフェース112を介し、ネットワーク102を使って、様々なソースからデータを受信するように構成されてよい。いくつかの実装形態では、ネットワーク102は、ユーザデバイス104および/またはコンテンツプロバイダデバイス106のネットワークインターフェース112が任意のタイプのネットワーク接続(たとえば、イーサネット、電話線、電力線などのようなワイヤード、またはWiFi、WiMAX、3G、4G、衛星などのようなワイヤレス)を介して接続され得るコンピューティングネットワーク(たとえば、LAN、WAN、インターネットなど)を含み得る。いくつかの実装形態では、ネットワーク102は、メディアプログラミングおよび/またはデータコンテンツを配信するように構成された、ケーブル(たとえば、同軸金属ケーブル)、衛星、光ファイバなどのようなメディア配信ネットワークを含み得る。
【0037】
いくつかの実装形態では、コンテンツ管理システム108は、リソース上で提示されるべきサードパーティコンテンツ項目を選択するように構成される。コンテンツ管理システム108は、プロセッサ120、処理回路118、およびメモリ122を含む。メモリ122は、プロセッサ120によって実行されると、処理回路118に、本明細書に記載する様々な動作を実施させる、その上に記憶された命令を有し得る。本明細書に記載される動作は、ソフトウェア、ハードウェア、またはそれらの組合せを使って実装され得る。プロセッサ120は、マイクロプロセッサ、ASIC、FPGAなど、またはそれらの組合せを含み得る。多くの実装形態では、プロセッサ120は、マルチコアプロセッサまたはプロセッサのアレイであってよい。プロセッサ120は、セキュアな環境を実装するか、または容易にし得る。たとえば、プロセッサ120は、メモリ122の中の専用領域(たとえば、孤立領域)を定義するために、ソフトウェアガード拡張(SGX)を実装し得る。メモリ122は、プロセッサ120にプログラム命令を提供することが可能な、電子、光学、磁気、または任意の他の記憶デバイスを含み得るが、それらに限定されない。メモリ122は、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ROM、RAM、EEPROM、EPROM、フラッシュメモリ、光学メディア、またはプロセッサ120が命令をそこから読み取ることができるどの他の適切なメモリも含み得る。命令は、C、C++、C#、Java、JavaScript、Perl、HTML、XML、PythonおよびVisual Basicなどだが、それらに限定されない、どの適切なコンピュータプログラミング言語からのコードも含み得る。
【0038】
メモリ122は、コンテンツデータベース126およびコンテンツ分析回路124を含む。いくつかの実装形態では、コンテンツ分析回路124は、オークションまたは入札プロセスを執り行うように構成される。コンテンツ分析回路124は、オークションまたは入札プロセスの1人または複数の勝者の1つまたは複数のコンテンツ項目128を、リソース上での表示のために選択するように構成されてよい。いくつかの実装形態では、コンテンツ分析回路124は、コンテンツ項目128の選択のプロセス中に、品質スコア(すなわち、ユーザデバイス104のユーザが、コンテンツ項目128と対話するか、もしくはコンテンツ項目128に関連したコンバージョンアクションをとることになる見込みがどれだけあるかの測度)または他のメトリックを使うようにさらに構成される。コンテンツプロバイダは、いくつかの実装形態では、コンテンツキャンペーンを作成してよく、またはそうでなければ、様々な設定もしくはガイドラインをコンテンツ管理システム108に提供してよい。そのような設定またはガイドラインは、コンテンツプロバイダがオークションまたは入札プロセスにどのように参加するか(たとえば、所与のオークションに入札するのにどれだけかかるか、コンテンツプロバイダにとっての総予算(1週間当たり、1日当たり、またはそれ以外の)、など)を支配し得る。そのような設定またはガイドラインは、インプレッション単価もしくは千インプレッション単価(CPM)、クリック単価(CPC)、または獲得単価(CPA)もしくはコンバージョン単価など、様々なメトリックに基づいてセットされてよい。そのような設定またはガイドラインはさらに、コンテンツ項目128がその上で提供されるべきであるプラットフォームのタイプ(たとえば、モバイル、デスクトップなど)、どのタイプのリソース上でコンテンツ項目128が提供されるべきか(たとえば、検索結果ページ)、リソースを表示するユーザデバイスの地理的ロケーション、などに基づいてセットされてよい。いくつかの実装形態では、コンテンツ管理システム108に提供される設定またはガイドラインは、コンテンツデータベース126に記憶される。
【0039】
クエリ処理システム150は、検索クエリについての人間解釈の正確さの評価を容易にし得る。様々な実装形態において、クエリ処理システム150は、分析セッションから、コンテンツプロバイダデバイス106および/またはユーザデバイス104からのユーザ対話データを受信する。クエリ処理システム150は、様々なクライアントプロバイダについてのクライアントデータおよびコンテンツデータも、コンテンツ管理システム108から受信し得る。いくつかの実装形態では、クエリ処理システム150は、検索クエリについての与えられた人間解釈が正しいかどうかの推定を生成するために、セッションデータおよびクライアントデータに対して様々な機能を実施する。様々な実装形態において、クエリ処理システム150は、非匿名データへのアクセスを許さないようなセキュアな環境である。クエリ処理システム150は、サーバ、分散処理クラスタ、クラウド処理システム、またはどの他のコンピューティングデバイスであってもよい。クエリ処理システム150は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含むか、または実行し得る。様々な実装形態において、クエリ処理システムは、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなど、ソフトウェアとハードウェアの組合せを含む。クエリ処理システム150については、
図2を参照して、以下でより詳細に記載する。
【0040】
図2は、いくつかの実装形態による、検索クエリについての人間解釈が正しいかどうかを評価するために構成されたクエリ処理システム150のブロック図を示す。クエリ処理システム150は、プロセッサ204およびメモリ206を有する処理回路202を含むように示されている。メモリ206は、プロセッサ204によって実行されると、処理回路202に、本明細書に記載する様々な動作を実施させる、その上に記憶された命令を有し得る。本明細書に記載される動作は、ソフトウェア、ハードウェア、またはそれらの組合せを使って実装され得る。プロセッサ204は、マイクロプロセッサ、ASIC、FPGAなど、またはそれらの組合せを含み得る。多くの実装形態では、プロセッサ204は、マルチコアプロセッサまたはプロセッサのアレイであってよい。プロセッサ204は、セキュアな環境を実装するか、または容易にし得る。たとえば、プロセッサ204は、メモリ206の中の専用領域(たとえば、孤立領域)を定義するために、ソフトウェアガード拡張(SGX)を実装し得る。メモリ206は、プロセッサ204にプログラム命令を提供することが可能な、電子、光学、磁気、または任意の他の記憶デバイスを含み得るが、それらに限定されない。メモリ206は、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ROM、RAM、EEPROM、EPROM、フラッシュメモリ、光学メディア、またはプロセッサ204が命令をそこから読み取ることができるどの他の適切なメモリも含み得る。命令は、C、C++、C#、Java、JavaScript、Perl、HTML、XML、PythonおよびVisual Basicなどだが、それらに限定されない、どの適切なコンピュータプログラミング言語からのコードも含み得る。メモリ206は、モデルトレーニング回路208、クラスタ生成回路210、類似度スコアリング回路212、解釈評価回路214、およびデータベース220を含み得る。
【0041】
モデルトレーニング回路208は、人間解釈の正確さの初期評価を生成するための第1のモデルをトレーニングしてよい。様々な実装形態において、モデルトレーニング回路208は、検索クエリのセットと、検索クエリについての与えられた人間解釈と、解釈が正確だったかどうかの、人間がラベル付けした値とを含むトレーニングデータセットを受信する。モデルトレーニング回路208は、トレーニングデータセットを使って第1のモデルをトレーニングしてよい。さらに、モデルトレーニング回路208は、第1のモデルからの初期評価の出力を、検索クエリに関する1つまたは複数の他の入力と組み合わせることによって、第2の、最終的なモデルを生成し、トレーニングしてよい。たとえば、モデルトレーニング回路208は、クラスタ生成回路210から、検索クエリ用のクラスタデータを、第2のモデルをトレーニングする際に使用するために受信し得る。様々な実装形態において、モデルトレーニング回路208は、第1のモデルを、検索クエリのトークン埋込みを生成するためのサービスとして使用してよい。モデルトレーニング回路208は次いで、検索クエリのトークン埋込みを、各検索クエリ用の固定ベクトル文表現を生成するように平均してよい。
【0042】
クラスタ生成回路210は、様々な実装形態に従って、検索クエリに関するクラスタ特徴を判断してよい。クラスタ生成回路210は、検索クエリが既存クラスタとグループ化されるべきかどうかを判断することに加え、検索クエリ用の新たなクラスタを作成してよい。いくつかの実装形態では、クラスタ生成回路210は、K平均法クラスタ化、密度ベースのクラスタ化などのようなクラスタ化技法を、クラスタに検索クエリを割り当てるために適用するように構成される。クラスタ生成回路210は、「類似検索クエリ」のクラスタが所望されるかどうか、または「広範検索クエリタイプ」のクラスタが所望されるかどうかに基づいて、1つまたは複数のクラスタのサイズを制御してよい。いくつかの実装形態では、クラスタ生成回路210は、データベース220に延長時間期間にわたって記憶されている検索クエリを割り当てる前に、より最近の検索クエリを、クラスタに最初に割り当てる。したがって、クエリ処理システム150は、さらに過去に発行された検索クエリよりも、より最近の検索クエリをクラスタ化し、分析することを優先してよい。いくつかの実装形態では、クラスタ生成回路210は、ネットワーク102に接続されている間、追加されたサービング信号として、クラスタに検索クエリを割り当てる。ネットワーク102への接続がダウンしたこと(すなわち、オフライン)に応答して、クラスタ生成回路210は、クラスタ化出力を使ってクラスタのダッシュボードを作成してよい。さらに、クラスタ生成回路210は、新たな検索クエリを受信したことに応答して、既存のクラスタを更新するように構成されてよい。
【0043】
類似度スコアリング回路212は、検索クエリのベクトル文表現を受信し、2つの検索クエリの間の類似度スコアを判断し得る。たとえば、類似度スコアリング回路212は、コサイン類似度アルゴリズムなどの類似度方法をベクトル文表現に対して使用して、検索クエリが別の検索クエリにどれだけ類似しているかを表す値を算出すればよい。さらに、類似度スコアリング回路212は、検索クエリと、関連付けられた所与の解釈との、モデルトレーニング回路208からのベクトル文表現を受信して、検索クエリが、検索クエリについての所与の解釈にどれだけ類似しているかを判断すればよい。類似度スコアリング回路212は、人間解釈が、対応する検索クエリにどれだけ類似しているかを、所定のスケール(たとえば、0~1、0%~100%類似など)で算出してよい。この算出は次いで、解釈評価回路214によって、解釈が正しいかどうかを評価する際に使われてよい。様々な実装形態において、類似度スコアリング回路212はまた、類似度を比較するために、検索クエリを解析する。類似度スコアリング回路212は次いで、コサイン距離アルゴリズムまたはユークリッド距離アルゴリズムなどの距離アルゴリズムを、検索クエリおよび/または検索クエリと、検索クエリに対する所与の回答との間の類似度を評価するのに使えばよい。
【0044】
解釈評価回路214は、いくつかの実装形態に従って、初期評価回路216および最終評価回路218を含む。初期評価回路216は、検索クエリについての解釈に明示的誤りがあったかどうかの第1の推定を生成するのに、モデルトレーニング回路208によってトレーニングされた第1のモデルを使用してよい。いくつかの実装形態では、初期評価回路216は、類似度スコアリング回路212およびクラスタ生成回路210からの算出に基づいて、第1の評価を判断してよい。たとえば、クライアントによって延長時間期間にわたって履歴的に入れられた検索クエリをユーザが入れた場合、ユーザが同じ質問を入れ続ける頻度は、検索クエリについての正しい解釈のインジケータであってよい。最終評価回路218は、モデルトレーニング回路208によって生成およびトレーニングされた第2の、全体的モデルを、検索クエリについての人間解釈が正しいかどうかの推定を判断するのに使ってよい。いくつかの実装形態では、最終評価回路218は、検索クエリに対する回答についてのインサイトカードの中のレポートをユーザが選択したかどうか、および第1の、元の検索クエリが発行された後で追加検索絞り込みクエリが行われたかどうかなどの要因を評価することによって、全体的評価についての推定を与える。様々な実装形態において、最終評価回路218は、1つまたは複数のユーザデバイス104に評価を出力する。最終評価回路218は、全体的評価の信頼度レベルを判断してもよい。たとえば、最終評価回路218は、判断の信頼度についてのパーセンテージとともに、解釈が正確だったかどうかについて、1または0のいずれかを出力してよい。様々な実装形態において、最終評価回路218は、後続検索絞り込みクエリが発行されたかどうか、およびクエリ処理システム150向けの構成された設定に依存して、異なるようにレポートを閲覧するためのオプションをユーザが選択したかどうかなどの要因を重み付けする。
【0045】
データベース220は、本明細書で開示されるシステムによって使われ得る検索クエリを保存し、更新してよい。さらに、データベース220は、生成されたクエリクラスタを記憶してよい。様々な実装形態において、検索クエリは日付を含まない。たとえば、ユーザが、「2019年11月以降、どれだけ多くのセッションが起こったか」などの検索クエリを入れた場合、検索クエリ中の日付は、クエリ処理システム150によって取り去られ、考慮されない場合がある。他の実装形態では、日付が含まれる検索クエリは、データベース220に記憶され、検索クエリについての人間解釈の正確さを評価する際に使われる。データベース220は、1つまたは複数の記憶媒体を含み得る。記憶媒体は、磁気ストレージ、光学ストレージ、フラッシュストレージ、および/またはRAMを含み得るが、それらに限定されない。クエリ処理システム150は、データベース機能(すなわち、データベース220に記憶されたデータを管理する)を実施するための様々なAPIを実装し、または容易にし得る。APIは、SQL、ODBC、JDBC、ならびに/または任意の他のデータ記憶および操作APIであってよいが、それらに限定されない。
【0046】
いくつかの実装形態では、クエリ処理システム150は、クライアント/サーバアーキテクチャ、ピアツーピアアーキテクチャ、および/または他のアーキテクチャに従って遠隔プラットフォームと通信するように構成された1つまたは複数のコンピューティングプラットフォームを含み得る。遠隔プラットフォームは、
図1に関連して記載したユーザデバイス104と同じか、または同様であってよい。遠隔プラットフォームは、コンピューティングプラットフォームを介して、ならびに/またはクライアント/サーバアーキテクチャ、ピアツーピアアーキテクチャ、および/もしくは他のアーキテクチャに従って、他の遠隔プラットフォームと通信するように構成されてよい。
【0047】
回路208、210、212、214、216、および218は、
図2では、単一の処理ユニット内で実装されるものとして示されているが、プロセッサ204が複数の処理ユニットを含む実装形態では、回路208、210、212、214、216、および218のうちの1つまたは複数が、他の回路からは離れて実装されてよいことが理解されるべきである。異なる回路208、210、212、214、216および218によって提供される機能性の説明は例示のためであり、限定することを意図しておらず、というのは、回路208、210、212、214、216および218のいずれかは、説明されるよりも多いかまたは少ない機能性を提供し得るからである。
【0048】
図3を参照すると、検索クエリについての人間解釈の正確さを評価するためのプロセス300の流れ図が示されている。プロセス300は、たとえば、
図1~
図2を参照して記載されるクエリ処理システム150によって実行されてよい。いくつかの実装形態では、プロセス300は、クエリ処理システム150によって新たな検索クエリが受信されたことに応答して実行される。
【0049】
図3は、1つまたは複数の実装形態によるプロセス300を示す。プロセス300は、コンピューティング環境100の中のクエリ処理システム150の1つまたは複数の構成要素によって実践されてよい。302において、プロセス300は、1つまたは複数の処理回路によって、トレーニングデータセットを受信することを含む。いくつかの実装形態では、モデルトレーニング回路208が、302における動作を実行するように構成される。他の実装形態では、302に記載する動作は、モデルトレーニング回路208と同じか、または同様の回路を含む機械可読命令によって構成された1つまたは複数のハードウェアプロセッサによって実施されてよい。トレーニングデータセットは、過去の検索クエリ、過去の検索クエリについての人間解釈、および人間解釈が正しかったかどうかについての人間評価ラベルからなるセットを含み得る。したがって、トレーニングデータセットは、関連付けられた3つの異なるタイプのデータ点、過去の検索クエリ、人間解釈、および人間評価ラベルを含み得る。いくつかの実装形態では、過去の検索クエリデータは、1つまたは複数の人間解釈および対応する人間評価ラベルに関連付けられ得る。たとえば、「最も遅いページ」という過去の検索クエリは、「ページ閲覧による最下位ページ」の人間解釈値および「正しくない」人間解釈の人間評価ラベルに関連付けられ得る。さらに、「最も遅いページ」という過去の検索クエリは、トレーニングデータセット内の異なるセットの中の、「平均ページ読込み時間による最下位ページ」という人間解釈値、および「正しい」人間解釈の人間評価ラベルに関連付けられてもよい。
【0050】
いくつかの例では、トレーニングデータセット中の各セットは、検索クエリについての結果のスコア、検索クエリについての結果の状況、ユーザが、検索クエリの結果部分(たとえば、インサイトカード)においてレポートを閲覧することを選択したかどうか、および/またはユーザが、異なる提案されたレポートを選択したかどうかも含む。さらに、セットは、ラベル付けされた検索クエリの短い、所定の時間期間内で、後続検索クエリおよび人間解釈を含み得る。たとえば、セットは、ラベル付けされた検索クエリの後にユーザによって入れられた後続検索クエリ、後続検索クエリが入れられた、第1の検索クエリからのある程度の時間、後続検索クエリの人間解釈、後続検索クエリが、元の、第1の検索クエリの検索絞り込みだったかどうか、および元の、第1の検索クエリ内の類似度スコアも含み得る。
【0051】
304において、プロセス300は、1つまたは複数の処理回路によって、トレーニングデータセットを使用して第1のモデルをトレーニングすることを含む。第1のモデルは、検索クエリについての人間解釈が正しいかどうかを評価するようにトレーニングされてよい。いくつかの実装形態では、モデルトレーニング回路208が、304に記載される動作を実行するように構成される。他の実装形態では、304において実施される動作は、モデルトレーニング回路208と同じまたは同様である回路を含む、機械可読命令によって構成された1つまたは複数のハードウェアプロセッサによって実行されてよい。いくつかの実装形態では、第1のモデルは、トランスフォーマによる双方向エンコーダ表現(BERT)モデルである。第1のモデルは最初に、ウィキペディアなど、言語データの大規模コーパスで事前トレーニングされてよい。いくつかの実装形態では、304において実行される動作は、特定の分類器用の受信されたトレーニングデータセットからの情報で第1のモデルをさらにトレーニングする(すなわち、微調整する)ためである。第1のモデルは、検索クエリについての人間解釈が正しいかどうかについての直接評価を計算するようにトレーニングされてよい。さらに、第1のモデルは、クラスタの中または異なるクラスタの中の検索クエリの間の類似度、および検索クエリと後続検索クエリとの間の類似度を計算するための埋込みレイヤとして使用されてよい。
【0052】
306において、プロセス300は、1つまたは複数の処理回路によって、検索クエリ、および検索クエリについての人間解釈を受信することを含む。検索クエリは、所望の情報を要求するための、ユーザインターフェースを介して入力された1つまたは複数の単語を含む。人間解釈は、所望の情報の解釈を定義する1つまたは複数の単語を含み得る。たとえば、検索クエリは、「何人のユーザがチェックアウトするか?」であってよく、その検索クエリに関連付けられた人間解釈は、「製品チェックアウトの数」であってよい。いくつかの実装形態では、解釈評価回路214は、306における動作を実行するように構成される。解釈評価回路214は、検索クエリと、検索クエリについての人間解釈とを、ネットワーク102を介してコンテンツ管理システム108から受信し得る。
【0053】
308において、プロセス300は、1つまたは複数の処理回路によって、検索クエリについての人間解釈が正しいかどうかという初期評価を、第1のモデルを使用して判断することを含む。308に記載する動作は、いくつかの実装形態に従って、初期評価回路216によって実行されてよい。第1のモデルは、初期評価回路216によって、検索クエリを所与の回答と比較することによって、検索クエリについての人間解釈が正しいかどうかを評価するのに使用されてよい。たとえば、検索クエリおよび所与の解釈は第1のモデルに入力されてよく、第1のモデルは、解釈が正しくない回答である確率を出力すればよい。初期評価回路216は、第1の推定を行うために、類似度スコアリング回路212によって算出された、入力された検索クエリと人間解釈についての類似度スコアを分析し得る。初期評価回路216はまた、検索クエリと、検索クエリに対する任意の潜在的絞り込みとの比較を類似度スコアリング回路212から受信して、後続検索クエリが第1の検索クエリの絞り込みだったかどうかを判断すればよい。たとえば、類似度スコアリング回路212は、モデルトレーニング回路208からの第1のクエリおよび後続検索クエリのトークン埋込み(たとえば、ベクトル表現)の平均を比較することによって、検索クエリの間の類似度を出力し得る。検索クエリおよび後続検索クエリのトークン埋込みの平均をとることは、クエリが、クエリの中の文の固定表現を達成するための文の中の各トークンの最後から2番目の隠れレイヤの平均プーリングを含み得る。
【0054】
310において、プロセス300は、1つまたは複数の処理回路によって、第1のモデルからの初期評価、検索クエリに関する時間特徴、および検索クエリに関するクラスタ特徴を使用して第2のモデルを生成することを含む。いくつかの実装形態では、モデルトレーニング回路208は、310において実施される動作を実行するように構成される。いくつかの実装形態では、モデルトレーニング回路208によって生成およびトレーニングされた第2のモデルは、ロジスティック回帰モデルである。モデルトレーニング回路208は、人間解釈が検索クエリについて正しいかどうかの初期評価を、初期評価回路216から受信し得る。様々な実装形態において、モデルトレーニング回路208は、人間解釈が正しいかどうかの、第1のモデルからの初期評価を、セッションデータ、クライアントデータ、およびユーザデータとともに受信する。セッションデータは、セッションの持続時間、セッション中に入れられた検索クエリの数、セッション中の各検索クエリのタイミング、セッション中の検索クエリの結果とのユーザ対話(たとえば、レポートを閲覧するという選択)などを含み得る。クライアントデータは、クライアントについての、最も共通して入れられた検索クエリ、クライアントによって提供されるコンテンツについてのデータ、クライアントの過去の分析結果などのような、コンテンツプロバイダに関する情報を含み得る。いくつかの実装形態では、ユーザデータは、ユーザによって入れられた過去の検索クエリ、ユーザにとっての平均セッション時間などのような、コンテンツプロバイダデバイス(たとえば、コンテンツプロバイダデバイス106)の特定のユーザに関する情報を含む。最終評価を判断するために第2のモデルに入力として与えられたデータは、いくつかの実装形態に従って、データベース220から取り出され得る。他の実装形態では、モデルトレーニング回路208は、最終的な、第2のモデルについての入力を、ネットワーク102を介してコンテンツ管理システム108から受信し得る。
【0055】
検索クエリに関するクラスタ特徴は、検索クエリに最も近いクラスタ、後続の、第2の検索クエリが、検索クエリを含むクラスタの中にあるかどうか、検索クエリを含むクラスタ中の検索クエリに関連付けられたユーザデータ、または検索クエリを含むクラスタ中の検索クエリに関連付けられたセッションデータを含み得る。たとえば、モデルトレーニング回路208は、平均してセッション中にユーザが検索クエリを入れる異なるクラスタの数(たとえば、クラスタの多様性)、垂直、国などによるクラスタメンバーシップの変化(たとえば、クラスタのセグメント化)、および予測される明示的誤りがある検索クエリ(たとえば、最も頻繁に間違って回答される検索クエリ)の中でサイズが最も大きいクラスタを分析するように第2のモデルをトレーニングするように構成されてよい。さらに、すべての検索クエリの中で最も低い回答カバレージを有するクラスタ(たとえば、検索クエリ増加)、ユーザによって発行された後続検索クエリが、以前の検索クエリと同じクラスタの中にあるかどうか(たとえば、検索絞り込み)、検索クエリに最も近いクラスタ(たとえば、代替解釈)、およびどの検索クエリがレーティングされるべきか(たとえば、サンプリング効率)も、第2のモデルをトレーニングする際にモデルトレーニング回路208によって分析されてよい。検索クエリに関連したこれらのクラスタ特徴は、検索クエリについての人間解釈が正確であるかどうかを判断するために、モデルトレーニング回路208によって生成およびトレーニングされた第2のモデルによって使用されてよい。
【0056】
いくつかの実装形態では、検索クエリに関する時間特徴は、過去の時間期間内に検索クエリが発行される頻度、検索クエリのクラスタの中の検索クエリが発行される頻度、または検索クエリがユーザインターフェースを介した入力として提案される頻度を含む。たとえば、検索クエリに関する時間特徴は、ユーザが検索クエリを行ったときと、検索クエリの前または後のいずれかの所定の時間期間中に発行された他の検索クエリとの間の時間を含み得る。検索クエリに関する時間特徴は、検索クエリが以前のユーザセッション中にユーザによって行われたかどうかも含み得る。たとえば、モデルトレーニング回路208は、検索クエリが、データベース220に記憶されている、ユーザの履歴検索クエリであるかどうかを分析してよい。さらに、第2のモデルは、ユーザが平均で過去における検索クエリを発行する頻度、ユーザが、平均で過去の検索クエリと同じクラスタ中の検索クエリを発行する頻度を考慮するように、モデルトレーニング回路208によってトレーニングされてよい。いくつかの実装形態では、モデルトレーニング回路208は、検索クエリについての人間解釈の正確さに対する最終評価を行うために、第2のモデルを生成し、トレーニングするための追加入力を使う。
【0057】
312において、プロセス300は、1つまたは複数の処理回路によって、検索クエリについての人間解釈が正しいかどうかという最終評価を、第2のモデルを使用して判断することを含む。いくつかの実装形態では、312において実施される動作は、最終評価回路218によって実行されてよい。最終評価回路218は、類似度スコアリング回路212から、ユーザによって発行された後続検索クエリとの類似度スコアを受信したことに基づいて、人間解釈が正しいかどうかの最終評価を生成するのに、第2のモデルを使えばよい。さらに、最終評価回路218は、以下でより詳細に記載するように、検索クエリについての結果エリアの中のレポートとのユーザ対話を、人間解釈が正しいかどうかについてのインジケータと見なし得る。いくつかの実装形態では、最終評価は、正しい解釈に対しては0の値、または正しくない解釈に対しては1の値である。最終評価回路318を介して第2のモデルによって判断された最終評価は、第2のモデルがその最終評価において誤りを犯さなかったという信頼度についてのパーセンテージ値などの信頼度スコアに関連付けられてよい。他の実装形態では、最終評価回路218は、人間解釈が検索クエリに対して正しいという確率である最終評価を、第2のモデルを使って生成するように構成される。たとえば、最終評価回路218は、検索クエリについての人間解釈が正確な回答であるという91%の出力を、第2のモデルから判断してよい。
【0058】
ここで
図4を参照すると、検索クエリについての人間解釈が正確な解釈であるかどうかを評価するために検索クエリを分析するためのプロセス400の流れ図が示されている。プロセス400は、たとえば、
図1および
図2を参照して記載したクエリ処理システム150によって実行されてよい。
図4は、1つまたは複数の実装形態によるプロセス400を示す。いくつかの実装形態では、プロセス400は、プロセス300(
図3)中の312において実行される動作の間にクエリ処理システム150によって実行される。
【0059】
402において、プロセス400は、いくつかの実装形態に従って、1つまたは複数の処理回路によって、第1の検索クエリが、所定の時間間隔以内に受信された第2の検索クエリに関連付けられるかどうかを判断することを含む。クラスタ生成回路210が、402において実施される動作を実行するように構成されてよい。クラスタ生成回路210は、追加検索クエリが、元の検索クエリの後でコンテンツプロバイダデバイス106からユーザによって入れられたかどうかを判断し得る。たとえば、人間解釈が正確さについて評価される検索クエリは、ユーザからの第1の質問であってよく、第2の検索クエリは、ユーザからのフォローアップ質問であってよい。いくつかの実装形態では、クラスタ生成回路210は、後続検索クエリに関するセッションデータをデータベース220から受信し得る。
【0060】
404において、プロセス404は、いくつかの実装形態に従って、1つまたは複数の処理回路によって、第1および第2の検索クエリ用の第1のモデルからのトークン埋込みを受信することを含む。404に記載した動作は、いくつかの実装形態に従って、モデルトレーニング回路208によって実行されてよい。モデルトレーニング回路208は、クエリ処理システム150によって分析される各検索クエリのためのトークン埋込みを生成するのに、第1のモデルを使用するように構成されてよい。トークンとは、検索クエリ中の単語である。埋込みとは、単語の数学的表現、たとえば、ベクトル表現である。したがって、類似単語は、それぞれの埋込みの間の距離が比較的小さい。たとえば、「重要(important)」という単語のためのトークン埋込みは、「特に(especially)」という単語のためのトークン埋込みよりも、「重大(significant)」という単語のためのトークン埋込みとの距離が小さい。モデルトレーニング回路208は次いで、検索クエリのためのトークン埋込みを類似度スコアリング回路212へ送って、検索クエリが別の検索クエリとどれだけ類似しているか、または検索クエリが検索クエリの解釈とどれだけ類似しているかを評価すればよい。
【0061】
406において、プロセス400は、いくつかの実装形態に従って、1つまたは複数の処理回路によって、第1および第2の検索クエリ用のベクトル文表現を判断することを含む。406において実施される動作は、モデルトレーニング回路208によって実践されてよい。モデルトレーニング回路208は、第1および第2の検索クエリの各々のためのベクトル文表現を生成するために、第1および第2の検索クエリの各々のための第1のモデルからのトークン埋込みの平均をとればよい。たとえば、第1のモデルは、各検索クエリ用のトークン埋込み(すなわち、ベクトル表現)の平均プーリングを、検索クエリの中の文の固定表現を判断するのに使ってよい。検索クエリ用のベクトル文表現は次いで、類似度スコアリング回路212によって検索クエリの間の類似度スコアを生成するために使用されてよい。
【0062】
408において、プロセス400は、いくつかの実装形態に従って、1つまたは複数の処理回路によって、第1および第2の検索クエリについての類似度スコアを生成することを含む。類似度スコアリング回路212が、408において実行される動作を実施するように構成されてよい。類似度スコアは、ベクトル文表現に対する、類似度ベースのメトリック(たとえば、コサイン類似度算出、ジャッカード類似度算出など)を使用して、第1のモデルによって生成されてよい。いくつかの実装形態では、類似度スコアは0~1の値の範囲にわたり、0は、ベクトル文表現が同じであるときに生じる。他の実装形態では、類似度スコアは、類似度スコアリング回路212によって、異なるスケールで、またはパーセント値として生成されてよい。いくつかの実装形態では、類似度スコアリング回路212は、第1および第2の検索クエリを解析して、コサイン距離アルゴリズムまたはユークリッド距離アルゴリズムなどの距離アルゴリズムを使って検索クエリの間の類似度を判断するのに、第1のモデルを使用するように構成されてもよい。
【0063】
ここで
図5に移ると、例示的な実装形態による、検索クエリについての人間解釈の正確さを評価するために使われるプロセス500の流れ図が示されている。プロセス500は、たとえば、
図1~
図2を参照して記載したクエリ処理システム150によって実行されてよい。プロセス500は、
図4に関して、408における動作が実行されたことに応答して実践されてよい。502において、モデルトレーニング回路208は、第2の検索クエリが第1の検索クエリの検索絞り込みであるかどうかを判断してよい。モデルトレーニング回路208は、類似度スコアリング回路212からの、検索クエリの間の類似度スコアの値に基づいて、後続検索クエリが第1の検索クエリの検索絞り込みであるかどうかを結論付けてよい。たとえば、プロセス400の408において算出された類似度スコアが所定の閾を下回る場合、モデルトレーニング回路208は、第2の検索クエリが元の検索クエリの検索絞り込みでないと判断してよい。モデルトレーニング回路208が、502において、第2の検索クエリが検索絞り込みでないと判断した場合、プロセス500は504へ続く。504において、最終評価回路218は、いくつかの実装形態に従って、検索クエリについての正しい人間解釈の重み付き指示を判断する。たとえば、検索クエリの2つのベクトル文表現が、ベクトルが非常に異なることを示す高い類似度スコアを有する場合、最終評価回路218は、第2の検索クエリが無関係のフォローアップ質問であり、したがって、第1の検索クエリの解釈が正しいという指示であると評価してよい。
【0064】
ただし、502において、モデルトレーニング回路208が、第2の検索クエリは第1の検索クエリの検索絞り込みであると判断した場合、プロセス500は506に進む。たとえば、第1の検索クエリと後続検索クエリとの間の類似度スコアが所定の閾(たとえば、0.8、75%など)を上回る場合、第2のモデルは、モデルトレーニング回路208を介して、後続検索クエリが第1の検索クエリの検索絞り込みであると判断し、プロセス500は506に進む。506において、最終評価回路218は、いくつかの実装形態に従って、検索クエリについての正しくない人間解釈の重み付き指示を判断する。たとえば、第1の検索クエリが、「ページ閲覧による最下位ページ」という解釈をもつ「最も遅いページ」であり、後続検索クエリが「最も読込みが遅いページ」である場合、最終評価回路218は、「ページ閲覧による最下位ページ」という解釈が正しくない解釈であり得るという重み付き指示を判断する。指示は、全体的評価を判断する際の、第2のモデルへの、重み付きの特徴入力である。いくつかの実装形態では、最終評価回路218は、502において判断された指示を、他の要因とともに、検索クエリについての解釈が正しかったかどうかの評価における所定の量で重み付けするように第2のモデルをトレーニングするように構成される。したがって、検索クエリについての解釈が正しかったかどうかの最終評価は、指示のトレーニングされた重み付けならびに他の特徴入力(たとえば、履歴検索クエリおよび人間解釈データ)に基づく。
【0065】
508において、プロセス500は、いくつかの実装形態に従って、検索クエリについてのレポートを閲覧するための入力が受信されたかどうかを判断することを含み得る。最終評価回路218は、検索クエリが発行されたセッション中のユーザ対話についての情報を含むセッションデータを、データベース220から受信するように構成されてよい。たとえば、最終評価回路218は、ユーザが、コンテンツプロバイダデバイス106またはユーザデバイス104のユーザインターフェース(たとえば、ユーザインターフェース900(
図9))を介して、検索クエリ用の結果エリア中でレポートを閲覧するためのオプションを選択したことを示すデータを受信し得る。いくつかの実装形態では、最終評価回路218は代わりに、クラスタ生成回路210またはモデルトレーニング回路208からセッションデータを受信してもよい。いくつかの実装形態では、最終評価回路218は、508において、検索クエリの結果エリアにおいて他の提案されたレポートを閲覧するためのオプションをユーザが選択したかどうかを判断するように構成されてもよい。
【0066】
最終評価回路218が、508において、検索クエリ用の結果エリアに表示されるレポートを閲覧するためのユーザ入力が受信されたと判断した場合、プロセス500は510に進む。510において、最終評価回路218は、いくつかの実装形態に従って、検索クエリについての正しい人間解釈の重み付き指示を判断する。結果エリアにおいてレポートを閲覧するためのユーザ入力からの指示は、解釈が正しいかどうかを評価する際に、他の要因よりも重く、最終評価回路218によって重み付けされてよい。他の実装形態では、第1の検索クエリの検索絞り込みである後続検索クエリをユーザが入力するかどうかが、最終評価回路218によって、より重く重み付けされてよい。
【0067】
一方、508において、検索クエリについてのレポートを閲覧するためのユーザ入力が受信されなかったと最終評価回路218が判断した場合、プロセス500は512に進む。512において、最終評価回路218は、検索クエリについての正しくない人間解釈の重み付き指示を判断し得る。いくつかの実装形態では、510において、および512において判断された指示は、解釈が正確だったかどうかの、第2のモデルによって行われた最終評価に対して、等しい影響を有していない場合がある。たとえば、レポートを閲覧するためのユーザ入力を受信することは、ユーザ入力を受信しないことよりも大きい影響を、最終評価回路218によって行われた最終評価に対して有し得る(すなわち、第2のモデルは、より重く重み付けするようにトレーニングされてよい)。
【0068】
ここで
図6を参照すると、いくつかの実装形態に従って、検索クエリについての人間解釈の正確さを評価するためにクラスタを使用するためのプロセス600の流れ図が示されている。
図1および
図2を参照して記載したクエリ処理システム150が、プロセス600を実行してよい。いくつかの実装形態では、プロセス600は、
図3に関する302および304における動作が実行された後、クエリ処理システム150によって実行される。602において、プロセス600は、クラスタ中の検索クエリの間の類似度に少なくとも部分的に基づいて、検索クエリのクラスタを生成することを含む。いくつかの実装形態では、クラスタ生成回路210は、第1のモデルによって生成された検索クエリ用のベクトル文表現を、モデルトレーニング回路208から受信するように構成されてよい。クラスタ生成回路210は次いで、検索クエリをクラスタに割り当てるのに、所与のクラスタ化技法を使ってよい。いくつかの実装形態では、クラスタ化技法は、意味的に類似する検索クエリをクラスタ化するのに、kという大きい値を使う。
【0069】
604において、クラスタ生成回路210は、いくつかの実装形態に従って、新たな検索クエリを受信するように構成されてよい。クラスタ生成回路210は、たとえば、データベース220から、処理回路202の別の構成要素から、またはコンテンツ管理システム108から新たな検索クエリを受信し得る。いくつかの実装形態では、新たな検索クエリは、クラスタにソートされている過去の検索クエリである。606において、プロセス600は、クラスタ中の検索クエリ、および新たな検索クエリとの類似度に基づいて、生成されたクラスタを更新することを含む。クラスタ生成回路210は、クラスタの中の他の検索クエリとの類似度スコア(たとえば、
図4に関して408に記載した)に基づいて、新たな検索クエリをクラスタにソートするように構成されてよい。いくつかの実装形態では、クラスタ生成回路210は、新着検索クエリおよび対応する解釈を既存クラスタに割り当てるのに加え、新たなクラスタを検索し、発見するように構成される。クラスタ生成回路210は、オンラインとオフラインの両方でクラスタがアクセスされるようにするために、クラスタ化出力を使ってクラスタダッシュボードを生成してよい。いくつかの実装形態では、ネットワーク102から切断されている間、クラスタ生成回路210はクラスタ用のダッシュボードを作成する。ただし、ネットワーク102に接続されている間、クラスタ生成回路210は、追加サービング信号として、クラスタに検索クエリを絶えず割り当ててよい。
【0070】
いくつかの実施形態では、作成されたダッシュボードは、クラスタ生成回路210を介して、全体的モデルによって自動的に生成される誤りの様々なカテゴリー化を示す。有益には、本明細書で開示される方法は、どの検索クエリが、最も高いパーセンテージの人間解釈誤りおよび関連検索クエリを有するかを、ユーザが閲覧できるようにし得る。たとえば、クラスタ生成回路210によって判断されたクラスタは、クラスタAの中の検索クエリについての、一定のパーセンテージの人間解釈誤りを検索が有することを報告するなどの報告目的で使われる。クラスタAは、クラスタの中の上位10個の最もよくある検索クエリとの類似を有する検索クエリによって特徴付けられ得る。したがって、どの人間解釈が最も多い誤りを生成しているかについての情報が判断され得る。通常、検索クエリについての統計を生成するために、および人間解釈誤りについての詳細を報告するのに使うために、異なる検索クエリをどのようにして分類するかを手作業で評価するのに、人間が使われる。有利には、本明細書で開示されるシステムおよび方法は、検索クエリおよび人間解釈における誤りの自動分類を容易にする。
【0071】
ここで
図7を参照すると、
図1および
図2に記載したクエリ処理システムによって使われる全体的モデルの高レベルモデリングフローの
図700が、いくつかの実装形態に従って示されている。線
図700は、クエリ処理システム150によって使用される自然言語検索クエリについての人間解釈の正確さを評価するための全体的モデルの入力および出力を示す。入力は、検索クエリ702、解釈704、セッションデータ710、ユーザデータ712、およびクライアントデータ714を含む。検索クエリ702は、単一検索により、ユーザインターフェースを介して入れられてよい。単一検索は、ユーザが分析アプリケーションにクエリを入れるための検索バーである。解釈704は、検索クエリ702の人間解釈であり、解釈704が、ユーザがユーザインターフェース上のインサイトカード(たとえば、
図9のインサイトカード908)に結果として表示させたいものの人間言語解釈であることを意味する。本明細書で開示される方法は、検索クエリ702および解釈704について明示的誤りが起きた(すなわち、解釈704が、検索クエリ702についての誤った解釈である)かどうかを評価することに焦点を当てる。検索クエリ702および解釈704は、第1のモデル706向けの入力として使われる。
【0072】
いくつかの実装形態では、第1のモデル706はBERTモデルである。第1のモデル706は、第1のモデル706が言語データの膨大なコーパスで事前トレーニングされ、次いで、特定の分類問題のための、人間がレーティングした言語データのより小さいコーパスに対して特化された後の微調整をサポートしてよい。こうすることは有益であり、というのは、第1のモデル706は次いで、評価を行うために、収集するのにコストがかかる、手作業で評価された人間レーティングデータを、あまり必要としなくなるからである。さらに、第1のモデル706を微調整することで、有益に効率を上げ、システムの帯域幅を改善することができ、より小さい量の人間ラベル付けトレーニングセットが、第1のモデル706を特化するのに使われるようになり得る。セッションデータ710、ユーザデータ712、およびクライアントデータ714は、第1のモデルからの、解釈が正確であるかどうかの初期評価の出力とともに、最終モデル708向けの入力として使われる。セッションデータ710は、セッション中に入れられた他の検索クエリ、入れられた検索クエリの頻度、などについての情報を含み得る。ユーザデータ712は、ユーザがセッション中に発行する検索クエリの平均量など、特定のユーザについての統計を含み得る。いくつかの実装形態では、クライアントデータ714は、クライアントが与えるコンテンツのタイプ、クライアント向けに入れられた検索クエリの最もよくあるタイプ、などのような、全体的クライアント(たとえば、コンテンツプロバイダ会社)に関する情報を含み得る。最終モデル708は、正しい解釈に対する評価716を識別するために、検索クエリ702に関する様々なクラスタ特徴および時間特徴に加え、第1のモデル706を使う組合せモデルであってよい。正しい解釈に対する評価716は、検索クエリ702についての解釈704が正確であるかどうか、または解釈704について明示的誤りが起きたかどうかの推定値である。
【0073】
ここで
図8に移ると、第1のモデル706のためのモデルアーキテクチャおよび第1のモデル706のための使用ケースが、いくつかの実装形態に従って示されている。
図8は、本明細書で開示されるシステムおよび方法において使用される、第1のモデル706のためのアーキテクチャの図式800および第1のモデル706の特定の使用ケースのための図式850を含むように示される。図式800は、第1のモデル706の双方向トランスフォーマアーキテクチャを示す。E
kはトークン(すなわち、大雑把には単語)を表し、T
kは、(双方向)コンテキストにおける各入力トークンの表現である数値ベクトルを表す。T
rmは、トランスフォーマセルを表す。BERTモデルとしての第1のモデル706は、すべてのレイヤの中の左および右のコンテキストについての情報から共同で学習し、単語をベクトルに符号化し、単語に対応する数値ベクトルを出力することができる。第1のモデル706は、回帰型ニューラルネットワーク(RNN)でのようなシーケンス機構とは反対に、自己注意と呼ばれる機構を使用することができる。トランスフォーマセル用に、各単語には、3つのベクトル、すなわちキー、値、およびクエリが割り当てられ得る。これらのベクトルの各々の要素は、第1のモデル706によって学習される。各単語は次いで、そのクエリと他の単語のキーとの間のドット積を算出することによって、あらゆる他の単語を「照会」してよい。これは次いで、各クエリ用の各単語についての重みを生じ得る。各クエリについて、トランスフォーマセルは、値ベクトルの重み付き平均を戻す。したがって、各トランスフォーマセルの出力は、あらゆる単語またはクエリに対するベクトルであり、これは次いで、フィードフォワードニューラルネットワークに渡される。プロセスは次いで、第1のモデル706のサイズに依存して何回か繰り返す。
【0074】
第1のモデル706のための使用ケースの図式850は、第1のモデル706の微調整(すなわち、転移学習)能力を示す。文分類のための使用ケースでは、特殊トークンが使用され、これは、第1のモデル706が学習するためのダウンストリームタスクがある場合に有用である。図式850は、追加出力レイヤへの第1のモデル706(たとえば、BERT)の組込みを示す。有利には、最小限の数のパラメータが次いで、モデルによって、学習し始めるのに使われる。図式850において、Eは入力埋込みを表し、Tiは、トークンiのコンテキスト表現を表し、[CLS]は、分類出力用の特殊シンボルを表し、[SEP]は、非連続トークンシーケンスを分離するための特殊シンボルである。第1のモデル706の微調整は、単一の出力トークンにデータをプーリングする。出力トークンが作成されると、最終モデルは、入力としての分類出力のベクトル表現と、対応するラベルとを、トレーニングするのに使うことができる。
【0075】
ここで
図9を参照すると、検索クエリを入れ、検索クエリについての人間解釈および結果データを閲覧するためのユーザインターフェースが、いくつかの実装形態に従って示されている。ユーザインターフェース900は、単一検索902、人間解釈904、選択可能なレポートオプション906、およびインサイトカード908を含むように示されている。単一検索902は、ユーザが検索クエリを入れて、コンテンツ管理システム108によって提供されるコンテンツについての分析データを閲覧するための検索バーであってよい。いくつかの実装形態では、単一検索902には、過去のセッションにおいてユーザによって入れられた共通検索クエリに基づく、検索クエリについての提案が自動記入される。この例示的な実装形態では、入れられた検索クエリは、「ユーザが最も多い国」であり、対応する人間解釈904は、インサイトカード908に示される「ユーザで最上位の国」である。選択可能なレポートオプション906により、ユーザは、インサイトカード908に表示されるリンクを選択することによって、生成されたレポートを閲覧することができ得る。インサイトカード908は、ユーザに対して右パネルに表示される結果エリアであり、ここで、入れられた検索クエリに対してインサイト結果が示される。いくつかの実装形態では、インサイトカード908は、他の提案されたレポートを閲覧するためのオプションを表示する。インサイトカード908により、ユーザは、フォローアップ質問を尋ねる(すなわち、後続検索クエリを入れる)ためのオプションを選択することもでき得る。
【0076】
図10は、たとえば、例示的ユーザデバイス104、例示的コンテンツ管理システム108、説明のためのコンテンツプロバイダデバイス106、例示的クエリ処理システム150、および/または本開示において記載される様々な他の例示的システムを実装するために使われ得るコンピューティングシステム1000を示す。コンピューティングシステム1000は、情報を通信するためのバス1008または他の通信構成要素、および情報を処理するためのバス1008に結合されたプロセッサ1012を含む。コンピューティングシステム1000はまた、情報、およびプロセッサ1012によって実行されるべき命令を記憶するための、バス1008に結合されるランダムアクセスメモリ(RAM)または他のダイナミックストレージデバイスなどの、メインメモリ1002を含む。メインメモリ1002はまた、位置情報、時間変数、またはプロセッサ1012による命令の実行の間の他の中間情報を記憶するために使用され得る。コンピューティングシステム1000はさらに、プロセッサ1012のための静的情報および命令を記憶するための、バス1008に結合された読取り専用メモリ(ROM)1004および他のスタティックストレージデバイスを含み得る。情報および命令を永続的に記憶するための、ソリッドステートデバイス、磁気ディスク、または光学ディスクなどの記憶デバイス1006が、バス1008に結合される。
【0077】
コンピューティングシステム1000は、情報をユーザに表示するための、液晶ディスプレイ、またはアクティブマトリックスディスプレイなどのディスプレイ1014に、バス1008を介して結合され得る。情報およびコマンド選択をプロセッサ1012に通信するために、英数字キーおよび他のキーを含むキーボードなどの入力デバイス1016がバス1008に結合され得る。別の実装形態では、入力デバイス1016は、タッチスクリーンディスプレイ1014を有する。入力デバイス1016は、方向情報およびコマンド選択をプロセッサ1012に通信するための、およびディスプレイ1014上でカーソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーなどの、カーソルコントロールを含み得る。
【0078】
いくつかの実装形態では、コンピューティングシステム1000は、ネットワーキングアダプタなどの通信アダプタ1010を含み得る。通信アダプタ1010は、バス1008に結合されてもよく、コンピューティングネットワークもしくは通信ネットワーク1018および/または他のコンピューティングシステムとの通信を可能にするように構成されてもよい。様々な例示的実装形態では、ワイヤード(たとえば、Ethernet(登録商標)を介した)、ワイヤレス(たとえば、WiFi(登録商標)、Bluetooth(登録商標)などを介した)、あらかじめ構成された、アドホック、LAN、WANなどの通信アダプタ1010を使用して、任意のタイプのネットワーキング構成が達成され得る。
【0079】
様々な実装形態によると、本明細書において説明される例示的実装形態を遂行するプロセスは、メインメモリ1002に含まれる命令の配列をプロセッサ1012が実行することに応答して、コンピューティングシステム1000によって達成され得る。そのような命令は、記憶デバイス1006などの別のコンピュータ可読媒体からメインメモリ1002へと読み取られ得る。メインメモリ1002中に含まれる命令の配列の実行により、コンピューティングシステム1000は、本明細書に記載する例示的プロセスを実施する。マルチ処理配置の中の1つまたは複数のプロセッサはまた、メインメモリ1002中に含まれる命令を実行するのに利用されてもよい。代替の実装形態では、例示的実装形態を実装するために、ソフトウェア命令の代わりに、またはそれと組み合わせて、ハードワイヤード回路構成が使われ得る。したがって、実装形態は、ハードウェア回路構成およびソフトウェアのどのような特定の組合せにも限定されない。
【0080】
本開示に記載されるようなシステムおよび方法は、任意のタイプのサードパーティコンテンツ項目に対して(すなわち、リソース上に表示されるべき任意のタイプのコンテンツ項目に対して)実装可能であり得る。一実装形態では、コンテンツ項目は広告を含み得る。一実装形態では、コンテンツ項目は、任意のテキスト、画像、ビデオ、ストーリー(たとえば、新しいストーリー)、ソーシャルメディアコンテンツ、リンク、または、ファーストパーティコンテンツ提供者のリソース上で表示するためにサードパーティにより提供される任意の他のタイプのコンテンツを含み得る。本明細書のコンテンツ可視化方法が使われるコンテンツ項目のタイプは、限定的ではない。
【0081】
例示的な処理システムが
図10で説明されているが、本明細書において説明された主題および機能的動作の実装形態は、他のタイプのデジタル電子回路構成を使用して、または本明細書において開示される構造およびそれらの構造的等価物を含む、コンピュータソフトウェア、ファームウェア、もしくは、ハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実践され得る。
【0082】
主題の実施形態および本明細書において説明される動作は、デジタル電子回路構成で、または本明細書において開示される構造およびその構造的等価物を含む、有形媒体上で具現化されるコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実践され得る。本明細書において説明される主題の実装形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置によって実行するか、またはデータ処理装置の動作を制御するための、1つまたは複数のコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のサブシステムとして、実装することができる。代替または追加として、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するための情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械で生成された電気信号、光信号、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の、組合せであるか、またはそれらに含めることができる。さらに、コンピュータ記憶媒体は、伝搬信号ではなく、コンピュータ記憶媒体は、人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令のソースまたは宛先であることが可能である。コンピュータ記憶媒体はまた、1つまたは複数の別個の構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であることも、またはそれらに含まれることも可能である。したがって、コンピュータ記憶媒体は、有形と非一時的の両方である。
【0083】
本明細書に記載した動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶された、または他のソースから受信されたデータに対して、データ処理装置によって実施される動作として実装されてよい。
【0084】
「データ処理装置」または「コンピューティングデバイス」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または上記の複数のもの、もしくは上記のものの組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路構成、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想機械、またはそれらのうちの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング基盤およびグリッドコンピューティング基盤などの様々な異なるコンピューティングモデル基盤を実現することができる。
【0085】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型またはインタープリタ型言語、宣言型または手続き型言語を含む、どの形のプログラミング言語でも書かれてよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境における使用に適した他のユニットとして、を含む、どの形でも展開することができる。コンピュータプログラムは、ファイルシステムの中のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプト)を保持するファイル部分に、問題になっているプログラムに専用の単一のファイルに、または複数の協調ファイル(たとえば、1つもしくは複数のサブシステム、サブプログラム、もしくはコードの部分を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に配置されるかもしくは複数の場所に分散しており通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開され得る。
【0086】
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによってアクションを実施するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能プロセッサによって実施され得る。プロセスおよび論理フローは、特殊目的論理回路構成、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)やASIC(特定用途向け集積回路)によって実施することもでき、装置が、そのような回路構成として実装されてもよい。
【0087】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用および特殊目的マイクロプロセッサの両方、ならびにどの種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般にプロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受け取る。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、または光ディスクも含むか、あるいは、それらからデータを受信することもしくはそれらにデータを転送することまたはその両方を行うために動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、ほんの数例を挙げると、別のデバイス、たとえば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路構成によって補完され得るか、または専用論理回路構成に組み込まれ得る。
【0088】
ユーザとの対話を可能にするために、本明細書に記載する主題の実装形態は、ユーザに情報を表示するための表示デバイス、たとえば、CRT(陰極線管)やLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を与え得るためのキーボードおよびポインティングデバイス、たとえば、マウスやトラックボールとを有するコンピュータを使って実践することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形で受信することができる。加えて、コンピュータは、文書をユーザによって使用されるデバイスに送信し、文書をそのデバイスから受信することによって、たとえば、ユーザのクライアントデバイス上のウェブブラウザから受信された要求に応じてウェブページをそのウェブブラウザに送信することによって、ユーザと対話することができる。
【0089】
本明細書において説明される主題の実装形態は、たとえば、データサーバとして、バックエンド構成要素を含むか、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含むか、またはフロントエンド構成要素、たとえば、本明細書において説明される主題の一実装形態と、ユーザがそれを通して対話できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、あるいは1つまたは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムを使って実践され得る。システムの構成要素は、どの形または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によっても相互接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0090】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントとサーバは概して、互いから離れており、通常、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で稼動するとともに互いとのクライアント-サーバ関係を有するコンピュータプログラムにより発生する。いくつかの実装形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示するとともにそのユーザからユーザ入力を受け取るために)データ(たとえば、HTMLページ)をクライアントデバイスへ送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受信され得る。
【0091】
いくつかの例示的実装形態では、本明細書で開示される特徴は、スマートテレビジョンモジュール(または接続テレビジョンモジュール、ハイブリッドテレビジョンモジュールなど)上で実装されてよく、これらは、インターネット接続性を比較的従来型のテレビ番組ソース(たとえば、ケーブル、衛星、放送、または他の信号により受信される)と統合するように構成された処理回路を含み得る。スマートテレビジョンモジュールは、テレビセットに物理的に組み込まれてよく、またはセットトップボックス、ブルーレイもしくは他のデジタルメディアプレーヤ、ゲームコンソール、ホテルテレビジョンシステム、および他のコンパニオンデバイスなど、別個のデバイスを含み得る。スマートテレビジョンモジュールは、ウェブ上、ローカルケーブルTVチャネル上、衛星TVチャネル上の、またはローカルハードドライブ上に記憶されたビデオ、映画、写真および他のコンテンツを、視聴者が検索し、見つけることができるように構成されてよい。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナを含むとともにテレビセットおよび信号の外部ソースに接続し得る情報機器デバイスを含んでよく、信号をコンテンツに変え、コンテンツは次いで、テレビ画面または他のディスプレイデバイス上で表示される。スマートテレビジョンモジュールは、ウェブブラウザおよび複数のストリーミングメディアサービス、接続ケーブルもしくは衛星メディアソース、他のウェブ「チャネル」などのような、複数の異なるアプリケーション用のアイコンを含むホーム画面または最上位レベル画面を提供するように構成されてよい。スマートテレビジョンモジュールはさらに、電子番組ガイドをユーザに提供するように構成されてよい。スマートテレビジョンモジュールへのコンパニオンアプリケーションは、視聴可能番組についての付加情報をユーザに提供し、ユーザにスマートテレビジョンモジュールを制御させる、などのように、モバイルコンピューティングデバイス上で動作可能であってよい。代替実装形態では、特徴は、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他の携帯電話、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティングデバイス上で実装され得る。
【0092】
本明細書は、多くの具体的な実装詳細を含むが、これらは、いかなる発明の、または請求され得るものの範囲に対する限定としても解釈されるべきでなく、特定の発明の特定の実装形態に特有な特徴の記述として解釈されるべきである。別々の実装形態の文脈で本明細書において説明される特定の特徴は、組み合わせて、または単一の実装形態で実践され得る。逆に、単一の実装形態の文脈で説明される様々な特徴は、複数の実装形態で別々に、または任意の適切な部分組合せでも実践され得る。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求される場合もあるが、請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除することができ、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象としてもよい。さらに、特定の見出しに関して記載した特徴は、他の見出しの下で記載した例示的実装形態に関して、および/またはそれらとの組合せで使用されている場合があり、見出しは、与えられている場合、読みやすさのためにのみ含まれているのであって、そのような見出しに関して提供されるいかなる特徴も限定するものと企図されるべきでない。
【0093】
同様に、動作は、特定の順序で図面に示されるが、これは、望ましい結果を達成するために、そのような動作が図示された特定の順序でもしくは順番に行われること、または例示したすべての動作が行われることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上で説明された実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラム構成要素およびシステムは一般に、単一のソフトウェア製品に一緒に組み込まれ得るか、または有形媒体上で具現化される複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0094】
以上、主題の特定の実装形態について記載した。他の実装形態は、以下の特許請求の範囲内である。場合によっては、特許請求の範囲に列挙されるアクションは、異なる順序で実施され、依然として望ましい結果を達成し得る。加えて、添付の図面に示されるプロセスは、望ましい結果を達成するために、必ずしも図示の特定の順序または逐次的な順序を必要とするとは限らない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【0095】
100 コンピューティング環境
102 ネットワーク
104 ユーザデバイス
106 コンテンツプロバイダデバイス
108 コンテンツ管理システム
110 入力/出力デバイス
112 ネットワークインターフェース
118 処理回路
120 プロセッサ
122 メモリ
124 コンテンツ分析回路
126 コンテンツデータベース
150 クエリ処理システム
202 処理回路
204 プロセッサ
206 メモリ
208 モデルトレーニング回路、回路
210 クラスタ生成回路、回路
212 類似度スコアリング回路、回路
214 解釈評価回路、回路
216 初期評価回路、回路
218 最終評価回路、回路
220 データベース
900 ユーザインターフェース
1000 コンピューティングシステム
1002 メインメモリ
1004 読取り専用メモリ(ROM)
1006 記憶デバイス
1008 バス
1010 通信アダプタ
1012 プロセッサ
1014 ディスプレイ、タッチスクリーンディスプレイ
1016 入力デバイス