(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-12
(45)【発行日】2024-12-20
(54)【発明の名称】サードパーティデジタルアシスタントのアクションのためのビットベクトルに基づくコンテンツマッチング
(51)【国際特許分類】
G06F 16/90 20190101AFI20241213BHJP
G06F 16/9035 20190101ALI20241213BHJP
G10L 15/00 20130101ALI20241213BHJP
【FI】
G06F16/90 100
G06F16/9035
G10L15/00 200G
(21)【出願番号】P 2022552218
(86)(22)【出願日】2021-07-19
(86)【国際出願番号】 US2021042231
(87)【国際公開番号】W WO2023003537
(87)【国際公開日】2023-01-26
【審査請求日】2022-10-18
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ダルマディープ・マパラ
【審査官】菊池 智紀
(56)【参考文献】
【文献】特表2002-524806(JP,A)
【文献】米国特許出願公開第2020/0286473(US,A1)
【文献】米国特許第10311372(US,B1)
【文献】国際公開第2021/025731(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/00-40/58
G10L 13/00-15/34
(57)【特許請求の範囲】
【請求項1】
アプリケーション開発者から、音声アシスタント対応アクションを用いて構成されるアプリケーションであって、前記アプリケーションにおいて1つまたは複数のアクションを呼び出すことができるアプリケーションを受信すること、
音声入力に応じて前記アプリケーションが実行するように構成される複数のアクションを特定すること、
複数のサードパーティコンピューティングデバイスによって提供された複数のコンテンツアイテムを特定すること、
機械学習モデルに、前記複数のコンテンツアイテムのそれぞれが提供されたときにどれぐらいうまく働いたかを示す性能データ
、および前記アクションの呼び出しに至った対話の流れを含むトランスクリプトを入力することによって、前記複数のアクションに対応する複数のビットベクトルを生成することであって、前記複数のビットベクトルが、前記複数のアクションの各アクションのための複数の候補コンテンツアイテムを示し、かつ前記トランスクリプト内の各アクションにどの前記候補コンテンツアイテムが関連するかを示す、複数のビットベクトルを生成すること、および
前記アプリケーションのアクションを実行するコンピューティングデバイスのためのコンテンツの要求に応じて、前記アクションに対応する前記複数のビットベクトルに基づいて、前記複数の候補コンテンツアイテムのうちから、前記アプリケーションにおいて呼び出された前記アクションに関連する可能性が最高ランクにあると予測される候補コンテンツアイテムを選択すること
を行うための、メモリおよび1つまたは複数のプロセッサを含むデータ処理システムを含むシステム。
【請求項2】
音声入力に応じて前記アプリケーションが実行するように構成される前記複数のアクションを特定するために前記アプリケーションをクロールするための前記データ処理システムを含む請求項1記載のシステム。
【請求項3】
前記複数のアクションを特定するために前記アプリケーションとの1つまたは複数の会話をシミュレートするための前記データ処理システムを含む請求項1または2に記載のシステム。
【請求項4】
1つまたは複数の対話に従って前記アプリケーションが実行するように構成される前記複数のアクションを含むトランスクリプトを生成するために前記アプリケーションをクロールするための前記データ処理システムであって、
前記トランスクリプトが、前記複数のアクションと前記複数のアクションを呼び出すために使用された前記1つまたは複数の対話とについての情報を記憶する、前記データ処理システムを含む請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記複数のコンテンツアイテムの前記性能データが、1つまたは複数のコンピューティングデバイスを介した前記複数のコンテンツアイテムの各々の以前の提示に応じた前記複数のコンテンツアイテムの各々とのインタラクションの種類を示す請求項1から4のいずれか一項に記載のシステム。
【請求項6】
インタラクションの前記種類が、スキップ、早送り、または提示の継続時間のうちの少なくとも1つを含む請求項5に記載のシステム。
【請求項7】
前記コンピューティングデバイスから前記アクションの呼び出しのインジケーションを受信し、
前記アクションに対応する前記ビットベクトルを取り出すために、前記複数のビットベクトルを記憶するデータリポジトリ内で前記アクションを用いて探索を実行し、
前記アクションのための前記ビットベクトルから、複数の上位ランクの候補コンテンツアイテムを特定し、
前記アクションのための前記ビットベクトルから特定された前記複数の上位ランクの候補コンテンツアイテムから前記コンテンツアイテムを選択する
ための前記データ処理システムを含む請求項1から6のいずれか一項に記載のシステム。
【請求項8】
リアルタイムのコンテンツ選択プロセスによって、前記複数の上位ランクの候補コンテンツアイテムから前記コンテンツアイテムを選択するために、前記アクションを実行する前記コンピューティングデバイスに関連する1つまたは複数の信号を使用するための前記データ処理システムを含む請求項7に記載のシステム。
【請求項9】
前記アクションに応じて選択され、前記コンピューティングデバイスを介して提示された前記コンテンツアイテムとのインタラクションのレベルのインジケーションを受信し、
前記アクションに対応する前記ビットベクトルを更新するために、前記機械学習モデルをインタラクションの前記レベルの前記インジケーションを用いて再訓練する
ための前記データ処理システムを含む請求項1から8のいずれか一項に記載のシステム。
【請求項10】
前記複数のビットベクトルの各々が、最高ランクのコンテンツアイテムに対応する前記複数のコンテンツアイテムのサブセットを記憶する請求項1から9のいずれか一項に記載のシステム。
【請求項11】
メモリおよび1つまたは複数のプロセッサを含むデータ処理システムによって、アプリケーション開発者から、音声アシスタント対応アクションを用いて構成されるアプリケーションであって、1つまたは複数のアクションを呼び出すことができるアプリケーションを受信するステップと、
音声入力に応じて前記アプリケーションが実行するように構成される複数のアクションを前記データ処理システムによって特定するステップと、
複数のサードパーティコンピューティングデバイスによって提供された複数のコンテンツアイテムを前記データ処理システムによって特定するステップと、
機械学習モデルに、前記複数のコンテンツアイテムが提供されたときにどれぐらいうまく働いたかを示す性能データ
、および前記アクションの呼び出しに至った対話の流れを含むトランスクリプトを入力することにより、前記データ処理システムによって、前記複数のアクションに対応する複数のビットベクトルを生成するステップであって、前記複数のビットベクトルが、前記複数のアクションの各アクションのための複数の候補コンテンツアイテムを示し、かつ前記トランスクリプト内の各アクションにどの候補コンテンツアイテムが関連するかを示す、複数のビットベクトルを生成するステップと、
前記アプリケーションのアクションを実行するコンピューティングデバイスのためのコンテンツの要求に応じて前記データ処理システムによって、前記アクションに対応する前記複数のビットベクトルに基づいて、前記複数の候補コンテンツアイテムのうちから、前記アプリケーションにおいて呼び出された前記アクションに関連する可能性が最高ランクにあると予測される候補コンテンツアイテムを選択するステップと
を含む方法。
【請求項12】
音声入力に応じて前記アプリケーションが実行するように構成される前記複数のアクションを特定するために前記データ処理システムによって前記アプリケーションをクロールするステップをさらに含む請求項11に記載の方法。
【請求項13】
前記複数のアクションを特定するために前記アプリケーションとの1つまたは複数の会話を前記データ処理システムによってシミュレートするステップを含む請求項11または12に記載の方法。
【請求項14】
1つまたは複数の対話に従って前記アプリケーションが実行するように構成される前記複数のアクションを含むトランスクリプトを生成するために前記データ処理システムによって前記アプリケーションをクロールするステップであって、前記トランスクリプトが、前記複数のアクションと前記複数のアクションを呼び出すために使用された前記1つまたは複数の対話とについての情報を記憶する、ステップを含む請求項11から13のいずれか一項に記載の方法。
【請求項15】
前記複数のコンテンツアイテムの前記性能データが、1つまたは複数のコンピューティングデバイスを介した前記複数のコンテンツアイテムの各々の以前の提示に応じた前記複数のコンテンツアイテムの各々とのインタラクションの種類を示す請求項11から14のいずれか一項に記載の方法。
【請求項16】
インタラクションの前記種類が、スキップ、早送り、または提示の継続時間のうちの少なくとも1つを含む請求項15に記載の方法。
【請求項17】
前記データ処理システムによって、前記コンピューティングデバイスから前記アクションの呼び出しのインジケーションを受信するステップと、
前記アクションに対応する前記ビットベクトルを取り出すために、前記データ処理システムによって、前記複数のビットベクトルを記憶するデータリポジトリ内で前記アクションを用いて探索を実行するステップと、
前記アクションのための前記ビットベクトルから前記データ処理システムによって、複数の上位ランクの候補コンテンツアイテムを特定するステップと、
前記データ処理システムによって、前記アクションのための前記ビットベクトルから特定された前記複数の上位ランクの候補コンテンツアイテムから前記コンテンツアイテムを選択するステップと
を含む請求項11から16のいずれか一項に記載の方法。
【請求項18】
リアルタイムのコンテンツ選択プロセスによって、前記複数の上位ランクの候補コンテンツアイテムから前記コンテンツアイテムを選択するために、前記データ処理システムによって、前記アクションを実行する前記コンピューティングデバイスに関連する1つまたは複数の信号を使用するステップを含む請求項17に記載の方法。
【請求項19】
前記アクションに応じて選択され、前記コンピューティングデバイスを介して提示された前記コンテンツアイテムとのインタラクションのレベルのインジケーションを前記データ処理システムによって受信するステップと、
前記アクションに対応する前記ビットベクトルを更新するために、前記データ処理システムによって、前記機械学習モデルをインタラクションの前記レベルの前記インジケーションを用いて再訓練するステップと
を含む請求項11から18のいずれか一項に記載の方法。
【請求項20】
前記複数のビットベクトルの各々が、最高ランクのコンテンツアイテムに対応する前記複数のコンテンツアイテムのサブセットを記憶する請求項11から19のいずれか一項に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
コンピューティングデバイスは、アプリケーションを実行することができる。コンピューティングデバイスは、ユーザから問い合わせを受信し、問い合わせを処理し、問い合わせに対する応答を提供することができる。しかし、コンピューティングデバイスの入力または出力インターフェースにおける限られた可用性または機能が原因で、利用可能なインターフェースを介して、効率的に、過剰な入力/出力プロセスなしに、限られた情報を有する問い合わせに対して有用な応答を提供することは困難であり得る。
【発明の概要】
【課題を解決するための手段】
【0002】
本開示は、概して、デジタルアシスタントのアクションのためのビットベクトルに基づくコンテンツマッチングを対象とする。特に、コンピューティングデバイス上で実行されるアプリケーションは、ユーザによって呼び出され得るボイスアクション(voice-action)を用いて構成されることが可能である。この技術的解決策のデータ処理システムは、アプリケーションにおけるボイスアクションの呼び出しを特定し、アプリケーションにおけるアクションのために生成されたビットベクトルを取り出し、ボイスアクションの実行に応じてまたは実行と併せて提供するコンテンツアイテムを選択することができる。
【0003】
たとえば、アプリケーションのサードパーティ開発者によって開発された多数のアシスタントのアクションと、人間のインタラクション中にこれらのアクションが入り得る様々な対話の状態とが原因で、コンテンツアイテム(デジタルコンポーネントオブジェクトまたは補足コンテンツアイテム)をサードパーティによって開発されたアシスタントのアクションに効率的で正確にマッチングすることは困難であり得る。ユーザがアクションによって会話を始めるまでアクションの応答が明らかにされない場合があり、ユーザの発話に基づいてアクションが取り得る多くの異なる道筋が存在するので、コンテンツアイテムを効率的で正確にマッチングすることは困難であり得る。さらに、コンテンツアイテムとマッチングするためにアクションから関連する信号を生成することが困難であるため、コンテンツアイテムを効率的で正確にマッチングすることは困難であり得る。
【0004】
この技術的解決策のシステムおよび方法は、デジタルアシスタントのアクションのためのビットベクトルに基づくコンテンツマッチングを提供する。たとえば、この技術的解決策のデータ処理システムは、デジタルアシスタントに基づくアプリケーションとの会話をシミュレートすることができるアクションクローラを含み得る。アクションクローラは、サードパーティアクションにおける様々な会話の道筋をクロールする(crawl)ことができる。データ処理システムは、アクションクローラの出力を取得し、出力を機械学習モデルに供給して埋め込みを抽出することができる。データ処理システムは、この埋め込みを使用して、最も近く一致するコンテンツアイテムを取り出すことができる。データ処理システムは、アクションクローラの出力に対してコンテンツアイテムを採点することができる。データ処理システムは、関連するコンテンツアイテムを含む、アクションのためのビットベクトルを生成することができる。データ処理システムは、その後、コンテンツの要求または対応するアクションの呼び出しに応じてリアルタイムのコンテンツ選択を実行するためにビットベクトルを取り出すことができる。
【0005】
少なくとも1つの態様は、メモリおよび1つまたは複数のプロセッサを有するデータ処理システムを含むシステムを対象とする。データ処理システムは、アプリケーション開発者から、音声アシスタント対応アクションを用いて構成されるアプリケーションを受信することができる。データ処理システムは、アプリケーションが音声入力に応じて実行するように構成されるアクションを特定することができる。データ処理システムは、コンピューティングデバイスのサードパーティによって提供されたコンテンツアイテムを特定することができる。データ処理システムは、機械学習モデルおよびコンテンツアイテムの性能データによって、アクションに対応するビットベクトルを生成することができる。ビットベクトルは、アクションのうちの各アクションのための候補コンテンツアイテムを示し得る。データ処理システムは、アプリケーションのアクションを実行するコンピューティングデバイスのためのコンテンツの要求に応じて、アクションに対応するビットベクトルのうちのビットベクトルに基づいてコンテンツアイテムを選択することができる。
【0006】
少なくとも1つの態様は、メモリおよび1つまたは複数のプロセッサを有するデータ処理システムによって実行される方法を対象とする。方法は、データ処理システムが、アプリケーション開発者から、音声アシスタント対応アクションを用いて構成されるアプリケーションを受信するステップを含み得る。方法は、データ処理システムが、アプリケーションが音声入力に応じて実行するように構成されるアクションを特定するステップを含み得る。方法は、データ処理システムが、コンピューティングデバイスのサードパーティによって提供されたコンテンツアイテムを特定するステップを含み得る。方法は、データ処理システムが、機械学習モデルおよびコンテンツアイテムの性能データによって、アクションに対応するビットベクトルを生成するステップを含み得る。ビットベクトルは、アクションのうちの各アクションのための候補コンテンツアイテムを示し得る。方法は、データ処理システムが、アプリケーションのアクションを実行するコンピューティングデバイスのためのコンテンツの要求に応じて、アクションに対応するビットベクトルのうちのビットベクトルに基づいてコンテンツアイテムを選択するステップを含み得る。
【0007】
これらのおよびその他の態様および実装が、下で詳細に検討される。上述の情報および下の詳細な説明は、様々な態様および実装の説明のための例を含み、主張される態様および実装の本質および特徴を理解するための概要または枠組みを提供する。図面は、様々な態様および実装を例示し、さらに理解させ、本明細書の一部に組み込まれ、本明細書の一部を構成する。
【0008】
添付の図面は、正しい縮尺で描かれるように意図されていない。様々な図面における同様の参照番号および参照指示は、同様の要素を示す。明瞭にする目的で、あらゆる図面においてあらゆるコンポーネントがラベル付けされるとは限らない可能性がある。
【図面の簡単な説明】
【0009】
【
図1】実装による、サードパーティデジタルアシスタントのアクションのためのベクトルに基づくコンテンツマッチングのための例示的なシステムの図である。
【
図2】実装による、サードパーティデジタルアシスタントのアクションのためのコンテンツマッチングのためのビットベクトルを生成するための例示的な方法の図である。
【
図3】実装による、サードパーティデジタルアシスタントのアクションの呼び出しに応じてビットベクトルを使用してコンテンツを選択するための例示的な方法の図である。
【
図4】たとえば、
図1に示されるシステムおよび
図2および
図3に示される方法を含む、本明細書において説明され、図示されるシステムおよび方法の要素を実装するために使用され得るコンピュータシステムのためのアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0010】
以下は、サードパーティデジタルアシスタントのアクションのためのベクトルに基づくコンテンツマッチングの方法、装置、およびシステムに関連する様々な概念ならびにそれらの方法、装置、およびシステムの実装のより詳細な説明である。上で導入され、下でより詳細に検討される様々な概念は、多数の方法のいずれかで実装されてよい。
【0011】
この技術的解決策は、概して、サードパーティデジタルアシスタントのアクションのためのビットベクトルに基づくコンテンツマッチングを対象とする。アプリケーション開発者は、コンピューティングデバイスにインストールし、実行するためのアプリケーションを開発し得る。アプリケーション開発者は、コンピューティングデバイスのプロバイダ、所有者、または製造者とは独立したまたは別のエンティティ(entity)であるため、サードパーティアプリケーション開発者と呼ばれ得る。アプリケーション開発者は、アプリケーションをデータ処理システムまたはクラウドコンピューティングシステムもしくは環境に提供することができる。たとえば、アプリケーション開発者は、オンラインマーケットプレイスやアプリケーションストアにアプリケーションを提供することができる。コンピューティングデバイスは、オンラインアプリケーションストアまたはマーケットプレイスからアプリケーションをダウンロードすることができる。
【0012】
アプリケーションは、デジタルアシスタントのアクションを含み得る。アプリケーションは、ボイスアクションを含み得る。アプリケーションは、コンピューティングデバイス上で実行されるデジタルアシスタントとインターフェースを取ることができる。アプリケーションは、会話型ユーザインターフェースを提供するためにボイスアクションを用いて構成され得る。たとえば、コンピューティングデバイスのユーザは、会話型インターフェースを介してアプリケーションとインターフェースを取ることができる。会話型インターフェースは、アプリケーションとの音声に基づく対話を行うことを指し得るかまたは含み得る。対話中、ユーザは、アプリケーションにおいて1つまたは複数のボイスアクションを呼び出すことができる。
【0013】
説明のための例において、アプリケーションは、テーマパークのためのものであることが可能である。アプリケーションは、アニメのキャラクターなどの、テーマパークに関連する様々なキャラクターへの参照を含み得る。アプリケーションは、マルチメディアコンテンツ、ビデオ、ムービー、ショー、音楽、歌、物語、詩、またはその他のコンテンツなどの、キャラクターに関連する様々なコンテンツを提供することができる。アプリケーションは、音声コンテンツの呼び出しに応じて、エンターテインメントに関連するコンテンツを提供することができる。
【0014】
しかし、音声に基づくアクションが呼び出されるとき、音声に基づくアクションの実行と並行してまたは実行とともに提供するために、補足コンテンツプロバイダによって提供される補足コンテンツアイテムを特定または選択することは困難であり得る。たとえば、コンテンツセレクタコンポーネントは、特定のボイスアクションの呼び出しにつながった対話の道筋(dialog path)または会話の道筋(conversational path)を認識しない場合がある。コンテンツセレクタは、ボイスアクションを呼び出した発話に至った会話の分岐(conversational branch)を意識しない場合がある。これは、アプリケーションからのボイスアクションに対する応答が、会話または対話の流れに関連する1つまたは複数の以前の分岐を考慮に入れることができるという点で、ボイスアクションがウェブページとは異なるからである可能性がある。コンテンツセレクタは、それらの以前の分岐または以前の分岐に関連する情報にアクセスすることができない場合がある。コンテンツセレクタは、最小限のまたは不十分な情報しか持っていない場合がある。コンテンツセレクタは、会話の流れの中の前の分岐にアクセスすることができない場合があるので、ボイスアクション自体に基づいてコンテンツアイテムを選択しようと試みる場合がある。したがって、コンテンツセレクタは、無関係なコンテンツアイテムを選択する場合があり、またはコンテンツアイテムを選択しようと試みるが、精度が低いかもしくは関連性スコア(relevancy score)が低い、リソースを大量に消費する選択プロセスを実行する場合がある。これは、無駄なリソース消費、または誤ったもしくは不正確なコンテンツアイテムの選択をもたらし得る。不正確なまたは無関係なコンテンツアイテムを提供することは、複数の追加のコンテンツアイテムが選択され、ネットワークを介してコンピューティングデバイスに送信される場合があるので、過剰なリモートプロシージャコールまたはネットワーク帯域幅の利用を引き起こし得る。さらに、不正確なまたは無関係なコンテンツアイテムをコンピューティングデバイスに提供することは、芳しくないユーザエクスペリエンスを引き起こし得る。コンテンツアイテムは、ユーザがコンテンツアイテムとインタラクションしないまたは関わり合わ
ない可能性があるという点で、コンピューティングデバイス上でうまく働かない場合がある。場合によっては、ユーザは、不正確なコンテンツアイテムをスキップまたは早送りし、それによって、正確なまたは関連するコンテンツアイテムの提示と比較して、コンピューティングデバイスとの追加の入力またはインタラクションをユーザに提供させる可能性がある。
【0015】
これらのおよびその他の技術的課題および問題に対処するために、この技術的解決策は、ビットベクトルを生成および使用して、コンピューティングデバイス上で実行されるサードパーティアプリケーションにおいて呼び出されるサードパーティボイスアクションにコンテンツアイテムをマッチングすることができる。そのようにするために、この技術的解決策のデータ処理システムは、アプリケーション開発者からアプリケーションを受け取ることができる。データ処理システムは、アクションに関してアプリケーションをクロールすることができる。データ処理システムは、会話または対話の流れの中の様々な分岐と、各分岐において呼び出され得る対応するアクションとを特定するためにアプリケーションとの会話をシミュレートすることができる。アプリケーション内の同じボイスアクションテーマ(voice action theme)が、アプリケーションにおける複数の対話の流れによって呼び出されることが可能であり、これは、ボイスアクションに対する異なる応答をもたらし得る。たとえば、対話の流れは、「Character_Aと話す」を含むことが可能であり、これは、以下の3つの分岐、すなわち、1)ゲームをプレーする、2)物語を読む、または3)歌を歌うに分岐し得る。これらの分岐の各々は、異なるボイスアクションに対応し得る。
【0016】
データ処理システムは、様々な対話の流れおよび対応するボイスアクションを特定し、トランスクリプト(transcript)を生成するためにアプリケーションをクロールすることができる。トランスクリプトは、ボイスアクションとボイスアクションに至った対話の流れとを含み得るか、または呼び出しボイスアクションを引き起こし得る。トランスクリプトは、ウェブ参照(web reference)(「webref」)エンティティ、内部分類情報、または垂直分類(vertical classification)を含み得る。データ処理システムは、広告主などの補足コンテンツプロバイダによって提供される補足コンテンツアイテムを受信することができる。データ処理システムは、トランスクリプトをコンテンツアイテムと一緒に深層学習モデルに入力して、ビットベクトルを生成することができる。ビットベクトルは、各ボイスアクションに関して生成され得る。ビットベクトルは、各ボイスアクションに関して、深層学習モデルによってボイスアクションに関連するとみなされる候補コンテンツアイテムを示し得る。深層学習モデルは、多層クロスアテンションモデル(multi-layer cross attention model)を含み得る。訓練データは、ボイスアクションによって提示されたときのコンテンツアイテムの性能を含み得る。性能は、特定のボイスアクションによってコンテンツアイテムが提示されたときにユーザがそのコンテンツアイテムをスキップしたかどうか、またはコンテンツアイテムが継続時間の間再生されたときにユーザがコンテンツアイテム全体を知覚、閲覧、または聴取したかどうかを含み得る。ビットベクトルは、深層学習モデルへのすべての入力を簡潔な表現を提供し得る。データ処理システムは、ボイスアクションに関してコンテンツアイテムをマッチングし、採点することができる。
【0017】
データ処理システムは、ビットベクトルをコンテンツセレクタに提供することができる。ビットベクトルを記憶することは、ボイスアクションに関する対話のトランスクリプトを個別に記憶し、コンテンツアイテムを個別に記憶するよりも効率的であることが可能である。たとえば、ビットベクトルは、データ処理システムのデータリポジトリにおいて、より少ないメモリまたはストレージを消費する可能性がある。別の例においては、トランスクリプトに関してコンテンツアイテムのより大きな集合を採点するのとは対照的に、リアルタイムのコンテンツ選択プロセス中にボイスアクションのための候補コンテンツアイテムを特定するためにビットベクトル内の探索を実行することがより効率的である場合がある。コンテンツセレクタは、コンテンツ提供時間中にビットベクトルを使用して、コンテンツの要求に応じて、またはボイスアクションの呼び出しに応じて、リアルタイムのコンテンツ選択を実行することができる。
【0018】
場合によっては、データ処理システムは、最も関連性の高いコンテンツアイテムをボイスアクションとマッチングするために、コンテンツアイテムの各グループに関してコンテンツアイテムビットベクトルを別々に生成することができる。そのようにするために、データ処理システムは、k次元木(k-dimensional tree)またはデータ構造の組合せを使用し得る。
【0019】
コンピューティングデバイス上でサードパーティアプリケーションを実行すると、ユーザは、対話の流れまたは会話によってアプリケーションにおいてボイスアクションを呼び出すことができる。データ処理システムは、ボイスアクションのインジケーションを受信し得る。データ処理システムは、候補コンテンツアイテムの対応する集合を特定するために、ビットベクトルデータリポジトリ内でボイスアクションを用いて探索を実行することができる。データ処理システムは、ビットベクトルから上位ランクの候補コンテンツアイテムを取り出すことができる。データ処理システムは、最高スコアのコンテンツアイテムを選択するために、コンピューティングデバイスまたはその電子アカウントに関連する追加の信号を使用して、上位ランクの候補コンテンツアイテムを採点することができる。そして、データ処理システムは、最高スコアのコンテンツアイテムを、提示するためにコンピューティングデバイスに提供することができる。すべての利用可能なコンテンツアイテムではなく、上位ランクの候補コンテンツアイテムを採点することによって、データ処理システムは、選択するコンテンツアイテムの精度または関連性を犠牲にすることなく計算リソースの利用を削減することができる。
【0020】
コンテンツアイテムを提示すると、データ処理システムは、性能情報を受信することができる。性能情報は、たとえば、ユーザがコンテンツアイテムをスキップしたかどうか、ユーザがコンテンツアイテムをどのくらいの時間聴いたか、またはユーザがコンテンツアイテムの全継続時間を聴いたかどうかを含み得る。たとえば、コンテンツアイテムが15秒間のオーディオ出力を含み、ユーザが3秒後にオーディオ出力をスキップした場合、データ処理システムは、コンテンツアイテムがうまく働かなかったと判定し得る。ユーザがコンテンツアイテムの全15秒の継続時間を聴いた場合、データ処理システムは、コンテンツアイテムがボイスアクションに関してうまく働いたと判定し得る。データ処理システムは、コンテンツアイテムの性能に基づいて、ビットベクトルを生成するために使用される深層学習モデルを更新することができる。データ処理システムは、モデルを再訓練するかまたはそれ以外の方法で更新すると決定し得る。データ処理システムは、受信された性能フィードバックに基づいて、ビットベクトルを再生成するかまたは更新すると決定し得る。
【0021】
図1は、実装による、サードパーティデジタルアシスタントのアクションのためのベクトルに基づくコンテンツマッチングのための例示的なシステム100を示す。システム100は、コンテンツ選択インフラストラクチャを含み得る。システム100は、データ処理システム102を含み得る。データ処理システム102は、ネットワーク105を介して、クライアントコンピューティングデバイス136または補足デジタルコンテンツプロバイダデバイス132のうちの1つまたは複数と通信することができる。ネットワーク105は、インターネット、ローカルエリアネットワーク、広域ネットワーク、メトロエリアネットワーク、またはその他のエリアネットワークなどのコンピュータネットワーク、イントラネット、衛星ネットワーク、および音声またはデータモバイル電話ネットワークなどのその他の通信ネットワークを含み得る。ネットワーク105は、クライアンコンピューティングデバイス136上で提供されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために使用され得る。
【0022】
ネットワーク105は、表示ネットワーク(display network)、たとえば、コンテンツ配置または検索エンジン結果システムに関連付けられるか、またはサードパーティデジタルコンポーネントをデジタルコンポーネント配置キャンペーン(digital component placement campaign)の一部として含むのにふさわしいインターネット上で利用可能な情報リソースのサブセットを含むかまたは成すことが可能である。ネットワーク105は、クライアントコンピューティングデバイス136によって提供されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするためにデータ処理システム102によって使用され得る。たとえば、ネットワーク105を介して、クライアントコンピューティングデバイス136のユーザは、補足デジタルコンテンツプロバイダデバイス132によって提供される情報またはデータにアクセスすることができる。
【0023】
ネットワーク105は、任意の種類または形態のネットワークであってよく、以下、すなわち、ポイントツーポイントネットワーク、ブロードキャストネットワーク、広域ネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ: Synchronous Digital Hierarchy)ネットワーク、ワイヤレスネットワーク、および有線ネットワークのいずれかを含んでよい。ネットワーク105は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含んでよい。ネットワーク105のトポロジーは、バス型、スター型、またはリング型ネットワークトポロジーを含んでよい。ネットワークは、アドバンストモバイル電話プロトコル(「AMPS: advanced mobile phone protocol」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA」)、移動体通信用グローバルシステム(「GSM: global system for mobile communication」)、汎用パケット無線サービス(「GPRS: general packet radio services」)、またはユニバーサル移動体通信システム(「UMTS: universal mobile telecommunications system」)を含むモバイルデバイスの間で通信するために使用される任意の1つのプロトコルまたは複数のプロトコルを使用するモバイル電話ネットワークを含んでよい。異なる種類のデータが、異なるプロトコルによって送信される場合があり、または同じ種類のデータが、異なるプロトコルによって送信される場合がある。
【0024】
クライアントコンピューティングデバイス136は、たとえば、ラップトップ、デスクトップ、タブレット、デジタルアシスタントデバイス、スマートフォン、モバイル電気通信デバイス、ポータブルコンピュータ、スマートウォッチ、ウェアラブルデバイス、ヘッドセット、スピーカ、テレビ、スマートディスプレイ、または自動車ユニットを含み得る。たとえば、ネットワーク105を介して、クライアントコンピューティングデバイス136のユーザは、補足デジタルコンテンツプロバイダデバイス132によって提供される情報またはデータにアクセスすることができる。場合によっては、クライアントコンピューティングデバイス136は、ディスプレイを含む可能性があり、または含まない可能性があり、たとえば、コンピューティングデバイスは、マイクロフォンおよびスピーカなどの限られた種類のユーザインターフェースを含む可能性がある。場合によっては、クライアントコンピューティングデバイス136の主なユーザインターフェースは、マイクロフォンおよびスピーカ、または音声インターフェースである可能性がある。場合によっては、クライアントコンピューティングデバイス136は、クライアントコンピューティングデバイス136に結合されたディスプレイデバイスを含み、クライアントコンピューティングデバイス136の主なユーザインターフェースは、ディスプレイデバイスを利用することができる。
【0025】
クライアントコンピューティングデバイス136は、少なくとも1つの入力デバイス138を含み得る。入力デバイス138は、少なくとも1つのマイクロフォンを含み得る。入力デバイス138は、ユーザからの音声入力などの音波を検出し、音波をクライアントコンピューティングデバイス136によって処理され得る別のフォーマットに変換するように構成されたトランスデューサまたはその他のハードウェアを含み得る。たとえば、入力デバイス138は、音波を検出し、音波をアナログまたはデジタル信号に変換することができる。クライアントコンピューティングデバイス136は、ハードウェアまたはソフトウェアを使用して、アナログまたはデジタル信号を、音声入力またはその他の検出されたオーディオ入力に対応するデータパケットに変換することができる。クライアントコンピューティングデバイス136は、さらなる処理のために、音声入力を有するデータパケットをデータ処理システム102に送信することができる。入力デバイス138は、タッチ入力デバイス、キーボード、マウス、ジェスチャ入力、センサー入力、またはその他の種類の入力インターフェースを含み得る。
【0026】
クライアントコンピューティングデバイス136は、少なくとも1つの出力デバイス140を含み得る。出力デバイス140は、スピーカを含み得る。出力デバイス140は、オーディオまたは音を出力することができる。出力デバイス140は、オーディオ出力を生成するためにオーディオドライバによって駆動され得る。出力デバイス140は、データ処理システム102によって生成され、出力のためにクライアントコンピューティングデバイス136に提供されるスピーチまたはその他のオーディオを出力することができる。たとえば、ユーザは、クライアントコンピューティングデバイス136の入力デバイス138および出力デバイス140を介して、デジタルアシスタント108と会話を行うことができる。
【0027】
場合によっては、クライアントコンピューティングデバイス136は、NLP 106、デジタルアシスタント108、インターフェース104、またはデータリポジトリ120などの、データ処理システム102の1つまたは複数のコンポーネントまたは機能を含み得る。たとえば、クライアントコンピューティングデバイス136は、サーバデジタルアシスタント108またはNLP 106の1つまたは複数のコンポーネントまたは機能を有するローカルデジタルアシスタント144またはデジタルアシスタントエージェントを含み得る。クライアントコンピューティングデバイス136は、アプリケーション、コンテンツデータ、アカウント情報、またはプロファイル情報のうちの1つまたは複数を記憶するデータリポジトリ、メモリ、またはストレージデバイスを含み得る。クライアントコンピューティングデバイス136は、
図4に示されるコンピューティングシステム400の1つまたは複数のコンポーネントまたは機能を含み得る。
【0028】
システム100は、少なくとも1つのデータ処理システム102を含み得る。データ処理システム102は、たとえば、コンピューティングデバイス136、補足デジタルコンテンツプロバイダデバイス132(もしくはサードパーティコンテンツプロバイダデバイス、コンテンツプロバイダデバイス)、またはアプリケーション開発者デバイス134とネットワーク105を介して通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。データ処理システム102は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、データ処理システム102は、少なくとも1つのデータセンターに置かれた複数の計算リソースまたはサーバを含み得る。データ処理システム102は、複数の論理的にグループ分けされたサーバを含み、分散型コンピューティング技術を促進することができる。サーバの論理的グループは、データセンター、サーバファーム、またはマシンファームと呼ばれる場合がある。また、サーバは、地理的に散らされ得る。データセンターまたはマシンファームは、単一のエンティティとして管理される場合があり、またはマシンファームは、複数のマシンファームを含むことが可能である。各マシンファーム内のサーバは、異種であることができる--サーバまたはマシンのうちの1つまたは複数が、1つまたは複数の種類のオペレーティングシステムプラットフォームによって動作することができる。
【0029】
マシンファーム内のサーバは、関連するストレージシステムと一緒に高密度ラックシステムに収容され、エンタープライズデータセンターに置かれ得る。たとえば、このようにしてサーバをまとめることは、サーバおよび高性能ストレージシステムを局所的な高性能ネットワーク上に置くことによってシステムの管理の容易性、データセキュリティ、システムの物理的セキュリティ、およびシステムの性能を改善する可能性がある。サーバおよびストレージシステムを含み、それらを高度なシステム管理ツールに結合するデータ処理システム102のコンポーネントのすべてまたは一部の集中化は、電力および処理の要件を下げ、帯域幅の使用を削減する、サーバリソースのより効率的な使用を可能にする。
【0030】
システム100は、補足デジタルコンテンツプロバイダデバイス132、サービスプロバイダデバイス、またはアプリケーション開発者デバイス134などの少なくとも1つのサードパーティデバイスを含むか、そのようなサードパーティデバイスにアクセスするか、またはそうでなければそのようなサードパーティデバイスとインタラクションすることができる。補足デジタルコンテンツプロバイダデバイス132は、たとえば、クライアントコンピューティングデバイス136またはデータ処理システム102とネットワーク105を介して通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。
【0031】
補足デジタルコンテンツプロバイダデバイス132は、データ処理システム102が提示するためにクライアントコンピューティングデバイス136に提供するために、データ処理システム102にコンテンツアイテムを提供することができる。コンテンツアイテムは、ビジュアルコンテンツ、オーディオコンテンツ、テキストベースのコンテンツ、マルチメディアコンテンツ、またはその他の種類のコンテンツを含み得る。コンテンツアイテムは、オーディオ出力デジタルコンポーネントとしてクライアントコンピューティングデバイス136によって提示するためのオーディオに基づくデジタルコンポーネントを含み得る。広告主によって提供される広告など、デジタルコンポーネントは、サードパーティスポンサーによって提供されるので、スポンサー付きデジタルコンポーネントと呼ばれ得る。デジタルコンポーネントは、「タクシーを呼びましょうか。」と述べる音声に基づくメッセージなどの、物またはサービスの申し出を含み得る。たとえば、補足デジタルコンテンツプロバイダデバイス132は、音声に基づく問い合わせに応じて提供され得る一連のオーディオデジタルコンポーネントを記憶するためのメモリを含み得る。補足デジタルコンテンツプロバイダデバイス132は、オーディオに基づくデジタルコンポーネント(またはその他のデジタルコンポーネント)をデータ処理システム102に提供することもでき、データ処理システム102において、それらのオーディオに基づくデジタルコンポーネント(またはその他のデジタルコンポーネント)は、データ処理システム102のデータリポジトリに記憶され得る。データ処理システム102は、オーディオデジタルコンポーネントを選択し、オーディオデジタルコンポーネントをクライアントコンピューティングデバイス136に提供する(または提供するように補足デジタルコンテンツプロバイダデバイス132に命令する)ことができる。オーディオに基づくデジタルコンポーネントは、オーディオのみであることが可能であり、またはテキスト、画像、もしくはビデオデータと組み合わされることが可能である。コンテンツアイテムは、オーディオまたはビデオの長さなどの継続時間を持ち得る。コンテンツアイテムは、クライアントコンピューティングデバイス136を介して提示されるとき、コンテンツアイテムとのインタラクションまたは関わり合いを可能にするユーザインターフェース要素とともに提示され得る。たとえば、ユーザインターフェース要素は、クライアントコンピューティングデバイス136にコンテンツアイテムの提示または再生を一時停止させる、コンテンツアイテムの再生をスキップさせる、コンテンツアイテムを早送りさせる、コンテンツアイテムを巻き戻させる、コンテンツアイテムを閉じさせるかもしくは隠させる、コンテンツアイテムと関わり合わせる、またはコンテンツアイテムとその他の方法でインタラクションさせる入力またはコマンドを可能にすることができる。インタラクションの種類は、コンテンツアイテムに関連する性能を示し得る。たとえば、コンテンツアイテムを巻き戻すことまたは再生することが、肯定的な性能を示し得る一方、コンテンツアイテムをスキップすることまたはコンテンツアイテムを早送りすることは、否定的な性能を示し得る。
【0032】
データ処理システム102は、少なくとも1つの計算リソースまたはサーバを有するコンテンツ配置システムを含み得る。データ処理システム102は、インターフェース104を含むか、またはそうでなければ少なくとも1つのインターフェース104と通信することができる。データ処理システム102は、少なくとも1つの自然言語プロセッサ106(もしくは自然言語プロセッサコンポーネント)を含むか、そのような自然言語プロセッサ106(もしくは自然言語プロセッサコンポーネント)とインターフェースを取るか、またはそうでなければそのような自然言語プロセッサ106(もしくは自然言語プロセッサコンポーネント)と通信することができる。インターフェース104または自然言語プロセッサ106は、サーバデジタルアシスタント108を形成するかまたはサーバデジタルアシスタント108と呼ばれ得る。データ処理システム102は、少なくとも1つのサーバデジタルアシスタント108(もしくはサーバデジタルアシスタントコンポーネント)を含むか、そのようなサーバデジタルアシスタント108(もしくはサーバデジタルアシスタントコンポーネント)とインターフェースを取るか、またはそうでなければそのようなサーバデジタルアシスタント108(もしくはサーバデジタルアシスタントコンポーネント)と通信することができる。サーバデジタルアシスタント108は、データを提供するか、またはデータを受信するか、またはその他の機能を実行するために、1つもしくは複数の音声に基づくインターフェースまたは様々なデジタルアシスタントデバイスもしくはサーフェス(surface)と通信するかまたはインターフェースを取ることができる。データ処理システム102は、少なくとも1つのアクションクローラ110(アクションクローラコンポーネント)を含み得る。データ処理システム102は、少なくとも1つの埋め込みエクストラクタ(embedding extractor)112(埋め込みエクストラクタコンポーネント)を含み得る。データ処理システム102は、少なくとも1つのコンテンツセレクタ114(またはコンテンツセレクタコンポーネント)を含み得る。コンテンツセレクタ114は、少なくとも1つのコンテンツリトリーバ(content retriever)116(またはコンテンツリトリーバコンポーネント)を含み得る。コンテンツセレクタ114は、少なくとも1つのコンテンツスコアラ118(またはコンテンツスコアラコンポーネント)を含み得る。データ処理システム102は、少なくとも1つのデータリポジトリ120を含み得る。データリポジトリ120は、アプリケーション122を記憶することができる。アプリケーション122は、アプリケーション開発者デバイス134によって提供されたアプリケーションについての情報、アプリケーションのメタデータ、またはアプリケーションの実行可能コードもしくはソースコード、またはアプリケーションパッケージファイルを含み得る。データリポジトリ120は、アプリケーション122に関連し、アクションクローラ110によって生成されたボイスアクションおよび対話に関するトランスクリプト124を記憶することができる。データリポジトリ120は、補足デジタルコンテンツプロバイダデバイス132によって提供された、またはコンテンツセレクタ114によって生成されたコンテンツアイテム、コンテンツアイテムの性能、コンテンツアイテムについての情報、コンテンツアイテムのメタデータ、またはコンテンツアイテムについてのその他の情報などのコンテンツデータ126を記憶することができる。データリポジトリ120は、ビットベクトルを生成するために埋め込みエクストラクタ112によって生成または使用される深層学習モデルまたはその他の機械学習モデルなどのモデル128を含み得る。データリポジトリ120は、アプリケーションのボイスアクションのために埋め込みエクストラクタ112によって生成されたビットベクトル130を含み得る。
【0033】
データ処理システム102、インターフェース104、NLP 106、サーバデジタルアシスタントコンポーネント108、アクションクローラ110、埋め込みエクストラクタ112、コンテンツセレクタ114、コンテンツリトリーバ116、およびコンテンツスコアラ118は、それぞれ、データ処理システム102のデータリポジトリまたはデータベースと通信するように構成された少なくとも1つの処理ユニット、またはプログラミング可能な論理アレイエンジンなどのその他の論理デバイス、またはモジュールを含み得る。インターフェース104、NLP 106、サーバデジタルアシスタントコンポーネント108、アクションクローラ110、埋め込みエクストラクタ112、コンテンツセレクタ114、コンテンツリトリーバ116、およびコンテンツスコアラ118は、別々のコンポーネント、単一のコンポーネント、またはデータ処理システム102の一部であることが可能である。システム100およびデータ処理システム102などのそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含み得る。
【0034】
データ処理システム102は、複数のコンピューティングデバイス136(またはコンピューティングデバイスもしくはデジタルアシスタントデバイス)に関連する匿名のコンピュータネットワーク活動情報を取得することができる。クライアントコンピューティングデバイス136またはモバイルコンピューティングデバイスのユーザは、クライアントコンピューティングデバイス136またはモバイルコンピューティングデバイスに対応するネットワーク活動情報を取得することをデータ処理システム102に肯定的に認可することが可能である。たとえば、データ処理システム102は、1つまたは複数の種類のネットワーク活動情報を取得することに同意するようにクライアントコンピューティングデバイス136のユーザに促すことができる。クライアントコンピューティングデバイス136のユーザのアイデンティティ(identity)は、匿名のままであることができ、クライアントコンピューティングデバイス136は、一意識別子(たとえば、データ処理システムまたはコンピューティングデバイスのユーザによって提供されるユーザまたはコンピューティングデバイスの一意識別子)に関連付けられ得る。データ処理システム102は、各観測値(observation)を対応する一意識別子と関連付けることができる。
【0035】
データ処理システム102は、たとえば、データパケットを使用して情報を受信および送信するように設計されたか、構成されたか、構築されたか、または動作可能であるインターフェース104(またはインターフェースコンポーネント)を含み得る。インターフェース104は、ネットワークプロトコルなどの1つまたは複数のプロトコルを使用して情報を受信および送信することができる。インターフェース104は、ハードウェアインターフェース、ソフトウェアインターフェース、有線インターフェース、またはワイヤレスインターフェースを含むことができる。インターフェース104は、あるフォーマットから別のフォーマットにデータを変換するかまたはフォーマットすることを容易にすることができる。たとえば、インターフェース104は、ソフトウェアコンポーネントなどの様々なコンポーネントの間で通信するための定義を含むアプリケーションプログラミングインターフェースを含むことができる。インターフェース104は、ネットワーク105を介してクライアントコンピューティングデバイス136、補足デジタルコンテンツプロバイダデバイス132、またはアプリケーション開発者デバイス134のうちの1つまたは複数と通信することができる。
【0036】
データ処理システム102は、入力オーディオ信号をデータ処理システム102のインターフェース104に伝達し、ビジュアルまたはオーディオ信号をレンダリング、提示、またはそれ以外の方法で出力するようにクライアントコンピューティングデバイス136のコンポーネントを駆動するために、アプリケーション142またはローカルデジタルアシスタント144などの、クライアントコンピューティングデバイス136にインストールされたアプリケーション、スクリプト、またはプログラムとインターフェースを取ることができる。データ処理システム102は、オーディオ入力信号を含むかまたは特定するデータパケットまたはその他の信号をアプリケーション142またはローカルデジタルアシスタント144から受信することができる。
【0037】
データ処理システム102は、自然言語プロセッサ(「NLP」)106を含み得る。たとえば、データ処理システム102は、受信された入力オーディオ信号または問い合わせを解析するためにNLP 106を実行するかまたは走らせることができる。たとえば、NLP 106は、人とコンピュータとの間のインタラクションを提供することができる。NLP 106は、自然言語を理解し、データ処理システム102が人間のまたは自然言語入力から意味を導出することを可能にするための技術を用いて構成され得る。NLP 106は、統計的機械学習などの機械学習に基づく技術を含むかまたはそのような技術を用いて構成され得る。NLP 106は、入力オーディオ信号を解析するために決定木、統計モデル、または確率モデルを利用することができる。NLP 106は、たとえば、固有表現(named entity)認識(たとえば、テキストのストリームが与えられたものとして、テキスト内のどのアイテムが人または場所などの適切な名前にマッピングされるか、およびそれぞれのそのような名前の種類が人、場所、または組織などのどれであるのかを決定すること)、自然言語生成(たとえば、コンピュータデータベースからの情報または意味的意図(semantic intent)を理解可能な人間の言語に変換すること)、自然言語理解(たとえば、テキストをコンピュータモジュールが操作することができる一階論理構造などのより整然とした表現に変換すること)、機械翻訳(たとえば、テキストをある人間の言語から別の人間の言語に自動的に翻訳すること)、形態素分割(たとえば、考慮されている言語の言葉の形態または構造の複雑さに基づいて困難であり得る、単語を個々の形態素に分け、形態素のクラスを特定すること)、質問応答(たとえば、特定的であるかまたは自由であることが可能である人間の言語の質問に対する答えを決定すること)、意味処理(たとえば、特定された単語を同様の意味を有するその他の単語に関連付けるために、単語を特定し、その単語の意味を符号化した後に行われる得る処理をすること)などの機能を実行することができる。
【0038】
NLP 106は、入力信号をオーディオ波形の記憶された、代表的な集合と比較し、最も近い一致を選択することによってオーディオ入力信号を認識されたテキストに変換することができる。オーディオ波形の集合は、データ処理システム102がアクセス可能なデータリポジトリまたはその他のデータベースに記憶され得る。代表的な波形が、ユーザの大きな集合全体で生成され、それから、ユーザからのスピーチサンプルによって増強される場合がある。オーディオ信号が認識されたテキストに変換された後、NLP 106は、たとえば、ユーザ全体にわたって訓練することによってまたは手動で指定することによって、データ処理システム102が提供することができるアクションと関連付けられる単語にテキストをマッチングする。NLP 106の態様または機能は、データ処理システム102またはクライアントコンピューティングデバイス136によって実行され得る。たとえば、NLPコンポーネントは、入力オーディオ信号をテキストに変換し、さらなる自然言語処理のためにテキストをデータパケットによってデータ処理システム102に送信する態様を実行するために、クライアントコンピューティングデバイス136上で実行され得る。
【0039】
オーディオ入力信号は、クライアントコンピューティングデバイス136の入力デバイス138(たとえば、マイクロフォン、センサー、トランスデューサ)によって検出され得る。トランスデューサ、オーディオドライバ、またはその他のコンポーネントを介して、クライアントコンピューティングデバイス136は、(たとえば、ネットワーク105を介して)オーディオ入力信号をデータ処理システム102に提供することができ、データ処理システム102において、オーディオ入力信号は、(たとえば、インターフェース104によって)受信され、NLP 106に提供されるか、またはデータリポジトリに記憶され得る。
【0040】
データ処理システム102は、クライアントコンピューティングデバイス136のマイクロフォンによって検出された入力オーディオ信号を含むデータパケットをインターフェース104を介して受信することができる。データ処理システム102は、マイクロフォンによって検出された入力オーディオ信号に基づいて生成されるデータパケットを受信することができる。データパケットは、フィルタリングされるかまたはフィルタリングされないことが可能である。データパケットは、検出された入力オーディオ信号のデジタル化されたバージョンであることが可能である。データパケットは、検出された入力オーディオ信号に基づいてクライアントコンピューティングデバイス136によって生成されるテキストを含み得る。たとえば、クライアントコンピューティングデバイス136のローカルデジタルアシスタントは、検出された入力オーディオ信号を処理し、処理された入力オーディオ信号に基づくデータパケットを、さらなる処理のためにまたはアクションを実行するためにサーバデジタルアシスタント108に送信することができる。
【0041】
データ処理システム102は、サーバデジタルアシスタント108を含み得る。サーバデジタルアシスタント108およびNLP 106は、単一のコンポーネントであることが可能であり、またはサーバデジタルアシスタント108が、NLP 106の1つもしくは複数のコンポーネントもしくは機能を含むことが可能である。サーバデジタルアシスタント108は、NLP 106とインターフェースを取ることができる。データ処理システム102(たとえば、サーバデジタルアシスタント108)は、データパケットを処理して、アクションを実行するかまたはそれ以外の方法で音声入力に応答することができる。場合によっては、データ処理システム102は、入力オーディオ信号からの音響シグネチャ(acoustic signature)を特定することができる。データ処理システム102は、データリポジトリを探索すること(たとえば、データベースに問い合わせること)に基づいて音響シグネチャに対応する電子アカウントを特定することができる。データ処理システム102は、電子アカウントの特定に応じて、セッションおよびセッションにおいて使用するためのアカウントを確立することができる。アカウントは、1つまたは複数のポリシーを有するプロファイルを含み得る。データ処理システム102は、要求および要求に対応するトリガキーワードを特定するために入力オーディオ信号を解析することができる。
【0042】
NLP 106は、入力オーディオ信号を取得することができる。データ処理システム102のNLP 106は、クライアントコンピューティングデバイス136上のローカルデジタルアシスタントによるトリガキーワードの検出に応じて、音声入力または入力オーディオ信号を有するデータパケットを受信することができる。トリガキーワードは、後続のオーディオ入力をテキストに変換し、さらなる処理のためにテキストをデータ処理システム102に送信するようにクライアントコンピューティングデバイス136に示すウェイクアップ信号またはホットワードであることが可能である。
【0043】
入力オーディオ信号を受信すると、NLP 106は、少なくとも1つの問い合わせもしくは要求、または要求に対応する少なくとも1つのキーワードを特定することができる。要求は、入力オーディオ信号の意図または主題を示し得る。キーワードは、行われる可能性が高いアクションの種類を示し得る。たとえば、NLP 106は、夜に食事会に参加し、映画を見るために家を出る少なくとも1つの要求を特定するために入力オーディオ信号を解析し得る。トリガキーワードは、行われるアクションを示す少なくとも1つの単語、語句、語根もしくは部分的な単語、または派生語を含み得る。たとえば、入力オーディオ信号からのトリガキーワード「行く」または「~に行くために」は、輸送の必要性を示し得る。この例において、入力オーディオ信号(または特定された要求)は、輸送の意図を直接表さないが、トリガキーワードが、輸送が要求によって示される少なくとも1つのその他のアクションの補助的なアクションであることを示す。別の例において、音声入力は、アプリケーションにおいてアクションを実行するための問い合わせまたは要求を含み得る。
【0044】
NLP 106は、要求および要求に関連する1つまたは複数のキーワードを特定するか、判定するか、取り出すか、またはそれ以外の方法で取得するために入力オーディオ信号を解析することができる。たとえば、NLP 106は、キーワードまたは要求を特定するために入力オーディオ信号に意味処理技術を適用することができる。NLP 106は、キーワード、または第1のキーワードおよび第2のキーワードなどの1つまたは複数のキーワードを含む語句を特定するために入力オーディオ信号に意味処理技術を適用することができる。たとえば、入力オーディオ信号は、文章「オーディオブックを購入したい。」を含み得る。NLP 106は、キーワードまたは語句「~を購入したい」および「オーディオブック」を特定するために文章を含むデータパケットに意味処理技術またはその他の自然言語処理技術を適用することができる。NLP 106は、購入およびオーディオブックなどの複数のキーワードをさらに特定し得る。たとえば、NLP 106は、語句が第1のおよび第2のキーワードを含むと判定し得る。
【0045】
NLP 106は、トリガキーワードを特定するために入力オーディオ信号をフィルタリングすることができる。たとえば、入力オーディオ信号を運ぶデータパケットは、「It would be great if I could get someone that could help me go to the airport」を含むことが可能であり、その場合、NLP 106は、以下の通りの1つまたは複数の語、すなわち、「it」、「would」、「be」、「great」、「if」、「I」、「could」、「get」、「someone」、「that」、「could」、または「help」をフィルタリングして取り除くことができる。これらの語をフィルタリングして取り除くことによって、NLP 106は、「go to the airport」などのトリガキーワードをより正確で信頼性高く特定し、これがタクシーまたは相乗りサービスの要求であると判定する可能性がある。
【0046】
サーバデジタルアシスタント108またはローカルデジタルアシスタント144は、クライアントコンピューティングデバイス136上で実行されるアプリケーション142とインターフェースを取ることができる。アプリケーション142は、音声に基づくアクションまたは音声インターフェースを含み得る。アプリケーションは、クライアントコンピューティングデバイス136のユーザから音声入力を受け取ることができる。クライアントコンピューティングデバイス136は、さらなる処理のために、音声入力をデータ処理システム102(たとえば、NLP 106またはサーバデジタルアシスタント108)に転送することができる。場合によっては、アプリケーション142は、処理のためにボイスアクションをアプリケーション開発者デバイス134に転送することができる。アプリケーション142は、ボイスアクションをデータ処理システム102に転送することができ、データ処理システム102は、ボイスアクションを前処理し、それから、ボイスアクションをアプリケーション開発者デバイス134に転送することができる。場合によっては、クライアントコンピューティングデバイス136上で実行されるアプリケーション142が、ボイスアクションを処理し、対応するアクションを実行するように構成され得る。場合によっては、アプリケーション142が、処理のために音声入力をデータ処理システム102に転送し、データ処理システム102が、音声入力に関連するアクションまたは意図を特定し、要求されたアクションまたは意図を実行するためにアプリケーション142にコマンドを転送することができる。
【0047】
データ処理システム102は、アプリケーション142のボイスアクションのための補足コンテンツアイテムを選択すると決定し得る。しかし、音声に基づくアクションが呼び出されるとき、音声に基づくアクションの実行と並行してまたは実行とともに提供するために、補足コンテンツプロバイダによって提供される補足コンテンツアイテムを特定または選択することは困難であり得る。たとえば、コンテンツセレクタ114は、特定のボイスアクションの呼び出しにつながった対話の道筋または会話の道筋を認識しない場合がある。コンテンツセレクタ114は、ボイスアクションを呼び出した発話に至った会話の分岐を意識しない場合がある。これは、アプリケーションからのボイスアクションに対する応答が、会話または対話の流れに関連する1つまたは複数の以前の分岐を考慮に入れることができるという点で、ボイスアクションがウェブページとは異なるからである可能性がある。コンテンツセレクタは、それらの以前の分岐または以前の分岐に関連する情報にアクセスすることができない場合がある。コンテンツセレクタは、最小限のまたは不十分な情報しか持っていない場合がある。コンテンツセレクタは、会話の流れの中の前の分岐にアクセスすることができない場合があるので、ボイスアクション自体に基づいてコンテンツアイテムを選択しようと試みる場合がある。したがって、コンテンツセレクタは、無関係なコンテンツアイテムを選択する場合があり、またはコンテンツアイテムを選択しようと試みるが、精度が低いかもしくは関連性スコアが低い、リソースを大量に消費する選択プロセスを実行する場合がある。これは、無駄なリソース消費、または誤ったもしくは不正確なコンテンツアイテムの選択をもたらし得る。不正確なまたは無関係なコンテンツアイテムを提供することは、複数の追加のコンテンツアイテムが選択され、ネットワークを介してコンピューティングデバイスに送信される場合があるので、過剰なリモートプロシージャコールまたはネットワーク帯域幅の利用を引き起こし得る。さらに、不正確なまたは無関係なコンテンツアイテムをコンピューティングデバイスに提供することは、芳しくないユーザエクスペリエンスを引き起こし得る。コンテンツアイテムは、ユーザがコンテンツアイテムとインタラクションしないまたは関わり合わない可能性があるという点で、コンピューティングデバイス上でうまく働かない場合がある。場合によっては、ユーザは、不正確なコンテンツアイテムをスキップまたは早送りし、それによって、正確なまたは関連するコンテンツアイテムの提示と比較して、コンピューティングデバイスとの追加の入力またはインタラクションをユーザに提供させる可能性がある。
【0048】
これらのおよびその他の技術的課題に対処するために、この技術的解決策のデータ処理システム102は、アプリケーションによって実行され得るアクションのトランスクリプトを生成するように設計され、構築され、動作可能であるアクションクローラ110を含み得る。アクションクローラ110は、アプリケーション開発者134から、音声アシスタント対応アクションを用いて構成されるアプリケーションを受信することができる。アクションクローラ110は、アプリケーションが音声入力に応じて実行するように構成されるアクションを特定することができる。アクションクローラ110は、アクションを特定するためにアプリケーションをクロールするができる。アクションクローラ110は、ユーザがアプリケーションを用いて取り得る様々な対話の道筋を特定するためにアプリケーションとの会話をシミュレートすることができる。異なる対話の道筋は、対話の道筋に関連する意図に応じて、同じボイスアクションまたは異なるボイスアクションの実行につながり得る。
【0049】
たとえば、データ処理システム102のNLP 106またはサーバデジタルアシスタント108は、複数のアクションを特定するためにアプリケーションとの会話をシミュレートすることができる。サーバデジタルアシスタント108は、アプリケーションとの1つまたは複数の会話をシミュレートすることができる。場合によっては、データ処理システム102は、アプリケーション開発者デバイス134から、例示的な対話またはトランスクリプト情報を含むアプリケーションパッケージファイルを受信することができる。場合によっては、データ処理システム102は、アプリケーションが関与し得る可能な会話を自動的に判定し、アプリケーションが実行するように構成されるボイスアクションを特定することができる。
【0050】
たとえば、アプリケーションは、テーマパークでアニメのキャラクターに関連するエンターテインメントコンテンツを提供することに関連し得る。アクションクローラ110は、アプリケーションとの対話をシミュレートすることができる。アクションクローラ110は、アプリケーションを起動するかまたは呼び出すことができる。アプリケーションは、「どのキャラクターと話したいですか」などの問い合わせまたはプロンプトから始まり得る。アクションクローラ110は、文章「Character_Aと話す」を含むシミュレートされた音声入力を生成することによって、選択肢のリストからキャラクターを選択することができる。アプリケーションは、「Character_Aとゲームをしたいですか、Character_Aと物語を読みたいですか、それともCharacter_Aと歌を歌いたいですか」などの応答およびプロンプトまたは問い合わせによってアクションクローラ110に応答することができる。アクションクローラ110は、これらのボイスアクションのうち、音声アシスタントに対応したアクションに対応する1つのボイスアクションを選択することができる。アクションクローラ110は、ボイスアクションの各々に関して、ボイスアクションの呼び出しまたは選択に至った対話の流れを含むトランスクリプトを記憶することができる。アクションクローラ110は、アプリケーションにおいて各キャラクターに関してこの流れを繰り返すことができる。
【0051】
別の例において、アクションクローラ110は、アプリケーションを呼び出し、それから、アプリケーションが実行することができるタスクをアプリケーションに尋ねるプロンプトまたは問い合わせを入力することができる。そして、アクションクローラ110は、タスクを選択し、ボイスアクションの呼び出しをもたらす1つまたは複数の対話の流れを開始することができる。したがって、アクションクローラ110は、1つまたは複数の対話に従ってアプリケーションが実行するように構成されるアクションを含むトランスクリプトを生成するためにアプリケーションをクロールすることができる。データ処理システム102は、アクションと、アクションを呼び出すために使用された1つまたは複数の対話とについての情報を記憶するためにトランスクリプトを生成することができる。情報は、対話、キーワード、webrefエンティティ、垂直分類、意図、ボイスアクション、またはコンテンツの選択を容易にするその他の情報などを含み得る。webrefエンティティは、タクソノミー(taxonomy)で分類されるエンティティに対応し得る。ウェブ参照エンティティは、テキストの理解を助け、知識のリポジトリを増強する。エンティティは、単一の人、場所、または物であってよく、リポジトリは、似た名前を持つ複数のエンティティ(たとえば、ジャガーの車対ジャガーの動物)を区別するためにそれぞれが一意識別子を有する数百万のエンティティを含み得る。データ処理システムは、参照エンティティにアクセスし、任意のテキスト(たとえば、ウェブページのテキスト、キーワードのテキスト、コンテンツのテキスト、広告のテキスト)をスキャンして、様々なソースからエンティティを特定することができる。1つのそのようなソースは、たとえば、ユーザのコミュニティによって構築された人、場所、および物のエンティティグラフ(entity graph)などのエンティティの手動で作成されたタクソノミーであってよい。
【0052】
データ処理システム102は、補足デジタルコンテンツプロバイダデバイス132からコンテンツアイテムを受信することができる。データ処理システム102は、補足デジタルコンテンツプロバイダデバイス132などのコンピューティングデバイスのサードパーティによって提供されたコンテンツアイテムを特定することができる。たとえば、データ処理システム102のコンテンツセレクタ114は、ネットワーク105を介して補足コンテンツプロバイダデバイス132からコンテンツアイテムを受信することができる。データ処理システム102は、グラフィカルユーザインターフェースなどのデータ処理システムのインターフェースを介してコンテンツアイテム(またはスポンサー付きコンテンツアイテム)を受け取ることができる。データ処理システム102は、コンテンツアイテムを、補足コンテンツプロバイダデバイス132に関連するアカウント識別子に関連付けることができる。コンテンツアイテムは、コンテンツ配置キャンペーンの一部であることが可能である。コンテンツアイテムは、コンテンツグループの一部であることが可能である。コンテンツアイテムは、コンテンツセレクタ114によってリアルタイムでコンテンツ選択を実行するために使用されるキーワード、位置、またはその他の信号などのコンテンツ選択基準に関連付けられ得る。データ処理システム102は、コンテンツアイテムまたはコンテンツグループに関連する概念、トピック、エンティティ、またはバーティカル(vertical)を特定することができる。データ処理システム102は、コンテンツアイテムの性能データをさらに特定または生成することができる。性能データは、コンテンツアイテムが1つまたは複数のクライアントコンピューティングデバイス136上で提示されたかまたは提示のために提供されたときに、どれぐらいうまく働いたかを含むかまたは示すことができる。性能は、クライアントコンピューティングデバイス136のユーザによるコンテンツアイテムとのインタラクションのレベルまたはインタラクションの種類を指すか、含むか、またはそれに基づき得る。たとえば、性能情報は、コンテンツアイテムの選択、コンテンツアイテムのクリック、コンバージョン、またはコンテンツアイテムに関連するプロンプトもしくは調査の完了を含むかまたはそれらに基づき得る。性能情
報は、たとえば、ユーザがコンテンツアイテムが提示されたウィンドウを閉じたか、コンテンツアイテムの再生をスキップしたか、コンテンツアイテムの再生を早送りしたか、コンテンツアイテムの再生を繰り返したか、またはコンテンツアイテムがコンテンツアイテムの全継続時間を再生することを許可したかを含み得る。したがって、コンテンツアイテムの性能データは、1つまたは複数のコンピューティングデバイス136を介したコンテンツアイテムの各々の以前の提示に応じたコンテンツアイテムの各々とのインタラクションの種類を示し得る。インタラクションの種類は、スキップ、早送り、または提示の継続時間のうちの少なくとも1つを含み得る。性能データは、データリポジトリ120内のコンテンツデータ126のデータ構造に記憶され得る。
【0053】
性能データは、コンテンツアイテムに関連するキーワードもしくはその他の信号、またはコンテンツアイテムが提示された場所に関連する信号と関連付けられるかまたは相互に関連付けられ得る。信号は、クライアントコンピューティングデバイス136の種類、コンテンツアイテムが提示されたときのクライアントコンピューティングデバイス136の位置、コンテンツアイテムと並んでもしくはコンテンツアイテムとともにクライアントコンピューティングデバイス136上で提示されている主たるコンテンツに関連する情報、またはクライアントコンピューティングデバイス136に関連するその他のアカウント情報もしくはプロファイル情報を含み得る。
【0054】
しかし、多数の補足デジタルコンテンツプロバイダデバイス132から受信された多数のコンテンツアイテム、ならびに多数の音声に基づくアシスタントのアクションおよび多数のアプリケーションが原因で、コンテンツアイテムのリアルタイムのコンテンツ選択を効率的で正確に実行することは困難であり得る。この技術的解決策のデータ処理システム102は、各ボイスアクションに関して、関連する候補コンテンツアイテムを示すビットベクトルを生成するように設計され、構築され、動作可能である埋め込みエクストラクタ112を含み得る。ビットベクトルは、クライアントコンピューティングデバイス136を実行するアプリケーションにおけるボイスアクションの呼び出しに応じてリアルタイムのコンテンツ選択を実行するために、コンテンツセレクタ114によって使用され得る。
【0055】
埋め込みエクストラクタ112は、機械学習モデルおよびコンテンツアイテムの性能データによって、アクションに対応するビットベクトルを生成することができる。ビットベクトルは、アクションのための候補コンテンツアイテムを示し得る。埋め込みエクストラクタ112は、コンテンツアイテム情報または性能データと一緒に、アクションクローラ110によって生成されたトランスクリプトを入力として取り、トランスクリプト内の各アクションにどのコンテンツアイテムが関連するかを示すビットベクトルを生成することができる。たとえば、トランスクリプトは、特定のアプリケーションにおける複数の音声に基づくアクションを含み得る。トランスクリプト内の各アクションは、キーワード、意図、概念、トピック、またはボイスアクションにつながったシミュレートされた会話に関連するその他の情報を含む対話の流れに関連付けられ得る。埋め込みエクストラクタ112は、深層学習モデル128を使用して、トランスクリプト内の各アクションにどのコンテンツアイテムが関連するかを特定することができる。埋め込みエクストラクタ112は、アプリケーションに関してアクションクローラ110によって生成されたトランスクリプト内の各アクションのための複数の候補コンテンツアイテムを特定する、アプリケーションに関する1つまたは複数のビットベクトルを生成することができる。
【0056】
ビットベクトルは、データ処理システム102またはその1つもしくは複数のプロセッサおよびメモリによって効率的に処理され得るデータ構造を指すかまたは含み得る。ビットベクトルは、データ処理システム102がハードウェアでビットレベルの並列処理を実行して演算を高速に実行することを効果的に可能し得る。ビットベクトルは、ビットの配列であることが可能である。ビットベクトルは、複数のビットを含むことが可能である。ビットベクトルは、特定のアクションに関して、どのコンテンツアイテムが関連するかを示すような、値0 1へのマッピングを含み得る。たとえば、ボイスアクション「Character_Aと本を読む」のためのビットベクトルは、ビットベクトル内の場所に1または0を示すことによって、候補コンテンツアイテムの集合からのどの候補コンテンツアイテムが関連するかのインジケーションを含むことができ、ビットベクトル内の場所が、特定の候補コンテンツアイテムに対応する。Table 1(表1)は、アプリケーションにおける異なるアクションのための例示的なビットベクトルと、候補コンテンツアイテムをリスト化するデータ構造とを示す。
【0057】
【0058】
Table 1(表1)の説明のための例においては、特定のアプリケーションに関する候補コンテンツアイテムデータ構造が、順序付きリストに5つの異なるコンテンツアイテムをリスト化することができる。順序は、数値順、アルファベット順、またはアプリケーションとの関連性順などの任意の順序に基づくことが可能である。埋め込みエクストラクタ112は、アクションクローラ110によって生成されたトランスクリプト内の各アクションのためのビットベクトルを生成することができる。たとえば、アクション1に関して、ビットベクトルは、[0 0 1 1 1]であることが可能であり、アクション2に関して、ビットベクトルは、[0 1 0 1 0]であることが可能であり、アクション3に関して、ビットベクトルは、[1 1 0 0 1]であることが可能である。ビットベクトルは、コンテンツアイテムのうちのどれが特定のボイスアクションに関連するかまたは特定のボイスアクションのための候補であるのかを示すことができる。たとえば、ボイスアクション1に関して、関連する候補コンテンツアイテムは、コンテンツアイテム3、4、および5であることが可能である。ボイスアクション2に関して、候補コンテンツアイテムは、2および4であることが可能である。ボイスアクション3に関して、候補コンテンツアイテムは、1、2、および5であることが可能である。
【0059】
Table 1(表1)に示された異なるボイスアクションは、キャラクターAと歌を演奏する、本を読む、または音楽を演奏するなどの異なるアクションを指す場合がある。別の例において、異なるアクションは、以下、すなわち、ボイスアクション1がCharacter_Aと歌を演奏することであることが可能であり、ボイスアクション2がCharacter_Bと歌を演奏することであることが可能であり、ボイスアクション3がCharacter_Cと歌を演奏することであることが可能であるように、歌を演奏するなどの同じ種類であるが、ただし、異なるキャラクターとのアクションを指し得る。アクションクローラ110は、アプリケーションとの会話をシミュレートしてトランスクリプトファイルを生成することによって、アプリケーションの呼び出しに至った対話の流れに基づいて、同じ種類のアクション(たとえば、歌を演奏する)に関して異なるボイスアクション識別子を生成することができる。したがって、Table 1(表1)は、ボイスアクションの呼び出しに至った対話の流れに基づく、各アクションのための異なるビットベクトルを含み、それによって、ビットベクトルの形式を使用することによって効率を維持しながら、コンテンツ選択の精度の向上をもたらし得る。
【0060】
各アクションのためのビットベクトルを生成するために、データ処理システム102は、訓練データを使用して深層学習モデルまたは機械学習モデルを訓練することができる。訓練データは、非常に多くのクライアントコンピューティングデバイス136上でのコンテンツアイテムの以前の提示に関連する履歴データを含み得る。履歴訓練データは、コンテンツアイテムの性能と、性能に関連する信号とに基づき得る。履歴訓練データは、コンテンツアイテムについての情報(たとえば、キーワード、トピック、エンティティ)、コンテンツアイテムの提示に関連する信号(たとえば、コンピューティングデバイスの種類、コンピューティングデバイスの位置、スポンサー付きコンテンツが一緒に提示されている主たるコンテンツに関連する概念、キーワード、もしくはトピック、またはプロファイル情報)、性能データ(たとえば、ユーザがコンテンツアイテムとインタラクションしたのかまたはコンテンツアイテムをスキップしたのか)を含み得る。
【0061】
データ処理システム102は、深層学習技術などの機械学習技術を使用して、訓練データを用いてモデル128を訓練することができる。深層学習技術は、深層構造化学習(deep structured learning)を指し得る。深層学習技術は、表現学習をともなう人工ニューラルネットワークを含むかまたはそれに基づき得る。深層学習技術は、教師あり、半教師あり、または教師なしであることが可能である。深層学習技術は、リカレントニューラルネットワーク、畳み込みニューラルネットワーク、深層ニューラルネットワーク、または深層強化学習を含み得る。深層学習技術は、複数の層を使用して、入力から高レベルの特徴を漸進的に抽出することができる。たとえば、コンテンツデータ(たとえば、コンテンツアイテム情報および性能データ)ならびにトランスクリプト(たとえば、ボイスアクションおよびボイスアクションの呼び出しに至った対話に関連する情報)を使用して、深層学習技術は、特定のボイスアクションと平行して、特定のボイスアクションに空間的もしくは時間的に最も近接して、またはそれ以外の方法で特定のボイスアクションとともにもしくは特定のボイスアクションのために提示されるときに、どのコンテンツアイテムが関連性があるかまたは順調に働くと予測されるかを判定することができる。埋め込みエクストラクタ112は、深層学習モデルを使用して、どのコンテンツアイテムがうまく働く可能性が高い(たとえば、コンテンツアイテムの提示回数に対して1%、2%、3%、5%、10%、15%、20%以上などの閾値を超えるインタラクションの見込み(likelihood)を有する)かを予測することができる。埋め込みエクストラクタ112は、深層学習モデルを使用して、どのコンテンツアイテムが、1つまたは複数の補足デジタルコンテンツプロバイダデバイス132から受信される利用可能なコンテンツアイテムの集合に関して最も高性能なコンテンツであるかを予測することができる。したがって、埋め込みエクストラクタ112は、トランスクリプトおよびコンテンツアイテムの性能データを入力として取り、トランスクリプト内の各アクションのためのビットベクトルを出力することができる。出力されたビットベクトルは、特定のアクションに関して、クライアントコンピューティングデバイス136によるアプリケーショ
ン142におけるアクションの呼び出しに応じて、提示する候補である候補コンテンツアイテムを示すことができる。
【0062】
データ処理システム102は、補足コンテンツアイテム(またはスポンサー付きコンテンツアイテムまたはデジタルコンポーネントオブジェクト)を選択するように設計されたか、構築されたか、または動作可能であるコンテンツセレクタ114を含み得る。コンテンツセレクタ114は、アプリケーション142のアクションを実行するコンピューティングデバイス136のためのコンテンツの要求に応じて、アクションに対応するビットベクトルに基づいてコンテンツアイテムを選択することができる。多数の利用可能なコンテンツアイテムから選択することから生じる過度の計算リソースの利用を回避するために、コンテンツセレクタ114は、埋め込みエクストラクタ112によって生成されたビットベクトルを使用してアプリケーションにおいて呼び出されたアクションのための候補コンテンツアイテムを取り出すように設計され、構築され、動作可能であるコンテンツリトリーバ116を含み得る。ビットベクトルは、様々な補足デジタルコンテンツプロバイダデバイス132のコンテンツアイテムによって提供されるすべての利用可能なコンテンツアイテムのサブセットのインジケーションを記憶することができる。すべての利用可能なコンテンツアイテムのサブセットは、最高ランクのコンテンツアイテムまたはアプリケーションのアクションに最も関連するコンテンツアイテムに対応するコンテンツアイテムであることが可能である。最も関連性の高いコンテンツアイテムは、深層学習モデル128を使用して埋め込みエクストラクタ112によって決定され得る。コンテンツアイテムのこのサブセットは、アプリケーション142におけるアクションの呼び出しに応じた提示のための候補として、ビットベクトルにリスト化されるかまたはそうでなければビットベクトル内で特定され得る。しかし、コンテンツセレクタ114は、アプリケーション142においてアクションを呼び出す特定のクライアントコンピューティングデバイス136に関連する信号またはその他の情報に基づいて、コンテンツアイテムのサブセットのうち最高スコアのコンテンツアイテムを選択するためにコンテンツアイテムのサブセットをさらに絞り込むことができる。
【0063】
コンテンツリトリーバ116は、アクションと、アクションが呼び出されたアプリケーション142とを特定することができる。たとえば、アプリケーションは、アプリケーションの名前、英数字識別子、またはその他の一意識別子などの一意識別子に関連付けられ得る。コンテンツリトリーバ116は、アプリケーション142において呼び出されたアクションをさらに特定することができる。アクションは、名前、英数字識別子、またはその他の有効な識別子などの、一意識別子またはアプリケーション142に一意の識別子に関連付けられ得る。
【0064】
コンテンツリトリーバ116は、アプリケーションのアクションのために確立されたビットベクトルにアクセスするか、そのようなビットベクトルを取り出すか、取得するか、またはそうでなければ特定するために、アプリケーションの識別子およびアクションの識別子を使用してビットベクトル130のデータ構造内の探索を実行することができる。コンテンツリトリーバ116は、アクションのためのビットベクトルに示される1つまたは複数の候補コンテンツアイテムを特定することができる。コンテンツリトリーバ116は、コンテンツアイテムの一意識別子、コンテンツアイテムのユニフォームリソースロケータ、コンテンツアイテムへのポインタ、またはコンテンツアイテムを取り出すかまたはコンピューティングデバイス136に提供するために使用され得るコンテンツアイテムのその他のインジケータを特定することができる。
【0065】
ビットベクトルは、アプリケーション142において呼び出された特定のアクションのための複数の候補コンテンツアイテムを示すことができる。アクションのためのビットベクトルに関連する候補コンテンツアイテムは、コンテンツ選択基準、性能データ、またはコンテンツ選択を容易にすることができるその他の情報などのコンテンツデータ126を含み得る。コンテンツリトリーバ116は、コンピューティングデバイス136に提供するためのコンテンツアイテムを候補コンテンツアイテムから選択するために、ビットベクトルに示された候補コンテンツアイテムをコンテンツスコアラ118に提供することができる。
【0066】
コンテンツセレクタ114は、ビットベクトルに示された候補コンテンツアイテムからコンテンツアイテムを選択するように設計され、構築され、動作可能であるコンテンツスコアラ118を含み得る。コンテンツセレクタ114は、候補コンテンツアイテムを採点して、最高スコアまたは最高ランクのコンテンツアイテムを特定することができる。コンテンツセレクタ114は、コンピューティングデバイス136上でうまく働く可能性が最も高いコンテンツアイテムを特定することを容易にし得る任意のコンテンツ採点技術を使用して候補コンテンツアイテムを採点することができる。コンテンツスコアラ118は、アクションを呼び出した特定のクライアントコンピューティングデバイス136に関連する信号を使用して、候補コンテンツアイテムを採点することができる。信号は、たとえば、コンピューティングデバイスの種類、コンピューティングデバイスの地理的位置、クライアントコンピューティングデバイスによって使用される言語(たとえば、英語、フランス語、もしくスペイン語)、またはクライアントコンピューティングデバイス136にリンクされた電子アカウントに関連するプロファイル情報を含み得る。たとえば、コンテンツスコアラ118は、クライアントコンピューティングデバイス136に関連する信号に基づいて、候補コンテンツアイテムのうちのどれがアプリケーション142において呼び出されたアクションに関連する可能性が最も高いかを予測することができる。コンテンツスコアラ118は、候補コンテンツアイテムのうちのどれがコンピューティングデバイス136のユーザによる好ましいインタラクションをもたらす可能性が最も高いかを予測することができる。コンテンツスコアラ118は、候補コンテンツアイテムのうちのどれが、コンピューティングデバイス136のユーザによってスキップされるかまたは閉じられることなく、コンテンツアイテムの全継続時間にわたって再生される可能性が最も高いかを予測することができる。
【0067】
スポンサー付きコンテンツアイテムまたはデジタルコンポーネントを選択するために、コンテンツスコアラ118は、コンテンツ選択基準を使用して、部分一致、完全一致、またはフレーズ一致に基づいて、一致するスポンサー付きコンテンツアイテムを選択することができる。たとえば、コンテンツセレクタ114は、候補スポンサー付きコンテンツアイテムの主題がアプリケーション142において呼び出されたアクションに関連する意図、キーワード、または語句の主題に対応するかどうかを判定するために、候補スポンサー付きコンテンツアイテムの主題を分析するか、解析するか、またはそうでなければ処理することができる。コンテンツスコアラ118は、画像処理技術、文字認識技術、自然言語処理技術、またはデータベース探索を使用して候補デジタルコンポーネントの音声、オーディオ、語、文字、テキスト、記号、または画像を特定するか、分析するか、または認識することができる。候補スポンサー付きコンテンツアイテムは、候補デジタルコンポーネントの主題を示すメタデータを含むことが可能であり、その場合、コンテンツスコアラ118は、候補デジタルコンポーネントの主題がアプリケーション142において呼び出されたアクションに対応するかどうかを判定するためにメタデータを処理してよい。補足デジタルコンテンツプロバイダデバイス132によって提供されるコンテンツキャンペーンは、第2のプロファイルレイヤ(profile layer)または第1のプロファイルレイヤ内で示された基準にコンテンツスコアラ118がマッチングすることができるコンテンツ選択基準を含み得る。
【0068】
コンテンツセレクタ114は、要求に応じて、リアルタイムのコンテンツ選択プロセスを実行することができる。リアルタイムのコンテンツ選択は、要求に応じてコンテンツ選択を実行することを指すかまたは含み得る。リアルタイムは、要求の受信の0.2秒、0.3秒、0.4秒、0.5秒、0.6秒、または1秒以内にコンテンツを選択することを指すかまたは含み得る。リアルタイムは、クライアントコンピューティングデバイス136からの入力オーディオ信号の受信に応じてコンテンツを選択することを指し得る。アプリケーション142において呼び出されたアクションのビットベクトルを特定し、ビットベクトルで特定された候補コンテンツアイテムをコンテンツスコアラ118に入力して、最高ランクまたはスコアのコンテンツアイテムを出力することによって、リアルタイムのコンテンツ選択プロセスが迅速化され得る。コンテンツスコアラ118は、クライアントコンピューティングデバイス136に提供する最高ランクの補足コンテンツアイテムを選択するために、複数の候補補足コンテンツアイテムの各々に関するスコアまたはランクを決定することができる。
【0069】
場合によっては、コンテンツスコアラ118は、最高スコアまたは最も関連性の高いコンテンツアイテムを決定することができる機械学習モデルを用いて構成され得る。機械学習モデルは、様々な信号に関連するコンテンツアイテムの履歴的な性能に基づいて訓練され得る。モデルは、特定の信号の存在下でコンテンツアイテムがうまく働く見込みを示す予測またはスコアを出力することができる。したがって、コンテンツセレクタ114は、コンテンツリトリーバ116によって取り出された候補コンテンツアイテムからコンテンツアイテムを採点または選択するために機械学習技術を使用することができる。
【0070】
したがって、データ処理システムは、コンピューティングデバイス136からアクションの呼び出しのインジケーションを受信することができる。データ処理システム102は、アクションに対応するビットベクトルを取り出すために、ビットベクトル130を記憶するデータリポジトリ120内でアクションを用いて探索を実行することができる。データ処理システム102は、アクションのためのビットベクトルから、上位ランクの候補コンテンツアイテムを特定することができる。上位ランクの候補コンテンツアイテムは、深層学習モデル128を使用して埋め込みエクストラクタ112によって特定され、アプリケーションのアクションのためのビットベクトルに記憶され得る。データ処理システム102は、アクションのためのビットベクトルから特定された上位ランクの候補コンテンツアイテムから最高スコアのコンテンツアイテムを選択することができる。データ処理システム102は、リアルタイムのコンテンツ選択プロセスによって、上位ランクの候補コンテンツアイテムからコンテンツアイテムを選択するために、アクションを実行するコンピューティングデバイス136に関連する1つまたは複数の信号を使用することができる。
【0071】
データ処理システム102は、クライアントコンピューティングデバイス136にコンテンツアイテムをコンピューティングデバイス136のユーザに対して提示させるために、選択されたコンテンツアイテムをクライアントコンピューティングデバイス136に提供することができる。データ処理システム102は、クライアントコンピューティングデバイス136上で実行されるローカルデジタルアシスタント144に、音声出力を介するなどオーディオ出力を介してコンテンツアイテムを再生させるために、コンテンツアイテムをローカルデジタルアシスタント144に提供することができる。データ処理システム102は、場合によっては、アプリケーション142にコンテンツアイテムを提供して、アプリケーション142にコンテンツアイテムを提示させることができる。たとえば、アプリケーション142は、オーディオ出力またはビジュアル出力を使用してコンテンツアイテムを再生することによってコンテンツアイテムを出力することができる。アプリケーション142またはローカルデジタルアシスタント144は、アプリケーションにおいて呼び出されたアクションの実行中、アクションの実行前、またはアクションの実行後に、コンテンツアイテムを提示または出力することができる。場合によっては、コンピューティングデバイス136は、コンテンツアイテムを再生または出力するために、アクションの実行を一時停止することができる。場合によっては、コンピューティングデバイス136は、アクションがアプリケーション142において実行を完了するまで、コンテンツアイテムを再生するのを待つことができる。場合によっては、コンピューティングデバイス136は、コンテンツアイテムを再生するのを、アクションの実行の完了後1秒、2秒、5秒、10秒、15秒、30秒またはその他の時間間隔などの所定の量の時間待つことができる。
【0072】
コンテンツアイテムを提示すると、データ処理システム102は、コンテンツアイテムとのインタラクションレベルのインジケーションを受信することができる。データ処理システム102は、インタラクションのレベルを性能データとしてコンテンツデータ126のデータ構造に記憶することができる。データ処理システム102は、埋め込みエクストラクタ112によるなどして、アクションに対応するビットベクトルを更新するためにインタラクションのレベルのインジケーションを用いて機械学習モデルを再訓練することができる。たとえば、選択されたコンテンツがうまく働かなかった場合、埋め込みエクストラクタ112は、アプリケーションにおけるアクションの将来の呼び出しに応じてコンテンツアイテムが選択されない可能性があるように、ビットベクトルからコンテンツアイテムを削除するためにアクションのためのビットベクトルを更新することができる。別の例において、埋め込みエクストラクタ112は、アプリケーションにおけるアクションの将来の呼び出しに応じてコンテンツアイテムが選択される見込みを減らすために、コンテンツアイテムのランクまたはスコアを下げるようにビットベクトルを更新することができる。したがって、データ処理システム102は、リアルタイムの性能フィードバックに応じて深層学習モデル128を改善することができ、埋め込みエクストラクタ112は、再訓練されたモデルに基づいてビットベクトルを更新することができる。
【0073】
図2は、実装による、サードパーティデジタルアシスタントのアクションのためのコンテンツマッチングのためのビットベクトルを生成するための例示的な方法の図である。方法200は、たとえば、データ処理システムを含む
図1に示された1つまたは複数のシステムまたはコンポーネントによって実行され得る。データ処理システムは、202においてアプリケーションを受信し得る。データ処理システムは、アプリケーション開発者からアプリケーションを受信し得る。アプリケーションの開発者は、データ処理システムにアプリケーションを提供することができる。アプリケーションの開発者は、アプリケーションをデータ処理システムにアップロードするか、またはそれ以外の方法でアプリケーションをデータ処理システムに送信もしくは提供することができる。たとえば、アプリケーションは、バイナリファイル、実行可能ファイル、アプリケーションパッケージファイル、あるいはデータ処理システムもしくはクライアントコンピューティングデバイスへのアプリケーションのインストールまたはデータ処理システムもしくはクライアントコンピューティングデバイス上でのアプリケーションの実行を容易にする別の形式で記憶され得る。
【0074】
204において、データ処理システムは、アプリケーションにおけるアクションを特定し、トランスクリプトを生成し得る。データ処理システムは、アクションを特定するためにアプリケーションをクロールし得る。データ処理システムは、アプリケーションをインストールし、実行することによってアクションを特定し得る。データ処理システムは、アプリケーションにおけるアクションの呼び出しまたは実行をもたらし得る1つまたは複数の対話の流れを生成するためにアプリケーションとの会話をシミュレートすることができる。アクションは、アプリケーションのユーザとの音声に基づく会話を介して呼び出されることが可能であるので、音声アシスタント対応アクションと呼ばれ得る。アクションは、ユーザからの発話によって呼び出され得る。アクションは、データ処理システム、またはクライアントコンピューティングデバイス、またはその両方で実行されるデジタルアシスタントによって促進される会話を介して特定または選択され得る。
【0075】
データ処理システムは、特定されたアクションのトランスクリプトを生成することができる。トランスクリプトは、特定のアプリケーションに関して生成され得る。トランスクリプトは、アプリケーションにおいて特定される様々なアクションと、アクションの呼び出に至った対話の流れまたは会話に関連する情報とを示し得る。たとえば、トランスクリプトは、アクションの呼び出しに至ったシミュレートされた発話についての情報を含み得る。トランスクリプトは、シミュレートされたユーザおよびシミュレートされたユーザと関わり合うアプリケーションによる発話を含み得る。
【0076】
206において、データ処理システムは、コンテンツデータを受信し得る。コンテンツデータは、補足コンテンツアイテムを指し得る。データ処理システムは、広告主などの1つまたは複数の補足コンテンツプロバイダからコンテンツデータを受信し得る。データ処理システムは、コンテンツデータを記憶する、データ処理システムがアクセス可能なデータリポジトリからコンテンツデータを受信し得る。コンテンツデータは、デジタルコンポーネントオブジェクトなどのコンテンツアイテムと、コンテンツアイテムの履歴的なまたは以以前の提示に関連する性能データとを含み得る。
【0077】
208において、データ処理システムは、トランスクリプトに示された1つまたは複数のアクションのためのビットベクトルを生成し得る。そのようにするために、データ処理システムは、履歴的なコンテンツ性能データで訓練された深層学習モデルを使用することができる。データ処理システムは、アプリケーションに関するトランスクリプトおよびコンテンツデータを深層学習モデルに入力して、アプリケーションにおけるアクションの呼び出しに応じて提示するための候補コンテンツアイテムであるものとしてコンテンツアイテムのサブセットを示す各アクションのための埋め込みまたはビットベクトルまたはビット配列を生成し得る。コンテンツアイテムのサブセットを示すビットベクトルを生成することによって、データ処理システムは、リアルタイムのコンテンツ選択プロセスの効率および精度を向上させることができる。
【0078】
図3は、実装による、サードパーティデジタルアシスタントのアクションの呼び出しに応じてビットベクトルを使用してコンテンツを選択するための例示的な方法の図である。方法300は、たとえば、データ処理システムを含む
図1に示された1つまたは複数のシステムまたはコンポーネントによって実行され得る。302において、データ処理システムは、アプリケーション内アクションの呼び出しのインジケーションを受信し得る。アプリケーション内アクションは、音声アシスタント対応アクションを指すかまたは含み得る。たとえば、アクションは、クライアントコンピューティングデバイスのユーザからの音声入力に応じてトリガされるか、呼び出されるか、または起動され得る。アクションは、クライアントコンピューティングデバイス上で実行されるローカルデジタルアシスタントによって呼び出され得る。アクションは、クライアントコンピューティングデバイスまたはデータ処理システム上で実行されるNLPコンポーネントによって呼び出されるかまたは解析され得る。
【0079】
アクションの呼び出しに応じて、クライアントコンピューティングデバイスは、データ処理システムにインジケーションを送信することができる。データ処理システムに送信されるインジケーションは、アプリケーション、アクション、またはコンピューティングデバイスに関連する信号についての情報を含み得る。たとえば、データ処理システムに送信される情報は、アクションの識別子またはアプリケーションの識別子を含み得る。信号は、たとえば、コンピューティングデバイスの地理的位置、コンピューティングデバイスの種類、またはコンピューティングデバイスにリンクされたプロファイルもしくは電子アカウントに関連する情報を含み得る。場合によっては、信号は、コンテンツの種類に関するプリファレンスなどの、コンピューティングデバイスに関連するプリファレンスについての情報を含み得る。
【0080】
クライアントコンピューティングデバイスは、ローカルデジタルアシスタント、アプリケーション、またはクライアントコンピューティングデバイス上で実行されるその他のコンポーネントを介して、データ処理システムにインジケーションを送信することができる。たとえば、アプリケーションは、アクションの呼び出しに応じて、データ処理システムにインジケーションを送信することができる。ローカルデジタルアシスタントは、アクションの呼び出しを検出し、アクションまたはアプリケーションの識別子を含むデータ処理システムへの送信を、コンピューティングデバイスに関連するその他の信号と一緒にパッケージ化することができる。
【0081】
304において、データ処理システムは、アプリケーションにおけるアクションのためのビットベクトルを特定するためにデータリポジトリ内の探索を実行し得る。データ処理システムは、アクションおよびアプリケーションの識別子を使用して探索を実行し得る。306において、データ処理システムは、ビットベクトルから候補コンテンツアイテムを特定し得る。データ処理システムは、アクションのために構成されたビットベクトルを取り出すかまたはそのようなビットベクトルにアクセスするために、クライアントコンピューティングデバイスから受信された情報を使用してデータリポジトリ内の探索を実行し得る。ビットベクトルは、アクションに関連する候補コンテンツアイテムを含み得る。
【0082】
308において、データ処理システムは、ビットベクトルから最高スコアの候補コンテンツアイテムを選択し得る。データ処理システムは、任意の採点技術を使用して、コンテンツアイテムの各々のスコアを決定することができる。データ処理システムは、スコアを使用してコンテンツアイテムをランク付けして、最高ランクのコンテンツアイテムを決定し得る。データ処理システムは、コンピューティングデバイスから受信した信号に基づいてまたは使用して各コンテンツアイテムのスコアを決定し得る。たとえば、コンテンツアイテムがクライアントコンピューティングデバイスの地理的位置と同じである地理的位置に関連付けられる場合、データ処理システムは、そのコンテンツアイテムを、クライアントコンピューティングデバイスの地理的位置に関連付けられない可能性がある別のコンテンツアイテムよりも高く採点し得る。別の例において、クライアントコンピューティングデバイスは、英語を使用するように構成されることが可能であり、フランス語のコンテンツアイテムは、英語のコンテンツアイテムと比較して、データ処理システムによってより低く採点される場合がある。
【0083】
310において、データ処理システムは、クライアントコンピューティングデバイスにコンテンツアイテムを提示させるために、選択されたコンテンツアイテムをクライアントコンピューティングデバイスに送信し得る。データ処理システムは、コンテンツアイテムをどのように提示すべきかに関する指示を含めることができる。データ処理システムは、コンテンツアイテムをいつ提示すべきか、コンテンツアイテムを提示するためにどの出力デバイスを使用すべきか、またはコンテンツアイテムに許可するインタラクティブな特徴に関する指示を提供し得る。データ処理システムは、アクションの呼び出しのインジケーションを送信したクライアントコンピューティングデバイスのコンポーネントにコンテンツアイテムを提供し得る。たとえば、データ処理システムは、クライアントコンピューティングデバイス上で実行されるアプリケーションまたはローカルデジタルアシスタントにコンテンツアイテムを返すことができる。
【0084】
312において、データ処理システムは、コンテンツアイテムの性能を決定し得る。データ処理システムは、ユーザがコンテンツアイテムとインタラクションしたかどうか、またはコンテンツアイテムとのインタラクションの種類に基づいて、コンテンツアイテムの性能を決定し得る。性能は、コンテンツアイテムがすべて再生されることをユーザが許したかどうか、ユーザがコンテンツアイテムの再生をスキップしたかどうか、ユーザがコンテンツアイテムを閉じたのか、コンテンツアイテムをキャンセルしたのか、コンテンツアイテムを早送りしたのか、またはコンテンツアイテムとその他の方法でインタラクションしたのかに基づき得る。たとえば、コンテンツアイテムがオーディオクリップであり、コンピューティングデバイスがオーディオクリップの全継続時間を再生した場合、データ処理システムは、コンテンツアイテムがうまく働いたと判定し得る。しかし、ユーザがコンテンツアイテムの再生をスキップした場合、データ処理システムは、コンテンツアイテムがうまく働かなかったと判定し得る。
【0085】
314において、データ処理システムは、コンテンツアイテムの性能に基づいて機械学習モデルを更新し得る。データ処理システムは、コンテンツアイテムの性能に基づいて、ビットベクトルを生成するために使用される機械学習モデルまたは深層学習モデルを更新し得る。たとえば、コンテンツアイテムがうまく働かなかった場合、データ処理システムは、ビットベクトルからコンテンツアイテムを削除し得る。コンテンツアイテムがうまく働いた場合、データ処理システムは、コンテンツアイテムをビットベクトル内に候補コンテンツアイテムとして維持するか、または候補コンテンツ項目に関連するスコアもしくは重みを増やし得る。
【0086】
図4は、例示的なコンピュータシステム400のブロック図である。コンピュータシステムまたはコンピューティングデバイス400は、システム100、またはデータ処理システム102もしくはクライアントコンピューティングデバイス136などのそのシステム100のコンポーネントを含むかまたはそれらを実装するために使用され得る。データ処理システム102またはクライアントコンピューティングデバイス136は、インテリジェントなパーソナルアシスタントまたは音声に基づくデジタルアシスタントを含み得る。コンピューティングシステム400は、情報を伝達するためのバス405またはその他の通信コンポーネントと、情報を処理するためのバス405に結合されたプロセッサ410または処理回路とを含む。また、コンピューティングシステム400は、情報を処理するためのバスに結合された1つまたは複数のプロセッサ410または処理回路を含み得る。コンピューティングシステム400は、情報およびプロセッサ410によって実行される命令を記憶するための、バス405に結合されたランダムアクセスメモリ(RAM)またはその他のダイナミックストレージデバイスなどのメインメモリ415も含む。メインメモリ415は、データリポジトリ120であるかまたはデータリポジトリ120を含み得る。メインメモリ415は、位置情報、一時的な変数、またはプロセッサ410による命令の実行中のその他の中間情報を記憶するためにも使用され得る。コンピューティングシステム400は、静的な情報およびプロセッサ410のための命令を記憶するための、バス405に結合された読み出し専用メモリ(ROM)420またはその他のスタティックストレージデバイスをさらに含んでよい。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス425が、情報および命令を永続的に記憶するためにバス405に結合され得る。ストレージデバイス425は、データリポジトリ120を含むかまたはデータリポジトリ120の一部であることが可能である。
【0087】
コンピューティングシステム400は、ユーザに対して情報を表示するための液晶ディスプレイまたはアクティブマトリックスディスプレイなどのディスプレイ435にバス405を介して結合される場合がある。英数字およびその他のキーを含むキーボードなどの入力デバイス430が、プロセッサ410に情報およびコマンド選択を伝達するためにバス405に結合される可能性がある。入力デバイス430は、タッチスクリーンディスプレイ435を含み得る。入力デバイス430は、プロセッサ410に方向情報およびコマンド選択を伝達するためおよびディスプレイ435上でカーソルの動きを制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソルコントロールも含み得る。ディスプレイ435は、たとえば、
図1のデータ処理システム102、またはクライアントコンピューティングデバイス136、またはその他のコンポーネントの一部であることが可能である。
【0088】
本明細書において説明されるプロセス、システム、および方法は、プロセッサ410によるメインメモリ415に含まれる命令の配列の実行に応じてコンピューティングシステム400によって実施され得る。そのような命令は、ストレージデバイス425などの別のコンピュータ可読媒体からメインメモリ415に読み込まれ得る。メインメモリ415に含まれる命令の配列の実行は、コンピューティングシステム400に本明細書において説明される例示的なプロセスを実行させる。マルチプロセッシング配列の1つまたは複数のプロセッサも、メインメモリ415に含まれる命令を実行するために使用される場合がある。配線による回路が、本明細書において説明されるシステムおよび方法と一緒にソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて使用され得る。本明細書において説明されるシステムおよび方法は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されない。
【0089】
例示的なコンピューティングシステムが
図4に示されたが、本明細書に記載の動作を含む対象は、本明細書において開示される構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
【0090】
本明細書において検討されるシステムがユーザについての個人情報を収集するか、または個人情報を利用する可能性がある状況に関して、ユーザは、プログラムまたは特徴が個人情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、ユーザのプリファレンス、またはユーザの位置についての情報)を収集する可能性があるかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバもしくはその他のデータ処理システムから受け取るべきかどうかまたはどのようにして受け取るべきかを制御する機会を与えられてよい。さらに、パラメータを生成するときに個人を特定することができる情報が削除されるように、特定のデータが、それが記憶されるかまたは使用される前に1つまたは複数の方法で匿名化されてよい。たとえば、ユーザのアイデンティティが、個人を特定することができる情報がユーザに関して決定され得ないように匿名化される場合があり、または(都市、郵便番号、もしくは州のレベルまでなど)位置情報が取得される場合に、ユーザの地理的位置が、ユーザの特定の位置が決定され得ないように一般化される場合がある。したがって、ユーザは、どのようにして情報がユーザについて収集され、コンテンツサーバによって使用されるかを制御する可能性がある。
【0091】
本明細書に記載の対象および動作は、本明細書において開示される構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために1つまたは複数のコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の回路として実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成される伝播信号、たとえば、機械によって生成される電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能であり、あるいはそれらに含まれることが可能である。コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることが可能である。また、コンピュータストレージ媒体は、1つもしくは複数の別個のコンポーネントもしくは媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であることが可能であり、またはそれらに含まれることが可能である。本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶されたまたはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【0092】
用語「データ処理システム」、「コンピューティングデバイス」、「コンポーネント」、または「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するための様々な装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。たとえば、アクションクローラ110、埋め込みエクストラクタ112、またはその他のコンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかまたは共有し得る。
【0093】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に好適なその他の単位としての形態を含む任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得る。コンピュータプログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の連携されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
【0094】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラム(たとえば、データ処理システム102のコンポーネント)を1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完され得るか、または専用の論理回路に組み込まれ得る。
【0095】
本明細書に記載の対象は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの組合せを含むコンピューティングシステムに実装され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0096】
システム100またはシステム400などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワーク(たとえば、ネットワーク105)を通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実装において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(たとえば、デジタルコンポーネントを表すデータパケット)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)が、サーバにおいてクライアントデバイスから受信され(たとえば、クライアントコンピューティングデバイス136または補足デジタルコンテンツプロバイダデバイス132からデータ処理システム102によって受信され)得る。
【0097】
動作が特定の順序で図面に示されているが、そのような動作は、示された特定の順序でまたは逐次的順序で実行される必要があるわけではなく、すべての示された動作が、実行される必要があるわけではない。本明細書に記載のアクションは、異なる順序で実行され得る。
【0098】
様々なシステムコンポーネントの分割は、すべての実装において分割を必要とするわけではなく、説明されたプログラムコンポーネントは、単一のハードウェアまたはソフトウェア製品に含まれ得る。たとえば、自然言語プロセッサ106およびインターフェース104は、単一のコンポーネント、アプリ、もしくはプログラム、または1つもしくは複数の処理回路を有する論理デバイス、またはデータ処理システム102の1つもしくは複数のサーバの一部であることが可能である。
【0099】
今やいくつかの例示的な実装を説明したが、以上は例示的であり、限定的でなく、例として提供されたことは明らかである。特に、本明細書において提示された例の多くは方法の行為またはシステムの要素の特定の組合せを含むが、それらの行為およびそれらの要素は、同じ目的を達成するためにその他の方法で組み合わされる可能性がある。1つの実装に関連して検討された行為、要素、および特徴は、その他の実装または実装の同様の役割から除外されるように意図されていない。
【0100】
本明細書において使用された言葉遣いおよび用語は、説明を目的としており、限定とみなされるべきでない。本明細書における「~を含む(including)」、「~を含む(comprising)」、「~を有する(having)」、「~を含む(containing)」、「~を含む(involving)」、「~によって特徴付けられる(characterized by)」、「~ことを特徴とする(characterized in that)」、およびこれらの変化形の使用は、その前に列挙された項目、それらの項目の均等物、および追加的な項目、ならびにその前に列挙された項目だけからなる代替的な実装を包含するように意図される。1つの実装において、本明細書に記載のシステムおよび方法は、説明された要素、行為、またはコンポーネントのうちの1つ、2つ以上のそれぞれの組合せ、またはすべてからなる。
【0101】
本明細書において単数形で言及されたシステムおよび方法の実装または要素または行為へのすべての言及は、複数のこれらの要素を含む実装も包含する可能性があり、本明細書における任意の実装または要素または行為への複数形のすべての言及は、単一の要素のみを含む実装も包含する可能性がある。単数形または複数形の言及は、今開示されたシステムまたは方法、それらのコンポーネント、行為、または要素を単一のまたは複数の構成に限定するように意図されていない。任意の情報、行為、または要素に基づいている任意の行為または要素への言及は、行為または要素が任意の情報、行為、または要素に少なくとも部分的に基づく実装を含む可能性がある。
【0102】
本明細書において開示された任意の実装は、任意のその他の実装または実施形態と組み合わされる可能性があり、「実装」、「いくつかの実装」、「1つの実装」などの言及は、必ずしも相互排他的ではなく、実装に関連して説明された特定の特徴、構造、または特色が少なくとも1つの実装または実施形態に含まれる可能性があることを示すように意図される。本明細書において使用されたそのような用語は、必ずしもすべてが同じ実装に言及しているとは限らない。任意の実装は、本明細書において開示された態様および実装に合致する任意の方法で包括的または排他的に任意のその他の実装と組み合わされる可能性がある。
【0103】
「または(or)」との言及は、「または(or)」を使用して記載された任意の項が記載された項のうちの1つ、2つ以上、およびすべてのいずれかを示す可能性があるように包含的であるとみなされてよい。項の連言的リストのうちの少なくとも1つへの言及は、記載された項のうちの1つ、2つ以上、およびすべてのいずれかを示す包含的なまたは(OR)とみなされてよい。たとえば、「『A』および『B』のうちの少なくとも一方」との言及は、「A」のみ、「B」のみ、および「A」と「B」との両方を含み得る。「~を含む(comprising)」またはその他の非限定的用語と関連して使用されるそのような言及は、追加的な項を含み得る。
【0104】
図面、詳細な説明、または任意の請求項の技術的な特徴が後に参照符号を付されている場合、参照符号は、図面、詳細な説明、および請求項を理解し易くするために含められた。したがって、参照符号があることもないことも、いかなる請求項の要素の範囲に対するいかなる限定的な効果も持たない。
【0105】
本明細書に記載のシステムおよび方法は、それらの特徴を逸脱することなくその他の特定の形態で具現化される可能性がある。上述の実装は、説明されたシステムおよび方法の限定ではなく、例示的である。したがって、本明細書に記載のシステムおよび方法の範囲は、上述の説明ではなく添付の請求項によって示され、請求項の均等の意味および範囲内に入る変更は、それに包含される。
【符号の説明】
【0106】
100 システム
102 データ処理システム
104 インターフェース
105 ネットワーク
106 NLP、自然言語プロセッサ
108 サーバデジタルアシスタント
110 アクションクローラ
112 埋め込みエクストラクタ
114 コンテンツセレクタ
116 コンテンツリトリーバ
118 コンテンツスコアラ
120 データリポジトリ
122 アプリケーション
124 トランスクリプト
126 コンテンツデータ
128 モデル
130 ビットベクトル
132 補足デジタルコンテンツプロバイダデバイス
134 アプリケーション開発者デバイス
136 クライアントコンピューティングデバイス
138 入力デバイス
140 出力デバイス
142 アプリケーション
144 ローカルデジタルアシスタント
200 方法
300 方法
400 コンピューティングシステム、コンピュータシステム、コンピューティングデバイス
405 バス
410 プロセッサ
415 メインメモリ
420 読み出し専用メモリ(ROM)
425 ストレージデバイス
430 入力デバイス
435 ディスプレイ