(58)【調査した分野】(Int.Cl.,DB名)
前記1つまたは複数の予測されたアクションに対する前記アイコンが、前記ディスプレイ・デバイスに表示されたコンテンツに覆い重ねられる、請求項7に記載のモバイル・デバイス。
前記1つまたは複数の予測されたアクションに対する前記アイコンが、前記ディスプレイ・デバイスに表示されたコンテンツに覆い重ねられる、請求項16に記載の方法。
【発明を実施するための形態】
【0017】
様々な図面における同様な参照記号は同様な要素を示す。
【0018】
実装は、オンスクリーン選択に対するモバイル・アプリケーションを予測するシステムおよび方法を含む。当該選択は、スクリーンに表示されたテキストまたは画像またはテキストまたは音声入力の何れかを介して、ユーザ・インタフェースに入力されたクエリであってもよい。既にクエリ形式でない場合、当該選択をクエリに変換してもよい。当該システムは当該クエリを、クエリに対するアクションを予測するようにトレーニングされたモデルに提供してもよい。当該アクションは、モバイル・アプリケーションまたはモバイル・アプリケーションのタイプに対するものであってもよい。当該モデルを、検索レコードから取得された情報に基づいてトレーニングしてもよい。当該モデルは、当該クエリに対する1つまたは複数のアクションを選択可能コントロールの形で提供してもよい。ユーザが当該選択可能コントロールのうち1つを選択すると、当該システムは、当該クエリを用いてインテントを有するコントロールに対応するモバイル・アプリケーションを起動してもよい。インテントは、モバイル・アプリケーションによりサポートされるアクションである。検索または共有のインテントは共通タイプのインテントである。当該検索インテントにより、当該システムは、クエリが与えられると、その検索状態においてモバイル・アプリケーションにリンクすることができる。当該システムは同様に非標準インテントを使用してもよい。例えば、モバイル・アプリカントはマニフェスト・ファイルにおけるインテントを示してもよい。かかる非標準インテントは、当該モバイル・アプリケーションによりサポートされるが、必ずしもオペレーティング・システムによってはサポートされない。一般に、アクションは、当該クエリをパラメータとしてとりうる任意のインテントであってもよい。当該システムはモバイル・デバイスで使用される全てのアプリケーションにわたって動作して、ユーザ・エクスペリエンスを一貫させる。アクション提案機能はしたがって、特定のモバイル・アプリケーションに限定される必要はない。アクション提案も、認識されたエンティティ、例えば、パーソナルまたはパブリックな知識ベースで表されるエンティティに限定されない。さらに、提案されたアクションは、ユーザがまだインストールされていないモバイル・アプリケーションに対するものであってもよく、したがって、有用なモバイル・アプリケーションに関して当該ユーザに通知するための方法としての役割を果たすことができる。
【0019】
図1は、例示的な実装に従うアクション提案システムのブロック図である。システム100を使用して、モバイル・デバイスに表示されたコンテンツの選択またはユーザにより入力された選択のためのアクションを提供してもよい。当該アクションはモバイル・アプリケーションに対するインテント(例えば、標準または非標準)を表してもよく、当該ユーザがまだ当該モバイル・デバイスにインストールしていないモバイル・アプリケーションを含むことができる。幾つかの実装では、当該アクションはまた、当該モバイル・アプリケーションに対するウェブミラーを起動してもよい。当該アクションにより表される当該モバイル・アプリケーションを宛先アプリケーションと称してもよく、当該ユーザにより選択されたコンテンツを生成したモバイル・アプリケーションをソース・アプリケーションと考えてもよい。特定の選択に提供されたアクションが、トレーニングされたモデル、例えば、クエリを与えられた場合に1つまたは複数のアクションを予測するためにトレーニングされた機械学習モデルに基づいてもよい。当該システムはしたがって、当該選択をクエリに変換してもよい。
図1におけるシステム100の説明はクライアント・サーバ・システムであり、幾つかのデータ処理はサーバ110で発生する。しかし、他の構成およびアプリケーションを使用してもよい。例えば、データ処理がクライアント・デバイス150で排他的に発生してもよい。幾つかの実装では、クライアント・デバイス150のユーザは、当該処理の部分がサーバ110で実施されることを示してもよい。したがって、実装は図示した厳密な構成に限定されない。
【0020】
アクション提案システム100がサーバ110を含んでもよい。サーバ110は、幾つかの異なるデバイス、例えば標準サーバ、1群のかかるサーバ、またはラック・サーバシステムの形態をとるコンピューティング・デバイスまたはデバイスであってもよい。例えば、サーバ110を複数のコンピューティング・デバイスにわたって分散方式で実装してもよい。さらに、サーバ110をパーソナル・コンピュータ、例えばラップトップコンピュータで実装してもよい。サーバ110は、
図7に示すようにコンピュータ・デバイス700、または、
図8に示すようにシステム800の例であってもよい。サーバ110が、1つまたは複数の機械実行可能命令またはソフトウェア、ファームウェア、またはそれらの組合せを実行するように構成された基板に形成された1つまたは複数のプロセッサを含んでもよい。当該プロセッサは半導体ベースであることができる。即ち、当該プロセッサはデジタル論理を実施できる半導体材料を含むことができる。サーバ110はまた、1つまたは複数のコンピュータ・メモリを含むことができる。当該メモリ、例えば、メイン・メモリは、1つまたは複数のデータを、一時的に、永続的に、準永続的に、またはそれらの組合せの何れかで格納するように構成されてもよい。当該メモリが、当該1つまたは複数のプロセッサにより読み出しかつ/または実行できるフォーマットで情報を格納する任意のタイプの記憶デバイスを含んでもよい。当該メモリが、揮発性メモリ、不揮発性メモリ、またはそれらの組合せを含んでもよく、当該1つまたは複数のプロセッサにより実行されたとき、特定の動作を実施するモジュールまたはエンジンを格納してもよい。幾つかの実装では、当該モジュールを外部記憶デバイスに格納し、サーバ110のメモリにロードしてもよい。
【0021】
アクション提案システム100のモジュールが、アクション提案モジュール120を含んでもよい。アクション提案モジュール120は、ホワイトリストされたウェブサイトのモバイル・アプリケーションへのマッピング132に基づいて、アクション提案モデル130をトレーニングするためのトレーニング例を生成するように構成されてもよい。当該ホワイトリストされたウェブサイトはアクションを実施するために有用であるウェブサイトであってもよい。換言すれば、当該ウェブサイトは、検索インタフェースを含み、クエリに応答してコンテンツを提供するウェブサイトであってもよい。かかるウェブサイトの非包括的な例は、ショッピング・サイト、ウィキ、予約サイト、評価サイト、旅行サイト、チケットサイト等を含む。幾つかの実装では、当該ホワイトリストおよびホワイトリストされたウェブサイトのマッピングは手動で生成され、アクション提案モジュール120に提供される。幾つかの実装では、インテント(例えば、検索、共有等)のタイプはマッピング132に含まれてもよい。幾つかの実装では、アクション提案モジュール120(または別のモジュール)は当該ホワイトリストおよびマッピング132を生成してもよい。例えば、アクション提案モジュール120はモバイル・アプリケーション・マニフェスト136を検索して、当該マニフェストに記載されたウェブサイトを決定してもよい。かかるマニフェスト136は従来、開発者、アイコン、説明、バージョン等のようなアプリケーションに関する情報を含む。この情報の幾つかを使用して、当該アプリケーションをインストールするかどうかを判定するためにユーザを支援してもよい。当該情報の幾つかは、アプリケーション・プログラミング・インタフェース(API)、および当該モバイル・アプリケーションによりサポートされるインテントのような他のアプリケーション開発者に対するものであってもよい。幾つかのモバイル・アプリケーションが非標準インテントを含んでもよく、これらのインテントはマニフェスト・ファイル136で識別されてもよい。マニフェスト136はしたがって、モバイル・アプリケーションに関する様々な種類のデータを含んでもよく、場合によってはマニフェストは、当該モバイル・アプリケーションのものと同様な機能を提供するウェブサイトへの参照を含む。かかるウェブサイトは場合によってはウェブミラーと称される。マニフェスト136が当該モバイル・アプリケーション開発者によりウェブ・ストアに送信されてもよい。アクション提案モジュール120はモバイル・アプリケーションのマニフェスト136のホワイトリストされたウェブサイトで記述された任意のウェブサイトと考えてもよく、例えば、当該ウェブサイトおよびモバイル・アプリケーションをウェブサイトモバイル・アプリケーション・マップ132に追加することで、当該ウェブサイトを当該モバイル・アプリケーションにマップしてもよい。モバイル・アプリケーションが複数のインテントをサポートする場合、アクション提案モジュール120は、当該ウェブサイトをマッピングする複数のレコードを当該モバイル・アプリケーションに追加してもよく、それぞれは異なるインテントを有する。
【0022】
幾つかの実装では、アクション提案モジュール120(または別のモジュール)は、エミュレータ122を用いてウェブサイトのモバイル・アプリケーション・マップ132内のエントリを生成してもよい。エミュレータ122はクライアント・デバイスをバッチ環境でエミュレートするように構成されてもよい。換言すれば、エミュレータ122は、モバイル・アプリケーションを実行し、当該モバイル・アプリケーションにより生成されたスクリーン・コンテンツを決定するように構成されてもよい。幾つかの実装では、エミュレータ122は、クエリを有するインテントをモバイル・アプリケーションに送信し、当該モバイル・アプリケーションはコンテンツを返すかどうかを判定するか、または換言すれば当該クエリに対する結果を返してもよい。幾つかの実装では、当該コンテンツはフレーム・バッファ内の情報であってもよい。幾つかの実装では、当該コンテンツは、フレーム・バッファを生成するためのオペレーティング・システムにより使用される情報であってもよい。当該モバイル・アプリケーションがコンテンツを返すとき、エミュレータ122は等価なウェブサイト、例えば、クエリに対する同一のまたは同様な結果を返すものを発見してもよい。エミュレータ122が等価なウェブサイトを発見すると、エミュレータ122は当該ウェブサイトおよび当該モバイル・アプリケーションおよびインテントをウェブサイトモバイル・アプリケーション・マップ132に追加してもよい。
【0023】
アクション提案モジュール120はウェブサイトモバイル・アプリケーション・マップ132および検索レコード134を使用して、アクション提案モデル130をトレーニングするためのポジティブなトレーニング例を生成してもよい。例えば、アクション提案モジュール120は、ホワイトリストされたウェブサイト(例えば、ウェブサイトモバイル・アプリケーション・マップ132内のウェブサイト)のうち1つを高く順位づけられる検索結果として有するクエリに対する検索レコード134を検査してもよい。検索レコード134が、検索ログ、クエリから収集された集約されたデータ、またはクエリに基づく任意の他のデータを含んでもよい。幾つかの実装では、検索レコード134が、検索結果を生成する正常なプロセスにおいて検索エンジンにより生成されてもよい。高く順位づけられるウェブサイトは、検索結果の初期ページ上にあるかまたはクエリ要求者によりしばしば提供されたウェブサイトであってもよい。検索レコード内のクエリがホワイトリストされたウェブサイトを高く順位づけられる検索結果として含む場合、アクション提案モジュール120は、例えば、ウェブサイト−モバイル・アプリケーション・マップ132において当該ウェブサイトにマップされるモバイル・アプリケーションをポジティブなトレーニング例として使用してもよい。換言すれば、アクション提案モジュール120が、当該クエリを与えたアクション提案モデル130を教示するトレーニング例を含んでもよく、当該モバイル・アプリケーションは当該クエリを扱うための良好な候補である。アクション提案モジュール120は検索レコード134を用いて多数のトレーニング例を生成してもよい。
【0024】
幾つかの実装では、アクション提案モデル130は同様なモバイル・アプリケーションをクラスタ化することによって例の量を増大してもよい。例えば、アクション提案モジュール120は、例えば、ウェブ・ストアでまたはモバイル・アプリケーション・マニフェスト136内で利用可能なデータに基づくクラスタモバイル・アプリケーションであってもよく、当該クラスタを使用して追加のトレーニング例を生成してもよい。幾つかの実装では、クラスタ内のモバイル・アプリケーションを或るタイプのモバイル・アプリケーションと考えてもよく、ウェブサイトモバイル・アプリケーション・マップ132は、当該ウェブサイトを当該クラスタに、例えば、モバイル・アプリケーションのタイプにマップしてもよく、その結果、当該クラスタ内の任意のモバイル・アプリケーションが当該ウェブサイトにマップする。幾つかの実装では、アクション提案モジュール120は、エミュレータ122を使用して、クラスタ内のモバイル・アプリケーションが所与のクエリに対する同様な結果を生成するかどうかを検証してもよい。当該クラスタ内の特定のモバイル・アプリケーションが同様な結果を当該クラスタ内の他のモバイル・アプリケーションに提供しない場合、特定のモバイル・アプリケーションを当該クラスタから除去し、ネガティブなトレーニング例として使用してもよい。したがって、アクション提案モデル130を、特定のアプリケーションを除外するようにトレーニングしてもよい。同様に、アクション提案モジュール120は、検索レコード134およびモバイル・アプリケーション・マニフェスト136内の情報を使用して、他のネガティブなトレーニング例を生成してもよい。例えば、特定のクエリにモバイル・アプリケーションに対するウェブミラーが欠ける場合、即ち、アクション提案モジュール120が当該クエリに対する高く順位づけられるウェブ・ページと対応するモバイル・アプリケーションとの間の良いマッチを作れない場合、当該クエリを、1つまたは複数のモバイル・アプリケーションに対するネガティブな例として使用してもよい。
【0025】
アクション提案モデル130は、クエリが与えられた場合に1つまたは複数のアクション(例えば、モバイル・アプリケーション)を予測できる、長短期メモリ(LSTM)ニューラルネットワーク、フィードフォワードニューラルネットワーク、サポート・ベクトル・マシン(SVM)分類器等のような任意のタイプの機械学習アルゴリズムであってもよい。幾つかの実装では、アクション提案モジュール120は文字ごとにクエリを受理するようにアクション提案モデル130をトレーニングしてもよく、モデル130は、入力文字のエコーに遭遇したときにのみ予測を行ってもよい。かかる実装では、モデル130は、モバイル・デバイスでの記憶および実行のためにそれをコンパクトかつ適切にする非常に小さな語彙を使用する。幾つかの実装では、モデル130が、レイヤ、それぞれ64個のノードを有する2つのLSTMレイヤ、およびsoftmax分類レイヤを組み込む文字を含んでもよい。幾つかの実装では、モデル130をトレーニングして、単語を文字の代わりに入力としてとってもよい。
【0026】
当該システムはアクション提案モデル130を1つまたは複数のクライアント・デバイス、例えば、クライアント・デバイス150およびクライアント・デバイス190にプッシュしてもよい。クライアント・デバイス150は、従来のオープンウェブベース環境ではなく閉モバイル環境で動作するスマートフォンまたは他のハンドヘルドコンピューティング・デバイス、タブレット、ウェラブルコンピューティング・デバイス等のような、任意のモバイル・パーソナル・コンピューティング・デバイスであってもよい。クライアント・デバイスはまた、任意のパーソナル・コンピューティング・デバイスであってもよい。クライアント・デバイス150は、
図7に示すようにコンピュータ・デバイス700の例であってもよい。クライアント・デバイス150が、ユーザ180により使用される1つのモバイル・デバイスであってもよい。ユーザ180はまた、クライアント・デバイス190のような他のモバイル・デバイスを有してもよい。
【0027】
クライアント・デバイス150が、1つまたは複数の機械実行可能命令またはソフトウェア、ファームウェア、またはそれらの組合せを実行するように構成された基板に形成された1つまたは複数のプロセッサを含んでもよい。クライアント・デバイス150はしたがって、1つまたは複数のデータを、一時的に、永続的に、準永続的に、またはそれらの組合せの何れかで格納するように構成された1つまたは複数のコンピュータ・メモリを含んでもよい。クライアント・デバイス150はしたがってアプリケーション155を含んでもよい。アプリケーション155は、機械実行可能命令ソフトウェア、ファームウェア、またはそれらの組合せの形で表す。アプリケーション155で識別されるコンポーネントはオペレーティング・システムの一部であってもよい。幾つかの実装では、アプリケーション155はモバイル処理環境に対して開発されたモバイル・アプリケーションであってもよい。従来、モバイル・アプリケーションは閉環境で動作し、これは、ユーザが、別々のアプリケーションを使用して、通常はウェブベースのブラウザ環境で実施されるアクティビティを実施することを意味する。例えば、bookit.comに行ってホテルを予約するのではなく、クライアント・デバイス150のユーザは、bookit.comにより提供されるモバイル・アプリケーション155内のモバイル・アプリケーションを使用することができる。前述のように、モバイル・アプリケーションは、当該モバイル・アプリケーションをミラーする、例えば、当該モバイル・アプリケーションと同一のまたは同様なコンテンツを提供するウェブ・ページを有してもよい。したがって、幾つかの実装では、当該ウェブ・ページ(複数可)(例えば、bookit.com)が、当該モバイル・アプリケーション(例えば、bookit.comにより提供されるかまたはそれに関連付けられたアプリ)のウェブミラーを考慮してもよい。
【0028】
アプリケーション155が、スクリーン・キャプチャ・アプリケーション160およびアクション提案アプリケーション162を含んでもよい。幾つかの実装では、これらのアプリケーションの1つまたは複数をクライアント・デバイス150のオペレーティング・システムにより提供することができる。幾つかの実装では、これらのアプリケーションの1つまたは複数を、当該ユーザによりダウンロードしインストールすることができる。
【0029】
スクリーン・キャプチャ・アプリケーション160は様々な機能を含むことができる。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、スクリーンに表されたテキスト情報を、アプリケーション・プログラム・インタフェース(API)から取得するように構成されてもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160をオペレーティング・システムに組み込んでもよい。当該オペレーティング・システムは現在のスクリーンに表示されたテキスト・フィールドの内容を決定することができる。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、クライアント・デバイス150の現在のスクリーンをキャプチャするように構成されてもよい。スクリーン・キャプチャ・アプリケーション160は、当該デバイスのフレーム・バッファの内容をコピーまたは読むことで当該スクリーンをキャプチャしてもよい。当該キャプチャされたスクリーンはしたがって画像であってもよく、キャプチャ画像と称される。スクリーン・キャプチャ・アプリケーション160は当該スクリーンをある間隔でキャプチャしてもよい。当該間隔は短くてもよく、例えば半秒ごとまたは毎秒であってもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、タッチ・イベントが発生するたび(例えば、当該ユーザが、当該スクリーンにタッチしてリンクをスクロール、ズーム、クリックするたび等)に、明示的なユーザ要求またはコマンドに応答して、または当該デバイスが或るモバイル・アプリケーションから別のモバイル・アプリケーションに遷移するとき、当該スクリーンをキャプチャするように構成されてもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、当該スクリーンが変化しないときスクリーン・キャプチャが発生する間隔を増大してもよい。換言すれば、当該スクリーンが静的であるとき、スクリーン・キャプチャ・アプリケーション160はあまり頻繁に画像をキャプチャしなくてもよい。スクリーン・キャプチャ・アプリケーション160は当該キャプチャされたスクリーン画像およびメタデータを認識エンジンに提供してもよい。当該認識エンジンは、クライアント・デバイス150または、サーバ110のようなサーバの上にあってもよい。当該メタデータが、タイムスタンプ、モバイル・デバイスのタイプ、モバイル・デバイスの識別子、当該スクリーンがキャプチャされたときに実行されているモバイル・アプリケーション、例えば、当該スクリーンを生成したアプリケーション等を含んでもよい。幾つかの実装では、当該メタデータはまた、どのアプリケーションがアクティブであるか、当該デバイスの位置、周辺光、当該デバイスの動き等を含んでもよい。当該システムが、この追加のデバイス情報を使用して、コンテンツ分析(例えば、曖昧性除去)、提案されたアクション生成(例えば、当該デバイスが移動しているとき提案の量を削減する、どのコンテンツが最も関連するかを判定する)等を支援してもよい。
【0030】
幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、画像で識別されるテキスト、エンティティ、画像、ロゴ等に従ってスクリーン・キャプチャ画像をインデックス付けするように構成されたインデックス付けエンジンを含むことができる。したがって、例えば、当該インデックス付けエンジンはキャプチャ画像に対するインデックス・エントリを生成してもよい。幾つかの実装では当該インデックス付けエンジンがサーバ110のようなサーバ上にあってもよく、スクリーン・キャプチャ・アプリケーション160は、当該キャプチャ画像および/または当該キャプチャ画像内の認識されたアイテムを当該サーバに提供してもよい。当該インデックスは、キー値(例えば、単語、フレーズ、エンティティ、画像、ロゴ等)が、当該キー値を含むかまたは当該キー値がそこから認識された画像のリストに関連付けられる、反転インデックスであってもよい。当該インデックスが、当該リスト内の各キャプチャされた画像に関連付けられたメタデータ(例えば、当該キー値が発生したキャプチャ画像上の場所、当該画像に対する当該キー値のランク等)を含んでもよい。幾つかの実装では、当該インデックスはまた、タイムスタンプによりインデックス化されたキャプチャされた画像のリストを含んでもよい。当該インデックス付けエンジンは、当該インデックスをメモリ、例えばスクリーン・キャプチャ・インデックス172に格納してもよい。勿論、幾つかの実装では、当該システムは、当該インデックスを、クライアント・デバイス150上に加えてまたはその代わりに、サーバ上のユーザ・アカウントに格納してもよい。クライアント・デバイス150のユーザが、スクリーン・キャプチャ・アプリケーション160がアクティブである時点を制御してもよい。例えば、当該ユーザは、他の指定されたモバイル・アプリケーション155が実行されているときのみ(例えば、ソーシャル・メディアモバイル・アプリケーションにおけるときのみ)スクリーン・キャプチャ・アプリケーション160がアクティブであると指定してもよい。当該ユーザはまた、例えば設定アプリケーションを介して、手動でスクリーン・キャプチャ・アプリケーション160をオンおよびオフにしてもよい。幾つかの実装では、当該ユーザは、スクリーン・キャプチャ・アプリケーション160を、アクション提案アプリケーション162を起動するジェスチャまたはアクションで起動してもよい。
【0031】
クライアント・デバイス150はまた、アクション提案アプリケーション162を含んでもよい。アクション提案アプリケーション162は、アクション提案モデル170またはアクション提案モデル130を使用して、ユーザにより提供される選択からクエリを決定し、提案されたアクションを当該クエリに対して提供するように構成されてもよい。幾つかの実装では、ユーザ180は特に、アクション提案指示を用いてアクション提案アプリケーション162を起動または開始してもよい。幾つかの実装では、当該アクション提案指示はまた、スクリーン・キャプチャ・アプリケーション160を起動してもよい。幾つかの実装では、ジェスチャ/アクション、即ち、アクション提案指示が、長押し、2本の指のクリック、またはユーザ180がスクリーンの一部をアクティブに選択できるようにするユーザ・インタフェース・コントロールを開始するメニュー(例えば、スワイプ・アップまたはスワイプ・ダウンの後に現れるメニュー)からの選択であってもよい。幾つかの実装では、当該アクション提案指示は選択コントロールを、選択されるべき当該スクリーンの部分にドラッグしてもよい。幾つかの実装では、当該アクション提案指示が、例えば、当該ユーザがアクション提案アプリケーション162に固有なユーザ・インタフェースを実行することで、暗黙的であってもよい。例えば、当該ユーザが当該ユーザ・インタフェースを開いてもよく、当該選択をタイプするかまたは発話してもよい。ユーザ180が当該スクリーンの一部を画像で、例えば、アイコンまたは画像上の長押しを介して選択する場合、アクション提案アプリケーション162は当該画像に関連付けられたテキストを決定し、当該テキストを選択として使用するように構成されてもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160が認識を選択された領域で実施し、テキストをアクション提案アプリケーション162に提供してもよい。アクション提案アプリケーション162は、当該選択、例えば、スクリーンに現在表示されているテキスト、ユーザ・インタフェースにタイプまたは発話したテキスト、または選択された画像に関連付けられたテキストを、当該アクション提案モデルに対するクエリとして使用してもよい。
【0032】
幾つかの実装では、アクション提案アプリケーション162は当該選択に応答して書き換えられたクエリを提供してもよい。例えば、アクション提案アプリケーション162は、例えば、アクション提案モデル170、アクション提案モデル130から、または別のモジュールから、現在のクエリに対して、または換言すれば当該選択から決定された当該クエリに対して、共通クエリ終了または関連するクエリを決定してもよい。幾つかの実装では、アクション提案アプリケーション162は、現在のクエリに対して提案されたアクションに加えてクエリ終了を提供してもよい。当該ユーザが当該書き換えられたクエリのうち1つを選択する場合、
図6Aおよび6Bを参照して以下で詳細に説明するように、アクション提案アプリケーション162は、当該選択された書き換えられたクエリを現在のクエリとして使用して、当該書き換えられたクエリに対する新たな提案されたアクションを提供してもよい。
【0033】
アクション提案アプリケーション162は、アクション提案モデル170またはアクション提案モデル130のようなアクション提案モデルを使用して、当該クエリに対する提案されたアクションを決定してもよい。幾つかの実装では、アクション提案モデル170はアクション提案モデル130のコピーであってもよい。幾つかの実装では、アクション提案モデル170はアクション提案モデル130の個別化されたコピーであってもよい。例えば、クライアント・デバイス150はアクション提案モデル130をサーバ110、または更新されたアクション提案モデル130から受信してもよく、当該モデルのさらなるトレーニングをクライアント・デバイス150に実施してもよい。例えば、アクション提案アプリケーション162はユーザ・データ176を使用してもよい。ユーザ・データ176が、アクション提案モデル170に対するポジティブなトレーニング例を生成または再重み付けするための、クライアント・デバイス150から送信されたクエリまたは特定のモバイル・アプリケーション155の利用に関する情報を含んでもよい。アクション提案アプリケーション162がユーザ180により関連する提案されたまたは予測されたアクションを提供するように、これらの追加のトレーニング例はアクション提案モデル170を個別化してもよい。例えば、ユーザ180が第1の予約モバイル・アプリケーションをしばしば使用するが第2の予約モバイル・アプリケーションを決して使用しない場合、アクション提案アプリケーション162は、アクション提案アプリケーション162が第1の予約アプリケーションを提案し第2のものは提案しないように、当該モデルに対する第1の予約モバイル・アプリケーションを上方重み付けしてもよい。
【0034】
アクション提案モデル170は、クエリを与えられた場合に1つまたは複数のアクションを予測するように構成またはトレーニングされる。例えば、アクション提案アプリケーション162はモデル170にクエリを提供してもよく、モデル170は当該クエリに対する1つまたは複数の提案されたアクションを提供してもよい。当該提案されたアクションは、当該クエリを扱うように構成されるモバイル・アプリケーションの形態である。アクション提案アプリケーション162は、モバイル・アプリケーションにわたって一貫するように当該提案されたアクション(複数可)を当該デバイスのユーザに提供するユーザ・インタフェースを提供してもよい。幾つかの実装では、当該提案されたアクションは選択可能コントロールの形でであってもよい。当該コントロールは、表示されているスクリーンの上方に表示されたオーバレイ、表示されているスクリーンの背後に表示されたアンダーレイ、または当該モバイル・デバイスのディスプレイ・バッファ内の現在のスクリーンに追加されるように構成された情報であることができる。換言すれば、当該提案されたアクション・コントロールは、それが表示されるときスクリーンの上、下に表示されるか、またはそれに統合されるかに関わらず、当該モバイル・デバイスで生成されたスクリーンに追加された情報を表す。
【0035】
当該提案されたアクション・コントロールは、対応するアクションを、例えば、インテントを開始する形で開始する選択を検出するように構成されてもよい。当該提案されたアクションはしたがって、HTMLベースのドキュメント内のハイパーリンクのように動作する。アクション提案システム100が当該モバイル・デバイスで実行されている任意のモバイル・アプリケーションに対する当該提案されたアクション・コントロールを提供できるので、アクションはモバイル・アプリケーションにわたって一貫する。
【0036】
クライアント・デバイス150で実行されているとして示されているが、幾つかの実装では、アクション提案アプリケーション162はサーバ110のようなサーバで実行されるモジュールであってもよい。かかる実装では、スクリーン・キャプチャ・アプリケーション160は当該選択、例えば、選択されたテキスト、画像等を、アクション提案アプリケーション162に当該サーバで提供してもよく、アクション提案アプリケーション162は、アクション提案モデル130を用いて、スクリーン・キャプチャ・アプリケーション160に当該対応するアクション(複数可)を提供してもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、対応するアクション(複数可)を使用して、提案されたアクションをスクリーン上の選択と統合し当該アクションを選択可能とするインタフェースを提供してもよい。幾つかの実装では、アクション提案アプリケーション162は、提案されたアクション・コントロールを、キャプチャ画像内の選択の位置に対応するスクリーン座標と関連付けてもよい。当該座標を、当該選択の近くにしかしそれを完全に不明瞭にしないように選択してもよい。
【0037】
幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、提案されたアクション・コントロールを現在のスクリーンと統合してもよい。例えば、スクリーン・キャプチャ・アプリケーション160が当該選択されたアクションをアクション提案アプリケーション162から受信する場合、スクリーン・キャプチャ・アプリケーション160は、当該選択されたアクション・コントロールを現在のディスプレイと結合してもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160はオーバレイをアンダーレイとして生成してもよく、または、当該提案されたアクション・コントロールをディスプレイ・バッファ内の現在のスクリーンとインタリーブしてもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、現在表示されているスクリーンが、提案されたアクション・コントロールを表示する前に当該キャプチャされたスクリーン画像と十分に同様であることを検証するように構成されてもよい。例えば、スクリーン・キャプチャ・アプリケーション160は、当該コントロールに対する座標または対応する選択に対する座標を使用して、視覚的刺激をキャプチャされた画像から決定し、当該視覚的刺激を現在表示されている画像に対する同一の座標と比較してもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、当該視覚的刺激に対するものと同様な現在の画像内の視覚的要素を短い距離で探すように構成されてもよい。見つかった場合、スクリーン・キャプチャ・アプリケーション160は、基盤となるスクリーンの移動とマッチするように、提案されたアクション・コントロールの座標を調整してもよい。幾つかの実装では、スクリーン・キャプチャ・アプリケーション160は、キャプチャ画像、選択されたテキストまたは画像、およびアクションを現在のスクリーンの上に表示するアクティビティまたはモードを開始してもよい。以前にキャプチャされた画像、選択されたテキストまたは画像、およびアクションを、ユーザが当該アクションを選択するかまたは表示を(例えば、キャンセルまたは「戻る」コマンドで)キャンセルするまで表示してもよい。
【0038】
幾つかの実装では、アクション提案アプリケーション162はランキング・エンジンを使用して、どの提案されたアクションをモデルから表示するかを判定してもよい。例えば、アクション提案アプリケーション162が、上位ランキングの量(例えば、3または4)、または換言すれば最も可能性のある、アクション、または指定された閾値より高い確率スコアを有する任意のアクション、またはこれらの組合せを選択してもよい。幾つかの実装では、当該量または閾値は、デバイスに関するメタデータ、例えば、当該デバイスが移動しているときより低い量または高い閾値に依存してもよい。幾つかの実装では、当該提案されたアクションの表示が、スクロール可能であってもよく、例えば、最初に表示されたものより多いアクションからユーザが選択できるようにしてもよい。
【0039】
クライアント・デバイス150がデータ・ストア157を含んでもよい。データ・ストア157はクライアント・デバイス150のメモリに格納され、アプリケーション155により使用される。幾つかの実装では、データ・ストア157が、アクション提案モデル170、スクリーン・キャプチャ・インデックス172、およびユーザ・データ176を含んでもよい。これらのデータ・ストアの1つまたは複数はユーザ・アカウントまたはプロフィールに関連付けられてもよい。したがって、当該データ・ストアはまた、サーバ110に存在してもよい。さらに、データ・ストア157の1つまたは複数は、サーバ110または当該ユーザにより指定された別の位置に格納されたデータのコピーまたはサブセットであってもよい。データ・ストア157を任意の非一時的メモリに格納してもよい。
【0040】
クライアント・デバイス150は、ネットワーク140を介してサーバ110とおよび他のクライアント・デバイス190と通信してもよい。ネットワーク140は例えば、インターネットであってもよく、またはネットワーク140は例えば、ゲートウェイデバイス、ブリッジ、スイッチ等を用いて実装された有線または無線ローカル・エリアネットワーク(LAN)、広域ネットワーク(WAN)等であることができる。ネットワーク140はまた、セルラ通信ネットワークを表してもよい。ネットワーク140を介して、サーバ110はクライアント・デバイス150および190と通信しそれとデータを送受信してもよく、クライアント・デバイス150は他のクライアント・デバイス190(図示せず)と通信してもよい。
【0041】
アクション提案システム100は1つの例示的な構成を表し、実装は他の構成を組み込んでもよい。例えば、幾つかの実装は、エミュレータ122、アクション提案モジュール120、またはアクション提案アプリケーション162のコンポーネントの1つまたは複数を単一のモジュールまたはエンジンに結合してもよい。同様に、幾つかの実装は、スクリーン・キャプチャ・アプリケーション160およびアクション提案アプリケーション162の1つまたは複数を単一のモジュールまたはアプリケーションに結合してもよい。さらに、アクション提案アプリケーション162またはスクリーン・キャプチャ・アプリケーション160のコンポーネントの1つまたは複数をサーバ110で実施してもよく、エミュレータ122またはアクション提案モジュール120のコンポーネントの1つまたは複数をクライアント・デバイス150で実施してもよい。別の例として、モバイル・アプリケーション・マニフェスト136、検索レコード134、アクション提案モデル130、またはウェブサイト−モバイル・アプリケーション・マップ132のようなデータ・ストアの1つまたは複数を、単一のデータ・ストアに結合してもよく、または、複数のコンピューティング・デバイスにわたって分散してもよく、またはクライアント・デバイス150に格納してもよい。同様に、スクリーン・キャプチャ・インデックス172およびユーザ・データ176の1つまたは複数をサーバ110またはユーザにより指定された別の位置に格納してもよい。
【0042】
アクション提案システム100がユーザ固有のデータを収集し格納するまたはパーソナル情報を利用しうる範囲で、当該ユーザに、プログラムまたは特徴がユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクションまたはアクティビティ、ユーザの嗜好、またはユーザの現在の位置に関する情報)を収集するかどうかを制御するか、または、当該ユーザにより関連しうるコンテンツを受信かどうかおよび/またはその方法を制御する機会を提供してもよい。さらに、特定のデータを、個人的に識別可能な情報が除去されるように、それが格納または利用される前に1つまたは複数の方法で処理してもよい。例えば、個人的に識別可能な情報を決定できないように検索レコードを処理してもよく、かつ/または、ユーザの地理的位置を、ユーザの特定の位置を決定できないように、位置情報が取得される場所で(例えば都市、ZIPコード、または州レベルに)一般化してもよい。したがって、当該ユーザは、どのように情報が当該ユーザに関して収集されアクション提案システム100により使用されるかに対する制御を有しうる。
【0043】
図2Aおよび2Bは、開示された主題に従うクライアントコンピューティング・デバイスの例示的なディスプレイ200aおよび200bである。当該ディスプレイは、
図1のクライアント・デバイス150のようなモバイル・デバイスのディスプレイであってもよい。
図2Aにおいて、ユーザは、スクリーン200aに表示されたコンテンツの選択205を行っている。選択205は、ソース・プログラムによりスクリーンに表示されたテキスト「patio」である。選択205は視覚的にマークされてもよく、その結果、それは幾つかの態様において周囲のコンテンツと異なる。例えば選択205はハイライトされてもよく、フォントカラー変化を有してもよく、それを囲む形状を有してもよい等である。アクション提案アプリケーション162は当該選択されたテキストをクエリとして使用してもよく、クエリpatioをアクション提案モデル170に送信してもよい。アクション提案モデル170は当該クエリに応答して1つまたは複数の提案されたアクションを提供してもよい。
図2Bは当該提案されたアクションの幾つかの例を示す。例えば、アクション210は、ショッピング・モバイル・アプリケーションまたはオンライン市場モバイル・アプリケーションを表すアイコンであってもよい。ユーザがアクション210を選択する場合、アクション提案アプリケーション162は、当該ショッピング・モバイル・アプリケーションを検索インテントで起動してもよい(例えば、フォーカスを当該ショッピング・モバイル・アプリケーションまたは換言すれば宛先アプリケーションに切り替える)。検索インテントは、検索状態、または換言すれば検索ユーザ・インタフェースにおいてアプリケーションを開くオペレーティング・システム標準である。検索インテントはモバイル・アプリケーションおよびウェブアプリケーションと動作することができる。当該検索インテントはクエリ・パラメータをサポートしてもよく、その結果、当該モバイル・アプリケーションには、当該クエリが当該検索インテントの一部として提供され、当該モバイル・アプリケーションが検索結果ページまたはユーザ・インタフェースを開くかまたは起動する。実装はまた、当該クエリをパラメータとしてとりうる、標準(即ち、オペレーティング・システムによりサポートされる)または非標準(即ち、モバイル・アプリケーションによりサポートされるがオペレーティング・システムによってはサポートされない)の何れかで、他のインテントを使用してもよい。したがって、アクション210の選択は、クエリpatioをショッピング・モバイル・アプリケーションに渡して、当該クライアント・デバイスにショッピング・モバイル・アプリケーションを開くかフォーカスをそれに切り替えさせてもよく、当該ショッピング・モバイル・アプリケーションは当該クエリの結果ページを表示してもよい。このように、アクション提案アプリケーション162は、検索を実施しコンテキストを切り替えるのに必要な入力を減らし、ユーザ・エクスペリエンスを改善する。
【0044】
アクション220はレストラン予約モバイル・アプリケーションを表してもよい。ショッピング・モバイル・アプリケーションと同様に、当該レストラン予約モバイル・アプリケーションはまた検索インテントを含んでもよく、ユーザがアクション220を選択すると、当該予約モバイル・アプリケーションはクエリpatioに応答して検索結果インタフェースで開いてもよい。アクション230は、例えば、単語の定義を提供する辞書モバイル・アプリケーションであってもよい。アクション230の選択は、クエリpatioに対する検索結果を有するインタフェース内の辞書モバイル・アプリケーションにコンテキストを切り替えてもよい。アクション240は検索エンジン、例えば、クライアント・デバイス150にローカルな検索エンジンまたはインターネット検索エンジンを表してもよい。アクション240の選択は、当該検索エンジンへのコンテキストをクエリpatioに対する検索結果ページに切り替えてもよい。勿論、
図2Bに示されたアクションは例にすぎず、他の提案されたアクションをユーザに提示してもよい。
図2Bのアクションの提示が、ソース・アプリケーションにより生成されたスクリーンの内容の一部をオーバレイするバー内に示される。実装が、当該アクションのカルーセル・ディスプレイ、円形ディスプレイ、メニュー・ディスプレイ等のような他の配置を含んでもよい。
【0045】
図3Aおよび3Bは、開示された主題に従うモバイル・コンピューティング・デバイスの例示的なディスプレイである。
図1のシステム100のようなアクション提案システムは、ユーザが、例えば、クエリ305を入力することで特定の選択を入力するために、
図3Aおよび3Bのユーザ・インタフェース300を提供してもよい。クエリ305がタイプまたは発話されてもよい。したがって、当該選択がソース・アプリケーションにより表示するために生成されたコンテンツであるのではなく、ユーザ・インタフェース300がアクション提案アプリケーション自体により生成されてもよく、ユーザに当該選択を当該アクション提案アプリケーションに直接提供することを可能としてもよい。かかるユーザ・インタフェース300を、当該アクション提案アプリケーションに対するランチャと考えてもよい。当該システムは、例えば、
図1のアクション提案モデル170のようなアクション提案モデルへの入力としてクエリ305を使用してもよい。当該モデルは提案されたアクションを当該クエリに提供してもよい。
図3Bの例では、当該モデルは、予約アクション310、旅行アクション320、ヘルプ・アクション330、および航空会社アクション340を提案してもよい。各アクションは、上述のように、選択可能コントロールに関連付けられてもよい。当該選択可能コントロールは、当該アクションに関連付けられたモバイル・アプリケーションに関連付けられたアイコンであってもよい。したがって、予約アクション310は予約モバイル・アプリケーションに対するアイコンおよびアクション310の選択に関連付けられてもよく、または換言すればアクション310に対するコントロールは当該予約アプリケーションを検索インテントで起動してもよい。当該検索インテントがクエリ305をパラメータとして有してもよい。したがって、当該クライアント・デバイスは、予約アプリケーション310を起動して、クエリ305に応答して、結果を有する結果スクリーンを再検索してもよい。ユーザ・インタフェース300によりしたがって、ユーザは特定のクエリを提供して、当該クエリに適切なアクションを提供することができる。
【0046】
幾つかの実装では、ユーザは、モバイル・アプリケーションのうち1つをインストールしていなくてもよい。例えば、当該ユーザは、旅行アクション320に対応する旅行アプリケーションをインストールしていなくてもよい。アクション320に対するコントロールの選択は、デバイスに当該アプリケーションに対するダウンロード・プロセスを開始させてもよい。したがって、ユーザ・インタフェース300は、ユーザが当該モバイル・アプリケーションについて知らない場合であっても他人が有用であると考える、アクション、または換言すればモバイル・アプリケーションを当該ユーザに提供してもよい。幾つかの実装では、当該ユーザが当該旅行アプリケーションをインストールしていない場合、当該システムは、当該アクションを、インターネット検索モバイル・アプリケーション、辞書アプリ、ウィキアプリ等に対する検索インテントに変換してもよい。
図2A、2B、3A、および3Bで示されたユーザ・インタフェースは、知識ベースでエンティティに結び付けられるかまたはエンティティタイプに対するテンプレートに適合する選択だけでなく任意の選択で動作する。したがって、これらの図面のユーザ・インタフェースは、関連付けられたアクションを有する選択を大幅に拡張する。さらに、アクション・コントロールがアイコンベースとして示されているが、アクション・コントロールがテキストベースまたはテキストと画像の組合せであることができる。したがって、当該アクション・コントロールが、テキストベース、画像ベース、またはテキストおよび画像コントロールの組合せを含むことは理解される。
【0047】
図4は、開示された実装に従う、モバイル・コンピューティング・デバイスに表示されたコンテンツに基づいてテキスト選択に対するアクションを提案するための例示的なプロセス400の流れ図を示す。プロセス400を
図1のシステム100のようなアクション提案システムにより実施してもよい。プロセス400を使用して、クエリに対する提案されたアクションを決定してもよい。当該クエリは、スクリーン・キャプチャ画像からまたはユーザ・インタフェースを起動するアクション提案から識別される。プロセス400は、アクション提案モデルを生成するステップ(405)により開始してもよい。当該アクション提案モデルは提案されたアクションを提供してもよい。即ち、モバイル・アプリケーションに、所与のクエリを使用するインテントを提供してもよい。当該クエリは、当該モバイル・コンピューティング・デバイスのユーザにより行われた選択に基づいてもよい。当該インテントは、任意の標準または非標準インテントのうち1つであることができる。
図5はアクション提案モデルを構築する1例を示す。特に
図4に示されてはいないが、当該システムは当該モデルをサーバで構築し、当該モデルをクライアント・デバイスにプッシュしてもよい。
【0048】
当該システムは、アクション提案指示の受信に続いて選択を受信してもよい(410)。当該選択は、アクション提案ユーザ・インタフェースに直接入力されたクエリの形であってもよい。当該選択はまた、クライアント・デバイスのスクリーンに表示されたコンテンツから選択されたテキストまたは画像の形であってもよい。例えば、当該ユーザは、オンスクリーン・コンテンツを選択するためのインテントを示すアクション提案指示を提供してもよい。当該システムは、テキスト、画像、またはテキストおよび画像の組合せをオンスクリーン要素から選択するための能力をユーザに提供してもよい。当該アクション提案指示は、例えば、長押し、2つの指の押下であってもよく、または当該ユーザは選択されるスクリーンの領域にわたってセレクタ・ツールをドラッグしてもよい。幾つかの実装では、当該ユーザは、選択の境界を変更、例えば、追加の単語を追加するかまたは当該選択を狭める機会を有してもよい。幾つかの実装では、当該選択はまたクエリ拡張であってもよい。例えば、ユーザはテキストを選択してもよく、当該システムは、クエリ(例えば、選択)を修正するための提案として共通な拡張を提供してもよい。当該ユーザが当該クエリ拡張のうち1つを選択する場合、当該クエリ拡張は選択になる。
【0049】
当該システムはついで、当該選択をクエリに変換してもよい(415)。当該ユーザがスクリーン上のテキストまたはクエリ内のタイプを選択する場合、当該システムは当該選択を直接クエリに変換してもよい。したがって、
図2Aの例において、選択されたテキストpatioはクエリとして使用される。ユーザが画像を選択する場合、当該システムは、当該画像に関連付けられたテキストを決定し、当該テキストを選択として使用してもよい。例えば、幾つかの画像は、当該画像のテキスト説明を含む画像タグを含む。かかるタグは視覚的なオンスクリーンでなくてもよいが、視覚障碍者を支援するためのソフトウェアにより使用されることができ、当該画像をインデックス付けするために検索エンジンにより使用されてもよい。当該システムは、画像タグ内のテキストをクエリとして用いることで、当該選択された画像をクエリに変換してもよい。別の例として、当該画像は、テキスト認識プロセスを介して決定できるテキストを含んでもよい。当該システムは、画像内でクエリとして認識されたテキストを用いることで、当該選択された画像をクエリに変換してもよい。別の例として、当該画像は知識ベース内のエンティティに関連付けられてもよい。当該知識ベースが、当該画像に対するテキスト説明またはタイトルを含んでもよい。当該システムはテキスト説明またはタイトルをクエリとして使用してもよい。
【0050】
当該システムは当該クエリをアクション提案モデルに提供してもよい(420)。当該モデルは、クエリを与えられた場合に1つまたは複数のアクションを予測するためにトレーニングされた機械学習アルゴリズムであってもよい。幾つかの実装では、当該システムは当該クエリを一度に1文字当該モデルに提供して、当該モデルの語彙を削減する。当該モデルは当該クエリに対する予測されたまたは提案されたアクションを提供してもよく、当該システムは当該クエリをユーザに提供してもよい(425)。例えば、当該システムは、ユーザがアクションを選択できるようにする、アクションごとの選択可能コントロールを提供してもよい。当該アクションは、検索インテントまたは共有インテントのようなモバイル・アプリケーションに対するインテントを表す。当該アクションはまた、例えばクライアント・デバイスがブラウザで実行されているラップトップであるとき、ウェブサイトに対する検索インテントを表すことができる。当該システムは、ユーザがアクションを選択する(430、はい)かまたはアクション提案インタフェースを終了する(430、いいえ)のを待機する。当該ユーザが提案されたアクションを選択しない場合(430、はい)、当該システムは、インテントを有するアクションにより表されるモバイル・アプリケーションの実行を、当該クエリを当該インテント内のパラメータとして用いて開始してもよい(435)。幾つかの実装では、当該インテントは、検索インテントまたは共有インテントのような標準インテントである。したがって、当該クライアント・デバイスは、現在実行しているアプリケーションすべて、例えば、ソース・アプリケーションからコンテキストを、選択されたアクションにより表されるモバイル・アプリケーション、例えば、宛先アプリケーションに切り替える。クライアント・デバイスがモバイル・デバイスでない実装では、当該アクションは当該モバイル・アプリケーションをミラーする特定のウェブサイト内の検索インタフェースに関連付けられてもよく、当該システムは、ブラウザに、当該クエリをパラメータとして用いて、検索インテントを有する検索インタフェースにナビゲートさせてもよい。したがって、ユーザは、宛先アプリケーション(例えば、モバイル・アプリケーションまたは当該モバイル・アプリケーションのウェブミラー)に自動的に切り替えることができる。
【0051】
幾つかの実装では、アクションは、モバイル・デバイスにインストールされていないモバイル・アプリケーションに関連付けられてもよい。これが発生すると、選択されたエンティティに対するアクションは、選択されたとき、ユーザが当該モバイル・アプリケーションをダウンロードおよびインストールできるインタフェースに当該ユーザを導くか、または当該モバイル・アプリケーションのインストールを自動的に開始する二次アクションであってもよい。したがって、当該アクションの選択により、当該ユーザが当該モバイル・アプリケーションをインストールできてもよいことは理解される。幾つかの実装では、当該モバイル・アプリケーションのインストールに成功した後、当該システムは、新たにインストールされたモバイル・アプリケーションを開くためのパラメータとして当該クエリを用いて、インテントを自動的に開始してもよい。幾つかの実装では、当該ユーザが特定のモバイル・アプリケーションをインストールしていない場合、当該システムは当該クエリのブラウザベースの検索を置き換えてもよい。幾つかの実装では、アクションが指定されない場合、当該システムは、当該クエリを扱うためのブラウザ検索またはカット/コピーオプションのようなユーザ・インタフェースを介してデフォルト・オプションを提供してもよい。
【0052】
図5は、開示された実装に従う、アクション提案モデルを生成するための例示的なプロセス500の流れ図を示す。プロセス500を
図1のシステム100のようなアクション提案システムにより実施してもよい。プロセス500は
図4のステップ405の例であり、
図1のモデル130またはモデル170のようなアクション提案アクションモデルを構築するために使用してもよい。プロセス500は、モバイル・アプリケーション・マッピングに対するウェブサイトを取得することにより開始してもよい(505)。幾つかの実装では、当該マッピングを提供、例えば、手でキュレートしてもよい。幾つかの実装では、当該システムが当該マッピングを構築してもよい。例えば、当該システムは、モバイル・アプリケーション・マニフェストを使用してモバイル・アプリケーションに対するウェブサイト・ミラーを決定してもよい。幾つかの実装では、当該システムが、同様なモバイル・アプリケーションをクラスタ化し全ての同様なアプリケーションをウェブサイト・ミラーにマップすることで、当該マッピングを補強してもよい。例えば、フライト、レンタカー、ホテル等を予約するための幾つかの予約モバイル・アプリケーションがあってもよく、これらが従来のクラスタ・アルゴリズムを用いてクラスタ化してもよい。幾つかの実装では、当該システムはクラスタ内の各アプリケーションをウェブサイト・ミラーにマップしてもよい。幾つかの実装では、当該システムは、どのモバイル・アプリケーションにウェブサイトがマップされるかを判定するためのエミュレータを使用してもよい。例えば、当該エミュレータは、クエリを検索レコードから取得し、様々なモバイル・アプリケーション(例えば、ウェブ・ストアを介して利用可能なもの)の実行をシミュレートするように構成されてもよい。当該エミュレータは、特定のモバイル・アプリケーションが同一のクエリを与えられた場合に当該ウェブサイトと同様な結果を返すかどうかを判定してもよい。そうである場合、当該エミュレータは当該ウェブサイトを当該モバイル・アプリケーションにマップしてもよい。幾つかの実装では、当該エミュレータは、クエリをモバイル・アプリケーションに提供し、当該モバイル・アプリケーションがコンテンツ状態で終了する、または、換言すれば当該クエリに対する正当な検索結果を返かどうかを判定するように構成されてもよい。その場合、当該システムが、ウェブサイト・ミラー、例えば、同一のクエリを与えられた場合に同様な結果を返すものを発見してもよい。これらの方式の何れかにおいて、当該システムはモバイル・アプリケーション・マッピングに対して当該ウェブサイトを構築してもよい。
【0053】
当該システムは、モデルをトレーニングするためのポジティブなトレーニング例を識別してもよい(510)。当該ポジティブなトレーニング例を検索レコードから抽出してもよい。当該検索レコードが、インターネット検索エンジンのユーザにより送信されたクエリの匿名化されたレコードであってもよい。当該システムは、当該検索レコード内のクエリに対して高く順位づけられる結果を選択してもよい。結果は、それが当該クエリに対して高い関連性を有するとき、または、当該結果が高いクリック率を有する、例えば、クエリ要求者によるさらなる視聴に対してしばしば選択されるとき、高く順位づけられると考えてもよい。高く順位づけられるウェブサイトは当該クエリに対するポジティブな例と考えられ、したがって当該高く順位づけられるウェブサイトにマップされるモバイル・アプリケーションは当該クエリに対するありうるアクションを表す。幾つかの実装では、当該ポジティブなトレーニング例が、当該検索レコード内のクエリに対するウェブサイトの関連性に等しい重みを有してもよい。幾つかの実装では、当該ポジティブなトレーニング例がクリック率に比例する重みを有してもよい。幾つかの実装では、当該システムはまた、ネガティブな例を生成してもよい。例えば、クエリに対して高く順位づけられるウェブサイトにマップされないモバイル・アプリケーションはネガティブな例であってもよい。同様に、高く順位づけられる検索結果が対応するモバイル・アプリケーション(例えば、マッピング)をもたないとき、任意のモバイル・アプリケーションをそのクエリに対するネガティブな例として使用してもよい。
【0054】
当該システムは、ポジティブなトレーニング例およびネガティブな例を使用してアクション提案モデルをトレーニングしてもよい(515)。当該システムは当該トレーニングされたモデルをクライアント・デバイスに提供してもよい(520)。幾つかの実装では、アクション提案アプリケーションがインストールされるかまたは当該モデルが更新されたとき、当該モデルをクライアント・デバイスにプッシュしてもよい。幾つかの実装では、当該アクション提案アプリケーションは、当該モデルを当該サーバから、例えば、アプリケーション更新の一部としてプルしてもよい。当該クライアント・デバイスで、当該システムは当該モデルを個別化するかどうかを判定してもよい(525)。個別化がされない場合(525、いいえ)、プロセス500は終了する。そうでなければ(525、はい)、当該システムは、当該クライアント・デバイスまたは当該クライアント・デバイスのユーザに関連付けられた検索レコードからポジティブなトレーニング例を識別してもよい(530)。例えば、当該システムは、上述のように、ユーザ・プロフィールに関連付けられた検索レコードを使用して追加のポジティブなトレーニング例を追加してもよい。さらにまたはあるいは、当該クライアント・デバイスおよび/または当該ユーザに関連付けられた検索レコードを、トレーニング例を再重み付けするために使用してもよい。当該システムは、更新された例を使用して当該モデルをさらにトレーニングしてもよい(535)。したがって、当該モデルをトレーニングして、当該ユーザに最も関連するアクションを予測してもよい。プロセス500は次いで終了する。
【0055】
図6Aおよび6Bは、開示された実装に従う、選択拡張を伴うモバイル・コンピューティング・デバイスの例示的なディスプレイである。
図1のシステム100のようなアクション提案システムは、クエリ拡張を提供するために
図6Aおよび6Bのユーザ・インタフェース600を提供してもよい。
図6Aの例において、ユーザは選択605を行い、テキスト「Dark Knight」を選択している。当該システムは、選択605に対する4つの提案されたアクション、即ち映画データベース・アクション620、映画レビュー・アクション625、夕食予約アクション630、および検索アクション635を提供している。提案されたアクション620乃至635に加えて、当該システムはまた、クエリ拡張610を提供している。クエリ拡張610は、他人が検索した選択605のクエリと同様であるかまたはそれを含むクエリを表してもよい。当該システムはクエリ拡張610を当該アクション提案モデルから、検索レコードから、またはクエリ拡張モジュールから、取得してもよく、当該クエリ拡張モジュールはサーバまたは当該クライアント・デバイス上で実行されてもよい。当該クエリ拡張モジュールは検索レコードから決定された共通クエリ拡張へのアクセスを有してもよい。
図6Aの例において、「Dark Knight」クエリに対するクエリ拡張は「Dark Knight trailer」、「Dark Knight reviews」および「Dark Knight show times」である。
図6Bの例において、当該ユーザは「Dark Knight show times」を選択しており、これは、現在の選択615となり、dark knight show timesというクエリに変換される。当該システムはこのクエリを当該アクション提案モデルに提供してもよく、当該アクション提案モデルは当該改良されたクエリを使用してアクションを再順位付けてもよい。幾つかの実装では、当該モデルは、
図6Bに示されたような提案されたアクション640、625、および620のような新たな組の提案されたアクションを提供してもよい。アクション640はローカル映画時間を提供するモバイル・アプリケーションに対するものであってもよい。アクション625および620は
図6Aに関して説明したものと同一であるが、その順序は変更されており、映画レビュー・アクション625を映画データベース・アクション620の前に置く。したがって、
図6Aおよび6Bは、選択に対するクエリ拡張を提案するユーザ・インタフェースと、当該クエリ拡張がアクションおよび/または当該元のクエリと異なる提案されたアクションをどのように様々に順位づけうるかとを示す。
【0056】
ここで、本明細書で説明した様々な実施形態にも適用可能であるが、アクションの提供がコンテンツ、レイアウト、機能または画像をデバイスのスクリーンに表示する他の態様の利用権限と一貫し、したがって能力を設定するかどうかを判定する能力を提供しうることに留意されたい。例えば、コンテンツまたは選択を制限する設定を、そのような設定がサービス、コンテンツライセンス、または他の使用制限の条項に違反しうる場面で提供してもよい。かかる設定を手動でまたは自動的に、例えば、新たなサービスまたはデバイス利用許可を確立するときにユーザにより、またはアプリインストールルーチン等により、行ってもよい。
【0057】
図7は汎用コンピュータ・デバイス700の例を示し、これは
図1のサーバ110、および/またはクライアント150として動作してもよく、これらを本明細書で説明した技術で使用してもよい。コンピューティング・デバイス700は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、携帯電話、スマートフォン、タブレット、サーバ、およびウェラブルデバイスを含む他のコンピューティング・デバイスのような様々な例示的な形態のコンピューティング・デバイスを表すことをインテントする。本明細書で示したコンポーネント、それらの接続および関係、およびそれらの機能は例にすぎず、本願で説明および/またはクレームした本発明の諸実装を限定することを意味しない。
【0058】
コンピューティング・デバイス700は、プロセッサ702、メモリ704、記憶デバイス706、およびインタフェース708を介して接続された拡張ポート710を含む。幾つかの実装では、コンピューティング・デバイス700が、インタフェース708を介して接続されたトランシーバ746、通信インタフェース744、およびGPS(全地球測位システム)受信機モジュール748、他のコンポーネントのうちを含んでもよい。デバイス700は通信インタフェース744を通じて無線で通信してもよく、通信インタフェース744が、必要に応じてデジタル信号処理回路を含んでもよい。コンポーネント702、704、706、708、710、740、744、746、および748の各々を共通マザーボードにまたは必要に応じて他の方式でマウントしてもよい。
【0059】
プロセッサ702は、ディスプレイ716のような外部入出力デバイス上のGUIに対するグラフィカル情報を表示するためのメモリ704または記憶デバイス706上に格納された命令を含む、コンピューティング・デバイス700内で実行するための命令を処理することができる。ディスプレイ716はモニタまたはフラットタッチスクリーンディスプレイであってもよい。幾つかの実装では、複数のプロセッサおよび/または複数のバスを複数のメモリおよびメモリのタイプとともに必要に応じて使用してもよい。また、複数のコンピューティング・デバイス700を接続してもよく、各デバイスは当該必要な動作の部分を(例えば、サーバ・バンク、1群のブレードサーバ、またはマルチプロセッサシステムとして)提供する。
【0060】
メモリ704は情報をコンピューティング・デバイス700内に記憶する。1実装では、メモリ704は1つまたは複数の揮発性メモリ・ユニットである。別の実装において、メモリ704は1つまたは複数の不揮発性メモリ・ユニットである。メモリ704はまた、磁気または光ディスクのような別の形態のコンピュータ可読媒体であってもよい。幾つかの実装では、メモリ704が、拡張インタフェースを通じて提供される拡張メモリを含んでもよい。
【0061】
記憶デバイス706は大容量記憶をコンピューティング・デバイス700に提供することができる。1実装では、記憶デバイス706は、記憶領域ネットワークまたは他の構成でのデバイスを含む、フロッピディスク・デバイス、ハード・ディスク・デバイス、光ディスク・デバイス、またはテープ・デバイス、フラッシュ・メモリまたは他の同様な固体メモリデバイス、またはデバイスのアレイのようなコンピュータ可読媒体であるかまたはそれを含んでもよい。コンピュータプログラム製品をかかるコンピュータ可読媒体で有形に具現化することができる。当該コンピュータプログラム製品はまた、実行されたとき、上述したもののような1つまたは複数の方法を実施する命令を含んでもよい。当該コンピュータまたはマシン可読媒体は、メモリ704、記憶デバイス706、またはプロセッサ上のメモリ702のような記憶デバイスである。
【0062】
当該インタフェース708は、当該コンピューティング・デバイスに対する帯域幅集約的動作を管理する高速コントローラ700または低帯域幅集約的動作を管理する低速コントローラ、またはかかるコントローラの組合せであってもよい。外部インタフェース740をデバイス700の他のデバイスとの近領域通信を可能とするために提供してもよい。幾つかの実装では、コントローラ708を記憶デバイス706および拡張ポート714に接続してもよい。当該拡張ポートは、様々な通信ポート(例えば、USB、Bluetooth、Ethernet、無線Ethernet)を含んでもよく、キーボード、ポインティング・デバイス、スキャナのような1つまたは複数の入出力デバイス、または例えばネットワークアダプタを通じてスイッチまたはルータのようなネットワーク・デバイスに接続してもよい。
【0063】
コンピューティング・デバイス700を、図面で示すように幾つかの異なる形態で実装してもよい。例えば、それを、標準サーバ730として、または1群のかかるサーバ内で複数回実装してもよい。それをまた、ラック・サーバシステムの一部として実装してもよい。さらに、それを、ラップトップコンピュータ732、パーソナル・コンピュータ734、またはタブレット/スマートフォン736のようなコンピューティング・デバイスで実装してもよい。システム全体が、互いに通信する複数のコンピューティング・デバイス700で構成されてもよい。他の構成が可能である。
【0064】
図8は汎用コンピュータ・デバイス800の例を示し、これは
図1のサーバ110であってもよく、これを本明細書で説明した技術で使用してもよい。コンピューティング・デバイス800は、サーバ、ブレードサーバ、データ・センタ、メインフレーム、および他の大規模コンピューティング・デバイスのような様々な例示的な形態の大規模データ処理デバイスを表すものである。コンピューティング・デバイス800は、1つまたは複数の通信ネットワークにより相互接続される、おそらくネットワーク取付記憶ノードを含む複数のプロセッサを有する分散システムであってもよい。本明細書で示したコンポーネント、それらの接続および関係、およびそれらの機能は例にすぎず、本願で説明および/またはクレームした本発明の諸実装を限定することを意味しない。
【0065】
分散コンピューティング・システム800が、任意数のコンピューティング・デバイス880を含んでもよい。コンピューティング・デバイス880が、ローカルまたは広域ネットワーク、専用光リンク、モデム、ブリッジ、ルータ、スイッチ、有線または無線ネットワーク等を介して通信するサーバまたはラック・サーバ、メインフレーム等を含んでもよい。
【0066】
幾つかの実装では、各コンピューティング・デバイスは複数のラックを含んでもよい。例えば、コンピューティング・デバイス880aは複数のラック858a−858nを含む。各ラックが、プロセッサ852a−852nおよび862a−862nのような1つまたは複数のプロセッサを含んでもよい。当該プロセッサが、データプロセッサ、ネットワーク取付記憶デバイス、および他のコンピュータ制御されたデバイスを含んでもよい。幾つかの実装では、或るプロセッサはマスタプロセッサとして動作してもよく、スケジューリングおよびデータ分散タスクを制御してもよい。プロセッサは1つまたは複数のラックスイッチ858を介して相互接続されてもよく、1つまたは複数のラックを、スイッチ878を介して接続してもよい。スイッチ878は複数の接続されたコンピューティング・デバイス880間の通信を扱ってもよい。
【0067】
各ラックが、メモリのようなメモリ854およびメモリ864、および、856および866のような記憶を含んでもよい。記憶856および866は大容量記憶を提供してもよく、記憶領域ネットワークまたは他の構成内のデバイスを含む、ネットワーク取付ディスク、フロッピディスク、ハード・ディスク、光ディスク、テープ、フラッシュ・メモリまたは他の同様な固体メモリデバイス、またはデバイスのアレイのような揮発性または不揮発性記憶を含んでもよい。記憶856または866は複数のプロセッサ、複数のラック、または複数のコンピューティング・デバイスの間で共有されてもよい、当該プロセッサの1つまたは複数により実行可能な命令を格納するコンピュータ可読媒体を含んでもよい。メモリ854および864が、例えば、磁気または光ディスク、フラッシュ・メモリ、キャッシュ、ランダム・アクセスメモリ(RAM)、読取専用メモリ(ROM)、およびそれらの組合せのような1つまたは複数の揮発性メモリ・ユニット、1つまたは複数の不揮発性メモリ・ユニット、および/または他の形態のコンピュータ可読媒体を含んでもよい。メモリのようなメモリ854がまた、プロセッサ852a−852nの間で共有されてもよい。インデックスのようなデータ構造を例えば記憶856およびメモリ854にわたって格納してもよい。コンピューティング・デバイス880が、コントローラ、バス、入出力デバイス、通信モジュール等のような図示していない他のコンポーネントを含んでもよい。
【0068】
システム100のようなシステム全体が、互いに通信する複数のコンピューティング・デバイス880で構成されてもよい。例えば、デバイス880aはデバイス880b、880c、および880dと通信してもよく、これらは集合的にシステム100として知られ得る。別の例として、
図1のシステム100が、1つまたは複数のコンピューティング・デバイス880を含んでもよい。当該コンピューティング・デバイスの幾つかが互いと地理的に近接して配置されてもよく、その他が地理的に離れて配置されてもよい。システム800の当該レイアウトは例にすぎず、当該システムは他のレイアウトまたは構成をとってもよい。
【0069】
本開示の特定の態様によれば、モバイル・デバイスは、少なくとも1つのプロセッサ、ディスプレイ・デバイス、および当該少なくとも1つのプロセッサにより実行されたとき、当該モバイル・デバイスに動作を実施させる命令を格納したメモリとを備える。当該動作は、当該ディスプレイ・デバイスを介して行われた選択をクエリに変換するステップと、当該クエリをアクション提案モデルに提供するステップであって、当該アクション提案モデルはクエリが与えられるとアクションを予測するためにトレーニングされ、各アクションはモバイル・アプリケーションに関連付けられる、ステップと、1つまたは複数の予測されたアクションを受信するステップと、当該ディスプレイ・デバイスでの当該1つまたは複数の予測されたアクションの表示を開始するステップとを含む。
【0070】
この態様および他の態様は以下の特徴の1つまたは複数を含むことができる。例えば、当該動作はまた、当該1つまたは複数の予測されたアクションのうち1つの選択を受信するステップと、当該選択に関連付けられた当該モバイル・アプリケーションに対するクエリを用いてインテントを開始するステップとを含んでもよい。別の例として、当該1つまたは複数の予測されたアクションの表示を開始するステップは、予測されたアクションごとに、当該予測されたアクションに関連付けられた当該モバイル・アプリケーションに対するアイコンを表示するステップを含む。幾つかの実装では、当該1つまたは複数の予測されたアクションに対する当該アイコンは、当該ディスプレイ・デバイスに表示されたコンテンツを重ね合わせる。別の例として、当該選択は画像であり、当該選択をクエリに変換するステップは当該画像に関するテキストを識別するステップと、当該テキストのうち少なくとも幾つかを当該クエリとして用いるステップとを含む。別の例として、当該選択は画像であり、当該選択をクエリに変換するステップは、当該画像内のエンティティを識別するステップと、当該エンティティを当該クエリとして使用するステップを含む。
【0071】
別の例として、当該動作はまた、当該アクション提案モデルをサーバから受信するステップと、当該モバイル・デバイスのユーザに対する検索レコード内のホワイトリストされたウェブサイトを識別するステップと、高く順位づけられる当該ホワイトリストされたウェブサイトを含むクエリからトレーニング例を生成するステップであって、当該トレーニング例は、当該検索レコード内の当該ホワイトリストされたウェブサイトの順位より高い重みを有する、ステップと、当該トレーニング例を用いて当該アクション提案モデルをトレーニングして、個別化されたアクション提案モデルをもたらすステップとを含んでもよい。別の例として、当該選択は音声コマンドであってもよく、当該選択をクエリに変換するステップは、単語認識を当該音声コマンドに実施するステップと、認識された単語を当該クエリとして使用するステップを含むことができる。別の例として、当該選択をクエリに変換するステップは、少なくとも1つの拡張されたクエリを生成するための当該選択の拡張を決定するステップと、当該拡張されたクエリを当該アクション提案モデルに提供して、第2の予測されたアクションを生成するステップと、当該少なくとも1つの拡張されたクエリの表示を開始するステップと、当該拡張されたクエリの選択を受信したことに応答して、第2の予測されたアクションの表示を開始するステップとを含むことができる。別の例として、当該モバイル・アプリケーションのうち少なくとも1つが当該モバイル・デバイスにインストールされていなくてもよい。
【0072】
本開示の特定の態様によれば、方法は、検索レコードから、ウェブサイトが対応する検索結果内で高く順位づけられるクエリを識別するステップであって、当該ウェブサイトは、ウェブサイトのモバイル・アプリケーションに対するマッピング内の複数のウェブサイトのうち1つである、ステップを含む。当該方法はまた、アクション提案モデルに対するポジティブなトレーニング例を当該クエリから生成するステップであって、各ポジティブなトレーニング例は、クエリ、ウェブサイト、当該クエリに対する当該検索結果内の当該ウェブサイトの順位に対応する重み、およびモバイル・アプリケーションを有する、ステップと、当該ポジティブなトレーニング例を用いて当該アクション提案モデルをトレーニングするステップとを含む。
【0073】
この態様および他の態様は以下の特徴の1つまたは複数を含むことができる。例えば、当該方法はまた、第1のモバイル・アプリケーションのマニフェスト内のウェブサイトを識別するステップと、当該ウェブサイトおよび第1のモバイル・アプリケーションを当該マッピングに追加するステップとを含んでもよい。別の例として、当該方法はまた、ウェブ・ストア内の同様なモバイル・アプリケーションをクラスタ化するステップであって、第1のモバイル・アプリケーションは第1のクラスタに現れる、ステップと、当該ウェブサイトが高く順位づけられるクエリを識別するステップと、第1のモバイル・アプリケーションにより生成された当該クエリに対する検索結果が第2のモバイル・アプリケーションにより生成された当該クエリに対する検索結果と同様であることを検証するステップであって、第2のモバイル・アプリケーションは第1のクラスタ内にある、ステップと、当該検証に応答して、当該ウェブサイトおよび第2のモバイル・アプリケーションを当該マッピングに追加するステップとを含んでもよい。別の例として、当該方法はまた、モバイル・デバイスに格納された検索レコードに基づいて当該モデルを個別化するステップを含んでもよい。別の例として、当該方法が、当該モデルをクライアント・デバイスにプッシュするステップと、当該クライアント・デバイスのユーザに関連付けられた検索レコード当該モデルを個別化するステップとを含んでもよい。
【0074】
本開示の特定の態様によれば、方法が、アクション提案指示を受信したことに応答して、モバイル・コンピューティング・デバイスのディスプレイ・デバイスを介して行われた選択をクエリに変換するステップと、アクション提案モデルを用いて、当該クエリに対する少なくとも1つのモバイル・アプリケーションを予測するステップであって、当該アクション提案モデルは、クエリが与えられるとモバイル・アプリケーションを予測するためにトレーニングされる、ステップと、当該少なくとも1つのモバイル・アプリケーションに対する選択可能コントロールの当該ディスプレイ・デバイスへの表示を開始するステップとを含んでもよい。
【0075】
この態様および他の態様は以下の特徴の1つまたは複数を含むことができる。例えば、当該方法はまた、当該選択可能コントロールの選択を受信するステップと、当該モバイル・アプリケーションへの当該クエリを用いた検索インテントを開始するステップとを含んでもよい。別の例として、当該選択可能コントロールの表示を開始するステップは当該モバイル・アプリケーションに対するアイコンを表示するステップを含む。別の例として、当該選択をクエリに変換するステップは、少なくとも1つの拡張されたクエリを生成するための当該選択の拡張を決定するステップと、当該拡張されたクエリを第2のモバイル・アプリケーションを生成するために当該アクション提案モデルに提供するステップと、当該少なくとも1つの拡張されたクエリの表示を開始するステップと、当該拡張されたクエリの選択を受信したことに応答して、第2のモバイル・アプリケーションに対する選択可能コントロールの表示を開始するステップとを含むことができる。別の例として、当該モバイル・アプリケーションのうち少なくとも1つが当該モバイル・デバイスにインストールされていなくてもよく、当該方法はさらに、当該選択可能コントロールの選択を受信するステップと、当該モバイル・アプリケーションの当該モバイル・デバイスへのインストールを開始するステップとを含む。
【0076】
第1の態様によれば、モバイル・デバイスのディスプレイ・デバイスを介して行われた選択をクエリに変換するステップと、当該クエリをアクション提案モデルに提供するステップであって、当該アクション提案モデルはクエリが与えられるとアクションを予測するためにトレーニングされ、各アクションはモバイル・アプリケーションに関連付けられる、ステップと、1つまたは複数の予測されたアクションを受信するステップと、当該ディスプレイ・デバイスでの当該1つまたは複数の予測されたアクションの表示を開始するステップとを含む方法が提供される。
【0077】
第1の態様に基づいて、第2の態様によれば、当該方法はさらに、当該1つまたは複数の予測されたアクションのうち1つの選択を受信するステップと、当該選択に関連付けられた当該モバイル・アプリケーションに対するクエリを用いてインテントを開始するステップとを含んでもよい。
【0078】
第1のまたは第2の態様に基づいて、第3の態様によれば、当該1つまたは複数の予測されたアクションの表示を開始するステップが、予測されたアクションごとに、当該予測されたアクションに関連付けられた当該モバイル・アプリケーションに対するアイコンを表示するステップを含んでもよい。当該1つまたは複数の予測されたアクションに対する当該アイコンは当該ディスプレイ・デバイスに表示されたコンテンツをオーバレイしてもよい。
【0079】
第1の、第2の、または第3の態様に基づいて、第4の態様によれば、当該選択は画像であってもよく、当該選択をクエリに変換するステップが、当該画像に関するテキストを識別するステップと、当該テキストのうち少なくとも幾つかを当該クエリとして用いるステップとを含んでもよい。
【0080】
第1乃至第4の態様の何れかに基づいて、第5の態様によれば、当該選択は画像であってもよく、当該選択をクエリに変換するステップが、当該画像内のエンティティを識別するステップと、当該エンティティを当該クエリとして使用するステップとを含んでもよい。
【0081】
第1乃至第5の態様の何れかに基づいて、第6の態様によれば、当該方法はさらに、当該アクション提案モデルをサーバから受信するステップと、当該モバイル・デバイスのユーザに対する検索レコード内のホワイトリストされたウェブサイトを識別するステップと、高く順位づけられる当該ホワイトリストされたウェブサイトを含むクエリからトレーニング例を生成するステップであって、当該トレーニング例は、当該検索レコード内の当該ホワイトリストされたウェブサイトのランキングより高い重みを有する、ステップと、当該トレーニング例を用いて当該アクション提案モデルをトレーニングして、個別化されたアクション提案モデルを生成するステップとを含んでもよい。
【0082】
第1乃至第6の態様の何れかに基づいて、第7の態様によれば、当該選択は音声コマンドであってもよく、当該選択をクエリに変換するステップが、単語認識を当該音声コマンドに実施するステップと、認識された単語を当該クエリとして使用するステップとを含んでもよい。
【0083】
第1乃至第7の態様の何れかに基づいて、第8の態様によれば、当該選択をクエリに変換するステップが、少なくとも1つの拡張されたクエリを生成するための当該選択の拡張を決定するステップと、当該拡張されたクエリを当該アクション提案モデルに提供して、第2の予測されたアクションを生成するステップと、当該少なくとも1つの拡張されたクエリの表示を開始するステップと、当該拡張されたクエリの選択を受信したことに応答して、第2の予測されたアクションの表示を開始するステップとを含んでもよい。
【0084】
第1乃至第8の態様の何れかに基づいて、第9の態様によれば、当該モバイル・アプリケーションのうち少なくとも1つが当該モバイル・デバイスにインストールされていなくてもよい。当該方法はさらに、当該予測されたアクションの選択を受信するステップと、当該モバイル・アプリケーションの当該モバイル・デバイスへのインストールを開始するステップを含んでもよい。
【0085】
本開示の第10の態様によれば、方法は検索レコードから、ウェブサイトが対応する検索結果内で高く順位づけられるクエリを識別するステップであって、当該ウェブサイトは、ウェブサイトのモバイル・アプリケーションに対するマッピング内の複数のウェブサイトのうち1つである、ステップを含む。当該方法はまた、アクション提案モデルに対するポジティブなトレーニング例を当該クエリから生成するステップであって、各ポジティブなトレーニング例は、クエリ、ウェブサイト、当該クエリに対する当該検索結果内の当該ウェブサイトの順位に対応する重み、およびモバイル・アプリケーションを有する、ステップと、当該ポジティブなトレーニング例を用いて当該アクション提案モデルをトレーニングするステップとを含む。
【0086】
第10の態様に基づいて、第11の態様によれば、当該方法はさらに、第1のモバイル・アプリケーションのマニフェスト内のウェブサイトを識別するステップと、当該ウェブサイトおよび第1のモバイル・アプリケーションを当該マッピングに追加するステップとを含んでもよい。
【0087】
第10のまたは第11の態様に基づいて、第12の態様によれば、当該方法はさらに、ウェブ・ストア内の同様なモバイル・アプリケーションをクラスタ化するステップであって、第1のモバイル・アプリケーションは第1のクラスタに現れる、ステップと、当該ウェブサイトが高く順位づけられるクエリを識別するステップと、第1のモバイル・アプリケーションにより生成された当該クエリに対する検索結果が第2のモバイル・アプリケーションにより生成された当該クエリに対する検索結果と同様であることを検証するステップであって、第2のモバイル・アプリケーションは第1のクラスタ内にある、ステップと、当該検証に応答して、当該ウェブサイトおよび第2のモバイル・アプリケーションを当該マッピングに追加するステップとを含んでもよい。
【0088】
第10乃至第12の態様の何れかに基づいて、第13の態様によれば、当該方法はさらに、モバイル・デバイスに格納された検索レコードに基づいて当該モデルを個別化するステップを含んでもよい。
【0089】
第10乃至第13の態様の何れかに基づいて、第14の態様によれば、当該方法はさらに、当該モデルをクライアント・デバイスにプッシュするステップと、当該クライアント・デバイスのユーザに関連付けられた検索レコードに基づいて当該モデルを個別化するステップとを含んでもよい。
【0090】
本開示の第15の態様によれば、方法が、アクション提案指示を受信したことに応答して、モバイル・コンピューティング・デバイスのディスプレイ・デバイスを介して行われた選択をクエリに変換するステップと、アクション提案モデルを用いて、当該クエリに対する少なくとも1つのモバイル・アプリケーションを予測するステップであって、当該アクション提案モデルは、クエリが与えられるとモバイル・アプリケーションを予測するためにトレーニングされる、ステップと、当該少なくとも1つのモバイル・アプリケーションに対する選択可能コントロールの当該ディスプレイ・デバイスへの表示を開始するステップとを含んでもよい。
【0091】
第15の態様に基づいて、第16の態様によれば、当該方法はさらに、当該選択可能コントロールの選択を受信するステップと、当該モバイル・アプリケーションへの当該クエリを用いた検索インテントを開始するステップとを含んでもよい。
【0092】
第15のまたは第16の態様に基づいて、第17の態様によれば、当該選択可能コントロールの表示を開始するステップが、当該モバイル・アプリケーションに対するアイコンを表示するステップを含んでもよい。
【0093】
第15乃至第17の態様の何れかに基づいて、第18の態様によれば、当該選択をクエリに変換するステップが、少なくとも1つの拡張されたクエリを生成するための当該選択の拡張を決定するステップと、当該拡張されたクエリを当該アクション提案モデルに提供して、第2のモバイル・アプリケーションを生成するステップと、当該少なくとも1つの拡張されたクエリの表示を開始するステップと、当該拡張されたクエリの選択を受信したことに応答して、第2のモバイル・アプリケーションに対する選択可能コントロールの表示を開始するステップとを含んでもよい。
【0094】
第15乃至第18の態様の何れかに基づいて、第19の態様によれば、当該モバイル・アプリケーションのうち少なくとも1つが当該モバイル・デバイスにインストールされていなくてもよく、当該方法はさらに、当該選択可能コントロールの選択を受信するステップと、当該モバイル・アプリケーションの当該モバイル・デバイスへのインストールを開始するステップとを含んでもよい。
【0095】
第20の態様によれば、コンピュータ装置が、少なくとも1つのプロセッサと、当該少なくとも1つのプロセッサにより実行されたとき、当該プロセッサに第1乃至第19の態様の何れかに記載の方法を実施させるコンピュータ可読命令を格納したメモリとを備える。
【0096】
第21の態様によれば、コンピュータ可読媒体が、プロセッサに第1の態様乃至第19の態様の何れかに記載の方法を実施させるように構成されたコンピュータ可読命令を運搬する。
【0097】
様々な実装は、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとデータおよび命令を送受信するように接続された、特殊目的または汎用目的でありうる少なくとも1つのプログラム可能プロセッサを含むプログラム可能システムで実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムでの実装を含むことができる。
【0098】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)はプログラム可能プロセッサに対するマシン命令を含み、高レベル手続き型および/またはオブジェクト指向プログラミング言語、および/またはアセンブリ/マシン言語で実装することができる。本明細書で使用する際、「マシン可読媒体」、「コンピュータ可読媒体」という用語は、マシン命令および/またはデータをプログラム可能プロセッサに提供するために使用される、任意の非一時的コンピュータプログラム製品、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、(読取りアクセスメモリを含む)メモリ、プログラム可能論理デバイス(PLD))を指す。
【0099】
本明細書で説明したシステムおよび技術を、バックエンドコンポーネントを(例えば、データサーバとして)含むか、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むか、またはフロントエンドコンポーネント(例えば、ユーザがそれを通じて本明細書で説明したシステムおよび技術の実装と対話できるグラフィカルユーザ・インタフェースまたはWebブラウザを有するクライアントコンピュータ)、またはかかるバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含む、コンピューティング・システムで実装することができる。当該システムの当該コンポーネントを、任意の形態または媒体のデジタルデータ通信(例えば、通信ネットワーク)により相互接続することができる。通信ネットワークの例はローカル・エリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、およびインターネットを含む。
【0100】
当該コンピューティング・システムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、一般に通信ネットワークを通じて対話する。クライアントおよびサーバの当該関係は、当該夫々のコンピュータ上で実行され互いに対してクライアント−サーバ関係を有するコンピュータプログラムにより生ずる。
【0101】
幾つかの実装を説明した。それにも関わらず、様々な修正を本発明の趣旨と範囲から逸脱せずに行ってもよい。さらに、図面で示した論理フローは所望の結果を実現するために、示した特定の順序、または逐次的順序を要求しない。さらに、他のステップを提供してもよいか、またはステップを当該説明されたフローから削除してもよく、他のコンポーネントを当該説明されたシステムに追加するか、または、そこから削除してもよい。したがって、他の実装は添付の特許請求の範囲内にある。