(58)【調査した分野】(Int.Cl.,DB名)
モバイルデバイスによって、擬似ハイパーリンク指示を検出したことに応答して、前記モバイルデバイスのディスプレイに表示されるコンテンツから中心的な選択を生成するステップと、
前記モバイルデバイスによって、前記中心的な選択を擬似ハイパーリンクモデルに提供するステップであって、前記擬似ハイパーリンクモデルが前記中心的な選択を前提に操作を予測するようにトレーニングされ、前記操作がモバイルアプリケーションに対する意図と関連付けられる、ステップと、
a)前記意図を使用する、前記操作の選択を許可するユーザインターフェースの表示、または
b)前記意図を使用する前記操作の実行
のうちの少なくとも一方を、前記モバイルデバイスによって、開始するステップと
を備え、
前記中心的な選択が、前記擬似ハイパーリンク指示の位置に最も近い語と、前記位置に最も近い前記語の前および前記位置に最も近い前記語の後に現れる前記コンテンツからの等しい量の語とを含み、
前記位置に最も近い前記語の前および後にある前記語が、異なる段落の中にある語を除外し、前記中心的な選択を生成するステップが、
前記位置に最も近い前記語の前にある語の前記量が、前記等しい量より少ないと決定するステップと、
前記位置に最も近い前記語の前にある語の前記量が前記等しい量となるようにパディングトークンを前記中心的な選択に追加するステップであって、前記パディングトークンが前記位置に最も近い前記語の前にある語としてカウントされる、ステップと
を含む、方法。
前記擬似ハイパーリンクモデルが、前記中心的な選択からインテリジェントな選択を提供するようにさらにトレーニングされ、前記操作の実行が、前記意図に対するパラメータとして前記インテリジェントな選択を使用して行われる、請求項1に記載の方法。
前記ユーザインターフェースの表示を開始するステップが、前記モバイルアプリケーションのアイコンおよび前記インテリジェントな選択をコピーするためのオプションとともにメニューを表示するステップを含む、請求項2に記載の方法。
前記モバイルデバイスによって、前記インテリジェントな選択に対応する前記ディスプレイに表示されるテキストの外観を変更するステップをさらに備える、請求項2または3に記載の方法。
前記モバイルデバイスによって、前記ユーザインターフェースから前記操作の選択を受信したことに応答して、前記インテリジェントな選択を使用して前記操作の実行を開始するステップをさらに備える、請求項2から4のいずれか一項に記載の方法。
前記ユーザインターフェースの表示を開始するステップが、前記モバイルアプリケーションのアイコンを表示するステップを含む、請求項1から5のいずれか一項に記載の方法。
前記擬似ハイパーリンクモデルがまた、前記中心的な選択からインテリジェントな選択を行うようにトレーニングされ、前記インテリジェントな選択が、前記中心的な選択の一部分を表し、かつ前記インテリジェントな選択を前記意図に対するパラメータとして使用する、請求項1から9のいずれか一項に記載の方法。
モバイルデバイスによって、ドキュメントコーパスから、ホワイトリストに記載されたウェブサイトへのハイパーリンクを有する1つまたは複数のドキュメントを特定するステップであって、前記ホワイトリストに記載されたウェブサイトが、モバイルアプリケーションへのウェブサイトのマッピングにおける複数のウェブサイトのうちの1つである、ステップと、
前記モバイルデバイスによって、前記1つまたは複数のドキュメントを使用して擬似ハイパーリンクモデルのためのポジティブなトレーニング例を生成するステップであって、各々のポジティブなトレーニング例が、前記それぞれのドキュメント、ウェブサイト、前記ウェブサイトのページランクに対応する重み、および前記ウェブサイトにマッピングされるモバイルアプリケーションから生成される中心的な選択を有する、ステップと、
前記モバイルデバイスによって、前記ポジティブなトレーニング例を使用して、前記中心的な選択を前提に前記モバイルアプリケーションに対する操作を予測するように前記擬似ハイパーリンクモデルをトレーニングするステップと
を備え、
前記中心的な選択は、事前に選択された量の語を有する、方法であって、
前記モバイルアプリケーションが第1のモバイルアプリケーションであり、前記方法が、
前記モバイルデバイスによって、ウェブストアの中の類似のモバイルアプリケーションをクラスタ化するステップであって、前記第1のモバイルアプリケーションが第1のクラスタに現れる、ステップと、
前記モバイルデバイスによって、前記ウェブサイトへのハイパーリンクを用いてドキュメントを特定するステップと、
前記モバイルデバイスによって、前記ハイパーリンクに基づいてインテリジェントな選択を決定するステップと、
前記モバイルデバイスによって、前記インテリジェントな選択に対して前記第1のモバイルアプリケーションによって生成される結果が前記インテリジェントな選択に対して第2のモバイルアプリケーションによって生成される結果と同様であることを検証するステップであって、前記第2のモバイルアプリケーションが前記第1のクラスタの中にある、ステップと、
前記モバイルデバイスによって、前記検証するステップに応答して、前記ウェブサイトおよび前記第2のモバイルアプリケーションを前記マッピングに追加するステップと
をさらに備える、方法。
前記マッピングがモバイルアプリケーションに非httpユニフォームリソースインジケータ(URI)をマッピングする記録を含み、前記1つまたは複数のドキュメントが前記非http URIを使用するハイパーリンクを含む、請求項13から16のいずれか一項に記載の方法。
【発明を実施するための形態】
【0011】
様々な図面の中の同様の参照記号は同様の要素を示す。
【0012】
実装形態は、ユーザのアクションに応答してテキストを自動的に選択し、選択されたテキストに対する操作を予測し、または自動的に実行する、システムおよび方法を含む。システムは、アクションの位置に基づく、中心的な選択から選ばれたインテリジェントな選択を使用して、操作を実行してもよい。インテリジェントな選択は、スクリーンに表示されるテキスト、またはスクリーンに表示される画像に対するテキスト等価物であってもよい。スクリーンに表示されるテキストまたは画像は、既存のハイパーリンクである必要はない。言い換えると、表示のためにテキストまたは画像を生成したアプリケーションは、操作をテキスト/画像と関連付けていない。代わりに、ハイパーリンクをたどる意図と典型的には関連付けられるシングルクリックのアクションとは異なるアクションが、周囲のコンテキストに基づいてテキストまたは画像に対する操作を予測する分類器をトリガする。コンテキストは、アクションの位置の周りのコンテンツから導かれてもよい。コンテキストは、中心的な選択の形式であってもよく、これは、アクションの位置に最も近いテキスト(または画像に対してはテキスト等価物)を囲むテキストまたはパディングトークンを含む。分類器によって予測される操作は、コピーまたは挿入操作などのデフォルトのアクションではなく、アクションのコンテキスト、たとえば中心的な選択に基づいて予測される。
【0013】
システムは、中心的な選択に基づいて操作を決定してもよく、操作を自動的に実行してもよく、または操作の実行を確認するためにユーザに尋ねてもよい。操作は、あるモバイルアプリケーションまたはあるタイプのモバイルアプリケーションに対するものであってもよい。操作は、中心的な選択からの選択された部分、たとえばインテリジェントな選択をパラメータとして用いる意図により、操作に対応するモバイルアプリケーションの起動を開始してもよい。意図は、モバイルアプリケーションによってサポートされる操作である。検索の意図および共有の意図は共通のタイプの意図である。検索の意図は、システムが、あるクエリパラメータを前提に、検索状態にあるモバイルアプリケーションにリンクすること、またはそのようなモバイルアプリケーションをアクティブ化することを可能にする。システムは、非標準的な意図も使用する場合がある。たとえば、モバイルアプリケーションは、マニフェストファイルにおいて意図を示してもよい。そのような非標準的な意図は、モバイルアプリケーションによってサポートされるが、必ずしもオペレーティングシステムによってはサポートされない。一般に、操作は、インテリジェントな選択をパラメータとして採用できるあらゆる意図を含んでもよい。システムは、モバイルデバイス上で使用されるすべてのアプリケーションにわたって操作することができ、ユーザ体験を一貫したものにする。したがって、擬似ハイパーリンク機能は、特定のモバイルアプリケーションに限定される必要はない。また、擬似ハイパーリンク機能は、認識されているエンティティ、たとえば個人的なまたは公共のナレッジベースにおいて表現されるエンティティに限定される必要もない。その上、擬似ハイパーリンクを介して実行される操作は、ユーザがまだインストールしていないモバイルアプリケーションに対するものであってもよいので、有用なモバイルアプリケーションについてユーザに知らせるための方法となることが可能である。
【0014】
図1は、例示的な実装形態による、擬似ハイパーリンクシステムのブロック図である。システム100は、アクションがハイパーリンクまたはそうでなければアクション可能なものではないコンテンツに対して実行されるときであっても、モバイルデバイスに表示されるコンテンツに基づいてユーザによるアクションに応答して操作を開始するために使用されてもよい。操作は、モバイルアプリケーションもしくはコピーコマンドに対する意図(たとえば、標準的なまたは非標準的な)、またはユーザが2つ以上の操作から選択すること、もしくはモバイルデバイスにまだインストールされていないモバイルアプリケーションをインストールすることを可能にするユーザインターフェースであってもよい。いくつかの実装形態では、操作はまた、モバイルアプリケーションのためのウェブミラーを起動してもよい。モバイルアプリケーションが操作によって表されるとき、モバイルアプリケーションは行先アプリケーションと呼ばれてもよく、ユーザによって選択されるコンテンツを生成したモバイルアプリケーションは、ソースアプリケーションとみなされてもよい。擬似ハイパーリンクシステムは、アクションを除きユーザからの入力がない状態で、ソースアプリケーションから行先アプリケーションへとコンテンツを移すための方法を提供する。アクションに応答して提示または実行される操作は、モデル、たとえばある中心的な選択を前提に1つまたは複数の操作を予測するようにトレーニングされる機械学習モデルに基づいてもよい。
図1のシステム100の図示はクライアントサーバシステムであり、サーバ110において何らかのデータ処理が行われている。しかしながら、他の構成および適用例が使用されてもよい。たとえば、データ処理はクライアントデバイス150だけで行われてもよい。いくつかの実装形態では、クライアントデバイス150のユーザは、処理の複数の部分がサーバ110において実行されるように指示してもよい。したがって、実装形態は、示される厳密な構成に限定されない。
【0015】
擬似ハイパーリンクシステム100はサーバ110を含んでもよく、サーバ110は、いくつかの異なるデバイスの形態をとる1つまたは複数のコンピューティングデバイス、たとえば標準的なサーバ、そのようなサーバのグループ、またはラックサーバシステムであってもよい。たとえば、サーバ110は、複数のコンピューティングデバイスにわたって分散される方式で実装されてもよい。加えて、サーバ110は、パーソナルコンピュータ、たとえばラップトップコンピュータにおいて実装されてもよい。サーバ110は、
図6に示されるようなコンピュータデバイス600の、または
図7に示されるようなシステム700の例であってもよい。サーバ110は、1つまたは複数の機械実行可能命令、または複数のソフトウェア、ファームウェア、もしくはこれらの組合せを実行するように構成される、基板において形成される1つまたは複数のプロセッサを含んでもよい。プロセッサは半導体ベースであることが可能であり、すなわち、プロセッサはデジタル論理を実行できる半導体材料を含むことが可能である。サーバ110はまた、1つまたは複数のコンピュータメモリを含むことが可能である。メモリ、たとえばメインメモリは、1つまたは複数のデータを一時的に、永久に、半永久的に、またはこれらの組合せで記憶するように構成されてもよい。メモリは、1つまたは複数のプロセッサによって読み取られることおよび/または実行されることが可能なフォーマットで情報を記憶する、任意のタイプの記憶デバイスを含んでもよい。メモリは、揮発性メモリ、不揮発性メモリ、またはこれらの組合せを含んでもよく、1つまたは複数のプロセッサによって実行されるとある動作を実行するモジュールまたはエンジンを記憶してもよい。いくつかの実装形態では、モジュールは、外部記憶デバイスに記憶され、サーバ110のメモリへとロードされてもよい。
【0016】
擬似ハイパーリンクシステム100のモジュールは、擬似ハイパーリンクエンジン120を含んでもよい。擬似ハイパーリンクエンジン120は、モバイルアプリケーションへのホワイトリストに記載されたウェブサイトのマッピング132に基づいて擬似ハイパーリンクモデル130をトレーニングするためのトレーニング例を生成するように構成されてもよい。ホワイトリストに記載されたウェブサイトは、操作を実行するのに有用なウェブサイトであってもよい。言い換えると、ウェブサイトは、検索インターフェースを含みクエリに応答してコンテンツを提供する、ウェブサイトであってもよい。そのようなウェブサイトの非網羅的な例は、ショッピングサイト、wiki、予約サイト、レーティングサイト、旅行サイト、チケットサイトなどを含む。いくつかの実装形態では、ホワイトリスト、およびモバイルアプリケーションへのホワイトリストに記載されたウェブサイトのマッピングは、手動でキュレートされ、擬似ハイパーリンクエンジン120に提供される。いくつかの実装形態では、意図(たとえば、検索、共有など)がマッピング132に含まれてもよい。
【0017】
いくつかの実装形態では、擬似ハイパーリンクエンジン120(または別のモジュール)が、ホワイトリストおよびマッピング132を生成してもよい。たとえば、擬似ハイパーリンクエンジン120が、モバイルアプリケーションマニフェスト136を検索して、マニフェスト136において言及されるウェブサイトを決定してもよい。そのようなマニフェスト136は従来、開発者、アイコン、説明、バージョンなどのアプリケーションについての情報を含む。この情報の一部が、アプリケーションをインストールするかどうかをユーザが決めるのを助けるために使用されてもよい。情報の一部は、アプリケーションプログラミングインターフェース(API)などの他のアプリケーション開発者に対して意図されたもの、およびモバイルアプリケーションによってサポートされる意図であってもよい。一部のモバイルアプリケーションは非標準的な意図を含んでもよく、これらの意図はマニフェスト136において特定されてもよい。したがって、マニフェスト136は、モバイルアプリケーションについての様々な種類のデータを含んでもよく、マニフェストが、モバイルアプリケーションの機能と同様の機能を提供するウェブサイトへの参照を含むことがある。そのようなウェブサイトは、ウェブミラーと呼ばれることがある。モバイルアプリケーションのマニフェストは、モバイルアプリケーション開発者によってウェブストアに提出される場合がある。擬似ハイパーリンクエンジン120は、モバイルアプリケーションマニフェスト136において言及されるあらゆるウェブサイトをホワイトリストに記載されたウェブサイトとみなしてもよく、たとえばウェブサイトおよびモバイルアプリケーションをウェブサイトモバイルアプリケーションマップ132に追加することによって、ウェブサイトをモバイルアプリケーションにマッピングしてもよい。モバイルアプリケーションが2つ以上の意図をサポートする場合、擬似ハイパーリンクエンジン120は、ウェブサイトをモバイルアプリケーションにマッピングする複数の記録を追加してもよく、記録の各々1つが異なる意図を有する。
【0018】
マッピングはまた、モバイルアプリケーションにマッピングされる他のユニフォームリソースインジケータ(URI)を含んでもよい。httpおよびhttpsが最も一般的なURIのタイプであるが、ハイパーリンクのアンカータグは宛先に他のURIを含むことがある。たとえば、"mailto:"は電子メールアプリケーションにマッピングされることが可能なURIであり、"tel:"は通話アプリケーションにマッピングされることが可能なURIである。これらの非http URIは、通常はある特定の機能を実行するので、あるモバイルアプリケーションまたはあるモバイルアプリケーションタイプにマッピングする場合がある。
【0019】
いくつかの実装形態では、擬似ハイパーリンクエンジン120(または別のモジュール)が、エミュレータ122を使用してウェブサイトモバイルアプリケーションマップ132におけるエントリを生成してもよい。エミュレータ122は、バッチ環境においてクライアントデバイスをエミュレートするように構成されてもよい。言い換えると、エミュレータ122は、モバイルアプリケーションを実行し、モバイルアプリケーションによって生成されるスクリーンコンテンツを決定するように構成されてもよい。いくつかの実装形態では、エミュレータ122は、モバイルアプリケーションへのクエリを用いて意図を送り、モバイルアプリケーションがコンテンツを返すかどうか、または言い換えるとクエリに対する結果を返すかどうかを判定してもよい。いくつかの実装形態では、コンテンツはフレームバッファの中の情報であってもよい。いくつかの実装形態では、コンテンツは、フレームバッファを生成するためにオペレーティングシステムによって使用される情報であってもよい。いくつかの実装形態では、コンテンツはAPIからのものであってもよい。モバイルアプリケーションがコンテンツを返すとき、エミュレータ122は、等価なウェブサイト、たとえばクエリに対して同じまたは同様の結果を返すウェブサイトを見つけてもよい。エミュレータ122が等価なウェブサイトを見つけるとき、エミュレータ122は、ウェブサイトおよびモバイルアプリケーションおよび意図をウェブサイトモバイルアプリケーションマップ132に追加してもよい。
【0020】
擬似ハイパーリンクエンジン120は、ウェブサイトモバイルアプリケーションマップ132およびクローリングされたドキュメント134を使用して、擬似ハイパーリンクモデル130をトレーニングするためのポジティブなトレーニング例を生成してもよい。クローリングされたドキュメント134は、インターネットを介して利用可能なドキュメントを含んでもよく、ソースドキュメントから生成されるインデックスを表してもよい。クローリングされたドキュメント134はまた、インターネットを介して利用可能なドキュメントにリンクする他のドキュメントを含んでもよい。擬似ハイパーリンクエンジン120は、マップ132の中のウェブサイトまたはURIにリンクするハイパーリンクを求めて、クローリングされたドキュメント134の中のハイパーリンクを調査するように構成されてもよい。そのようなハイパーリンクが特定されるとき、システムはそれを使用して、擬似ハイパーリンクモデル130のためのポジティブなトレーニング例を生成してもよい。たとえば、ホワイトリストに記載されたウェブサイトと関連付けられるモバイルアプリケーションを予測するために、アンカーテキスト(すなわち、ハイパーリンクの一部であり、アンカー開始タグとアンカー終了タグの間に現れる語)が使用されてもよい。言い換えると、擬似ハイパーリンクエンジン120は、アンカーテキストを前提にすると、モバイルアプリケーションがアンカーテキストについてのより多くの情報を見つけるための良い候補であることを擬似ハイパーリンクモデル130に教えるトレーニング例を含んでもよい。
【0021】
いくつかの実装形態では、擬似ハイパーリンクエンジン120は、トレーニング例を用いて、クローリングされたドキュメント134の中のソースドキュメントから中心的な選択を提供してもよい。中心的な選択は、擬似ハイパーリンクモデル130がモバイルアプリケーションを正しく予測するのを助けるためのコンテキストを提供してもよい。中心的な選択は、ソースドキュメントからのハイパーリンクを囲む語によりいずれかの側がパディングされるアンカーテキストを含んでもよい。いくつかの実装形態では、中心的な選択は固定された長さを有し、または言い換えると、事前に選択された量の語を有する。たとえば、中心的な選択は、13個の語を含んでもよい。いくつかの実装形態では、アンカーテキストは中心的な選択の中央を表してもよい。したがって、たとえばハイパーリンクがアンカータグの一部(すなわち、アンカー開始タグの後またはアンカー終了タグの前)として3つの語を含む場合、それらの3つの語は中心的な選択の場所6、7、8にあってもよい。アンカーテキストは、アンカーテキストの直前および直後に現れるソースドキュメントからの語によりいずれかの側がパディングされもよい。いくつかの実装形態では、語はソースドキュメントの中の異なる段落、ページ、またはセクションから取られない。そのような実装形態では、中心的な選択は、語の不存在を表すトークンを用いてパディングされてもよい。たとえば、アンカーテキストがソースドキュメントの中の文の最初の3つの語として現れる場合、中心的な選択は、5つのパディングトークンと、それに続いてそれらの3つの語と、それに続いてその文からの5つより多くの語とを含んでもよい。中心的な選択は、擬似ハイパーリンクモデル130が、同じまたは非常に類似したアンカーテキストを伴う異なるコンテキストにおいて使用される異なるウェブサイトの中から決定するのを助けるため周囲の語のコンテキストを提供する。擬似ハイパーリンクエンジン120は、クローリングされたドキュメント134を使用して多数のトレーニング例を生成してもよい。
【0022】
いくつかの実装形態では、擬似ハイパーリンクエンジン120は、類似したモバイルアプリケーションをクラスタ化することによってポジティブな例の量を増やしてもよい。たとえば、擬似ハイパーリンクエンジン120は、たとえばウェブストアまたはモバイルアプリケーションマニフェスト136において入手可能なデータに基づいて、モバイルアプリケーションをクラスタ化してもよく、クラスタを使用して追加のトレーニング例を作成してもよい。いくつかの実装形態では、クラスタの中のモバイルアプリケーションは、あるタイプのモバイルアプリケーション、すなわちあるモバイルアプリケーションタイプであるとみなされてもよく、ウェブサイトモバイルアプリケーションマップ132は、ウェブサイトをクラスタに、または言い換えるとそのタイプのモバイルアプリケーションにマッピングしてもよい。したがって、クラスタの中の任意のモバイルアプリケーションがウェブサイトにマッピングしてもよく、擬似ハイパーリンクエンジン120は、ウェブサイトに対応するアンカーテキストに対して、クラスタマップの中の各モバイルアプリケーションのためのトレーニング例を生成してもよい。いくつかの実装形態では、トレーニング例は、アンカーテキストを前提に、モバイルアプリケーションタイプを、または言い換えるとクラスタを予測してもよい。いくつかの実装形態では、擬似ハイパーリンクエンジン120は、エミュレータ122を使用して、クラスタの中のモバイルアプリケーションが同様の結果を生み出すかどうかを検証してもよい。たとえば、エミュレータ122は、クラスタの中のモバイルアプリケーションに対する検索の意図においてアンカーテキストを与えられてもよく、アンカーテキストに対して返された結果を比較してもよい。クラスタの中の特定のモバイルアプリケーションが同様の結果をクラスタの中の他のモバイルアプリケーションに提供しない場合、その特定のモバイルアプリケーションは、クラスタから除去され、ネガティブなトレーニング例として使用されてもよい。したがって、擬似ハイパーリンクモデル130は、いくつかのアプリケーションを除外するようにトレーニングされてもよい。同様に、擬似ハイパーリンクエンジン120は、クローリングされたドキュメント134およびモバイルアプリケーションマニフェスト136の中の情報を使用して、他のネガティブなトレーニング例を生成してもよい。たとえば、特定のクエリがモバイルアプリケーションのウェブミラーを欠いている場合、すなわち、擬似ハイパーリンクエンジン120がクエリに対して高くランキングされているウェブページと対応するモバイルアプリケーションとの間で良好な一致を見出せない場合、クエリは1つまたは複数のモバイルアプリケーションに対するネガティブな例として使用されてもよい。いくつかの実装形態では、擬似ハイパーリンクエンジン120はまた、たとえばアンカーテキストまたは中心的な選択をソースドキュメントのアンカータグの中のウェブサイトと一致しないモバイルアプリケーション/ウェブサイトとペアにすることによって他のネガティブなトレーニング例を生成してもよい。
【0023】
中心的な選択を前提に操作を予測することに加えて、擬似ハイパーリンクモデル130はまた、中心的な選択からインテリジェントな選択を行うようにトレーニングされてもよい。トレーニング例において、アンカーテキストであるテキストは、その中心的な選択に対するインテリジェントな選択のポジティブな例である場合がある。このことは、擬似ハイパーリンクモデル130が、主要な概念を表す可能性が最も高い未来の中心的な選択からテキストを選ぶことを可能にし、モデルが1つの語だけではなく名詞句全体(たとえば、President of the United States)を選択することを可能にする。したがって、擬似ハイパーリンクモデル130は、インテリジェントな選択ならびに1つまたは複数の操作を出力として提供してもよい。出力として提供される各操作は、関連する確率スコアを有してもよい。確率スコアは、所与の中心的な選択に対して操作が正しく予測されることについてモデルがどの程度確信しているかを表してもよい。
【0024】
擬似ハイパーリンクモデル130は、長短期記憶(LSTM)ニューラルネットワーク、フィードフォワードニューラルネットワーク、サポートベクターマシン(SVM)分類器などのあるクエリを前提に1つまたは複数の操作(たとえば、モバイルアプリケーションに対する意図)を予測できる任意のタイプの機械学習アルゴリズムであってもよい。いくつかの実装形態では、擬似ハイパーリンクエンジン120は、文字ごとにクエリを受け入れるように擬似ハイパーリンクモデル130をトレーニングしてもよく、モデル130は、入力された文字の終わりに遭遇したときにのみ予測を行ってもよい。そのような実装形態では、モデル130は非常に少数の語彙を使用し、これによりモデル130はモバイルデバイス上での記憶および実行のために小型になり、それに適したものになる。いくつかの実装形態では、モデル130は、文字埋込み層、各々64ノードを有する2つのLSTM層、およびsoftmax分類層を含んでもよい。いくつかの実装形態では、モデル130は入力として文字の代わりに語を用いてトレーニングされてもよい。
【0025】
システムは、擬似ハイパーリンクモデル130を1つまたは複数のクライアントデバイスに、たとえばクライアントデバイス150およびクライアントデバイス190にプッシュしてもよい。クライアントデバイス150は、スマートフォンまたは他のハンドヘルドコンピューティングデバイス、タブレット、ウェアラブルコンピューティングデバイスなどの従来のオープンなウェブベースの環境ではなく閉じたモバイル環境において動作する任意のモバイルパーソナルコンピューティングデバイスであってもよい。クライアントデバイスはまた、任意のパーソナルコンピューティングであってもよい。クライアントデバイス150は、
図6に示されるようなコンピュータデバイス600の例であってもよい。クライアントデバイス150は、ユーザ180によって使用される1つのモバイルデバイスであってもよい。ユーザ180はまた、クライアントデバイス190などの他のモバイルデバイスを有してもよい。
【0026】
クライアントデバイス150は、1つまたは複数の機械実行可能命令、または複数のソフトウェア、ファームウェア、またはこれらの組合せを実行するように構成される、基板において形成される1つまたは複数のプロセッサを含んでもよい。したがって、クライアントデバイス150は、1つまたは複数のデータを一時的に、永久に、半永久的に、またはこれらの組合せで記憶するように構成される、1つまたは複数のコンピュータメモリを含んでもよい。したがって、クライアントデバイス150はアプリケーション155を含んでもよく、アプリケーション155は、ソフトウェア、ファームウェア、またはこれらの組合せの形式の機械実行可能命令を表す。アプリケーション155において特定される構成要素は、オペレーティングシステムの一部であってもよい。いくつかの実装形態では、アプリケーション155は、モバイル処理環境のために開発されたモバイルアプリケーションであってもよい。従来、モバイルアプリケーションは閉じた環境で動作し、これは、ウェブベースのブラウザ環境で普通は実行される活動を実行するためにユーザが別々のアプリケーションを利用することを意味する。たとえば、ホテルを予約するためにbookit.comに行くのではなく、クライアントデバイス150のユーザは、bookit.comにより提供されるモバイルアプリケーション155においてモバイルアプリケーションを使用できる。前に論じられたように、モバイルアプリケーションは、モバイルアプリケーションを反映する、たとえばモバイルアプリケーションと同じまたは類似するコンテンツを提供するウェブページを有する場合がある。したがって、いくつかの実装形態では、ウェブページ(たとえば、bookit.comにおける)は、モバイルアプリケーション(たとえば、bookit.comにより提供される、またはそれと関連付けられるアプリ)のウェブミラーであるとみなされる場合がある。
【0027】
アプリケーション155は、スクリーンキャプチャアプリケーション160および擬似ハイパーリンクアプリケーション162を含んでもよい。いくつかの実装形態では、これらのアプリケーションのうちの1つまたは複数は、クライアントデバイス150のオペレーティングシステムによって提供されることが可能である。いくつかの実装形態では、これらのアプリケーションのうちの1つまたは複数は、ユーザによってダウンロードされかつインストールされることが可能である。
【0028】
スクリーンキャプチャアプリケーション160は、様々な機能を含むことが可能である。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、アプリケーションプログラムインターフェース(API)からスクリーン上に提示されるテキスト情報を得るように構成されてもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、オペレーティングシステムに内蔵されていてもよく、オペレーティングシステムは、現在のスクリーンに表示されているテキストフィールドの内容を決定することができる。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、クライアントデバイス150の現在のスクリーンをキャプチャするように構成されてもよい。スクリーンキャプチャアプリケーション160は、デバイスのフレームバッファの内容をコピーすることまたは読み取ることによってスクリーンをキャプチャしてもよい。したがって、キャプチャされたスクリーンは、画像であってもよく、キャプチャされた画像と呼ばれる。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、スクリーンの一部をキャプチャしてもよい。たとえば、スクリーンキャプチャアプリケーション160は、ユーザからのアクションの位置の周りの何らかの領域、すなわち擬似ハイパーリンク指示をキャプチャしてもよい。スクリーンキャプチャアプリケーション160は、アクションの位置の周りの画素数で測定される部分的な領域をキャプチャしてもよく、またはアクションの位置を囲む特定の量のオンスクリーンテキストをAPIに求めてもよい。したがって、スクリーンキャプチャ画像は、スクリーンに表示されるすべてのコンテンツよりも少ないもの、たとえば部分的なスクリーンキャプチャ画像を表してもよい。
【0029】
スクリーンキャプチャアプリケーション160は、ある間隔でスクリーンをキャプチャしてもよい。間隔は短いことが可能であり、たとえば0.5秒に1回または1秒に1回であってもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、タッチイベントが発生するたびに(たとえば、ユーザがスクロール、ズーム、リンクのクリックなどを行うためにスクリーンをタッチするたびに)、明示的なユーザ要求もしくはコマンドに応答して、またはあるモバイルアプリケーションから別のモバイルアプリケーションへデバイスが移行するときに、スクリーンをキャプチャするように構成されてもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、スクリーンが変化しないときにスクリーンキャプチャが行われる間隔を延ばしてもよい。言い換えると、スクリーンが静的であるとき、スクリーンキャプチャアプリケーション160は、より少ない頻度で画像をキャプチャしてもよい。スクリーンキャプチャアプリケーション160は、キャプチャされたスクリーン画像およびメタデータを認識エンジンに提供してもよく、認識エンジンは、クライアントデバイス150上にあってもよく、またはサーバ110などのサーバ上にあってもよい。メタデータは、タイムスタンプ、モバイルデバイスタイプ、モバイルデバイス識別子、スクリーンがキャプチャされたときに実行されていたモバイルアプリケーション、たとえばスクリーンを生成したアプリケーションなどを含んでもよい。いくつかの実装形態では、メタデータはまた、どのアプリケーションがアクティブであるか、デバイスの位置、周辺光、デバイスの動きなどを含んでもよい。システムは、この追加のデバイス情報を使用してコンテンツ分析(たとえば、曖昧さの解消)を支援して、提案される操作を生成するなどしてもよい(たとえば、デバイスが動いているときに提案の量を減らす、どのコンテンツが最も関連があるかを決める)。
【0030】
いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、画像において特定されるテキスト、エンティティ、画像、ロゴなどに従って、スクリーンキャプチャ画像をインデックス化するように構成されるインデックス化エンジンを含むことが可能である。したがって、たとえばインデックス化エンジンは、キャプチャされた画像に対するインデックスエントリを生成してもよい。いくつかの実装形態では、インデックス化エンジンは、サーバ110などのサーバ上にあってもよく、スクリーンキャプチャアプリケーション160は、キャプチャされた画像および/またはキャプチャされた画像の中の認識された項目をサーバに提供してもよい。インデックスは反転されたインデックスであってもよく、この場合、キーバリュー(たとえば、語、語句、エンティティ、画像、ロゴなど)は、キーバリューを含む、またはキーバリューがそこから認識される、画像のリストと関連付けられる。インデックスは、リストの中の各々のキャプチャされた画像と関連付けられるメタデータ(たとえば、キャプチャされた画像上のどこでキーバリューが発生するか、画像のキーバリューのランクなど)を含んでもよい。いくつかの実装形態では、インデックスはまた、タイムスタンプによってインデックス化されるキャプチャされた画像のリストを含んでもよい。インデックス化エンジンは、メモリに、たとえばスクリーンキャプチャインデックス172にインデックスを記憶してもよい。当然、いくつかの実装形態では、システムは、クライアントデバイス150に加えて、またはその代わりに、サーバ上のユーザアカウントにインデックスを記憶してもよい。クライアントデバイス150のユーザは、スクリーンキャプチャアプリケーション160がいつアクティブになるかを制御してもよい。たとえば、ユーザは、他の特定されるモバイルアプリケーション155が実行されているときにのみ(たとえば、ソーシャルメディアモバイルアプリケーションにおいてのみ)、スクリーンキャプチャアプリケーション160がアクティブになることを指定してもよい。ユーザはまた、たとえば設定アプリケーションを介して、スクリーンキャプチャアプリケーション160を手動でオンおよびオフにしてもよい。いくつかの実装形態では、ユーザは、擬似ハイパーリンクアプリケーション162も呼び出すジェスチャまたはアクションを用いて、スクリーンキャプチャアプリケーション160を呼び出してもよい。
【0031】
クライアントデバイス150はまた、擬似ハイパーリンクアプリケーション162を含んでもよい。疑似的なハイパーリンクアプリケーション162は、擬似ハイパーリンクモデル170または擬似ハイパーリンクモデル130を使用して、アクションに応答して実行すべき操作を決定するように構成されてもよく、アクションは、擬似ハイパーリンクアクション162を開始するための意図をシグナリングする、ユーザからのジェスチャ、入力、または一連のジェスチャもしくは入力である。アクションは、擬似ハイパーリンク指示と呼ばれる。いくつかの実装形態では、アクションはまた、スクリーンキャプチャアプリケーション160を呼び出してもよい。いくつかの実装形態では、アクション、すなわち擬似ハイパーリンク指示は、長いプレス、2本の指でのクリック、スワイプなどであってもよい。いくつかの実装形態では、擬似ハイパーリンク指示は、選択を受け取るスクリーンの部分へと選択制御手段をドラッグすることであってもよい。いくつかの実装形態では、選択制御手段は、動かされて放されることが可能なアイコンであってもよい。アイコンを放すことが、擬似ハイパーリンクを開始するアクションであってもよい。いくつかの実装形態では、擬似ハイパーリンク指示は、口頭であってもよく、たとえばスクリーンに表示される1つまたは複数の語または画像を選択するための音声コマンドであってもよい。アクションが、たとえばアイコンまたはピクチャへの長いプレスを介して、ある画像を伴うスクリーンの一部分に対して行われる場合、擬似ハイパーリンクアプリケーション162は、その画像と関連付けられるテキストを決定し、その画像の代わりにそのテキストを使用するように構成されてもよい。たとえば、画像認識を介して、画像は、それと関連付けられるタイトル、ニックネーム、または共通の名称を有する、ナレッジベースの中のエンティティのものであると決定されてもよい。
【0032】
アクションに応答して、擬似ハイパーリンクアプリケーション162は、擬似ハイパーリンクモデル170に提供すべきテキストを決定してもよい。いくつかの実装形態では、これは、スクリーンキャプチャアプリケーション160を使用してスクリーンに表示されるコンテンツ上で認識を実行することを含んでもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、コンテンツ上で認識をすでに実行している場合がある。擬似ハイパーリンクアプリケーション162は、アクションの位置に最も近く位置するテキストを決定してもよい。アクションの位置は、アクションに対応するスクリーン座標であってもよい。擬似ハイパーリンクアプリケーション162は、その位置に基づいて中心的な選択を決定してもよい。たとえば、擬似ハイパーリンクアプリケーション162は、アクションの位置に最も近い語を中心の語とし、この中心の語の左および右の語を中心的な選択として含めてもよい。左の語の数および右の語の数は等しくてもよい。いくつかの実装形態では、擬似ハイパーリンクアプリケーション162は、中心的な選択において異なる段落またはセクションからの語を使用するのを避けてもよい。たとえば、中心の語が新しい段落において最初の語である場合、擬似ハイパーリンクアプリケーション162は、中心の語の左の以前の段落からの語の代わりに、パディングトークンを使用してもよい。
【0033】
擬似ハイパーリンクアプリケーション162は、擬似ハイパーリンクモデルへの入力として、選択、たとえばアクションまたは中心的な選択の位置に最も近いテキストを使用してもよい。擬似ハイパーリンクアプリケーション162は、擬似ハイパーリンクモデル170または擬似ハイパーリンクモデル130などの擬似ハイパーリンクモデルを使用して、中心的な選択に対する提案される操作を決定してもよい。いくつかの実装形態では、擬似ハイパーリンクモデル170は、擬似ハイパーリンクモデル130のコピーであってもよい。いくつかの実装形態では、擬似ハイパーリンクモデル170は、擬似ハイパーリンクモデル130のパーソナライズされたコピーであってもよい。たとえば、クライアントデバイス150は、サーバ110からの擬似ハイパーリンクモデル130、または更新された擬似ハイパーリンクモデル130を受信してもよく、クライアントデバイス150上でモデルのさらなるトレーニングを実行してもよい。たとえば、擬似ハイパーリンクアプリケーション162はユーザデータ176を使用してもよく、ユーザデータ176は、擬似ハイパーリンクモデル170のためのポジティブなトレーニング例を生成するか、または再重み付けるためのクライアントデバイス150から提出されたクエリ、またはあるモバイルアプリケーション155の使用についての情報、またはスクリーンキャプチャインデックス172を含んでもよい。これらの追加のトレーニング例は、擬似ハイパーリンクアプリケーション162がユーザ180により関連のある提案または予測されるアクションを提示するように擬似ハイパーリンクモデル170をパーソナライズしてもよい。たとえば、ユーザ180が第1の予約モバイルアプリケーションをよく使用するが、第2の予約モバイルアプリケーションを全く使用しない場合、擬似ハイパーリンクアプリケーション162は、第2の予約アプリケーションではなく第1の予約アプリケーションを提案するようにモデルについて第1の予約モバイルアプリケーションの重みを上げてもよい。
【0034】
擬似ハイパーリンクモデル170は、スクリーンからのコンテンツを前提にインテリジェントな選択および1つまたは複数の操作を予測するように構成またはトレーニングされる。たとえば、擬似ハイパーリンクアプリケーション162は、中心的な選択をモデル170に提供してもよく、モデル170は、1つまたは複数の提案される操作ならびに中心的な選択からのインテリジェントな選択を提供してもよい。提案される操作は、モバイルアプリケーションに対する意図を含む。この意図は、インテリジェントな選択をパラメータとして用いる場合がある。操作はまた、コピー操作またはインターネット検索エンジンに対する検索の意図などのデフォルトの操作を含むことが可能である。たとえば、コピー操作はインテリジェントな選択をクリップボードにコピーしてもよく、検索エンジンの意図はインテリジェントな選択をインターネットクエリとして提出してもよい。デフォルトの操作は、他の操作の信頼性が十分に高くない場合、または操作が予測されないときの操作であってもよい。言い換えると、予測される操作の確率スコアが十分高くない(たとえば、最小の閾値に達しない)場合、擬似ハイパーリンクアプリケーション162は、インテリジェントな選択のたとえばコピーに対して、デフォルトの操作を実行してもよい。いくつかの実装形態では、システムは、ユーザがそこから選択するための、コピー操作または他のデフォルトの操作と、確率スコアが最も高い提案される操作のうちの1つまたは2つとを提示する、ユーザインターフェースを生成してもよい。擬似ハイパーリンクアプリケーション162は、複数のモバイルアプリケーションにわたって一貫した方式で、提案される操作をデバイスのユーザに提示するユーザインターフェースを提供してもよい。いくつかの実装形態では、提案される操作は、選択可能な制御手段の形式であってもよい。この制御手段は、表示されているスクリーンの手前に表示されるオーバーレイ、表示されているスクリーンの背後に表示されるアンダーレイ、またはモバイルデバイスのディスプレイバッファにおいて現在のスクリーンに追加されるように構成される情報であることが可能である。言い換えると、提案される操作の制御手段は、表示されるときにスクリーンの手前に表示されるか、背後に表示されるか、またはスクリーンに統合されるかにかかわらず、モバイルデバイスにおいて生成されるスクリーンに追加される情報を表す。
【0035】
提案される操作の制御手段は、たとえば意図を開始する形式で、対応するアクションを開始する選択を検出するように構成されてもよい。したがって、提案される操作は、HTMLベースのドキュメントにおけるハイパーリンクのように振る舞う。しかし、HTMLハイパーリンクと異なり、アクションを介してユーザにより選択されるコンテンツは、アクションの前の行先、すなわち擬似ハイパーリンク指示と関連付けられる必要はない。したがって、擬似ハイパーリンクシステム100は、スクリーンに表示されるあらゆるコンテンツをハイパーリンクにすることができ、モバイルデバイス上で実行されるあらゆるモバイルアプリケーションに対して提案される操作の制御手段を提供することができ、複数のモバイルアプリケーションにわたって操作を一貫したものにする。この一貫性は、ユーザ体験を改善する。
【0036】
クライアントデバイス150上で実行されるものとして示されているが、いくつかの実装形態では、擬似ハイパーリンクアプリケーション162は、サーバ110などのサーバ上で実行されるモジュールであってもよい。そのような実装形態では、スクリーンキャプチャアプリケーション160は、キャプチャされた画像において認識されるコンテンツと、アクションの位置に最も近い語とをサーバにおける擬似ハイパーリンクアプリケーション162に提供してもよく、擬似ハイパーリンクアプリケーション162は、擬似ハイパーリンクモデル130を使用して、対応する操作とインテリジェントな選択とをスクリーンキャプチャアプリケーション160に提供してもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、インテリジェントな選択および対応する操作を使用して、提案される操作の制御手段をインターフェースに提供し、またはインテリジェントな選択を使用して操作を自動的に実行してもよい。
【0037】
操作が自動的に実行されないとき、スクリーンキャプチャアプリケーション160は、提案される操作の制御手段を有するユーザインターフェースを現在のスクリーンと統合してもよい。たとえば、スクリーンキャプチャアプリケーション160が擬似ハイパーリンクアプリケーション162から予測される操作を受け取る場合、スクリーンキャプチャアプリケーション160は、予測される操作に対する制御を現在の表示コンテンツと組み合わせてもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、アンダーレイとしてオーバーレイを生成してもよく、またはディスプレイバッファにおいて複数の提案される操作の制御手段の間に現在のスクリーンを挟んでもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、提案される操作の制御手段を表示する前に、現在表示されているスクリーンがキャプチャされたスクリーン画像と十分に類似していることを検証するように構成されてもよい。たとえば、スクリーンキャプチャアプリケーション160は、制御手段の座標または対応するインテリジェントな選択の座標を使用して、キャプチャされた画像から視覚的な合図を決定し、視覚的な合図を現在表示されている画像に対する同じ座標と比較してもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、視覚的なキューに対する視覚的な要素と類似する現在の画像の中の視覚的な要素を少し探すように構成されてもよい。見つかる場合、スクリーンキャプチャアプリケーション160は、背後のスクリーンの動きと一致するように提案される操作の制御手段の座標を調整してもよい。いくつかの実装形態では、スクリーンキャプチャアプリケーション160は、キャプチャされた画像、選択されたテキストまたは画像、および操作制御手段を現在のスクリーンの手前に表示する、活動またはモードを開始してもよい。以前にキャプチャされた画像、選択されたテキストまたは画像、および操作は、ユーザがアクションを選択するまで、または(たとえば、キャンセルまたは「戻る」コマンドを用いて)表示を取り消すまで、表示されてもよい。
【0038】
いくつかの実装形態では、擬似ハイパーリンクアプリケーション162は、ランキングエンジンを使用して、モデルからのどの提案される操作を表示するかを決定してもよい。たとえば、擬似ハイパーリンクアプリケーション162は、ランキングの上位の、または言い換えると確率の高い、ある量の(たとえば、3つまたは4つ)操作を選んでもよい。別の例として、擬似ハイパーリンクアプリケーション162は、指定された閾値より確率スコアが高いあらゆる操作、または量と閾値の組合せを選んでもよい。いくつかの実装形態では、量および閾値はデバイスについてのメタデータに依存してもよく、たとえばデバイスが動いているときは量がより少なく、または閾値がより高い。いくつかの実装形態では、提案されるアクションの表示は、たとえば最初に表示されるものよりも多くのアクションからユーザが選択できるようにスクロール可能であってもよい。
【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は、他のクライアントデバイス(図示せず)と通信してもよい。
【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つまたは複数の方法で扱われてもよい。たとえば、検索の記録は、個人を識別可能な情報を決定できないように扱われてもよく、かつ/または、ユーザの具体的な位置を決定できないように位置情報が取得されるユーザの地理的な位置が、(都市、郵便番号、または州のレベルへと)一般化されてもよい。したがって、ユーザは、ユーザについての情報がどのように収集され、擬似ハイパーリンクシステム100により使用されるかについて、制御権を有してもよい。その上、本明細書において説明される機能の提供が、コンテンツの使用権、レイアウト、機能、またはデバイスのスクリーンにコンテンツを表示するために使用されるアプリケーションの他の態様と調和するかどうかを判定し、それに従って能力を設定するための能力が与えられてもよい。たとえば、擬似ハイパーリンクを制限しないことが、サービス、コンテンツのライセンス、または他の使用制限の観点で違反となる可能性がある場合に、擬似ハイパーリンクを制限するような設定が設けられてもよい。そのような設定は、ユーザが新しいサービスまたはデバイスの使用権限を確立するときにユーザにより、またはアプリのインストール手順などにより、手動で、または自動的に行われてもよい。
【0043】
図2Aおよび
図2Bは、開示される主題による、クライアントコンピューティングデバイスの例示的なディスプレイ200aおよび200bである。
図1のシステム100などの擬似ハイパーリンクシステムは、ディスプレイを提供する場合がある。いくつかの実装形態では、ディスプレイは、
図1のクライアントデバイス150などのモバイルデバイスのディスプレイであってもよい。
図2Aにおいて、ユーザは、ディスプレイ200aの位置205において、アクション、たとえば擬似ハイパーリンク指示を実行した。位置205は、ソースプログラムによりスクリーンに表示されている語"Brad"に最も密接に対応する。語"Brad"はハイパーリンクではなく、たとえばソースプログラムによりどのような行先とも関連付けられず、普通のテキストのように見える(たとえば、ハイパーリンクについて典型的なように、下線が引かれておらず、または周囲のテキストと異なる色ではない)。システム100は、位置205を使用して中心的な選択210を生成してもよい。
図2Aの例では、中心的な選択210は、ディスプレイ200aにおいて認識されるコンテンツからとられた13個の語を含む。当然、他の実装形態はより多数または少数の語を含んでもよい。中心の語215は"Brad"であり、それは、これが位置205に最も密接に対応するからである。システム100は、中心の語215に続く6つの語を付加してもよい。これらの6つの語は右側コンテキストとみなされてもよい。システム100はまた、中心の語215の前に現れる6つの語を前に付加してもよい。これらの6つの語は左側コンテキストの6つの語である。
【0044】
図2Aの例では、システム100は、コンテンツの別の段落またはセクションと関連付けられるテキストを使用するのを避けてもよい。したがって、左側コンテキストまたは右側コンテキストは、パディングトークン220を含んでもよい。パディングトークン220は、システム100が中心の語215を中心に保ちながら、関連しない可能性があるコンテキストから語を取るのを避けることを可能にする。したがって、中心の語215はディスプレイ200aの中の新しい段落の最初に現れるので、システム100は、中心的な選択210の左側コンテキストに6つのパディングトークン220を追加する。段落は中心の語215の後に6つよりも多くの語を含むので、右側コンテキストは、コンテンツから認識される語だけを含み、パディングトークンを必要としない。
【0045】
システム100は、中心的な選択210を擬似ハイパーリンクモデルに提供してもよい。擬似ハイパーリンクモデルは、インテリジェントな選択225、ならびに1つまたは複数の提案される操作を中心的な選択210に応答して提供してもよい。いくつかの実装形態では、システム100は、最も確率の高い操作を選択し、その操作に対応するモバイルアプリケーションに対する意図へのパラメータとしてインテリジェントな選択215を使用してその操作を実行してもよい。たとえば、最も確率の高い操作が映画wikiアプリケーションである場合、システム100は、検索または共有の意図とともにwikiアプリケーションを呼び出してもよく、Brad Pittをその意図の入力として用いる。そのような実装形態では、
図2Bのディスプレイ200bは表示されない。
【0046】
図2Bは、開示される実装形態による、提案される操作を制御手段として表示するユーザインターフェースを伴うディスプレイ200bの例を示す。たとえば、操作制御手段230は、映画wikiアプリケーションを表すアイコンであってもよい。システムは、クライアントデバイスが操作を自動的に実行しない場合、ディスプレイ200bを生成してもよい。ユーザが操作制御手段230を選択する場合、システム100は、検索または他の意図とともに映画wikiアプリケーションをアクティブ化する(たとえば、映画wikiアプリケーションに、または言い換えると行先アプリケーションに焦点を移す)場合がある。検索の意図は、検索状態にあるアプリケーション、または言い換えると検索ユーザインターフェースを開くオペレーティングシステムの標準である。検索の意図は、モバイルアプリケーションおよびウェブアプリケーションとともに機能することが可能である。検索の意図はあるパラメータをサポートする場合があるので、モバイルアプリケーションは、検索の意図の一部としてインテリジェントな選択を与えられ、検索結果のページもしくはユーザインターフェースを開き、またはアクティブ化する。実装形態はまた、インテリジェントな選択をパラメータとして用いることができる、標準的な(すなわち、オペレーティングシステムによりサポートされる)または非標準的な(すなわち、モバイルアプリケーションによりサポートされるがオペレーティングシステムによりサポートされない)他の意図を使用してもよい。したがって、操作制御手段230の選択が、パラメータBrad Pittを映画wikiモバイルアプリケーションへとクエリとして渡し、クライアントデバイスに映画wikiアプリケーションを開かせ、または映画wikiアプリケーションへと焦点を移させてもよく、映画wikiモバイルアプリケーションは、クエリに対する結果ページを表示してもよい。このようにして、システム100は、映画wikiアプリケーションにおいてBrad Pittを探すために必要とされる選択、検索、およびコンテキスト切替えを実行するのに必要な入力を減らし、これはユーザ体験を改善する。当然、
図2Bに示される操作は例にすぎず、他の提案される操作がユーザに提示されてもよい。
図2Bにおける操作制御手段の提示は、ソースアプリケーションによって生成されるスクリーンコンテンツの一部に重畳するバーとして示されている。実装形態は、カルーセル表示、円形表示、メニュー表示、ポップアップウィンドウまたはアイコンなどの他の構成を含んでもよい。加えて、
図2Bに示されるディスプレイ200bのユーザインターフェースは任意選択であってもよく、それは、いくつかの実装形態では、擬似ハイパーリンクアプリケーション162が映画wikiアプリケーションを自動的に開始してもよいからである。
【0047】
図3Aは、開示される主題によるモバイルコンピューティングデバイスの別の例示的なディスプレイ300aである。
図1のシステム100などの擬似ハイパーリンクシステムのクライアントデバイスが、
図3Aのディスプレイ300aを提供してもよい。
図3Aの例では、ユーザは、位置305において、アクション、すなわち擬似ハイパーリンク指示を実行した。それに応答して、システム100は、ディスプレイ300a上で認識を実行して、ソースアプリケーションにより生成されるテキストを認識してもよい。システムは、位置305が語"Pitt"に対応すると決定し、それを中心的な選択310の中心の語315にしてもよい。システム100は、左側コンテキストの6つの語および右側コンテキストの6つの語を用いて中心の語315にパディングしてもよい。
図3Aの例では、システム100は、中心の語315を中心に保ちながら異なる段落からの語を使用するのを避けるために、1つのパディングトークンを左側コンテキストに追加する。他の実装形態では、システム100は、左側コンテキストおよび右側コンテキストの中のより多数または少数の語を用いて中心の語にパディングしてもよい。システム100は、擬似ハイパーリンクモデルに中心的な選択を提供してもよい。モデルは、インテリジェントな選択320と、中心的な選択に対する1つまたは複数の予測される操作とを提供してもよい。
【0048】
図3Bは、開示される主題による、
図3Aの中心的な選択からのインテリジェントな選択に対する2つの提案される操作を伴う、モバイルコンピューティングデバイスの例示的なディスプレイ300bである。
図3Bの例では、擬似ハイパーリンクモデルが操作制御手段330を提供しており、操作制御手段330はスポーツニュースアプリケーションを表してもよい。しかしながら、たとえばインテリジェントな選択Brad Pittがスポーツよりも映画とより頻繁に関連付けられるので、モデルはこの選択についてあまり確証を持っていない場合がある。しかしながら、コンテキスト(たとえば、バスケットボールトーナメント)により、モデルは、映画wikiアプリケーションを表す操作にも確証を持っていない場合がある。
図3Bの例では、システムは、ユーザインターフェースにおける表示のために、たとえば操作制御手段330により表される、より高いランクの操作を選択する。加えて、システム100はこの選択にあまり確証を持っていないので、システムはユーザインターフェースにおいてコピー操作325も提供してよい。コピー操作の選択は、インテリジェントな選択320をクリップボードにコピーする。いくつかの実装形態では、これは、モデルにより予測される操作が十分に高い信頼性を有していないとき、または予測される操作がないときに、自動的に実行されるデフォルトの操作であってもよい。操作制御手段330は、スポーツニュースモバイルアプリケーションのアイコンおよび制御手段330の選択と関連付けられてもよく、制御手段330の選択、言い換えると操作が、検索の意図とともにスポーツニュースアプリケーションを起動してもよい。検索の意図は、インテリジェントな選択320をパラメータとして有してもよい。したがって、クライアントデバイスは、インテリジェントな選択320を含む、クエリに応答した結果を有する検索結果画面となるようにスポーツニュースアプリケーションを起動してもよい。
【0049】
図3Bの例はまた、インテリジェントな選択320の指示335をユーザに提供するユーザインターフェースを示す。指示335は、たとえば強調、円囲み、または自動的に選択されたものとしてテキストを示す何らかの他の方法によってテキストの外観を変更してもよい。指示335は、表示されているスクリーンの手前に表示されるオーバーレイ、表示されているスクリーンの背後に表示されるアンダーレイ、またはモバイルデバイスのディスプレイバッファの中の現在のスクリーンに追加されるように構成される情報であることが可能である。いくつかの実装形態では、
図3Bに示されるユーザインターフェースは、たとえば指示335を拡大または縮小することによってインテリジェントな選択を変更するための機会をユーザに与えてもよい。そのような実装形態では、そのような変化は、別のトレーニング例としてモデルに提供されてもよい。このトレーニング例は、モデルをパーソナライズする(たとえば、擬似ハイパーリンクモデル170を更新することによって)ために使用されてもよく、または一般的なモデル(たとえば、擬似ハイパーリンクモデル130)のためのフィードバックおよびさらなるトレーニングとして使用されてもよい。いくつかの実装形態では、ユーザが操作制御手段を選択するとき、このフィードバックは別のポジティブなトレーニング例(たとえば、中心的な選択がその選択された操作を予測すること)として保存されてもよい。いくつかの実装形態では、ユーザがユーザインターフェースにおいて提示される操作を選択しない場合、システムはネガティブなトレーニング例を生成してもよく、これは、中心的な選択が提示される操作を予測しないことを示す。これらの追加のトレーニング例は、モデルの個人的なコピーまたは一般的なモデルのいずれかにおいて、予測される操作の確率スコアを上昇または低下させるのを助けることが可能である。
【0050】
いくつかの実装形態では、ユーザは、モバイルアプリケーションのうちの1つをインストールしていない場合がある。たとえば、ユーザは、操作制御手段330に対応するスポーツニュースアプリケーションを有していない場合がある。制御手段330の選択は、デバイスに、スポーツニュースアプリケーションのダウンロードプロセスを開始させてもよい。したがって、ディスプレイ300bのユーザインターフェースは、操作についての知識をユーザに与え、または言い換えると、他者が有用であると考えるモバイルアプリケーションについての知識をユーザがそのモバイルアプリケーションについて知らない場合でも与えてよい。いくつかの実装形態では、ユーザがスポーツニュースアプリケーションをインストールしていない場合、システムは、この操作をインターネット検索モバイルアプリケーション、辞書アプリ、wikiアプリなどに対する検索の意図、または上で論じられたような単なるコピー操作へと変換してもよい。
【0051】
図2A、
図2B、
図3A、および
図3Bに示されるユーザインターフェースは、ナレッジベースの中のエンティティと結び付けられるテキスト、エンティティタイプのテンプレートに適合するテキスト、またはあるタイプのテキストをハイパーリンクに変換するアプリケーションに対してだけではなく、任意のソースアプリケーションにより生成されるテキストまたは画像に対して機能する。操作制御手段はアイコンベースであるものとして示されているが、操作制御手段は、テキストベースまたはテキストと画像の組合せである可能性がある。したがって、操作制御手段は、テキストベース、画像ベース、またはテキストと画像の組合せの制御手段を含むものとして理解される。
【0052】
図4は、開示される実装形態による、モバイルコンピューティングデバイスに表示されるコンテンツと関連付けられるアクションに応答して操作を提案するための例示的なプロセス400の流れ図を示す。プロセス400は、
図1のシステム100などの擬似ハイパーリンクシステムによって実行されてもよい。プロセス400は、アクションの位置および擬似ハイパーリンクモデルに基づいて、アクションに応答してインテリジェントな選択および提案される操作を決定するために使用されてもよい。プロセス400は、擬似ハイパーリンクモデルを生成することによって開始してもよい(405)。疑似的なハイパーリンクモデルは、中心的な選択の入力に応答して、インテリジェントな選択および提案される操作を提供してもよく、すなわち意図をモバイルアプリケーションに提供してもよい。この意図は、任意の標準的なまたは非標準的な意図のうちの1つであることが可能である。
図5は、擬似ハイパーリンクモデルを構築する1つの例を示す。
図4には特に示されていないが、システムは、サーバ上でモデルを構築し、モデルをクライアントデバイスにプッシュしてもよい。
【0053】
システムは、クライアントデバイスにおいて、アクションを受け取ってもよく(410)、または言い換えると、擬似ハイパーリンク指示を受け取ってもよい。アクションは、クライアントデバイスのスクリーン上の位置と関連付けられる。システムは、この位置およびスクリーンキャプチャ画像を使用して、表示されているコンテンツを抽出し、コンテンツから中心的な選択を生成してもよい(415)。たとえば、システムは、スクリーンキャプチャ画像に対してテキストおよび画像認識を実行し、現在表示されている画像のテキストおよびテキスト等価物を決定してもよい。システムは次いで、アクションの位置に最も近い語を決定してもよい。位置に最も近い語は中心の語である。システムは次いで、コンテキストの中の中心の語の前および後に現れる他の語を用いて、中心の語にパディングしてもよい。中心の語の前に現れる語は左側コンテキストであり、中心の語の後に現れる語は右側コンテキストである。いくつかの実装形態では、システムは、他の段落またはセクションからの語を使用するのを避けてもよい。したがって、たとえばシステムは、左側コンテキストまたは右側コンテキストの中の異なる段落または異なるセクションからの語を使用しなくてもよい。そのような実装形態では、システムは、必要であれば、1つまたは複数のパディングトークンを用いて、左側コンテキストおよび右側コンテキストをパディングしてもよい。パディングトークンは、中心的な選択の中のある語の場所を占め、異なる段落/セクション/ページからの語を除外してそれでも事前に定義された数の語を中心的な選択に提供しながら、中心の語が中心的な選択の中心にとどまることを可能にする。語の事前に定義される数は任意の奇数であってもよく、左側コンテキストの中の語の数は右側コンテキストの中の語の数に等しい(ただしパディングトークンは1つの語として数える)。
【0054】
システムは、中心的な選択を擬似ハイパーリンクモデルに提供してもよい(420)。モデルは、中心的な選択を前提にインテリジェントな選択および1つまたは複数の操作を予測するようにトレーニングされる機械学習アルゴリズムであってもよい。いくつかの実装形態では、システムは、モデルの語彙を減らすために、一度に中心的な選択の1文字をモデルに与える。
【0055】
いくつかの実装形態では、システムは、確率が最高であり、また閾値を満たすか超える動作によって表される、モバイルアプリケーションの実行を自動的に開始してもよい(445)。システムは、以下でより詳細に説明されるように、意図におけるパラメータとしてインテリジェントな選択を使用して、意図を用いてモバイルアプリケーションの実行を開始してもよい。いくつかの実装形態では、モデルは、システムがユーザに提供してもよい、中心的な選択に対する予測または提案される操作を提供してもよい(425)。システムは、たとえば2つ以上の操作が類似する最高の確率を有するとき、予測または提案される操作を提供してもよい。したがって、システムは、ユーザのための操作を確証をもって決めることが可能ではない場合がある。システムはまた、確率が最高の操作が閾値を満たさないとき、予測される操作を提供してもよい。いくつかの実装形態では、システムは、ステップ425の一部として、コピー操作または別のデフォルトの操作(たとえば、インターネット上でのインテリジェントな選択に対する検索)をユーザに提示される操作に追加してもよい。システムは、ユーザが操作を選択することを可能にする、各操作に対する選択可能な制御を提供してもよい。操作は、検索の意図または共有の意図などのモバイルアプリケーションに対する意図を表す。操作はまた、たとえばクライアントデバイスがブラウザを実行するラップトップであるとき、ウェブサイトに対する検索の意図を表すことが可能である。いくつかの実装形態では、システムは、ディスプレイ上でインテリジェントな選択を強調してもよい(430)。インテリジェントな選択は、意図において使用される中心的なリンクの部分である。インテリジェントな選択は、中心の語のみであることが可能であり、または中心の語と1つまたは2つの周囲の語であることが可能である。強調を使用する実装形態では、たとえばユーザインターフェースは、ユーザがインテリジェントな選択を変更するための方法を含んでもよい。たとえば、ユーザは、インテリジェントな選択に含まれる語を拡大または縮小してもよい。
【0056】
システムは、ユーザが操作制御手段を選択すること(435,Yes)または操作提案インターフェースを終了すること(435,No)を待機する。ユーザが提案された操作を選択する場合(435,Yes)、システムは、中心的な選択、インテリジェントな選択、および選択された操作からポジティブなトレーニング例を生成してもよい(440)。このポジティブなトレーニング例は、たとえばクライアントデバイスに対してモデルのコピーをパーソナライズすること、またはサーバにおいて元のモデルをさらにトレーニングすること、たとえばユーザの同意とともにポジティブな例をサーバに送信することによってモデルをトレーニングするために使用されることが可能である。この追加のポジティブな例は、モデルが、操作を選択することをユーザに要求するユーザインターフェースを表示するのではなく、今後選択される操作を自動的に選ぶことを可能する場合がある。システムは次いで、インテリジェントな選択を意図におけるパラメータとして使用して、意図を用いて操作により表されるモバイルアプリケーションの実行を開始してもよい(445)。いくつかの実装形態では、この意図は、検索の意図または共有の意図などの標準的な意図である。したがって、クライアントデバイスは、現在実行されていたアプリケーション、たとえばソースアプリケーションから、選択された操作によって表されるモバイルアプリケーション、たとえば行先アプリケーションにコンテキストを切り替える。クライアントデバイスがモバイルデバイスではない実装形態では、アクションは、モバイルアプリケーションを反映する特定のウェブサイトにおける検索インターフェースと関連付けられてもよく、システムは、インテリジェントな選択をパラメータとして使用して、探索の意図を用いてブラウザに探索インターフェースへ進ませてもよい。したがって、ユーザは、ステップ410において受け取られるアクションのみを使用して、行先アプリケーション(たとえば、モバイルアプリケーションまたはモバイルアプリケーションのウェブミラー)に自動的に切り替えることが可能である。
【0057】
いくつかの実装形態では、操作は、モバイルデバイスにインストールされていないモバイルアプリケーションと関連付けられてもよい。これが発生するとき、選択されるエンティティに対する操作は、選択されると、ユーザがモバイルアプリケーションをダウンロードしてインストールできるインターフェースにユーザを連れていく、またはモバイルアプリケーションのインストールを自動的に開始する、二次的な操作であってもよい。したがって、ステップ435における操作の選択は、ユーザがモバイルアプリケーションをインストールすることを可能にしてもよいことが理解される。いくつかの実装形態では、モバイルアプリケーションのインストールが成功した後で、システムは、インテリジェントな選択をパラメータとして使用する意図を自動的に開始して、新たにインストールされたモバイルアプリケーションを開いてもよい。いくつかの実装形態では、ユーザが特定のモバイルアプリケーションをインストールしていない場合、システムは、インテリジェントな選択のブラウザベースの検索を代わりに用いてもよい。いくつかの実装形態では、操作が規定されない場合、システムは、インテリジェントな選択を扱うためのブラウザ検索またはカット/コピーオプションなどのユーザインターフェースを介してデフォルトのオプションを提供してもよい。
【0058】
図5は、開示される実装形態による、擬似ハイパーリンクモデルを生成するための例示的なプロセス500の流れ図を示す。プロセス500は、
図1のシステム100などの擬似ハイパーリンクシステムによって実行されてもよい。プロセス500は、
図4のステップ405の例であり、
図1のモデル130またはモデル170などの擬似ハイパーリンクモデルを構築するために使用されてもよい。プロセス500は、ウェブサイトからモバイルアプリケーションへのマッピングを取得することによって開始してもよい(505)。いくつかの実装形態では、マッピングは提供されてもよく、たとえば手動でキュレートされてもよい。いくつかの実装形態では、システムがマッピングを構築してもよい。たとえば、システムは、モバイルアプリケーションマニフェストを使用して、モバイルアプリケーションのウェブサイトミラーを決定してもよい。いくつかの実装形態では、システムは、類似するモバイルアプリケーションを一緒にクラスタ化し、すべての類似するアプリケーションをウェブサイトミラーにマッピングすることによってマッピングを強化してもよい。たとえば、いくつかの予約モバイルアプリケーション、たとえば飛行機、レンタカー、ホテルなどを予約するためのアプリケーションがある場合があり、これらは一緒に、従来のクラスタ化アルゴリズムを使用してクラスタ化されてもよい。いくつかの実装形態では、システムは、クラスタの中の各アプリケーションをウェブサイトミラーにマッピングしてもよい。いくつかの実装形態では、システムは、どのモバイルアプリケーションにウェブサイトがマッピングするかを決定するためにエミュレータを使用してもよい。たとえば、エミュレータは、検索記録からクエリを取得し、様々なモバイルアプリケーション(たとえば、ウェブストアを介して入手可能なもの)の実行をシミュレートするように構成されてもよい。エミュレータは、同じクエリを前提に、ウェブサイトと同様の結果を特定のモバイルアプリケーションが返すかどうかを判定してもよい。そうである場合、エミュレータは、ウェブサイトのモバイルアプリケーションにマッピングしてもよい。いくつかの実装形態では、エミュレータは、クエリをモバイルアプリケーションに提供し、モバイルアプリケーションが満足した状態になるかどうか、または言い換えると、クエリに対して有効な検索結果を返すかどうかを判定するように構成されてもよい。そうである場合、システムは、ウェブサイトミラー、たとえば同じクエリを前提として類似する結果を返すものを見つけてもよい。これらの方式のいずれかで、システムは、ウェブサイトからモバイルアプリケーションへのマッピングを構築してもよい。いくつかの実装形態では、マッピングは、非httpおよびhttps URI方式に対するマッピングを含んでもよい。たとえば、"mailto:"URIは電子メールアプリケーションにマッピングされてもよく、"tel:"URIは通話アプリケーションにマッピングされてもよく、"geo:"URIは地図アプリケーションにマッピングされてもよく、以下同様である。
【0059】
システムは、モデルをトレーニングするためのポジティブなトレーニング例を特定してもよい(510)。ポジティブなトレーニング例は、クローリングされたドキュメント、たとえばアンカータグを含むインターネットまたはイントラネットを通じて入手可能なドキュメントから抽出されてもよい。クローリングされたドキュメントは、インターネット検索エンジンによってインデックス化されるドキュメントであってもよい。システムは、行先が、ホワイトリストに記載されたウェブサイト、またはウェブサイトからモバイルアプリケーションへのマッピングの中のURIと一致する、ドキュメントの中のリンクを選択してもよい。これらのリンク(すなわち、アンカータグおよび関連する情報)は、ホワイトリストに記載されたウェブサイトと関連付けられるモバイルアプリケーションにアンカーテキストをリンクするポジティブな例であると考えられる。システムは、中心部分としてアンカーテキストを用いて中心的な選択を行い、リンクのアンカーテキストは、中心的な選択に対するインテリジェントな選択の例である。したがって、例は、とりわけ、ドキュメントから抽出された中心的な選択と、中心的な選択からのインテリジェントな選択を表すアンカーテキストと、モバイルアプリケーションとを含んでもよい。いくつかの実装形態では、システムはまた、ネガティブな例を生成してもよい。たとえば、アンカーテキストによってリンクされるウェブサイトにマッピングしないモバイルアプリケーションは、ネガティブな例であってもよい。
【0060】
システムは、ポジティブなトレーニング例およびネガティブなトレーニング例を使用して、擬似ハイパーリンクモデルをトレーニングしてもよい(515)。システムは、トレーニングされたモデルをクライアントデバイスに提供してもよい(520)。いくつかの実装形態では、モデルは、インストールされている擬似ハイパーリンクアプリケーションまたはモデルが更新されるときにクライアントデバイスにプッシュされてもよい。いくつかの実装形態では、擬似ハイパーリンクアプリケーションは、たとえばアプリケーション更新の一部として、サーバからモデルを引き出してもよい。クライアントデバイスにおいて、システムは、モデルをパーソナライズするかどうかを判定してもよい(525)。パーソナライズが行われない場合(525,No)、プロセス500は終了する。そうではない場合(525,Yes)、システムは、クライアントデバイスまたはクライアントデバイスのユーザと関連付けられる検索記録からポジティブなトレーニング例を特定してもよい(530)。たとえば、システムは、スクリーンキャプチャインデックス、ユーザプロファイル、またはデバイスプロファイルを使用して、トレーニング例を再重み付けてもよい。システムは、更新された例を使用してモデルをさらにトレーニングしてもよい(535)。したがって、モデルは、ユーザに最も関連のあるアクションを予測するようにトレーニングされてもよい。そしてプロセス500は終了する。
【0061】
図6は、ここで説明される技法とともに使用されてもよい、
図1のサーバ110および/またはクライアント150として動作してもよい、汎用コンピュータデバイス600の例を示す。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、携帯電話、スマートフォン、タブレット、サーバ、およびウェアラブルデバイスを含む他のコンピューティングデバイスなどの様々な例示的な形態のコンピューティングデバイスを表すことが意図されている。ここで示される構成要素、それらの接続および関係、ならびにそれらの機能は、単なる例であることが意図され、この文書で説明および/または特許請求される発明の実装形態を限定することは意図されない。
【0062】
コンピューティングデバイス600は、プロセッサ602と、メモリ604と、記憶デバイス606と、インターフェース608を介して接続される拡張ポート610とを含む。いくつかの実装形態では、コンピューティングデバイス600は、インターフェース608を介して接続される、トランシーバ646と、通信インターフェース644と、GPS(全地球測位システム)受信機モジュール648とをとりわけ含んでもよい。デバイス600は、必要であればデジタル信号処理回路を含んでもよい、通信インターフェース644を通じてワイヤレスに通信してもよい。構成要素602、604、606、608、610、640、644、646、および648の各々は、共通のマザーボードに、または適宜他の方式で搭載されてもよい。
【0063】
プロセッサ602は、メモリ604または記憶デバイス606に記憶された命令を含む、コンピューティングデバイス600内で実行するための命令を処理して、ディスプレイ616などの外部入力/出力デバイスにGUIのためのグラフィカル情報を表示することができる。ディスプレイ616は、モニタまたは平らなタッチスクリーンディスプレイであってもよい。いくつかの実装形態では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。また、複数のコンピューティングデバイス600が接続されてもよく、各デバイスが必要な操作の部分を提供する(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0064】
メモリ604は、コンピューティングデバイス600内に情報を記憶する。一実装形態では、メモリ604は1つまたは複数の揮発性メモリユニットである。別の実装形態では、メモリ604は1つまたは複数の不揮発性メモリユニットである。メモリ604はまた、磁気ディスクまたは光学ディスクなどの別の形態のコンピュータ可読媒体であってもよい。いくつかの実装形態では、メモリ604は、拡張インターフェースを通じて提供される拡張メモリを含んでもよい。
【0065】
記憶デバイス606は、コンピューティングデバイス600に大量記憶を提供することが可能である。一実装形態では、記憶デバイス606は、フロッピーディスクデバイス、ハードディスクデバイス、光学ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成の中のデバイスを含む、デバイスのアレイなどのコンピュータ可読媒体であってもよく、またはそれを含んでもよい。コンピュータプログラム製品は、そのようなコンピュータ可読媒体に有形に具現化されることが可能である。コンピュータプログラム製品はまた、実行されると、上で説明された方法などの1つまたは複数の方法を実行する命令を含んでもよい。コンピュータまたは機械可読媒体は、メモリ604、記憶デバイス606、またはプロセッサ602上のメモリなどの記憶デバイスである。
【0066】
インターフェース608は、コンピューティングデバイス600のための帯域幅を要求する操作を管理する高速コントローラ、またはより低い帯域幅を要求する操作を管理する低速コントローラ、またはそのようなコントローラの組合せであってもよい。外部インターフェース640は、デバイス600の他のデバイスとの近隣通信を可能にするために設けられてもよい。いくつかの実装形態では、コントローラ608は、記憶デバイス606および拡張ポート614に結合されてもよい。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet、ワイヤレスEthernet)を含んでもよい拡張ポートは、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの1つまたは複数の入力/出力デバイスに、たとえばネットワークアダプタを通じて結合されてもよい。
【0067】
コンピューティングデバイス600は、図に示されるように、いくつかの異なる形式で実装されてもよい。たとえば、コンピューティングデバイス600は、標準的なサーバ630として、またはそのようなサーバのグループにおいて複数回実装されてもよい。コンピューティングデバイス600はまた、ラックサーバシステムの一部として実装されてもよい。加えて、コンピューティングデバイス600は、ラップトップコンピュータ632、パーソナルコンピュータ634、またはタブレット/スマートフォン636などのコンピューティングデバイスにおいて実装されてもよい。システム全体が、互いに通信する複数のコンピューティングデバイス600からなっていてもよい。他の構成が可能である。
【0068】
図7は、ここで説明される技法とともに使用されてもよい、
図1のサーバ110であってもよい、汎用コンピュータデバイス700の例を示す。コンピューティングデバイス700は、サーバ、ブレードサーバ、データセンター、メインフレーム、および他の大規模コンピューティングデバイスなどの様々な例示的な形態の大規模データ処理デバイスを表すことが意図される。コンピューティングデバイス700は、1つまたは複数の通信ネットワークによって相互接続される、ネットワーク接続ストレージノードを場合によっては含む、複数のプロセッサを有する分散型システムであってもよい。ここで示される構成要素、それらの接続および関係、ならびにそれらの機能は、単なる例であることが意図されており、この文書で説明および/または特許請求される本発明の実装形態を制限することは意図されていない。
【0069】
分散型コンピューティングシステム700は、任意の数のコンピューティングデバイス780を含んでもよい。コンピューティングデバイス780は、ローカルまたはワイドエリアネットワーク、専用光リンク、モデム、ブリッジ、ルータ、スイッチ、有線またはワイヤレスネットワークなどを通じて通信する、サーバまたはラックサーバ、メインフレームなどを含んでもよい。
【0070】
いくつかの実装形態では、各コンピューティングデバイスは複数のラックを含んでもよい。たとえば、コンピューティングデバイス780aは、複数のラック758a〜758nを含む。各ラックは、プロセッサ752a〜752nおよび762a〜762nなどの1つまたは複数のプロセッサを含んでもよい。プロセッサは、データプロセッサ、ネットワーク接続ストレージデバイス、および他のコンピュータで制御されるデバイスを含んでもよい。いくつかの実装形態では、1つのプロセッサは、マスタープロセッサとして動作し、スケジューリングおよびデータ配信のタスクを制御してもよい。プロセッサは1つまたは複数のラックスイッチ758を通じて相互接続されてもよく、1つまたは複数のラックはスイッチ778を通じて接続されてもよい。スイッチ778は、複数の接続されたコンピューティングデバイス780の間の通信を扱ってもよい。
【0071】
各ラックは、メモリ754およびメモリ764などのメモリと、756および766などのストレージとを含んでもよい。ストレージ756および766は、大量記憶を提供してもよく、ネットワーク接続ディスク、フロッピーディスク、ハードディスク、光学ディスク、テープ、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成の中のデバイスを含むデバイスのアレイなどの揮発性または不揮発性ストレージを含んでもよい。ストレージ756または766は、複数のプロセッサ、複数のラック、または複数のコンピューティングデバイスの間で共有されてもよく、プロセッサの1つまたは複数によって実行される命令を記憶するコンピュータ可読媒体を含んでもよい。メモリ754および764は、たとえば1つまたは複数の揮発性メモリユニット、1つまたは複数の不揮発性メモリユニット、および/または、磁気もしくは光学ディスク、フラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、およびこれらの組合せなどの他の形態のコンピュータ可読媒体を含んでもよい。メモリ754などのメモリはまた、プロセッサ752a〜752nの間で共有されてもよい。インデックスなどのデータ構造は、たとえばストレージ756およびメモリ754にわたって記憶されてもよい。コンピューティングデバイス780は、コントローラ、バス、入力/出力デバイス、通信モジュールなどの図示されない他の構成要素を含んでもよい。
【0072】
システム100などのシステム全体が、互いに通信する複数のコンピューティングデバイス780からなっていてもよい。たとえば、デバイス780aは、デバイス780b、780c、および780dと通信してもよく、これらはシステム100として集合的に知られている場合がある。別の例として、
図1のシステム100は、1つまたは複数のコンピューティングデバイス780を含んでもよい。コンピューティングデバイスのいくつかは、互いに地理的に近く位置している場合があり、他は地理的に離れて位置している場合がある。システム700のレイアウトは単なる例であり、システムは他のレイアウトまたは構成であってもよい。
【0073】
本開示のいくつかの態様によれば、モバイルデバイスは、ディスプレイデバイスと、少なくとも1つのプロセッサと、命令を記憶するメモリとを含んでもよく、この命令は、実行されると、少なくとも1つのプロセッサによって、ディスプレイデバイスに表示されるコンテンツに対するアクションを検出したことに応答して中心的な選択を生成するステップと、中心的な選択を擬似ハイパーリンクモデルに提供するステップであって、擬似ハイパーリンクモデルが中心的な選択を前提として操作を予測するようにトレーニングされ、操作がモバイルアプリケーションに対する意図と関連付けられる、ステップと、a)意図を使用する、操作の選択を許可するユーザインターフェースの表示、またはb)意図を使用する操作の実行のうちの少なくとも1つを開始するステップとを含む動作をモバイルデバイスに実行させる。
【0074】
この態様および他の態様は、以下の特徴のうちの1つまたは複数を含むことが可能である。たとえば、擬似ハイパーリンクモデルはまた、中心的な選択からインテリジェントな選択を提供するようにトレーニングされてもよく、操作を開始することは、インテリジェントな選択を意図に対するパラメータとして使用して行われる。いくつかの実装形態では、ユーザインターフェースの表示を開始することは、モバイルアプリケーションのアイコンおよびインテリジェントな選択をコピーするためのオプションとともにメニューを表示することを含むことが可能である。いくつかの実装形態では、操作はまた、インテリジェントな選択に対応するディスプレイに表示されるテキストの外観を変更することを含んでもよい。別の例として、操作はまた、ユーザインターフェースから操作の選択を受信したことに応答して、インテリジェントな選択を使用して操作の実行を開始することを含んでもよい。そのような実装形態は、中心的な選択を使用してポジティブなトレーニング例を生成すること、モバイルアプリケーションを使用してポジティブなトレーニング例を生成すること、および/または、ポジティブなトレーニング例に対する重みを上げることを含んでもよい。別の例として、ユーザインターフェースの表示を開始することは、モバイルアプリケーションのアイコンを表示することを含む。
【0075】
別の例として、中心的な選択は、アクションの位置に最も近い語と、その位置に最も近いその語の前およびその位置に最も近いその語の後に現れる、コンテンツからの等しい量の語とを含んでもよい。いくつかの実装形態では、その位置に最も近い語の前および後にある語は、異なる段落の中の語を除外し、中心的な選択を生成することは、その位置に最も近い語の前にある語の量が上記の等しい量より少ないと決定することと、その位置に最も近い語の前にある語の量が上記の等しい量となるようにその位置に最も近い語の前にある語としてカウントされるパディングトークンを中心的な選択に追加することとを含む。別の例として、操作はまた、サーバから擬似ハイパーリンクモデルを受信することと、モバイルデバイスのユーザのためのスクリーンキャプチャインデックスの中のハイパーリンクからトレーニング例を生成することと、トレーニング例を使用して擬似ハイパーリンクモデルをトレーニングすることとを含んでもよく、パーソナライズされた擬似ハイパーリンクモデルが得られる。
【0076】
本開示のいくつかの態様によれば、本方法は、ドキュメントコーパスから、ホワイトリストに記載されたウェブサイトへのハイパーリンクを有する1つまたは複数のドキュメントを特定するステップであって、ホワイトリストに記載されたウェブサイトが、モバイルアプリケーションへのウェブサイトのマッピングの中の複数のウェブサイトのうちの1つである、ステップと、1つまたは複数のドキュメントを使用して擬似ハイパーリンクモデルのポジティブなトレーニング例を生成するステップであって、各々のポジティブなトレーニング例が、それぞれのドキュメント、ウェブサイト、ウェブサイトのページランクに対応する重み、およびウェブサイトにマッピングされるモバイルアプリケーションから生成される中心的な選択を有する、ステップと、ポジティブなトレーニング例を使用して、擬似ハイパーリンクモデルをトレーニングして中心的な選択を前提にモバイルアプリケーションに対する操作を予測するステップとを含む。
【0077】
この態様および他の態様は、以下の特徴のうちの1つまたは複数を含むことが可能である。たとえば、本方法はまた、第1のモバイルアプリケーションのマニフェストにおいてウェブサイトを特定するステップと、ウェブサイトおよび第1のモバイルアプリケーションをマッピングに追加するステップとを含んでもよい。いくつかの実装形態では、マニフェストは意図を指定し、モバイルアプリケーションに対する操作がその意図である。別の例として、モバイルアプリケーションは第1のモバイルアプリケーションであってもよく、本方法はまた、ウェブストアの中の類似のモバイルアプリケーションをクラスタ化するステップであって、第1のモバイルアプリケーションが第1のクラスタの中に現れる、ステップと、ウェブサイトへのハイパーリンクを用いてドキュメントを特定するステップと、ハイパーリンクに基づいてインテリジェントな選択を決定するステップと、インテリジェントな選択に対して第1のモバイルアプリケーションにより生成される結果がインテリジェントな選択に対して第2のモバイルアプリケーションにより生成される結果と同様であることを検証するステップであって、第2のモバイルアプリケーションが第1のクラスタの中にある、ステップと、検証するステップに応答して、ウェブサイトおよび第2のモバイルアプリケーションをマッピングに追加するステップとを含む。
【0078】
別の例として、本方法はまた、モバイルデバイスのユーザに対するスクリーンキャプチャインデックスに基づいて、モデルをパーソナライズするステップを含んでもよい。別の例として、マッピングは、非httpユニフォームリソースインジケータ(URI)をモバイルアプリケーションにマッピングする記録を含んでもよく、1つまたは複数のドキュメントは、非http URIを使用するハイパーリンクを含む。別の例として、中心的な選択はハイパーリンクに対するアンカーテキストを含み、モデルはさらにインテリジェントな選択としてアンカーテキストを予測するようにトレーニングされる。
【0079】
本開示のいくつかの態様によれば、本方法は、擬似ハイパーリンク指示を検出したことに応答して、モバイルコンピューティングデバイスのディスプレイに表示されるコンテンツから中心的な選択を生成するステップと、中心的な選択を擬似ハイパーリンクモデルに提供するステップであって、擬似ハイパーリンクモデルが中心的な選択を前提に操作を予測するようにトレーニングされ、操作がモバイルアプリケーションに対する意図と関連付けられる、ステップと、意図を使用して操作を開始するステップとを含む。
【0080】
この態様および他の態様は、以下の特徴のうちの1つまたは複数を含むことが可能である。たとえば、中心的な選択を生成するステップは、コンテンツの中で表現される語を決定するためにコンテンツのスクリーンキャプチャに対してテキストおよび画像の認識を実行するステップと、擬似ハイパーリンクモデルの位置に最も近い語を中心的な選択の中の中心の語として決定するステップとを含むことが可能である。別の例として、中心的な選択を生成するステップはまた、異なるセクションからの語を含めるのを避けるために、中心的な選択の中の語の代わりにパディングトークンを使用することを含むことが可能である。別の例として、擬似ハイパーリンクモデルはまた、中心的な選択からインテリジェントな選択を行うようにトレーニングされてもよく、インテリジェントな選択は、中心的な選択の一部分を表し、インテリジェントな選択を意図に対するパラメータとして使用する。別の例として、操作は第1の操作であってもよく、本方法はまた、擬似ハイパーリンクモデルから第1の操作および第2の操作を受信するステップと、第1の操作の確率スコアおよび第2の操作の確率スコアが同様であると決定するステップと、モバイルコンピューティングデバイスのユーザが第1の操作または第2の操作を選択することを可能にするユーザインターフェースを提供するステップと、第1の操作の選択を受信するステップと、中心的な選択および第1の操作からポジティブなトレーニング例を生成するステップと、意図を使用して第1の操作を開始するステップとを含む。別の例として、本方法はまた、擬似ハイパーリンク指示を検出したことに応答して、部分的なスクリーンキャプチャ画像を取得するステップを含んでもよく、中心的な選択は部分的なスクリーンキャプチャ画像から取得される。
【0081】
様々な実装形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、かつそれらにデータおよび命令を送信するために結合される、専用または汎用であってもよい少なくとも1つのプログラム可能プロセッサを含む、プログラム可能システム上で実行可能および/または解釈可能である1つまたは複数のコンピュータプログラムにおける実装形態を含むことが可能である。
【0082】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとして知られている)は、プログラム可能プロセッサのための機械命令を含み、高水準手続き型プログラミング言語および/もしくはオブジェクト指向プログラミング言語、ならびに/または、アセンブリ言語/機械語で実装されることが可能である。本明細書では、「機械可読媒体」「コンピュータ可読媒体」という用語は、機械命令および/またはデータをプログラム可能プロセッサに提供するために使用される、任意の非一時的コンピュータプログラム製品、装置、および/またはデバイス(たとえば、磁気ディスク、光学ディスク、メモリ(読取りアクセスメモリを含む)、プログラマブル論理デバイス(PLD))を指す。
【0083】
ここで説明されるシステムおよび技法は、バックエンド構成要素を(たとえば、データサーバとして)含む、またはミドルウェア構成要素(たとえば、アプリケーションサーバ)を含む、またはフロントエンド構成要素(たとえば、ユーザがそれを通じてここで説明されるシステムおよび技法の実装形態と対話できる、グラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を含む、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装されることが可能である。システムの構成要素は、デジタルデータ通信(たとえば、通信ネットワーク)の任意の形態または媒体によって相互接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク("LAN")、ワイドエリアネットワーク("WAN")、およびインターネットを含む。
【0084】
コンピューティングシステムは、クライアントおよびサーバを含むことが可能である。クライアントおよびサーバは一般に互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、コンピュータプログラムが、それぞれのコンピュータ上で実行されること、および互いにクライアント−サーバの関係を有することにより生じる。
【0085】
いくつかの実装形態が説明された。それでも、本発明の趣旨および範囲から逸脱することなく、様々な修正が行われてもよい。加えて、図に示される論理フローは、望ましい結果を達成するために、示される特定の順序または順次的な順序を必要としない。加えて、他のステップが設けられてもよく、または説明されたフローからステップが除去されてもよく、説明されたシステムに他の構成要素が追加されてもよく、またはそれから他の構成要素が除去されてもよい。したがって、他の実装形態が以下の特許請求の範囲の中にある。