JP2018516401A - アクションベースのアプリ推奨エンジン - Google Patents
アクションベースのアプリ推奨エンジン Download PDFInfo
- Publication number
- JP2018516401A JP2018516401A JP2017553368A JP2017553368A JP2018516401A JP 2018516401 A JP2018516401 A JP 2018516401A JP 2017553368 A JP2017553368 A JP 2017553368A JP 2017553368 A JP2017553368 A JP 2017553368A JP 2018516401 A JP2018516401 A JP 2018516401A
- Authority
- JP
- Japan
- Prior art keywords
- application
- actions
- user device
- user
- data store
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000009471 action Effects 0.000 title claims abstract description 265
- 238000012552 review Methods 0.000 claims abstract description 80
- 230000004044 response Effects 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims abstract description 5
- 230000007246 mechanism Effects 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 14
- 230000001960 triggered effect Effects 0.000 claims description 9
- 230000001934 delay Effects 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 29
- 238000010801 machine learning Methods 0.000 description 13
- 230000006399 behavior Effects 0.000 description 8
- 206010021703 Indifference Diseases 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 235000013305 food Nutrition 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000010437 gem Substances 0.000 description 2
- 229910001751 gemstone Inorganic materials 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Computational Linguistics (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Tourism & Hospitality (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Human Computer Interaction (AREA)
Abstract
システムが、レコードを記憶するように構成された第1のデータストアを含み、上記レコードは、各々がモバイル装置のアプリケーションに対応し、アプリケーションの使用を通してモバイルデバイスユーザに利用可能なアクションを識別するメタデータを含む。識別されたアクションは、オントロジーから選ばれる。クエリモジュールが、ユーザ装置にインストールされたアプリケーションのセットを示すアプリケーション推奨要求を処理する。セット生成モジュールが、ユーザ装置アプリケーションに関連付けられた利用可能アクションのセットを識別し、利用可能アクションとは相互排他的な利用不能アクションのセットを選択する。セット生成モジュールは、アプリケーションの検討セットを決定し、これにおいて、各アプリケーションは、利用不能アクションのうち少なくとも1つを実装する。セット処理モジュールが、検討セットからアプリケーションの選ばれたサブセットを選択する。結果生成モジュールが、選ばれたサブセット内の各アプリケーションを識別するアプリケーション推奨応答で上記要求に応答する。
Description
本開示は、一般に推奨システムに関し、より詳細には、コンピューティング装置上のアプリケーションのための自動化された推奨システムに関する。
本明細書において提供される背景技術記載は、本開示の前後関係を一般に提示する目的のものである。本背景技術セクションに説明される範囲での、現在名前を挙げられている発明者の業績と、出願時における従来技術として別段資格を有し得ない説明の態様とは、本開示に対する従来技術として明示的にも黙示的にも認められない。
近年、インターネット接続された装置、例えばスマートフォン及びタブレットなどの使用は、指数関数的に増大している。こうした装置のための利用可能ソフトウェアアプリケーションの数及び多様性が、数桁単位で同様に増大している。現在、任意の所与のインターネット接続された装置上で、多くの多様な機能を実行することができ、多くの多様なデータセットを解析することができる。例えば、アプリストア(本明細書において、デジタル配信プラットフォームと呼ばれる)、例えば、Google(登録商標)社によるGoogle PLAYプラットフォーム、Apple(登録商標)社によるAPP STORE(登録商標)プラットフォーム、Amazon.com社によるAmazon(登録商標) APPSTOREプラットフォーム、Microsoft(登録商標)社からのWINDOWS(登録商標) PHONE STOREプラットフォーム及びWINDOWS STOREプラットフォーム、GetJar社によるGETJARプラットフォームなどは、合わせて数百万のアプリケーションをオファーしている。
こうした幅広い利用可能アプリケーションについて、インターネット接続された装置の多くのユーザは、関心のあるアクションを実行し、かつ/あるいはユーザに関心のあるデータを提供することができるアプリケーションの可用性に、気付いていない。アプリ開発者でさえ、アプリ開発者が専門に扱わないアプリケーションマーケットのセグメント内で価値ありとユーザが見出す可能性があるアプリケーションのすべてについていくことはできない。
システムが、複数のレコードを記憶するように構成された第1のデータストアを含む。上記レコードの各々は、モバイル装置のアプリケーションに対応し、上記アプリケーションの使用を通してモバイルユーザ装置に利用可能なアクションを識別するメタデータを含む。上記識別されたアクションは、オントロジーから選ばれる。当該システムは、ユーザ装置に対応するアプリケーション推奨要求を処理するように構成されたクエリモジュールを含む。上記アプリケーション推奨要求は、上記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む。当該システムは、上記第1のデータストアを用いて、上記ユーザ装置にインストールされた上記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別するように構成されたセット生成モジュールを含む。上記セット生成モジュールは、利用不能アクションのセットを選択するように構成される。上記利用不能アクションのセットは、上記利用可能アクションのセットと相互排他的である。上記セット生成モジュールは、上記第1のデータストアからアプリケーションの検討セットを決定するように構成される。上記検討セット内の各アプリケーションは、上記利用不能アクションのセットのうち少なくとも1つを実装する。当該システムは、上記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択するように構成されたセット処理モジュールを含む。当該システムは、上記アプリケーション推奨要求にアプリケーション推奨応答で応答するように構成された結果生成モジュールを含む。上記アプリケーション推奨応答は、上記選ばれたサブセット内の各アプリケーションの識別データを含む。
他の特徴において、上記第1のデータストアは、上記レコードの各々について、上記アプリケーションに対するアクセスメカニズムのデータを含む。上記アプリケーション推奨応答は、上記選ばれたサブセット内の各アプリケーションについて、上記アクセスメカニズムを含む。他の特徴において、上記レコードの各々について、上記アクセスメカニズムの上記データは、デジタル配信プラットフォーム内の上記アプリケーションに対するリンクである。他の特徴において、上記セット処理モジュールは、上記検討セット内の上記アプリケーションの各々について、スコアを決定し、かつ、上記選ばれたサブセットとして、上記アプリケーションの検討セットから、最も高いスコアを有する所定数のアプリケーションを選択するように構成される。他の特徴において、アプリケーションの上記スコアは、上記アプリケーションのレビューと上記アプリケーションについてのダウンロード統計とに基づく。
他の特徴において、アプリケーションの上記スコアは、上記アプリケーションの使用を通して上記ユーザ装置に利用可能なアクションの総数に反比例的に関連する(inversely related to)。他の特徴において、アプリケーションの上記スコアは、上記アプリケーションの使用を通して上記ユーザ装置に利用可能な、上記利用可能アクションのセット内でないアクションの数に正比例的に関連する(directly related to)。他の特徴において、上記セット処理モジュールは、上記選ばれたサブセットから、上記ユーザ装置にインストールされた上記アプリケーションのセットを除外するように構成される。他の特徴において、上記セット処理モジュールは、上記選ばれたサブセットから、上記ユーザ装置からアンインストールされたアプリケーションを除外するように構成される。他の特徴において、上記利用可能アクションのセットは、上記ユーザ装置にインストールされた上記アプリケーションのセットのうちすべての使用を通して上記ユーザ装置に利用可能である上記オントロジー内のすべてのアクションを包含する。
他の特徴において、上記ユーザ装置にインストールされた上記アプリケーションのセットは、上記ユーザ装置にインストールされたすべてのアプリケーションを包含する。他の特徴において、上記アプリケーション推奨要求は、上記第1のデータストア内のレコードに対応しなかった上記オントロジーの第1のアクションについて、新しいレコードが上記第1のデータストアに追加され、かつ上記第1のアクションに対応することに応答してトリガされる。他の特徴において、上記第1のデータストアは、上記レコードの各々について、上記レコードの地理的関連に関するデータを含む。上記アプリケーション推奨要求は、上記ユーザ装置が第1の地理的エリアから第2の地理的エリアに移動することに応答してトリガされる。
他の特徴において、当該システムは、上記レコードのうち第1のレコードに対応する上記アプリケーションが上記ユーザ装置からアンインストールされているとき、上記第1のレコードの上記メタデータがさらなるアクションを追加するように更新されることに応答して上記アプリケーション推奨要求を生成するように構成された監視モジュールを含む。他の特徴において、当該システムは、(i)上記レコードのうち第1のレコードに対応する上記アプリケーションが上記ユーザ装置からアンインストールされており、かつ(ii)さらなるアクションが上記利用可能アクションのセットの範囲外であるとき、上記第1のレコードの上記メタデータが上記さらなるアクションを追加するように更新されることに応答して上記アプリケーション推奨要求を生成するように構成された監視モジュールを含む。
他の特徴において、上記ユーザ装置にインストールされた上記アプリケーションのセットからのアプリケーションに対応する上記第1のデータストアの第1のレコードについて、上記アプリケーション推奨要求は、上記メタデータがさらなるアクションを追加するように更新されることに応答してトリガされる。他の特徴において、上記第1のデータストアの第1のレコードが、第1のアプリケーションの複数のバージョンに対応する。当該システムは、(i)上記第1のアプリケーションの新しいバージョンの上記メタデータが、上記第1のアプリケーションの前のバージョンに含まれない上記オントロジーからのアクションを含み、かつ(ii)上記第1のアプリケーションの上記前のバージョンのうち1つが上記ユーザ装置にインストールされているとき、上記新しいバージョンが上記第1のレコードに追加されることに応答して上記ユーザ装置のための上記アプリケーション推奨要求を生成するように構成された監視モジュールを含む。
他の特徴において、上記監視モジュールは、上記ユーザ装置が所定期間の時間を超えて上記第1のアプリケーションの上記新しいバージョンをインストールするのに失敗するまで、上記アプリケーション推奨要求を遅延させる。他の特徴において、上記第1のデータストアの第1のレコードが、第1のアプリケーションの第1のバージョンに対応し、当該システムは、監視モジュールを含む。上記監視モジュールは、(i)上記第1のアプリケーションの第2のバージョンの上記メタデータが、上記第1のアプリケーションの上記第1のバージョンに含まれない上記オントロジーからのアクションを含み、かつ(ii)上記第1のアプリケーションの上記第1のバージョンが上記ユーザ装置にインストールされているとき、上記第2のバージョンが第2のレコードとして上記第1のデータストアに追加されることに応答して上記ユーザ装置のための上記アプリケーション推奨要求を生成するように構成される。
他の特徴において、上記オントロジーは、上記アクションの各々が葉ノードである階層ツリーにグループ化される。上記セット生成モジュールは、上記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別し、かつ、上記識別された親ノードの残りのアクションを上記利用不能アクションのセットとして選択するように構成される。他の特徴において、上記オントロジーは、上記アクションの各々が葉ノードである階層ツリーにグループ化される。上記セット処理モジュールは、上記アプリケーションの検討セットの各々にスコアを割り当て、上記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別し、上記識別された親ノードの残りのアクションを実装するアプリケーションについて、上記スコアを増加し、かつ、上記検討セットから最も高いスコアを有する上記アプリケーションを上記選ばれたサブセットとして選択するように構成される。
他の特徴において、当該システムは、複数のレコードを記憶するように構成された第2のデータストアを含む。上記レコードの各々は、ユーザ装置に対応し、上記ユーザ装置からアンインストールされたアプリケーションを識別するデータを記憶する。他の特徴において、当該システムは、複数のユーザレコードを記憶するように構成された第2のデータストアを含む。上記ユーザレコードの各々は、(i)ユーザ装置に対応し、(ii)対応するユーザ装置のユーザにより所望されないとして識別されたアプリケーションを識別するデータを記憶する。上記セット処理モジュールは、上記第2のデータストアに従い上記選ばれたサブセットからアプリケーションを除外するように構成される。
他の特徴において、当該システムは、複数のユーザレコードを記憶するように構成された第2のデータストアを含む。上記ユーザレコードの各々は、(i)ユーザ装置に対応し、(ii)対応するユーザ装置のユーザにより所望されないとして識別されたアクションを識別するデータを記憶する。上記セット生成モジュールは、上記第2のデータストアに従い上記利用不能アクションのセットからアクションを削除するように構成される。他の特徴において、上記セット生成モジュールは、上記アプリケーションの検討セット内に、上記利用可能アクションのセットからのアクションを複製する(duplicates)第1のアプリケーションを選択的に含むように構成される。
他の特徴において、上記第1のアプリケーションは、上記オントロジーの第1のアクションを上記ユーザ装置に利用可能にする。上記セット生成モジュールは、上記ユーザ装置の使用量データが上記第1のアクションの高い使用量を示すことに応答して、上記アプリケーションの検討セット内に上記第1のアプリケーションを含めるように構成される。
他の特徴において、上記セット生成モジュールは、上記第1のアクションの上記使用量が所定の閾値を上回ることに応答して、上記第1のアクションの上記使用量が高いと決定するように構成される。上記所定の閾値は、上記利用可能アクションのセットの平均使用量に基づく。他の特徴において、上記アプリケーション推奨要求は、上記ユーザ装置から直接受信される。他の特徴において、上記アプリケーション推奨要求は、検索プラットフォームが上記ユーザ装置からアプリケーション検索要求を受信することに応答して、上記検索プラットフォームから受信される。
他の特徴において、上記アプリケーション推奨要求は、推奨が上記アプリケーション検索要求の範囲をターゲットにする(be targeted to)べきであると示すデータを含む。他の特徴において、上記アプリケーション推奨応答は、上記アプリケーション検索要求の範囲から独立である。他の特徴において、上記レコードの各々は、対応するアプリケーションを説明するさらなるメタデータを含む。上記さらなるメタデータは、上記対応するアプリケーションのジャンルを含む。他の特徴において、上記さらなるメタデータは、(i)上記対応するアプリケーションについてのユーザ提供されたレビューデータと、(ii)上記対応するアプリケーションについてのダウンロード統計とを含む。
方法が、複数のレコードを第1のデータストアに記憶することを含む。上記レコードの各々は、モバイル装置のアプリケーションに対応し、上記アプリケーションの使用を通してモバイル装置ユーザに利用可能なアクションを識別するメタデータを含む。上記識別されたアクションはオントロジーから選ばれる。当該方法は、ユーザ装置に対応するアプリケーション推奨要求を処理することを含む。上記アプリケーション推奨要求は、上記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む。当該方法は、上記第1のデータストアを用いて、上記ユーザ装置にインストールされた上記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別することを含む。当該方法は、利用不能アクションのセットを選択することを含む。上記利用不能アクションのセットは上記利用可能アクションのセットと相互排他的である。当該方法は、上記第1のデータストアからアプリケーションの検討セットを決定することを含む。上記検討セット内の各アプリケーションは、上記利用不能アクションのセットのうち少なくとも1つを実装する。当該方法は、上記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択することを含む。当該方法は、上記アプリケーション推奨要求にアプリケーション推奨応答で応答することを含む。上記アプリケーション推奨応答は、上記選ばれたサブセット内の各アプリケーションの識別データを含む。
他の特徴において、上記レコードの各々について、上記アプリケーションに対するアクセスメカニズムのデータが、上記第1のデータストアに記憶される。上記アプリケーション推奨応答は、上記選ばれたサブセット内の各アプリケーションについて、上記アクセスメカニズムを含む。他の特徴において、上記レコードの各々について、上記アクセスメカニズムの上記データは、デジタル配信プラットフォーム内の上記アプリケーションに対するリンクである。他の特徴において、当該方法は、上記検討セット内の上記アプリケーションの各々について、スコアを決定することと、上記選ばれたサブセットとして、上記アプリケーションの検討セットから、最も高いスコアを有する所定数のアプリケーションを選択することとを含む。他の特徴において、アプリケーションの上記スコアは、上記アプリケーションのレビューと上記アプリケーションについてのダウンロード統計とに基づく。
他の特徴において、アプリケーションの上記スコアは、上記アプリケーションの使用を通して上記ユーザ装置に利用可能なアクションの総数に反比例的に関連する。他の特徴において、アプリケーションの上記スコアは、上記アプリケーションの使用を通して上記ユーザ装置に利用可能な、上記利用可能アクションのセット内でないアクションの数に正比例的に関連する。他の特徴において、当該方法は、上記選ばれたサブセットから、上記ユーザ装置にインストールされた上記アプリケーションのセットを除外することを含む。他の特徴において、当該方法は、上記選ばれたサブセットから、上記ユーザ装置からアンインストールされたアプリケーションを除外することを含む。
他の特徴において、上記利用可能アクションのセットは、上記ユーザ装置にインストールされた上記アプリケーションのセットのうちすべての使用を通して上記ユーザ装置に利用可能である上記オントロジー内のすべてのアクションを包含する。他の特徴において、上記ユーザ装置にインストールされた上記アプリケーションのセットは、上記ユーザ装置にインストールされたすべてのアプリケーションを包含する。他の特徴において、上記アプリケーション推奨要求は、上記第1のデータストア内のレコードに対応しなかった上記オントロジーの第1のアクションについて、新しいレコードが上記第1のデータストアに追加され、かつ上記第1のアクションに対応することに応答してトリガされる。他の特徴において、上記レコードの各々について、上記レコードの地理的関連に関するデータが、上記第1のデータストアに記憶される。上記アプリケーション推奨要求は、上記ユーザ装置が第1の地理的エリアから第2の地理的エリアに移動することに応答してトリガされる。
他の特徴において、当該方法は、上記レコードのうち第1のレコードに対応する上記アプリケーションが上記ユーザ装置からアンインストールされているとき、上記第1のレコードの上記メタデータがさらなるアクションを追加するように更新されることに応答して上記アプリケーション推奨要求を生成することを含む。他の特徴において、当該方法は、(i)上記レコードのうち第1のレコードに対応する上記アプリケーションが上記ユーザ装置からアンインストールされており、かつ(ii)さらなるアクションが上記利用可能アクションのセットの範囲外であるとき、上記第1のレコードの上記メタデータが上記さらなるアクションを追加するように更新されることに応答して上記アプリケーション推奨要求を生成することを含む。
他の特徴において、上記ユーザ装置にインストールされた上記アプリケーションのセットからのアプリケーションに対応する上記第1のデータストアの第1のレコードについて、上記アプリケーション推奨要求は、上記メタデータがさらなるアクションを追加するように更新されることに応答してトリガされる。他の特徴において、上記第1のデータストアの第1のレコードが、第1のアプリケーションの複数のバージョンに対応する。当該方法は、(i)上記第1のアプリケーションの新しいバージョンの上記メタデータが、上記第1のアプリケーションの前のバージョンに含まれない上記オントロジーからのアクションを含み、かつ(ii)上記第1のアプリケーションの上記前のバージョンのうち1つが上記ユーザ装置にインストールされているとき、上記新しいバージョンが上記第1のレコードに追加されることに応答して上記ユーザ装置のための上記アプリケーション推奨要求を生成することを含む。
他の特徴において、当該方法は、上記ユーザ装置が所定期間の時間を超えて上記第1のアプリケーションの上記新しいバージョンをインストールするのに失敗するまで、上記アプリケーション推奨要求を遅延させることを含む。他の特徴において、上記第1のデータストアの第1のレコードが、第1のアプリケーションの第1のバージョンに対応する。当該方法は、(i)上記第1のアプリケーションの第2のバージョンの上記メタデータが、上記第1のアプリケーションの上記第1のバージョンに含まれない上記オントロジーからのアクションを含み、かつ(ii)上記第1のアプリケーションの上記第1のバージョンが上記ユーザ装置にインストールされているとき、上記第2のバージョンが第2のレコードとして上記第1のデータストアに追加されることに応答して上記ユーザ装置のための上記アプリケーション推奨要求を生成することを含む。
他の特徴において、上記オントロジーは、上記アクションの各々が葉ノードである階層ツリーにグループ化される。当該方法は、上記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別することと、上記識別された親ノードの残りのアクションを上記利用不能アクションのセットとして選択することとを含む。他の特徴において、上記オントロジーは、上記アクションの各々が葉ノードである階層ツリーにグループ化される。当該方法は、上記アプリケーションの検討セットの各々にスコアを割り当てることと、上記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別することと、上記識別された親ノードの残りのアクションを実装するアプリケーションについて、上記スコアを増加することと、上記検討セットから最も高いスコアを有する上記アプリケーションを上記選ばれたサブセットとして選択することとを含む。他の特徴において、当該方法は、複数のレコードを第2のデータストアに記憶することを含む。上記レコードの各々は、ユーザ装置に対応し、上記ユーザ装置からアンインストールされたアプリケーションを識別するデータを記憶する。
他の特徴において、当該方法は、複数のユーザレコードを第2のデータストアに記憶することを含む。上記ユーザレコードの各々は、(i)ユーザ装置に対応し、(ii)対応するユーザ装置のユーザにより所望されないとして識別されたアプリケーションを識別するデータを記憶する。当該方法は、上記第2のデータストアに従い上記選ばれたサブセットからアプリケーションを除外することを含む。他の特徴において、当該方法は、複数のユーザレコードを第2のデータストアに記憶することを含む。上記ユーザレコードの各々は、(i)ユーザ装置に対応し、(ii)対応するユーザ装置のユーザにより所望されないとして識別されたアクションを識別するデータを記憶する。当該方法は、上記第2のデータストアに従い上記利用不能アクションのセットからアクションを削除するように構成される。他の特徴において、当該方法は、上記アプリケーションの検討セット内に、上記利用可能アクションのセットからのアクションを複製する第1のアプリケーションを選択的に含むことを含む。
他の特徴において、上記第1のアプリケーションは、上記オントロジーの第1のアクションを上記ユーザ装置に利用可能にする。当該方法は、上記ユーザ装置の使用量データが上記第1のアクションの高い使用量を示すことに応答して、上記アプリケーションの検討セット内に上記第1のアプリケーションを含めることを含む。他の特徴において、当該方法は、上記第1のアクションの上記使用量が所定の閾値を上回ることに応答して、上記第1のアクションの上記使用量が高いと決定することを含む。上記所定の閾値は、上記利用可能アクションのセットの平均使用量に基づく。他の特徴において、上記アプリケーション推奨要求は、上記ユーザ装置から直接受信される。他の特徴において、上記アプリケーション推奨要求は、検索プラットフォームが上記ユーザ装置からアプリケーション検索要求を受信することに応答して、上記検索プラットフォームから受信される。
他の特徴において、上記アプリケーション推奨要求は、推奨が上記アプリケーション検索要求の範囲をターゲットにするべきであると示すデータを含む。他の特徴において、上記アプリケーション推奨応答は、上記アプリケーション検索要求の範囲から独立である。他の特徴において、上記レコードの各々は、対応するアプリケーションを説明するさらなるメタデータを含む。上記さらなるメタデータは、上記対応するアプリケーションのジャンルを含む。他の特徴において、上記さらなるメタデータは、(i)上記対応するアプリケーションについてのユーザ提供されたレビューデータと、(ii)上記対応するアプリケーションについてのダウンロード統計とを含む。
他の特徴において、上記で説明された方法は、非一時的コンピュータ読取可能媒体に記憶されたプロセッサ実行可能命令により実施できる。
本開示の適用可能性のさらなるエリアが、詳細な説明、請求項、及び図面から明らかになるであろう。詳細な説明及び具体的な例は単に例示の目的を意図され、本開示の範囲を限定するようには意図されない。
本開示は、詳細な説明及び添付の図面からさらに十分理解されるであろう。図面において、参照番号は、同様の及び/又は同一の要素を識別するために再使用されることがある。
本開示の原理に従い推奨されるアプリを表示する例示的なグラフィカルユーザインターフェースである。
本開示の原理に従い推奨されるアプリを表示する例示的なグラフィカルユーザインターフェースである。
一例示的なアクションオントロジーの小サブセットのグラフィカル表現である。
本開示の原理がアプリケーションエコシステム内で如何にして使用できるかを表す高レベル機能ブロック図である。
推奨要求の例示的なコンテンツを表す。
推奨応答の例示的なコンテンツを表す。
推奨システムの一例示的な実装の高レベル機能ブロック図である。
推奨システムの別の例示的な実装の高レベル機能ブロック図である。
一例示的な推奨レコードフォーマットのグラフィカル表現である。
別の例示的な推奨レコードフォーマットのグラフィカル表現である。
図7Aのフォーマットに従う一例示的な推奨レコードのグラフィカル表現である。
推奨システムの高レベル動作のフローチャートである。
推奨応答の準備及び送信の例示的動作のフローチャートである。
推奨応答を準備及び送信する別の例示的動作のフローチャートである。
推奨システムが如何にしてアプリケーション検索システムと相互運用することができるかの1つの例を表す高レベル機能ブロック図である。
検索システムの一例示的実装の機能ブロック図である。
一例示的なアプリケーションレコードフォーマットのグラフィカル表現である。
図12Aのフォーマットに従う一例示的なアプリケーションフォーマットレコードのグラフィカル表現である。
検索システムと推奨システムとの間の例示的な相互運用のフローチャートである。
従前の推奨システムは、単に、特定ジャンル内におけるアプリの全体的人気に基づいて、あるいは他のユーザ、例えばソーシャルネットワークに従う1つ又は2つの分離度内のユーザなどからのデータに基づいて、アプリを推奨していた。一方、本開示は、ユーザ装置に現在インストールされているアプリによってどのアクションを実行できるかを識別し、さらなるアクションを実行すること及び/又は既存のアクションの動作を向上させることができるアプリを推奨する。
アプリケーションは、ユーザが様々な異なるアクションを実行することを可能にすることができる。例えば、レストラン予約アプリケーションは、ユーザが1つ以上のレストランでの予約を行うことを可能にすることができる。別の例において、インターネットメディアプレーヤアプリケーションは、ユーザがデジタルメディア(例えば、歌又は映画など)をインターネットからストリーミングすることを可能にすることができる。しばしば、単一のアプリケーションが、ユーザが2つ以上のアクションを実行することを可能にする。例えば、レストラン予約アプリケーションは、ユーザが予約を行うことに追加で、レストランに関するビジネス情報(例えば、営業の時間など)を取り出し、レストランのレビューを読むことをさらに可能にする。別の例として、インターネットメディアプレーヤアプリケーションは、ユーザがストリーミングのための新しい音楽を検索及び発見することをさらに可能にすることができる。
本開示に従う推奨システムは、定義されたアクションオントロジーに基づくことができる。オントロジー(その一例が図2に示される)は、アクションの階層ツリーを定義することができる。アプリにより提供される機能性は、アクションオントロジーから1つ以上のアクションを選択することによって説明できる。例えば、アクション「レストランレビューを提供する」は、レストランのレビューを含むアプリに割り当てできる。このレストランレビューアクションは、アクションオントロジー内の他のレストラン関連アクション(例えば、予約を行うこと及び指図を得ることなど)と共にグループ化できる。アクションオントロジーの別の例において、レビュー指向のアクションが一緒にグループ化されてもよい。例えば、レストランレビューアクションと医療提供者レビューアクションとが一緒にグループ化できる。
別のアプリについて、このアプリケーションに「ナビゲート」アクションを割り当てることができ、なぜならば、該アプリケーションが、ユーザが宛先にナビゲートすることを可能にするからである。アクションオントロジーは、推奨システムの設計に従い、任意の特定エリアにおいて、より大きい又はより小さい粒状であり得る。例えば、「ナビゲート」は、単一のアクションであってもよく、あるいは「車でナビゲートする」、「徒歩でナビゲートする」、「自転車でナビゲートする」、及び「公共輸送機関でナビゲートする」を含むアクションのグループを記述してもよい。
さらなる例として、アクションには、(例えば、カーサービス又はタクシーを注文することによってなどで)ある場所に対する輸送機関を見つけること、レストランからの食べ物を注文すること、食べ物の写真を見ること、レストランメニューを見ること、ビジネスについて検索すること、ビジネスのレビューを読むこと、食べ物のレシピを探すこと、テキスト通信を交換すること、株式をチェックすること、天候をチェックすること、スポーツスコアをチェックすること、音楽を再生すること、映画を再生すること、ラジオ局を聴くこと、ビデオを記録すること、及び商品又はサービスの値引きを識別することを含むことができる。
推奨システム開発者(又は、他の組織若しくは人)は、アプリケーションを見る、かつ/あるいは使用すると、手動でアプリケーションにアクションを割り当てることができる。開発者は、1以上のレビューアと契約して、デジタル配信プラットフォーム内で利用可能ないくつか又はすべてのアプリケーションについてのアクションを識別してもよい。
コストを制御するために、様々な実装において、アクションは、特定の閾値基準に合致するアプリケーションに対してのみ手動で割り当てられる。例えば、ひとたびアプリケーションが閾数を超える総ダウンロード数を有し、あるいは異なる閾値を上回るダウンロードレート(例えば、ひと月あたりのダウンロードなど)を有すると、アプリケーションのアクションコンテンツがレビューされてもよい。アプリ開発者が、上記基準に合致する1つのアプリケーションを既に有するとき、その開発者からの他のアプリケーションがレビューアによってさらに解析されてもよい。
機械学習アルゴリズムが、アプリを解析し、アプリが実行することができるアクションを推論してもよい。例えば、各々が機械学習アルゴリズムがレストラン名として認識する名前に固有である様々な状態を含むアプリが、レストランアプリであり得る。機械学習アルゴリズムは、さらに、アプリのユーザインターフェース要素を解析して、各レストランに関してどのアクションが行えるかを決定してもよい。
機械学習アルゴリズムは、アクションの予備セットを識別するのに使用されてもよく、上記アクションの予備セットは、次いで、人間のレビューアにより検証される。さらに、ソーシャルフィードバックが、機械学習アルゴリズムからの推論を補正するのに使用されてもよい。例えば、実行されるべき特定のアクションをアプリが提供するかどうかに関して、ユーザフィードバックが請求されてもよい。ある時間にわたり、ユーザフィードバックは、アプリを用いて上記アクションが実際に実行できるかどうかの正確な指示を提供することができる。ユーザフィードバックが、アクションが実行できないと圧倒的に示唆する場合、機械学習アルゴリズムは、そのアプリについての識別されたアクションのリストから上記アクションを削除することができる。
ユーザの装置にインストールされたアプリケーションに対応するアクションに基づいて、推奨システムは、さらなるアプリの推奨をユーザに対して行うことができる。例えば、推奨システムは、ユーザの装置にすでにインストールされているアプリからさもなければ利用可能でないアクションを提供するアプリを、ユーザに推奨することができる。
推奨システムは、ユーザの装置にインストールされた1つ以上のアプリによりすでに提供されており、しかし異なるアプリによってより良く実行されるアクションを、さらに識別することができる。推奨システムは、推奨システムに前に知られていなかった新たに利用可能なアクションを提供するアプリケーションをさらに推奨することができる。例えば、前に知られていなかったアクションをアプリが提供するため、新しいアクションがアクションオントロジーに追加されるとき、推奨システムは、前にアプリが実行していなかったアクションを上記アプリが提供するため、上記アプリを推奨することができる。
推奨システムは、さらに、ユーザがアプリを更新してさらなる機能性にアクセスするように促すことができ、前にアンインストールされたアプリの新しいバージョンがさらなる機能を提供するため、該アプリをユーザが再インストールすることを推奨してもよい。いくつかの例において、機能の不足がアプリのアンインストールにつながった可能性があり、そのアクションの導入がアプリを新たにユーザに関連させることになる。
図1Aにおいて、簡素なユーザインターフェースが、ユーザ装置、例えばスマートフォン104などにおける、推奨されたアプリの表示100を示す。この推奨アプリ表示100は、推奨をオファーするスタンドアロンアプリの一部であり得る。別の実装において、推奨アプリ表示100は、別のアプリの特徴として表示されてもよい。
様々な実装において、システムレベル又はランチャレベルソフトウェアプログラムが、様々な時間に推奨アプリ表示100を表示することができる。例えば、推奨アプリ表示100は、推奨システムからのプッシュ通知に応答して示されてもよい。さらに、オペレーティングシステムインターフェースの様々な場所、例えばアプリリスティングなどの中に、さらなるアプリを見つけるために選択できるアイコン、ボタン、又はテキストリンクがあってもよい。対応するテキストは、例えば、「さらなるアプリを見つける」、「さらなるアプリを入手する」、又は「推奨されるアプリ」であり得る。ユーザインターフェース要素を選択することが、推奨アプリ表示100が示されることにつながってもよい。いくつかのオペレーティングシステムについて、及び推奨システムのいくつかの特徴セットについて、ルートレベルアクセスが使用されてもよい。
推奨は、別法として、又はさらに、帯域外通信を通して、例えば電子メール、テキストメッセージ、TWITTER(登録商標)メッセージングプラットフォームメッセージ等を用いてなどで、ユーザに提供されてもよい。装置ベースの通知(例えば、通知バー、通知トレイ、ステータスバー等においてなど)、又はさらには一時的ポップアップメッセージ(時にトーストと呼ばれる)が表示されて、推奨されたアプリの可用性を示し、あるいは特定アプリを推奨してもよい。
アプリ(実際には、アプリに対応するアイコン)は、カテゴリ単位でフォルダにまとめることができる。例えば、1つのフォルダが音楽リスニングに関連することがあり、別のフォルダが輸送機関に関連する。関連する推奨されたアプリは、フォルダのカテゴリに従って表示できる。例えば、ユーザが輸送機関フォルダを見ているとき、推奨された輸送機関アプリが表示されてもよい。フォルダ内の推奨されたアプリの可用性は、テキスト又はアイコン、例えばプラス符号などによって示すことができる。この指示を選択することで、推奨されたアプリのリストを上に持ってくることができる。
さらに、推奨されたアプリの可用性は、インストールされたアプリの完全なリストが(例えば、ランチャプログラム又はオペレーティングシステムによってなどで)どこに表示されようと、テキスト又はアイコンで示されてもよい。さらに、完全なアプリリスト内に、あるいは他の場所に、例えばホーム画面上又はフォルダ内に、推奨されたアプリのアイコンが示されてもよい。アプリが推奨され、実際にインストールされていないという事実は、グラフィカルに、例えばアイコンをゴースト化すること(透過性を増加すること及び/又はグレースケールにコンバートすること)によってなどで、示すことができる。
推奨されたアプリは、デジタル配信プラットフォームアプリ、例えば、GOOGLE PLAY配信プラットフォームにアクセスするアプリなどの中にさらに示されてもよい。例えば、装置固有の推奨を有するタブが追加されてもよい。別法として、デジタル配信プラットフォーム内のアプリについて検索及び閲覧することが、推奨されるアプリを示させてもよく、推奨が、ユーザが閲覧又は検索している配信プラットフォームのエリアに合わせらてもよい。
任意の個々のインストールされたアプリについて、推奨されるアプリを識別することができる。推奨されたアプリは、インストールされたアプリより多くのアクション又はインストールされたアプリとは異なるアクションを実行することができ、あるいは恐らくアクションのうち1つをより良く実行することができる。インストールされたアプリに対する推奨されたアプリの可用性は、インストールされたアプリ内の視覚的合図、又は、ランチャ又はホーム画面からなどでアプリにアクセスするのに使用されるアイコン又はウィジェットに関連付けられた視覚的合図によって示すことができる。例えば、小さいグラフィック、例えば宝石などが、アイコンの一部にオーバーレイされて、推奨されたアプリが利用可能であると示すことができる。推奨されたアプリにアクセスすることは、アイコンを押下又は保持することによって、あるいは上記宝石にタッチすることによって達成できる。
推奨アプリ表示100の第1の部分に、「運転指図」と呼ばれるアクションのためのアプリが表示される。例えば、推奨されたアプリは、112‐1、112‐2、及び112‐3に表示される。推奨されたアプリ112は、対応するテキスト及びアイコンと共に示すことができる。推奨アプリ表示100の第2の部分116は、インストールされたアプリからすでに利用可能であり得る「映画レビュー」と呼ばれるアクションのための代替的なアプリケーションを試すことを示唆する。120‐1及び120‐2に、例示的な映画レビューアプリが示される。推奨アプリ表示100の第3の部分124は、「レストランレビュー」と呼ばれるアクションのための推奨されたアプリ128‐1を含む。
矢印132に示されるように、ユーザがさらなるアプリ、例えばレストランレビューについてのさらなる推奨されたアプリなどを見ることを、垂直スクローリングが可能にすることができる。各アクションが、「X」134などのユーザインターフェース要素に関連付けられて、ユーザが該アクションに関連した推奨を受信することに関心がないと示すことができる。さらに、「X」136などのユーザインターフェース要素が、ユーザが特定のアプリに関心がないと示すことができる。手が、140においてグラフィカルに表される(平均の人間の手と比較して小型化されて、図面のより多くを遮ることを回避する)。手140の位置は、ユーザインターフェース要素136の(例えば、指タップによってなどの)選択を実演して、アプリ「Movies by Flixster」がユーザには関心がないものと示すことができる。
図1Bにおいて、推奨されたアプリの表示150が、ユーザ装置、例えばスマートフォン154などに示される。「運転指図」のための推奨されたアプリが、第1の部分158に示される。各アプリは、アイコンとテキストとを含むことができる。テキストには、アプリケーションのタイトル、アプリケーションのレビュー、アプリケーションの説明等を含むことができる。
交差する矢印162により示されるように、垂直の及び水平のスクローリングが、さらなるアクションが表示されることと、さらなる推奨されたアプリが所与のアクションについて示されることとを可能にすることができる。例えば、小型化された手166が、推奨アプリ表示150の第2の部分170が左にスワイプされたと示すことができる。結果として、最も左のアプリ(IMDb Movies & TV)が部分的に遮られ、同時に、最も右のアプリ(Fandango)が今やフルに示されている。再びになるが、ユーザインターフェース要素は、ユーザが特定のアクション又は特定のアプリにおける無関心を示すことを可能にすることができる。
図1A又は図1Bのいずれかにおいて(例えば、Xユーザインターフェース要素でない、アプリの任意の部分をクリック又はタップすることによってなどで)アプリのうち1つを選択することが、上記アプリに関するさらなる情報につながってもよく、あるいは上記アプリのためのアクセスメカニズムに直接つながってもよい。例えば、アクセスメカニズムは、デジタル配信プラットフォーム内の上記アプリに対する直接リンクであり得る。
図2において、一例示的なアクションオントロジーが、ルートノード204と、2つのサンプル分岐ノード、すなわちビデオ(video)208‐1及びレストラン(restaurants)208‐2とを有する。レストラン分岐ノード208‐2は、葉ノードのナビゲーション(navigation)212‐1、レビュー(reviews)212‐2、ビジネス情報(business info)212‐3、及び予約(reservations)212‐4の、親ノードである。
ビデオ分岐ノード208‐1は、ビデオ購入(buy video)分岐ノード216‐1及びビデオ賃借(rent video)分岐ノード216‐2の親ノードであり得る。図2に示されるように、アクションオントロジーの葉ノードは、異なる深さ(ルートノード204からのホップ数)であり得る。例えば、ビデオ分岐ノード208‐1は、チケット購入(buy tickets)220‐1及びショータイム(showtimes)220‐2の親ノードであり得る。一方、ビデオ購入分岐ノード216‐1は、ダウンロード(download)アクション224‐1及びストリーミング(stream)アクション224‐2に対する親ノードであり得る。同様に、賃借分岐ノード216‐2は、ダウンロード及びストリーミングそれぞれについて、葉ノード228‐1及び228‐2を含むことができる。
上述されたように、アクションオントロジーは、複数の方法で定義できる。単に例として、ダウンロードノード224‐1及び228‐1は、代わりに、ダウンロード購入(buy download)及びダウンロード賃借(rent download)の葉ノードを有する「ダウンロード」分岐ノードとして組み合わせられてもよい。同様に、ストリーミングノード224‐2及び228‐2は、代わりに、葉ノードとしてストリーミング購入(buy streaming)及びストリーミング賃借(rent streaming)を有する共通の分岐ノードであってもよい。
さらに、粒度のレベルが、推奨システムの必要に依存して変化してもよい。例えば、推奨システムは、216‐2におけるビデオレンタルについて、ダウンローディングとストリーミングとの間の区別をつける必要がない可能性があり、ゆえに、賃借ノード216‐2を葉ノードにし、ノード228‐1及び228‐2を消去することができる。例えば、このことは、ユーザが賃借物をダウンロードすることを可能にするあらゆるアプリが、ユーザが賃借物をストリーミングすることをさらに可能にするとき、行うことができる。このマージングは、さらに、ユーザが賃借を行うことを可能にするアプリの数がかなり小さくて細分割が必要でないとき、行われてもよい。
アプリが実行できる各アクションは、アプリの1つ以上の状態からアクセス可能であり得る。状態は、アプリの画面、例えば、ホーム画面又は特定のレストランのレストランレビューに特化した画面などを参照することができる。アプリの状態は、URL(ユニフォームリソースロケータ)に関連付けられてもよい。アプリのURLが特定のパターンに従い、各パターンが異なるアクションに対応してもよい。ゆえに、異なるURLパターンの数は、アプリによりサポートされる異なるアクションの数の下限を示すことができ、URLパターンの集合は、サポートされるアクションの集合に変換することができる。
図3に、システム全体の高レベルの概観が示される。ユーザ装置304が、ネットワーク312、例えばインターネットなどを介して、デジタル配信プラットフォーム308に接続する。ユーザ装置304は、デジタル配信プラットフォーム308からアプリケーション(図3において「アプリA」と呼ばれる)を受信する。ユーザ装置304により実行されるとき、アプリAは、ユーザインターフェース要素316、例えば、推奨されたアプリのボタンなどを提示することができる。
ユーザインターフェース要素316が作動させられるとき、推奨要求が推奨システム320に送信される。推奨システム320は、推奨応答を用いてユーザ装置304に応答する。推奨応答は、表示、例えば図1A又は図1Bに示される表示などにつながり得る。
データソース324は、推奨システム320による使用のためのソースデータを提供することができる。データソース324は、アプリケーション開発者からのデータ、例えば、アプリケーション開発者のウェブサイト及び開発者により提供されるデータフィードなどを含むことができる。データソース324は、デジタル配信プラットフォーム、例えばデジタル配信プラットフォーム308などを含むことができる。データソース324は、他のウェブサイト、例えばブログ、アプリケーションレビューウェブサイト、及びソーシャルネットワーキングサイトなどをさらに含むことができる。データソース324は、映画、テレビジョン番組、音楽、レストラン、場所等に関連したデータのオンラインデータベースを含むことができる。
データソース324の各々は、独立のデータ構造を有することができ、異なるレートで更新できる。ゆえに、推奨システム320は、異なるレートでデータ構造324から更新できる。さらに、データの信用性及び正確さは、複数のデータソース324にわたり異なることがあり、このことが、データソース324のうちいずれがデータを提供したかに依存してデータを別様に重み付けすることに用いられてもよい。
図4Aに、一例示的な推奨要求404が示される。推奨要求404は、推奨システムの公開鍵を用いて暗号化できる。このことは、推奨システムが推奨要求404を解読することを可能にし、秘密鍵を所有していない誰もそうできないようにする。
推奨要求404は、インストールされたアプリ404‐1のリスティングを含むことができる。インストールされたアプリ404‐1には、すべてのインストールされたアプリケーションの網羅的なリストを含むことができ、あるいはインストールされたアプリケーションを概算した縮小された表現を含むことができる。単に例として、ブルームフィルタ表現が使用されてもよい。ブルームフィルタは、アプリの予め定義されたセットからの一アプリが可能性として装置にインストールされているか、あるいは明確にインストールされていないかを指定する。換言すると、圧縮を達成するために、ブルームフィルタの出力は、特定のアプリが存在すると決定的に明言せず、ブルームフィルタ出力は、特定のアプリが存在しないかどうかのみ決定的に明言する。
使用量(Usage)データ404‐2は、インストールされたアプリの使用量を示す。例えば、ユーザ装置上の挙動モニタが、スタンドアロンアプリケーションであり得、あるいはオペレーティングシステム、検索アプリケーション、ウェブブラウザ、及び/又は他のネイティブアプリケーションに組み込まれてもよい。挙動モニタは、ユーザ装置の使用を監視して、使用量データを収集することができる。例えば、挙動モニタは、バックグラウンドプロセスとして実行してもよい。
例えば、挙動モニタは、毎回、アプリが呼び出されたことと、ユーザが別のアプリに切り替える前にどれほど長く上記アプリに従事して費やしたかとを記録することができる。挙動モニタは、さらに、アプリのいずれの状態にユーザが時間を費やしたかを決定することができる。各アプリケーション状態は、特定のアクションに対応することができる。ゆえに、挙動モニタは、ユーザが特定のアプリを使用するときにどのアクションに関心があるかを弁別することが可能であり得る。
挙動モニタは、上記使用量データを記憶し、該データを推奨要求404の一部として提供することができる。単に例として、使用量データ404‐2の一部として提供される統計データには、アプリケーションが使用される頻度(例えば、ひと月あたりの回数など)と、全体としてユーザ装置上でと比較してアプリケーション内でユーザが費やす時間のパーセンテージとを含むことができる。ゆえに、使用量データ404‐2を使用して、いずれのアクション及びアプリケーションがユーザに最も関心のあるものであるかを識別することができる。
推奨要求404には、装置情報404‐3を含むことができ、装置情報404‐3は、装置のオペレーティングシステム及びオペレーティングシステムバージョン番号、装置のジオロケーションデータ、推奨要求404を生成したアプリのアイデンティティ、アプリのアプリ開発者のアイデンティティ、装置の画面解像度、装置の向き(縦方向又は横方向)、センサ能力(例えば、加速度計の位置、又は心拍センサの存在など)等を含むことができる。装置情報404‐3を使用して、ユーザ装置の画面解像度又はオペレーティングシステムバージョンに対して互換性がないか又は準最適であるアプリが推奨されることを防止することができる。
図4Bにおいて、一例示的な推奨応答420が、アプリリスト424‐1を含む。例えば、アプリリスト424‐1には、各ストリングがアプリ名を記憶したストリングのアレイを含むことができる。アレイの順序は、最も関連あるものから最も関連ないものへであり得る。アプリリスト424‐1内に提供されるアプリの数は、ユーザ装置の解像度に従って選ばれてもよい。例えば、より大きい画面及び/又はより高い解像度を有する装置は、より多数のアプリを受信することができる。
イメージフィールド424‐2は、アプリリスト424‐1内のアプリの各々についてのエンコードされたイメージを含むことができる。イメージは、アプリを視覚的に識別するようにアプリ名の隣に表示できる。アプリアクセスメカニズム424‐3は、インストールのためにアプリをダウンロードするためのデジタル配信プラットフォームに対するリンクを含むことができる。様々な実装において、推奨されたアプリは、ウェブベースであって、ユーザ装置上のブラウザ内で起動することができる。こうしたアプリのためのアクセスメカニズムには、ブラウザによりオープンされるURLを含むことができる。
さらなるメタデータ424‐4には、各アプリの星格付け、各アプリのテキスト説明、レビューテキスト及びメトリクス(例えば、レビューの数など)、並びに各アプリにより有効にされるアクションのリスティングを含むことができる。アクションのリスティングには、各アプリにより有効にされるすべてのアクション、又は、各アプリにより有効にされる、ユーザ装置上にすでにインストールされたアプリにより提供されていなかったアクションのみのリスティングを含むことができる。他の実装において、アクションリスティングは、各アプリが最も適するアクションをリストにしてもよい。
図5において、推奨システム500の一例示的な実装のブロック図が、クエリモジュール504を含み、クエリモジュール504は、推奨要求を受信し、推奨要求からのデータをセット生成モジュール508に提供する。セット生成モジュール508は、推奨データストア512から、推奨レコードの検討セット(consideration set)を識別する。推奨データストア512は、図7A〜7Cに説明されるレコードなどのレコードを含む。
レコード生成モジュール516は、アプリにより有効にされるアクションを用いて該アプリにタグ付けすることを含め、レコードを作り出す。レコード生成モジュール516は、アプリに対するアクションの手動の割り当てを可能にして、推奨データストア572内にレコードを作成することができる。さらに、レコード生成モジュール516は、上記で説明されたように機械学習アルゴリズムを実施して、対応するアクションを用いてアプリに自動的にタグ付けすることができる。レコード生成モジュール516は、さらに、指定されたアクションオントロジーを推奨システム500の開発者が更新することを可能にすることができる。
アプリの検討セットは、セット処理モジュール520により処理される。セット処理モジュール520は、検討セットの各レコードをスコア付けすることができ、これにおいて、スコアは、推奨要求の要素に基づくことができる。複数の最も高くスコア付けされた検索結果が、その対応する複数のスコアと共に、結果生成モジュール524に提供される。
スコア付けは、さらに格付けとして参照されることがあり、フィルタリング(検討セットからアプリを削除することであって、このことは、スコアをゼロなどの最小値に設定することにより達成できる)を伴うことができる。スコア付けは、アプリ人気(ダウンロードの数、平均格付け、前月におけるダウンロードの数)、アプリの現在のバージョンがどれほど最近のものであるか、及びアプリ品質スコア(これは、アプリがどれほど頻繁に更新されているかと、各々の新しいバージョンで平均ユーザレビューが増加しているか、あるいは減少しているかとに基づくことができる)に基づくことができる。
スコア付けは、さらに、検討セット内のアプリにより提供されるアクションがユーザ装置上ですでに利用可能なアクションとどれほど調和するかに基づくことができる。例えば、アクションオントロジー内の同じ親ノード下の複数の葉ノードがユーザ装置上ですでに利用可能であるとき、セット処理モジュール520は、同じ親ノード下の残りのアクションを提供するアプリに、より高いスコアを割り当てることができる。一例として図2を用いて、ユーザ装置上にインストールされたアプリがアクション212‐2(レストランレビュー)及び212‐3(ビジネス情報)を可能にする場合、親ノード208‐1(レストラン)下の他のアクションが、より高いスコアに貢献し得る。すなわち、レストランナビゲーション212‐1及び/又はレストラン予約212‐4を可能にするアプリが、より高いスコアを受けることができる。
セット処理モジュール520は、推奨要求により示される、ユーザ装置上にすでにインストールされているアプリを、フィルタ除去(filter out)することができる。さらに、セット処理モジュール520は、推奨要求内に指定されるオペレーティングシステムバージョン及び解像度などの属性と互換性のないアプリをフィルタ除去することができる。さらに、セット処理モジュール520は、ユーザ装置のジオロケーションに対するアプリの地理的関連(geographical relevance)に基づいて、該アプリをフィルタ除去し、あるいは該アプリの格付けを変えることができる。
結果生成モジュール524は、上位のスコア付けされた結果を含む推奨応答を準備し、これにおいて、各結果に関連付けられたデータには、テキスト、アイコン、及び1つ以上のアクセスメカニズムを含むことができる。結果生成モジュール524は、準備された推奨応答を、推奨要求の送信者に送信する。
図6において、推奨システム550の別の例示的な実装が、監視モジュール554を含み、監視モジュール554は、ユーザデータストア558内にレコードを作成する。監視モジュール554は、ユーザデータストア558に、ユーザ装置からのフィードバックを記録することができ、上記フィードバックには、ユーザ装置内におけるアプリ及びアクションの使用量データが含まれる。監視モジュール554は、さらに、いずれのアプリケーションがユーザ装置上にインストールされているかをユーザデータストア558内で追跡することができ、ゆえに、アプリがユーザ装置からいつアンインストールされたかを決定することが可能であり得る。
セット生成モジュール562、セット処理モジュール566、及び結果生成モジュール570は、図5のセット生成モジュール508、セット処理モジュール520、及び結果生成モジュール524と同様に機能することができる。セット生成モジュール562は、特定の動作及び/又はアプリがより関心のないものであることをユーザが示したかどうかを考慮することができる。これらアプリは検討セットからフィルタ除去でき、さらに、ユーザにとって関心のないアクションのみ実行するアプリが検討セットからさらにフィルタ除去されてもよい。
セット処理モジュール566は、ユーザにより軽視されるいかなるアクションも実行しない結果に対して、より高いスコアを割り当てることができる。セット処理モジュール566は、さらに、ユーザがより頻繁にアクションを実行していることを使用量データが示すところの該アクションを実行するアプリのスコアを高めることができる。結果生成モジュール570は、アプリ又はアクションにおける関心のなさをユーザが前に示していたかどうかに依存して、別様に結果を順序付けることができる。
例えば、ユーザがアクションにおける無関心を示した第1の場合の後、結果生成モジュール570は、そのアクションを有する推奨されたアプリに、特定量の透過性を適用することができる。ユーザからの無関心についての第2の指示の後、そのアクションに対応する推奨された結果はすべて一緒に削除できる。無関心についてのユーザ指示の、単一の場合は、一般に、アクションにおける完全かつ永続的な無関心として解釈できない。代わりに、ユーザは、単にその瞬間に無関心を示していた可能性があり、あるいは、無関心に関連したユーザインターフェース要素を不注意に作動させていた可能性がある。ゆえに、結果生成モジュール570は、ユーザにとって価値ある推奨を提示する可能性を排除することなく、ユーザの前の選択が確認されていることを視覚的に示すことができる。
図7Aにおいて、推奨レコード600の一例示的なフォーマットが、アプリケーション名604‐1、アプリケーション識別子(ID)604‐2、アクションリスト604‐3、及びアプリケーション属性604‐4を含む。推奨レコード600は、特定のアプリケーションのための、推奨データストア512に記憶できるデータを一般に表す。推奨データストア512は、図7Aにより指定される構造を有する数千の又は数百万のレコードを含むことができる。
アプリケーションID604‐2は、推奨データストア512内のアプリケーションを一意に識別する。様々な実装において、アプリケーションID604‐2は、アプリケーションのすべてのバージョンにわたり、及び該アプリケーションのすべてのエディションにわたり同じであり得る。この意味において、エディションは、異なるオペレーティングシステム(例えば、Apple社のIOS(登録商標)オペレーティングシステム及びGoogle社のANDROID(登録商標)オペレーティングシステムなど)のためのアプリのバージョンと、アプリのウェブベースエディションとを参照する。
アプリケーションIDは、推奨システム自体により割り当てでき、例えばデジタル配信プラットフォームにより割り当てられるいかなるIDからも独立であり得る。アクションリスト604‐3は、アプリケーションにより実行できるアクションオントロジーからのアクションを示す。様々な実装において、別個の推奨レコードが、アプリケーションの各バージョンについて、及び各エディションについて存在し得る。こうして、アクションリスト604‐3は、アプリの指定されたエディション及びバージョンに対して固有であり得る。
アプリケーション属性604‐4は、アプリケーションID604‐2により指定されたアプリに関連付けできる任意タイプのデータを含むことができる。例えば、アプリケーション属性604‐4は、アプリケーションの開発者の名前、アプリケーションの発行者、アプリケーションのカテゴリ(さらにジャンルとしても知られる)、アプリケーションのテキスト説明(これは、開発者から受けることができる)、アプリケーションのバージョン番号、アプリケーションに対するオペレーティングシステム要件、及びアプリケーションの価格を含むことができる。
アプリケーション属性604‐4は、アプリケーションに関するセキュリティ及びプライバシーデータ、アプリケーションのバッテリ使用量、並びにアプリケーションの帯域幅使用量をさらに含むことができる。アプリケーション属性604‐4は、アプリケーション統計、例えば、ダウンロードの総数、月あたりのダウンロード、数値的格付けの総数、テキストレビューの総数、アプリの最新バージョンの格付け及びレビューの数等をさらに含むことができる。アプリケーション属性604‐4は、アプリに関連したデジタルメディア、例えば、アイコン及びスクリーンショットなどをさらに含むことができる。
アプリケーション属性604‐4は、アプリの地理的関連を含むことができる。例えば、地理的関連は、アプリが最も関連する地理的エリアを指定することができる。アプリケーション属性604‐4は、関連のある層化(tiered)システムを指定することができ、1つの地理的エリアは、アプリがどこに最も高く関連があるかを示し、第2の地理的エリアは、アプリがどこにわずかにより少なく関連があるかを示し、第3の地理的エリアは、アプリがどこにいくらか関連があるかを示す。アプリは、これらエリアの範囲外で、わずかな関連を有するか、あるいは関連を有さない可能性がある。
地理的エリアは、様々な方法で、例えば、GPS座標、ZIPコード、セルフォンタワーカバレッジエリア、Wi‐Fiアクセスポイントカバレッジエリア等によってなどで指定できる。単に例として、地理的エリアは、中心点及び半径により、あるいは多角形を定義する縁により指定できる。様々な実装において、地理的エリアは、2つ以上の不連続の地域を含むことができる。
図7Bにおいて,アプリケーションレコード620の別の例示的なフォーマットが、アプリケーション名624‐1、アプリケーションID624‐2、アクションリストのアレイ624‐3、及びアプリケーション属性624‐4を含む。推奨レコード620が、アプリの複数のバージョン(これは、アプリの複数のエディションをさらに包含することがある)に適用されるとき、アレイ624‐3は、アプリの各バージョンについて、別個のアクションリストを含むことができる。アレイデータ構造が指定されるが、他のデータ構造が使用されてもよく、他のデータ構造は、より記憶効率の良いものであり得る。
図7Cにおいて、“Yelp”と名付けられたアプリケーション644‐1の一例示的な推奨レコード640が、3FF8D407の架空ID644‐2を有する。アクションリスト644‐3は、YELPアプリケーションがレストランレビュー(rest_reviews)レストランナビゲーション指図(rest_navigation)、レストランビジネス情報(rest_businfo)、及びレストラン予約(rest_reservs)と名付けられたアクションオントロジーからのアクションを実行することができることを示す。アクションは、この例において人間が読取可能な略語を用いて表示されるが、実際の推奨レコードは、アプリに適用されるアクションオントロジーのノードをよりコンパクトに説明する16進又はビットフィールド表現を含むことができる。アプリケーション属性の例が644‐4に表示され、開発者、レビュー、格付け、ジャンル、ダウンロードの数、地理的関連、装置情報、及びアプリに対するアクセスメカニズムを含む。
図8において、フローチャートが、本開示に従う推奨システムの様々なファセットを包含する。制御は704において始まり、704において推奨要求が受信される場合、制御は708に移り、そうでない場合、制御は712に移る。708において、制御は、推奨要求に対する推奨応答を準備し、送信する。このことは、図9A又は図9Bに従い実行できる。次いで、制御は712において継続する。
712において、制御は、新しいアクションが推奨データストアに追加されたかどうかを決定する。そうである場合、制御は716に移り、そうでない場合、制御は720に移る。716において、前に利用可能でなかった新しいアクションが、今や利用可能である。このことは、アクションオントロジーの葉ノードが前はいかなるアプリケーションにもマッピングされていなかったことを意味する可能性がある。他の状況において、アクションは、具体的にこのアプリケーションの新しい機能性のために、アクションオントロジーに追加された可能性がある。
716において、制御は、新しいアクションに関する更新に対して会員登録されている(subscribed to)ユーザ装置を識別する。ユーザ装置は、推奨システムにアクセスすると自動的に会員登録されてもよい。ユーザ装置のユーザは、関心のないいかなる推奨からも単に会員登録解除する(unsubscribe)ことができ、あるいは、推奨システム更新から完全に会員登録解除してもよい。724において、制御は、更新に対して会員登録しているユーザ装置に対して通知をプッシュする。これらプッシュ通知は、ユーザ装置上のアプリ又はバックグラウンドプロセスによってであってもよく、あるいは、他の配信メカニズム、例えば電子メール又はTWITTERメッセージングプラットフォームメッセージなどを用いてもよい。次いで、制御は720において継続する。
720において、制御は、ユーザ装置が新しい地理的エリアに入ったかどうかを決定する。そうである場合、制御は728に移り、そうでない場合、制御は732に移る。728において、制御は、インストールされたアプリケーションからユーザ装置に利用可能であるアクションを識別し、736において継続する。736において、制御は、新しい地理的エリアに対してより大きい関連を有するが利用可能なアクションのうち1つ以上をオファーするアプリを識別する。740において、制御は、より大きい地理的関連を有するアプリに基づいて、ユーザ装置に対して通知をプッシュする。次いで、制御は732において継続する。
732において、制御は、ユーザ装置から前にアンインストールされたアプリが新たに追加された機能性を有するかどうかを決定する。そうである場合、制御は744に移り、そうでない場合、制御は748に移る。744において、制御は、更新に対して会員登録されたユーザ装置を識別し、752において、制御は、こうしたユーザ装置に対して通知をプッシュする。上記で論じられたように、通知は多くの形式をとることができる。ひとたび通知がユーザ装置に対してプッシュされると、制御は748に移る。
748において、インストールされたアプリの新しいバージョンが新しい機能性を有する場合、制御は756に移り、そうでない場合、制御は704に戻る。756において、制御は、新しいアクションの主体であるインストールされたアプリが、少なくとも所定期間の時間の間、ユーザ装置上で更新されていなかったかどうかを決定する。アプリがこの期間の時間内に更新されていなかった場合、制御は760に移り、そうでない場合、制御は704に戻る。760において、制御は、ユーザ装置にアプリ更新の通知をプッシュして、アプリを更新してさらなる機能性を受けるようにユーザに促す。次いで、制御は704に戻る。
図9Aにおいて、推奨応答を準備及び送信する例示的な動作が示され、この動作は、図8により呼び出されている可能性がある。制御は804において始まり、804において、利用可能アクションのセットが、ユーザ装置上にインストールされたアプリから識別される。808において、制御は、利用可能アクションと相互排他的である利用不能アクションのセットを選択する。いくつかの実装において、利用不能アクションは、インストールされたアプリから利用可能でないすべての他のアクションであり得る。
812において、制御は、利用不能アクションのうち少なくとも1つを各アプリがオファーするアプリの検討セットを決定する。816において、スコアが検討セット内の各アプリに割り当てられる。820において、制御は、検討セット内の最も高くスコア付けされたアプリを選択する。824において、制御は、選択されたアプリに基づいて応答を準備し、アプリのアイデンティティ、メタデータ(例えば、説明、格付け、及びアイコンなど)、及び選択されたアプリの各々に対するアクセスメカニズム(例えば、ダウンロードリンクなど)を含める。828において、制御は応答を送信し、制御は終了する。
図9Bにおいて、ユーザデータに基づいて推奨応答を準備及び送信する別の制御が提示される。制御は904において始まり、904において、制御は、推奨要求により指定されるインストールされたアプリに基づいて、ユーザレコードを更新する。908において、制御は、いずれかの前にインストールされたアプリが今見当たらないかどうかを決定する。そうである場合、制御は912に移り、そうでない場合、制御は916に移る。912において、制御は、ユーザ装置について、上記前にインストールされたアプリをアンインストールされているとして注記する(notes)。制御は916において継続する。
916において、制御は、図9Aの804と同様に、インストールされたアプリから利用可能アクションのセットを識別する。920において、制御は、図9Aの808と同様に、利用不能アクションのセットを選択する。924において、制御は、図9Aの812と同様に、利用不能アクションのうち1つ以上をオファーするアプリの検討セットを決定する。図9A及び図9Bの812と924との双方において、それぞれ、制御は、検討セットから、装置上にすでにインストールされているアプリを削除することができる。
928において、制御は、アプリがアンインストールされているとき、該アプリを検討セットから選択的に削除する。様々な実装において、アプリの削除は、アンインストールされたアプリがアンインストールの時以後にさらなる特徴で補足されていることに応答して、スキップできる。
932において、制御は、検討セット内の各アプリをスコア付けする。アプリをスコア付けすることは、ユーザデータ、例えば特定アクションの使用量データなどに基づくことができる。例えば、ユーザにより頻繁に使用されるアクションをオファーするアプリが、そのスコアを増加されてもよい。936において、制御は、検討セット内の最も高くスコア付けされたアプリを選択する。940において、制御は、選択されたアプリの情報を有する応答を準備する。944において、制御は、準備された推奨応答を送信し、制御は終了する。
図10において、推奨システム320は、検索システム1000と統合される。アプリケーション、例えば「アプリB」などが、デジタル配信プラットフォーム308からユーザ装置304にダウンロードされる。アプリBは、検索システム1000からのアプリについて検索するユーザインターフェース要素1002を有する。単に例として、テキストボックス(図示されていない)が、アプリBのユーザがテキストクエリを入力することを可能にすることができ、ユーザインターフェース要素1002は、テキストクエリをクエリラッパーにおいて検索システム1000に送信する。
図10に示されるように、検索システム1000は、次いで、推奨システム320に推奨要求を送信し、推奨応答を返しで受信する。検索システム1000は、データソース324と同様の又は同一のものから投入されたデータストアを含むことができる。
図11において、アプリケーション検索モジュール700の一例示的な実装が、クエリラッパーを受信するクエリ解析モジュール1004を含む。クエリ解析モジュール1004は、クエリラッパーからテキストクエリを解析する。例えば、クエリ解析モジュール1004は、クエリテキストをトークン化し、クエリテキストをフィルタし、ワードステミング(word stemming)、シノニム化(synonymization)、及びストップワード削除を実行することができる。クエリ解析モジュール1004は、さらに、クエリラッパー内に記憶されたさらなるデータを解析することができる。クエリトークンが、クエリ解析モジュール1004によりセット生成モジュール1008に提供される。
クエリ解析モジュール1004は、さらに、推奨要求を推奨システム500に送信することができる。セット生成モジュール1008は、クエリトークンに基づいて、アプリケーションレコードの検討セットを識別する。アプリケーションデータストア1010のレコードのコンテンツのいくつか又はすべてが、逆索引(inverted indices)において索引化できる。いくつかの実装において、セット生成モジュール1008は、アパッチソフトウェアファウンデーションによるアパッチルシーン(APACHE(登録商標) LUCENE)ソフトウェアライブラリを使用して、逆索引からレコードを識別する。
セット生成モジュール1008は、逆索引を検索して、クエリトークンのうち1つ以上を含むレコードを識別することができる。セット生成モジュール1008がマッチングレコードを識別するとき、セット生成モジュール1008は、各々の識別されたレコードの一意IDを検討セット内に含めることができる。さらに、いくつかの実装において、セット生成モジュール1008は、検索クエリに関してレコードの初期スコアを決定することができる。初期スコアは、レコードのコンテンツがどれほど良くクエリトークンにマッチしたかを示すことができる。例えば、初期スコアは、それぞれのクエリ単語の単語頻度‐逆文書頻度(term frequency-inverse document frequency)(TF‐IDF)値の関数であり得る。
セット処理モジュール1012は、セット生成モジュール1008から一意IDを受信し、さらに、推奨システム500から推奨されたアプリのIDを受信する。換言すると、推奨されたアプリは、検討セットの一部として単に含まれることがある。他の実装において、推奨されたアプリは、特別なステータスを保有することができ、そのため、何らかの数の推奨されたアプリを、推奨されたアプリの相対スコアにかかわらず検索結果内に含むことができる。
推奨システム500に送信される推奨要求は、どの種類のアプリが検索されているかを示すことができ、このことが、推奨されるアプリのセットを変えてもよい。別法として、推奨要求は、ユーザ装置上のインストールされたアプリのリストを単に識別することができ、次いで、推奨応答が、ユーザにより要求されているアプリ検索から独立して生成されてもよい。こうして、ユーザが別のエリア内で検索しているときでさえ、価値ある推奨が行える。
セット処理モジュール1012は、IDのうちいくつか又はすべてのための結果スコアを決定する。結果スコアは、クエリトークン及びコンテキストパラメータを所与として、アプリの関連を示し、より高いスコアはより大きい把握された関連を示す。例えば、クエリラッパー内の他のアイテムが、コンテキストパラメータの役割を果たすことができる。ジオロケーションデータが、ユーザ装置の場所に関係しないアプリのスコアを制限し(あるいは、単に完全に削除し)てもよい。クエリリスト内のブラックリストが、セット処理モジュール1012に、ブラックリスト内の基準にマッチするアプリを検討セットから削除すること、又はそのスコアをゼロに設定することをさせてもよい。
セット処理モジュール1012は、1つ以上のスコア付け特徴、例えばレコードスコア付け特徴、クエリスコア付け特徴、及びレコードクエリスコア付け特徴などに基づいて、結果スコアを生成することができる。例示的なレコードスコア付け特徴は、レコードに関連付けられた測定、例えば、どれほどしばしばレコードが検索の間に取り出されるか、及び、どれほどしばしばレコードに基づいて生成されたリンクがユーザにより選択されるかなどに基づくことができる。クエリスコア付け特徴には、これらに限られないが、検索クエリ内のワードの数、検索クエリの人気、及び検索クエリ内のワードの予期された頻度を含むことができる。レコードクエリスコア付け特徴には、検索クエリの単語が対応するIDにより示されるレコードの単語にどれほど良くマッチするかを示すパラメータを含むことができる。
セット処理モジュール1012は、1つ以上のスコア付け特徴を受信するように構成された1つ以上の機械学習(machine learned)モデル(例えば、教師あり(supervised)学習モデルなど)を含むことができる。1つ以上の機械学習モデルは、ファンクションIDスコア付け特徴、レコードスコア付け特徴、クエリスコア付け特徴、及びレコードクエリスコア付け特徴のうち少なくとも1つに基づいて、結果スコアを生成することができる。
例えば、セット処理モジュール1012は、検索クエリを各IDとペアにし、各{クエリ,ID}ペアについて、特徴のベクトルを算出することができる。特徴のベクトルは、1つ以上のレコードスコア付け特徴、1つ以上のクエリスコア付け特徴、及び1つ以上のレコードクエリスコア付け特徴を含むことができる。いくつかの実装において、セット処理モジュール1012は、特徴ベクトル内のスコア付け特徴を正規化する。セット処理モジュール1012は、無関係の特徴をヌル値又はゼロに設定することができる。
セット処理モジュール1012は、次いで、アプリケーションIDのうち1つのための特徴ベクトルを機械学習回帰モデルに入力して、該IDの結果スコアを算出することができる。いくつかの例において、機械学習回帰モデルは、決定木(例えば、勾配ブースト決定木など)のセットを含むことができる。さらに、又は別法として、機械学習回帰モデルは、ロジスティック確率式を含むことができる。いくつかの実装において、機械学習タスクは、半教師あり学習タスクとして組み立てでき、これにおいて、訓練データのうち少数部分は、人間によりキュレートされた(human-curated)スコアでラベル付けされ、データの残りは、人間のラベルなく用いられる。
機械学習モデルは、IDの結果スコアを出力する。セット処理モジュール1012は、セット処理モジュール1012が受信するIDの各々について、結果スコアを算出することができる。セット処理モジュール1012は、結果スコアをそれぞれのIDに関連付け、最も関連あるスコア付けされたIDを出力する。
結果生成モジュール1016は、最も関連あるスコア付けされたIDから、例えば、対応するアプリのテキスト及び絵の指示とダウンロードリンクなどのアクセスメカニズムとを組み合わせることによってなどで、検索応答を構築する。様々な実装において、結果生成モジュール1016は、検索応答内に含めるために、所定数の推奨されたアプリを選択することができる。これら推奨されたアプリは、検索により導出されることと対照的に、推奨されたとして識別できる。
図12Aにおいて、アプリケーションレコード1100の一例示的なフォーマットが、アプリケーション名1104‐1、アプリケーション識別子(ID)1104‐2、及びアプリケーション属性1104‐3を含む。アプリケーションレコード1100は、特定のアプリケーションのための、アプリケーションデータストア1010に記憶できるデータを一般に表す。アプリケーションデータストア1010は、アプリケーションレコード1100により指定される構造を有する数千の又は数百万のレコードを含むことができる。アプリケーションID1104‐2は、アプリケーションデータストア1010内のアプリケーションを一意に識別する。アプリケーションID1104‐2は、検索システム1000により割り当てでき、ゆえに、例えばデジタル配信プラットフォームにより割り当てられるいかなるIDからも独立であり得る。
アプリケーションID1104‐2の単一の値が、複数のアプリケーションエディションをカバーすることができる。上記で説明されたように、用語「エディション」は、単一のアプリの複数のバージョンに対して、さらに、別のオペレーティングシステムに対してリリースされた該アプリのバージョンに対して適用されることがある。単に例として、(図12Bに示される)アングリーバード(Angry Birds)は、ANDROID及びIOSオペレーティングシステムプラットフォームで利用可能であり得、各プラットフォームについて、バグフィックスがリリースされるとき、及び、アプリケーションがオペレーティングシステムのより新しいバージョンの利点を活用するよう、及び該新しいバージョンに適合するように更新されるとき、一連のバージョンを有することがある。
図12Bにおいて、例示的なアプリケーションレコード1120が、“Angry Birds”の名前1124‐1と、0x3FF8D407として16進で表された一意ID1124‐2とを含む。ANGRY BIRDSアプリの属性1124‐3は、Angry Birdsの開発者の名前(ロビオエンターテインメント(Rovio Entertainment)社)、Angry Birdsのテキストレビュー、Angry Birdsのジャンルインジケータ(例えば、「ゲーム」、又はサブジャンル「物理学ベースのゲーム」など)、Angry Birdsの格付け(例えば、星格付けなど)、テキスト説明(これは、開発者により提供できる)、ダウンロードの数(これは、最も最近のエディションに限定されてもよく、あるいはすべてのエディションについてであってもよい)、アクセスメカニズム(すでにインストールされているときにAngry Birdsを開く方法、又は、まだインストールされていないときにAngry Birdsをインストールする方法)、及び装置情報(例えば、最良動作のためのオペレーティングシステム、ハードウェア、及び解像度の最小限の要件)を含むことができる。
図13において、検索システムと推奨システムとの間の相互作用が示される。制御が1204において始まり、1204において、検索クエリが受信される場合、制御は1208に移り、そうでない場合、制御は1204にとどまる。1208において、制御は、検索クエリを処理することを開始し、推奨システムに推奨要求を送信する。1212において、制御は、推奨システムから応答を受信し、1216において、制御は、推奨応答からの推奨されたアプリを検索検討セットに組み込む。
1220において、制御は、検索検討セット内のアプリの検索システムスコアを決定する。1224において、制御は、検索結果内に含めるために、最も高いスコア付けの推奨されたアプリのうち所定数を選択する。1228において、制御は、検索クエリに応答する。次いで、制御は1204に戻る。
前述の説明は事実上単に例示であり、本開示、その適用、又は使用を制限するようには意図されない。本開示の広範な教示は、様々な形式で実装できる。ゆえに、本開示は具体的な例を含むが、本開示の真の範囲はそのように限定されるべきでなく、なぜならば、図面、明細書、及び別記の請求項を検証すると他の修正が明らかになるであろうからである。本明細書において用いられるとき、フレーズA、B、及びCのうち少なくとも1つは、非排他的論理ORを用いて論理的(A OR B OR C)を意味するようみなされるべきであり、「Aのうち少なくとも1つ、Bのうち少なくとも1つ、及びCのうち少なくとも1つ」を意味するようみなされるべきではない。方法内の1つ以上のステップは、本開示の原理を変えることなく異なる順序で(又は同時に)実行できることが理解されるべきである。
下記の定義を含む本出願において、用語「モジュール」又は用語「コントローラ」は、用語「回路」と置換されてもよい。用語「モジュール」は、特定用途向け集積回路(ASIC);デジタル、アナログ、又は混合アナログ/デジタルディスクリート回路;デジタル、アナログ、又は混合アナログ/デジタル集積回路;組み合わせ論理回路;フィールドプログラマブルゲートアレイ(FPGA);コードを実行するプロセッサ回路(共有、専用、又はグループ);プロセッサ回路により実行されるコードを記憶するメモリ回路(共有、専用、又はグループ);説明された機能性を提供する他の適切なハードウェアコンポーネント;又は、例えばシステムオンチップなどにおける、上記のうちいくつか又はすべての組み合わせを参照し、あるいはこれらの一部であり、あるいはこれらを含むことができる。
モジュールは、1つ以上のインターフェース回路を含むことができる。いくつかの例において、インターフェース回路は、ローカルエリアネットワーク(LAN)、インターネット、ワイドエリアネットワーク(WAN)、又はこれらの組み合わせに接続される有線又は無線のインターフェースを含むことができる。本開示の任意の与えられたモジュールの機能性は、インターフェース回路を介して接続された複数のモジュール間で分散できる。例えば、複数のモジュールが、ロードバランシングを可能にすることができる。さらなる一例において、サーバ(さらに、リモート又はクラウドとして知られる)モジュールが、クライアントモジュールの代わりに何らかの機能性を達成してもよい。
上記で用いられた用語のコードは、ソフトウェア、ファームウェア、及び/又はマイクロコードを含むことができ、プログラム、ルーチン、ファンクション、クラス、データ構造、及び/又はオブジェクトを参照することができる。用語の共有プロセッサ回路は、複数のモジュールからのいくつか又はすべてのコードを実行するシングルプロセッサ回路を包含する。用語のグループプロセッサ回路は、さらなるプロセッサ回路との組み合わせで、1つ以上のモジュールからのいくつか又はすべてのコードを実行するプロセッサ回路を包含する。複数のプロセッサ回路に対する参照は、別個のダイ上の複数のプロセッサ回路、単一ダイ上の複数のプロセッサ回路、シングルプロセッサ回路の複数のコア、シングルプロセッサ回路の複数のスレッド、又は上記の組み合わせを包含する。用語の共有メモリ回路は、複数のモジュールからのいくつか又はすべてのコードを記憶する単一メモリ回路を包含する。用語のグループメモリ回路は、さらなるメモリとの組み合わせで、1つ以上のモジュールからのいくつか又はすべてのコードを記憶するメモリ回路を包含する。
用語のメモリ回路は、用語のコンピュータ読取可能媒体のサブセットである。用語のコンピュータ読取可能媒体は、本明細書において用いられるとき、媒体を通して(例えば、搬送波上などで)伝搬する一時的電気又は電磁信号を包含しない。用語のコンピュータ読取可能媒体は、ゆえに、有形かつ非一時的であると考えることができる。非一時的な、有形のコンピュータ読取可能媒体の、非限定的な例は、不揮発メモリ回路(例えば、フラッシュメモリ回路、消去可能プログラマブル読取専用メモリ回路、又はマスク読取専用メモリ回路など)、揮発メモリ回路(例えば、スタティックランダムアクセスメモリ回路、又はダイナミックランダムアクセスメモリ回路など)、磁気記憶媒体(例えば、アナログ若しくはデジタル磁気テープ、又はハードディスクドライブなど)、及び光学記憶媒体(例えば、CD、DVD、又はBlu−ray(登録商標)ディスクなど)である。
本出願に説明される装置及び方法は、コンピュータプログラムにおいて具現化された1つ以上の特定の機能を実行するように汎用目的コンピュータを構成することにより作成される特別目的コンピュータにより部分的に又はフルに実施できる。上記で説明された機能ブロック又はフローチャート要素はソフトウェア仕様の役割を果たし、上記ソフトウェア使用は、熟練した技術者又はプログラマのルーチンワークによりコンピュータプログラムに翻訳できる。
コンピュータプログラムは、少なくとも1つの非一時的な有形のコンピュータ読取可能媒体上に記憶されたプロセッサ実行可能命令を含む。コンピュータプログラムは、さらに、記憶されたデータを含み、あるいは該データに依存してもよい。コンピュータプログラムは、特別目的コンピュータのハードウェアと相互作用する基本入力/出力システム(BIOS)、特別目的コンピュータの特定装置と相互作用するデバイスドライバ、1つ以上のオペレーティングシステム、ユーザアプリケーション、バックグラウンドサービス、バックグラウンドアプリケーション等を包含することができる。
コンピュータプログラムは、(i)パースされる記述的テキスト、例えばHTML(ハイパーテキストマークアップ言語)又はXML(拡張マークアップ言語)、(ii)アセンブリコード、(iii)コンパイラによりソースコードから生成されたオブジェクトコード、(iv)インタプリタによる実行のためのソースコード、(v)ジャストインタイムコンパイラによるコンパイル及び実行のためのソースコード等を含むことができる。単に例として、ソースコードは、C、C++、C#、Objective‐C、Haskell、Go、SQL、R、Lisp、Java(登録商標)、Fortran、Perl、Pascal、Curl、OCaml、Javascript(登録商標)、HTML5、Ada、ASP(active server pages)、PHP、Scala、Eiffel、Smalltalk(登録商標)、Erlang、Ruby、Flash(登録商標)、Visual Basic(登録商標)、Lua、及びPython(登録商標)を含む言語からのシンタックスを用いて書くことができる。
請求項に列挙される要素のいずれも、要素がフレーズ「ミーンズフォー」を用いて、あるいは方法の請求項の場合にはフレーズ「オペレーションフォー」又は「ステップフォー」を用いて明示的に列挙されない限り、米国特許法第112条(f)の意味におけるミーンズプラスファンクション要素であるようには意図されない。
Claims (35)
- 複数のレコードを記憶するように構成された第1のデータストアであって、前記複数のレコードの各々は、
モバイル装置のアプリケーションに対応し、
前記アプリケーションの使用を通してモバイル装置ユーザに利用可能なアクションを識別するメタデータを含み、前記識別されたアクションはオントロジーから選ばれる、
第1のデータストアと、
ユーザ装置に対応するアプリケーション推奨要求を処理するように構成されたクエリモジュールであって、前記アプリケーション推奨要求は、前記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む、クエリモジュールと、
前記第1のデータストアを用いて、前記ユーザ装置にインストールされた前記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別し、
利用不能アクションのセットを選択することであって、前記利用不能アクションのセットは前記利用可能アクションのセットと相互排他的であり、
前記第1のデータストアからアプリケーションの検討セットを決定することであって、前記検討セット内の各アプリケーションは、前記利用不能アクションのセットのうち少なくとも1つを実装する、
ように構成されたセット生成モジュールと、
前記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択するように構成されたセット処理モジュールと、
前記アプリケーション推奨要求にアプリケーション推奨応答で応答するように構成された結果生成モジュールであって、前記アプリケーション推奨応答は、前記選ばれたサブセット内の各アプリケーションの識別データを含む、結果生成モジュールと、
を含むシステム。 - 前記第1のデータストアは、前記複数のレコードの各々について、前記アプリケーションに対するアクセスメカニズムのデータを含み、
前記アプリケーション推奨応答は、前記選ばれたサブセット内の各アプリケーションについて、前記アクセスメカニズムを含む、
請求項1に記載のシステム。 - 前記複数のレコードの各々について、前記アクセスメカニズムの前記データは、デジタル配信プラットフォーム内の前記アプリケーションに対するリンクである、
請求項2に記載のシステム。 - 前記セット処理モジュールは、
前記検討セット内の前記アプリケーションの各々について、スコアを決定し、
前記選ばれたサブセットとして、前記アプリケーションの検討セットから、最も高いスコアを有する所定数のアプリケーションを選択する
ように構成される、請求項1に記載のシステム。 - アプリケーションの前記スコアは、前記アプリケーションのレビューと前記アプリケーションについてのダウンロード統計とに基づく、請求項4に記載のシステム。
- アプリケーションの前記スコアは、前記アプリケーションの使用を通して前記ユーザ装置に利用可能なアクションの総数に反比例的に関連する、請求項4に記載のシステム。
- アプリケーションの前記スコアは、前記アプリケーションの使用を通して前記ユーザ装置に利用可能な、前記利用可能アクションのセット内でないアクションの数に正比例的に関連する、請求項4に記載のシステム。
- 前記セット処理モジュールは、前記選ばれたサブセットから、前記ユーザ装置にインストールされた前記アプリケーションのセットを除外するように構成される、請求項1に記載のシステム。
- 前記セット処理モジュールは、前記選ばれたサブセットから、前記ユーザ装置からアンインストールされたアプリケーションを除外するように構成される、請求項1に記載のシステム。
- 前記利用可能アクションのセットは、前記ユーザ装置にインストールされた前記アプリケーションのセットのうちすべての使用を通して前記ユーザ装置に利用可能である前記オントロジー内のすべてのアクションを包含する、請求項1に記載のシステム。
- 前記ユーザ装置にインストールされた前記アプリケーションのセットは、前記ユーザ装置にインストールされたすべてのアプリケーションを包含する、請求項1に記載のシステム。
- 前記アプリケーション推奨要求は、前記第1のデータストア内のレコードに対応しなかった前記オントロジーの第1のアクションについて、新しいレコードが前記第1のデータストアに追加され、かつ前記第1のアクションに対応することに応答してトリガされる、請求項1に記載のシステム。
- 前記第1のデータストアは、前記複数のレコードの各々について、前記レコードの地理的関連に関するデータを含み、
前記アプリケーション推奨要求は、前記ユーザ装置が第1の地理的エリアから第2の地理的エリアに移動することに応答してトリガされる、
請求項1に記載のシステム。 - 前記複数のレコードのうち第1のレコードに対応する前記アプリケーションが前記ユーザ装置からアンインストールされているとき、前記第1のレコードの前記メタデータがさらなるアクションを追加するように更新されることに応答して前記アプリケーション推奨要求を生成するように構成された監視モジュール、をさらに含む請求項1に記載のシステム。
- (i)前記複数のレコードのうち第1のレコードに対応する前記アプリケーションが前記ユーザ装置からアンインストールされており、かつ(ii)さらなるアクションが前記利用可能アクションのセットの範囲外であるとき、前記第1のレコードの前記メタデータが前記さらなるアクションを追加するように更新されることに応答して前記アプリケーション推奨要求を生成するように構成された監視モジュール、をさらに含む請求項1に記載のシステム。
- 前記ユーザ装置にインストールされた前記アプリケーションのセットからのアプリケーションに対応する前記第1のデータストアの第1のレコードについて、前記アプリケーション推奨要求は、前記メタデータがさらなるアクションを追加するように更新されることに応答してトリガされる、請求項1に記載のシステム。
- 前記第1のデータストアの第1のレコードが、第1のアプリケーションの複数のバージョンに対応し、
当該システムは、(i)前記第1のアプリケーションの新しいバージョンの前記メタデータが、前記第1のアプリケーションの前のバージョンに含まれない前記オントロジーからのアクションを含み、かつ(ii)前記第1のアプリケーションの前記前のバージョンのうち1つが前記ユーザ装置にインストールされているとき、前記新しいバージョンが前記第1のレコードに追加されることに応答して前記ユーザ装置のための前記アプリケーション推奨要求を生成するように構成された監視モジュール、を含む、
請求項1に記載のシステム。 - 前記監視モジュールは、前記ユーザ装置が所定期間の時間を超えて前記第1のアプリケーションの前記新しいバージョンをインストールするのに失敗するまで、前記アプリケーション推奨要求を遅延させる、請求項17に記載のシステム。
- 前記第1のデータストアの第1のレコードが、第1のアプリケーションの第1のバージョンに対応し、
当該システムは、(i)前記第1のアプリケーションの第2のバージョンの前記メタデータが、前記第1のアプリケーションの前記第1のバージョンに含まれない前記オントロジーからのアクションを含み、かつ(ii)前記第1のアプリケーションの前記第1のバージョンが前記ユーザ装置にインストールされているとき、前記第2のバージョンが第2のレコードとして前記第1のデータストアに追加されることに応答して前記ユーザ装置のための前記アプリケーション推奨要求を生成するように構成された監視モジュール、を含む、
請求項1に記載のシステム。 - 前記オントロジーは、前記アクションの各々が葉ノードである階層ツリーにグループ化され、
前記セット生成モジュールは、
前記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別し、
前記識別された親ノードの残りのアクションを前記利用不能アクションのセットとして選択する
ように構成される、
請求項1に記載のシステム。 - 前記オントロジーは、前記アクションの各々が葉ノードである階層ツリーにグループ化され、
前記セット処理モジュールは、
前記アプリケーションの検討セットの各々にスコアを割り当て、
前記利用可能アクションのセット内の複数のアクションに接続された親ノードを識別し、
前記識別された親ノードの残りのアクションを実装するアプリケーションについて、前記スコアを増加し、
前記検討セットから最も高いスコアを有する前記アプリケーションを前記選ばれたサブセットとして選択する
ように構成される、
請求項1に記載のシステム。 - 複数のレコードを記憶するように構成された第2のデータストア、をさらに含み、前記複数のレコードの各々は、
ユーザ装置に対応し、
前記ユーザ装置からアンインストールされたアプリケーションを識別するデータを記憶する、
請求項1に記載のシステム。 - 複数のユーザレコードを記憶するように構成された第2のデータストア、をさらに含み、
前記複数のユーザレコードの各々は、(i)ユーザ装置に対応し、(ii)対応するユーザ装置のユーザにより所望されないとして識別されたアプリケーションを識別するデータを記憶し、
前記セット処理モジュールは、前記第2のデータストアに従い前記選ばれたサブセットからアプリケーションを除外するように構成される、
請求項1に記載のシステム。 - 複数のユーザレコードを記憶するように構成された第2のデータストア、をさらに含み、
前記複数のユーザレコードの各々は、(i)ユーザ装置に対応し、(ii)対応するユーザ装置のユーザにより所望されないとして識別されたアクションを識別するデータを記憶し、
前記セット生成モジュールは、前記第2のデータストアに従い前記利用不能アクションのセットからアクションを削除するように構成される、
請求項1に記載のシステム。 - 前記セット生成モジュールは、前記アプリケーションの検討セット内に、前記利用可能アクションのセットからのアクションを複製する第1のアプリケーションを選択的に含むように構成される、請求項1に記載のシステム。
- 前記第1のアプリケーションは、前記オントロジーの第1のアクションを前記ユーザ装置に利用可能にし、
前記セット生成モジュールは、前記ユーザ装置の使用量データが前記第1のアクションの高い使用量を示すことに応答して、前記アプリケーションの検討セット内に前記第1のアプリケーションを含めるように構成される、
請求項25に記載のシステム。 - 前記セット生成モジュールは、前記第1のアクションの前記使用量が所定の閾値を上回ることに応答して、前記第1のアクションの前記使用量が高いと決定するように構成され、
前記所定の閾値は、前記利用可能アクションのセットの平均使用量に基づく、
請求項26に記載のシステム。 - 前記アプリケーション推奨要求は、前記ユーザ装置から直接受信される、請求項1に記載のシステム。
- 前記アプリケーション推奨要求は、検索プラットフォームが前記ユーザ装置からアプリケーション検索要求を受信することに応答して、前記検索プラットフォームから受信される、請求項1に記載のシステム。
- 前記アプリケーション推奨要求は、推奨が前記アプリケーション検索要求の範囲をターゲットにするべきであると示すデータを含む、請求項29に記載のシステム。
- 前記アプリケーション推奨応答は、前記アプリケーション検索要求の範囲から独立である、請求項29に記載のシステム。
- 前記複数のレコードの各々は、対応するアプリケーションを説明するさらなるメタデータを含み、
前記さらなるメタデータは、前記対応するアプリケーションのジャンルを含む、
請求項1に記載のシステム。 - 前記さらなるメタデータは、(i)前記対応するアプリケーションについてのユーザ提供されたレビューデータと、(ii)前記対応するアプリケーションについてのダウンロード統計とを含む、請求項32に記載のシステム。
- 複数のレコードを第1のデータストアに記憶することであって、前記複数のレコードの各々は、
モバイル装置のアプリケーションに対応し、
前記アプリケーションの使用を通してモバイル装置ユーザに利用可能なアクションを識別するメタデータを含み、前記識別されたアクションはオントロジーから選ばれる、
ことと、
ユーザ装置に対応するアプリケーション推奨要求を処理することであって、前記アプリケーション推奨要求は、前記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む、ことと、
前記第1のデータストアを用いて、前記ユーザ装置にインストールされた前記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別することと、
利用不能アクションのセットを選択することであって、前記利用不能アクションのセットは前記利用可能アクションのセットと相互排他的である、ことと、
前記第1のデータストアからアプリケーションの検討セットを決定することであって、前記検討セット内の各アプリケーションは、前記利用不能アクションのセットのうち少なくとも1つを実装する、ことと、
前記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択することと、
前記アプリケーション推奨要求にアプリケーション推奨応答で応答することであって、前記アプリケーション推奨応答は、前記選ばれたサブセット内の各アプリケーションの識別データを含む、ことと、
を含む方法。 - プロセッサ実行可能命令を記憶した非一時的コンピュータ読取可能媒体であって、前記命令は、
複数のレコードを第1のデータストアに記憶することであって、前記複数のレコードの各々は、
モバイル装置のアプリケーションに対応し、
前記アプリケーションの使用を通してモバイル装置ユーザに利用可能なアクションを識別するメタデータを含み、前記識別されたアクションはオントロジーから選ばれる、
ことと、
ユーザ装置に対応するアプリケーション推奨要求を処理することであって、前記アプリケーション推奨要求は、前記ユーザ装置にインストールされたアプリケーションのセットを示すデータを含む、ことと、
前記第1のデータストアを用いて、前記ユーザ装置にインストールされた前記アプリケーションのセットに関連付けられた利用可能アクションのセットを識別することと、
利用不能アクションのセットを選択することであって、前記利用不能アクションのセットは前記利用可能アクションのセットと相互排他的である、ことと、
前記第1のデータストアからアプリケーションの検討セットを決定することであって、前記検討セット内の各アプリケーションは、前記利用不能アクションのセットのうち少なくとも1つを実装する、ことと、
前記アプリケーションの検討セットからアプリケーションの選ばれたサブセットを選択することと、
前記アプリケーション推奨要求にアプリケーション推奨応答で応答することであって、前記アプリケーション推奨応答は、前記選ばれたサブセット内の各アプリケーションの識別データを含む、ことと、
を含む、非一時的コンピュータ読取可能媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/684,823 | 2015-04-13 | ||
US14/684,823 US20160299977A1 (en) | 2015-04-13 | 2015-04-13 | Action-Based App Recommendation Engine |
PCT/IB2016/052109 WO2016166683A1 (en) | 2015-04-13 | 2016-04-13 | Action-based app recommendation engine |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018516401A true JP2018516401A (ja) | 2018-06-21 |
Family
ID=57111784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017553368A Pending JP2018516401A (ja) | 2015-04-13 | 2016-04-13 | アクションベースのアプリ推奨エンジン |
Country Status (8)
Country | Link |
---|---|
US (1) | US20160299977A1 (ja) |
EP (1) | EP3283982A4 (ja) |
JP (1) | JP2018516401A (ja) |
KR (1) | KR20170137150A (ja) |
CN (1) | CN107787503A (ja) |
AU (1) | AU2016248004A1 (ja) |
SG (1) | SG11201708428QA (ja) |
WO (1) | WO2016166683A1 (ja) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
CN103425704B (zh) * | 2012-05-24 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 应用界面提供方法及装置 |
BR112015018905B1 (pt) | 2013-02-07 | 2022-02-22 | Apple Inc | Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico |
US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
TWI566107B (zh) | 2014-05-30 | 2017-01-11 | 蘋果公司 | 用於處理多部分語音命令之方法、非暫時性電腦可讀儲存媒體及電子裝置 |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
US10200824B2 (en) | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
US9864803B2 (en) * | 2015-07-22 | 2018-01-09 | TCL Research America Inc. | Method and system for multimodal clue based personalized app function recommendation |
CN107924305A (zh) * | 2015-09-02 | 2018-04-17 | 谷歌有限责任公司 | 软件开发和分发平台 |
US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
US20170085677A1 (en) * | 2015-09-18 | 2017-03-23 | Quixey, Inc. | Recommending Applications |
US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
US10956666B2 (en) | 2015-11-09 | 2021-03-23 | Apple Inc. | Unconventional virtual assistant interactions |
US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
US10319023B2 (en) * | 2016-06-29 | 2019-06-11 | Go Daddy Operating Company, LLC | Universal purchase path that may be optimized for conversion or revenue |
US10070193B2 (en) | 2016-08-26 | 2018-09-04 | Apple Inc. | Universal browse and watch list |
US10904727B2 (en) * | 2016-12-13 | 2021-01-26 | Universal Electronics Inc. | Apparatus, system and method for promoting apps to smart devices |
DK180048B1 (en) | 2017-05-11 | 2020-02-04 | Apple Inc. | MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION |
US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
DK201770427A1 (en) | 2017-05-12 | 2018-12-20 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
US10817579B2 (en) | 2017-05-16 | 2020-10-27 | Apple Inc. | Determining relevant information based on user interactions |
US20190034548A1 (en) * | 2017-07-26 | 2019-01-31 | International Business Machines Corporation | Selecting a browser to launch a uniform resource locator (url) |
CN107809485A (zh) * | 2017-10-31 | 2018-03-16 | 广州云移信息科技有限公司 | 一种信息推荐方法及终端 |
MY191530A (en) * | 2017-11-20 | 2022-06-29 | Emerico Sdn Bhd | A system for operating an electronic platform |
US11410075B2 (en) * | 2018-01-15 | 2022-08-09 | Microsoft Technology Licensing, Llc | Contextually-aware recommendations for assisting users with task completion |
US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
DK179822B1 (da) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
TWI685230B (zh) * | 2018-09-11 | 2020-02-11 | 立新 陳 | 具備行動加值服務之智能網路交換機系統 |
US11531978B2 (en) * | 2018-09-14 | 2022-12-20 | Khizar Ahmad Khan | Platform for managing mobile applications |
US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
JP7257528B2 (ja) * | 2018-09-28 | 2023-04-13 | サービスナウ・カナダ・インコーポレイテッド | ロボティックプロセスオートメーション設計のためのコンテキストベースの勧告 |
US10867338B2 (en) | 2019-01-22 | 2020-12-15 | Capital One Services, Llc | Offering automobile recommendations from generic features learned from natural language inputs |
US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
US11681718B2 (en) * | 2019-03-29 | 2023-06-20 | Apple Inc. | Scoping a system-wide search to a user-specified application |
US10489474B1 (en) | 2019-04-30 | 2019-11-26 | Capital One Services, Llc | Techniques to leverage machine learning for search engine optimization |
US10565639B1 (en) | 2019-05-02 | 2020-02-18 | Capital One Services, Llc | Techniques to facilitate online commerce by leveraging user activity |
US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
DK201970511A1 (en) | 2019-05-31 | 2021-02-15 | Apple Inc | Voice identification in digital assistant systems |
US11468890B2 (en) | 2019-06-01 | 2022-10-11 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
CN110245108A (zh) * | 2019-07-15 | 2019-09-17 | 北京一流科技有限公司 | 执行体创建系统和执行体创建方法 |
US11232110B2 (en) | 2019-08-23 | 2022-01-25 | Capital One Services, Llc | Natural language keyword tag extraction |
US11586633B2 (en) | 2019-08-26 | 2023-02-21 | Acxiom Llc | Secondary tagging in a data heap |
WO2021056255A1 (en) | 2019-09-25 | 2021-04-01 | Apple Inc. | Text detection using global geometry estimators |
US10796355B1 (en) * | 2019-12-27 | 2020-10-06 | Capital One Services, Llc | Personalized car recommendations based on customer web traffic |
US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
US11183193B1 (en) | 2020-05-11 | 2021-11-23 | Apple Inc. | Digital assistant hardware abstraction |
US11755276B2 (en) | 2020-05-12 | 2023-09-12 | Apple Inc. | Reducing description length based on confidence |
US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
WO2022052038A1 (en) * | 2020-09-11 | 2022-03-17 | Citrix Systems, Inc. | Systems and methods for application access |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8751517B2 (en) * | 2009-08-18 | 2014-06-10 | Nec Corporation | Information processing apparatus, information processing system, information processing method, and computer readable non-transitory medium |
US20120096435A1 (en) * | 2010-10-18 | 2012-04-19 | Microsoft Corporation | Capability-based application recommendation |
US20120143791A1 (en) * | 2010-12-02 | 2012-06-07 | Nokia Corporation | Method and apparatus for causing an application recommendation to issue |
WO2012154856A1 (en) * | 2011-05-09 | 2012-11-15 | Google Inc. | Identifying applications of interest based on application metadata |
WO2012154838A2 (en) * | 2011-05-09 | 2012-11-15 | Google Inc. | Generating application recommendations based on user installed applications |
US9058612B2 (en) * | 2011-05-27 | 2015-06-16 | AVG Netherlands B.V. | Systems and methods for recommending software applications |
EP2605206A1 (en) * | 2011-12-16 | 2013-06-19 | France Télécom | Method and system to recommend applications from an application market place to an electronic device |
KR101895536B1 (ko) * | 2011-12-29 | 2018-10-25 | 삼성전자주식회사 | 어플리케이션 사용에 따른 어플리케이션 추천 서버 및 단말, 그리고 어플리케이션 추천 방법 |
US9195721B2 (en) * | 2012-06-04 | 2015-11-24 | Apple Inc. | Mobile device with localized app recommendations |
CN104662547A (zh) * | 2012-10-19 | 2015-05-27 | 迈克菲股份有限公司 | 移动应用管理 |
KR20140073258A (ko) * | 2012-12-06 | 2014-06-16 | 삼성전자주식회사 | 어플리케이션 정보 제공 방법 및 휴대 단말 |
US9489430B2 (en) * | 2013-05-14 | 2016-11-08 | Google Inc. | System and method for identifying applicable third-party applications to associate with a file |
JP2015032254A (ja) * | 2013-08-06 | 2015-02-16 | ソニー株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
US20150100268A1 (en) * | 2013-10-03 | 2015-04-09 | Jigabot, Llc | Tracking system apparatus |
US10275505B2 (en) * | 2014-06-24 | 2019-04-30 | Adobe Inc. | In-application conversion of file versions using cloud services |
-
2015
- 2015-04-13 US US14/684,823 patent/US20160299977A1/en not_active Abandoned
-
2016
- 2016-04-13 WO PCT/IB2016/052109 patent/WO2016166683A1/en active Application Filing
- 2016-04-13 KR KR1020177032436A patent/KR20170137150A/ko unknown
- 2016-04-13 CN CN201680031470.1A patent/CN107787503A/zh not_active Withdrawn
- 2016-04-13 SG SG11201708428QA patent/SG11201708428QA/en unknown
- 2016-04-13 JP JP2017553368A patent/JP2018516401A/ja active Pending
- 2016-04-13 EP EP16779691.1A patent/EP3283982A4/en not_active Withdrawn
- 2016-04-13 AU AU2016248004A patent/AU2016248004A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP3283982A4 (en) | 2019-04-03 |
CN107787503A (zh) | 2018-03-09 |
US20160299977A1 (en) | 2016-10-13 |
WO2016166683A1 (en) | 2016-10-20 |
EP3283982A1 (en) | 2018-02-21 |
KR20170137150A (ko) | 2017-12-12 |
SG11201708428QA (en) | 2017-11-29 |
AU2016248004A1 (en) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2018516401A (ja) | アクションベースのアプリ推奨エンジン | |
US11055369B2 (en) | Automatic crawling of applications | |
US10157230B2 (en) | Generating search results based on clustered application states | |
US9626158B1 (en) | Dynamic availability-based integration of external functionality | |
US9645797B2 (en) | Development system and method for providing external functionality | |
US9798531B2 (en) | Dependency-aware transformation of multi-function applications for on-demand execution | |
US10031738B2 (en) | Providing application recommendations | |
US20160350366A1 (en) | Techniques For Reformulating Search Queries | |
US20150242507A1 (en) | Searching And Accessing Software Application Functionality | |
US9952848B2 (en) | Dependency-aware transformation of multi-function applications for on-demand execution | |
US20140282493A1 (en) | System for replicating apps from an existing device to a new device | |
US9946794B2 (en) | Accessing special purpose search systems | |
US20170193059A1 (en) | Searching For Applications Based On Application Usage | |
US9536445B2 (en) | System and method for visually tracking a learned process | |
US20140123075A1 (en) | System and method for generating and accessing trails | |
US20160188681A1 (en) | Viewing Search Results Using Multiple Different Devices | |
US20160188721A1 (en) | Accessing Multi-State Search Results | |
US9292883B2 (en) | System and method for managing a trail | |
US10445326B2 (en) | Searching based on application usage | |
US20170171292A1 (en) | Generating Software Application Search Results Using Shared Application Connections | |
US10146879B2 (en) | Generating software application search results using application connection keywords | |
Naser et al. | Palestine Sports | |
Rydland | A mobile application for public art: Utilising smartphones and crowdsourcing to enable users to discover and learn about public art |