EP3238104A1 - Native application deeplink scoring - Google Patents
Native application deeplink scoringInfo
- Publication number
- EP3238104A1 EP3238104A1 EP16741823.5A EP16741823A EP3238104A1 EP 3238104 A1 EP3238104 A1 EP 3238104A1 EP 16741823 A EP16741823 A EP 16741823A EP 3238104 A1 EP3238104 A1 EP 3238104A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- native application
- score
- deeplink
- term
- deeplinks
- 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.)
- Withdrawn
Links
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Definitions
- the Internet provides access to a wide variety of information.
- digital image files, video and/or audio files, as well as web page resources for particular subjects or particular news articles are accessible over the Internet.
- web page resources many of these resources are designed to facilitate the performing of particular functions, such as banking, booking hotel reservations, shopping, etc., or to provide structured information, such as on-line encyclopedias, movie databases, etc. Search engines crawl and index these resources to facilitate searching of the resources.
- a deeplink is an instruction specifying a particular environment instance of a native application and configured to cause the native application to instantiate the environment instance of the specified native application when selected at a user device.
- the native application generates the environment instance for display within the native application on a user device.
- a deeplink may be a URI that specifies a particular native application, resource content that the native application is to access, and a particular user interface that should be instantiated when the native application is launched by use of the deeplink.
- a deeplink may specify a selection menu for a game environment; or a particular selection of a song for a music application; or a particular recipe for a cooking application; and the like.
- search engines can index the content that is presented by native
- one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, by the data processing apparatus and from a user device, a search query including a term, scoring each deeplink of a plurality of deeplinks in a plurality of native applications for relevance to the term.
- Each deeplink specifies a particular environment instance of a native application and causes the native application to instantiate an instance of the specified native application in which content is displayed and each native application is an application operable to generate environment instances for display on a user device and operates independent of a browser application.
- the scoring includes determining an inter-inverse popularity score for the term based on a popularity of the term in content in each environmental instance of each native application.
- determining an intra-inverse popularity score for the term based on a popularity of the term in content in each environment instance of the native application. For each deeplink determining a term score for the term based on a number of times the term appears in the content in the environment instance specified by the deeplink. Generating a relevance score for the deeplink based on the inter-inverse popularity score of the term, the intra-inverse popularity score of the native application for the deeplink, and the term score for the deeplink. Ranking the deeplinks according to their respective relevance scores and providing search results to the user device according to an order based, at least in part, on the ranking according to their respective relevance scores, where each search result specifies a deeplink.
- Other embodiments of this aspect include
- the present systems and methods rank deeplinks for native applications in response to a user query.
- the ranking of deeplinks enables a search engine to process a query to better fulfil an informational need for content within native applications.
- Native applications are often associated with mobile devices and, as such, searches for content within native applications may often be performed using mobile devices.
- Such devices have relatively small screens, on which it may be possible to display only a small number of deeplinks in response to a search query. Consequently, effective ranking of the deeplinks based on relevance to the search query may be particularly important for reducing, on average, the need for users to navigate beyond an initial page of search results.
- the use of computational resources that are associated with such an action may also be reduced.
- Ranking of deeplinks can be based, in part, on the steadiness of the content of the native application.
- the steadiness is a measure of the tendency of the content of the native application to change or be modified over a particular duration.
- the steadiness is also a signal that is indicative of the relevance of the content to the query; generally, the less steady the content, the less likely it is that the content can be relied upon for relevance.
- a system is more likely to surface content that is relevant to the query terms, thereby better fulfilling an informational need.
- the use of computational resources may again be reduced.
- Such computational resource use may stem from selection of an alternative deeplink when content associated with an initially-selected deeplink is found not to be relevant to the query terms, and may include, for instance, processing of additional user inputs, rendering of the alternative environment instance and power usage due to additional screen-on time (which may be particularly undesirable in mobile devices). Furthermore, taking steadiness into account when ranking deeplinks may also increase the reproducibility of the content for which deeplinks are returned in response to a particular search query. Thus, the search system as a whole could be said to be more reliable.
- Fig. 1 is a block diagram of an example environment in which the search and the ranking of native application deep links occurs.
- Fig. 2 is a block diagram of an example system flow for scoring and ranking deeplinks.
- Fig. 3 is a flow chart describing a process for scoring and ranking deeplinks.
- Fig. 4 is a flow chart describing a process for providing a list of deeplinks according to ranked native applications.
- a system scores and ranks deeplinks of native applications.
- a search query typically includes at least one term.
- Each deeplink accesses resource content and also includes terms, and the terms and deep links are indexed by a search system.
- the score for a deeplink describes how relevant the resource content accessed by the deeplink is as it relates to the term.
- the search engine processes the query and accesses the index to score the deeplinks by various scoring techniques. For each deeplink of each native application, the scoring can take into account how relevant the term is to the content accessed by the deeplink, how relevant the term is to the entirety of content accessed by all deeplinks of the native application, and how relevant the term is to the content accessed by all deeplinks of a corpus of applications. Still, other scoring factors can also be considered.
- Deeplinks can be provided, in response to a search query, on an individual basis or as a whole set of mixed search results.
- the set of search results can be ranked in order according to various implementations, which will be described in further detail below.
- FIG. 1 is a block diagram of an example environment 100 in which triggering the search of and the ranking of native applications occur.
- a computer network 102 such as the Internet, connects resource publisher websites 104, application publishers 106, user devices 108 and a search engine 120.
- a resource publisher website 104 includes one or more web resources 105 associated with a domain and hosted by one or more servers in one or more locations.
- a resource publisher website is a collection of web pages formatted in hypertext markup language (HTML) that can contain text, images, multimedia content, and programming elements.
- HTML hypertext markup language
- Each website 104 is maintained by a content publisher, which is an entity that controls, manages and/or owns the website 104.
- a web page resource is any data that can be provided by a publisher website 104 over the network 102 and that has a resource address, e.g., a uniform resource locator (URL).
- Web resources may be HTML pages, images files, video files, audio files, and feed sources, to name just a few.
- the resources may include embedded information, e.g., meta information and hyperlinks, and/or embedded instructions, e.g., client-side scripts.
- a "resource” is anything identifiable over a network, and can also include native applications.
- An application publisher website 106 may also include one or more web resources 105, and also provides native applications 107.
- a native application is an application that generates environment instances for display on a user device within an environment of the native application, and operates independent of a browser application on the user device.
- a native application is an application
- Native applications thus differ from browser-based applications and browser- rendered resources. The latter require all, or at least some, elements or instructions downloaded from a web server each time they are instantiated or rendered. Furthermore, browser-based applications and browser-rendered resources can be processed by all web- capable mobile devices within the browser and thus are not operating system specific.
- an “environment instance” is a display environment within a native application and in which is displayed content, such as text, images, and the like.
- An environment instance is specific to the particular native application, and the native application is specific to the particular operating system of the user device 108.
- An environment instance differs from a rendered web resource in that the environment instance is generated within and specific to the native application, while a web resource may be rendered in any browser for which the web page resource is compatible, and is independent of the operating system of the user device.
- a user device 108 is an electronic device that is under the control of a user.
- a user device 108 is typically capable of requesting and receiving web page resources 105 and native applications 107 over the network 102.
- Example user devices 108 include personal computers, mobile communication devices, and tablet computers.
- the search engine 120 accesses a web index 116 and an application index 114.
- the web index 116 is an index of web resources 105 that has, for example, been built from crawling the publisher websites 104.
- the application index 114 is an index of application pages for native applications 107, and is constructed using an application data extractor and processor 110 and an indexer 112. Although shown as separate indexes, the web index 116 and the application index 114 can be combined in a single index.
- the user devices 108 submit search queries to the search engine 120.
- the search engine 120 accesses the web index 116 and, optionally, the application index 114 to identify resources and applications, respectively, which are relevant to the query.
- a first type of search operation implementing a first search algorithm is used to search the web index 116
- a second type of search operation implementing a second, different algorithm is used to search the application index 114.
- the search engine 120 implements a resource scorer 130 process to score web resources, and deeplink scorer 134 process to score native applications and deeplinks.
- a variety of appropriate search engine algorithms can be used to implement the resource scorer 130.
- the search engine 120 utilizes a mixer 136 to insert the native application search result, which can be based on the scoring of deeplinks, into search results of other resources.
- the deeplink scorer 134 is described in more detail with reference to Figs. 2, 3, and 4 below.
- the search engine 120 utilizes a search engine front end 138, such as a web server, arranges and provides the search results to the user device 108 from which the query was received.
- a web resource search result is data generated by the search engine 120 that identifies a web resource and provides information that satisfies a particular search query.
- a web resource search result for a resource can include a web page title, a snippet of text extracted from the resource, and a resource locator for the resource, e.g., the URL of a web page.
- a native application search result specifies a native application and is generated in response to a search of the application index 114.
- a native application search result may include a "deeplink" specifying a particular environment instance of the native application and which is configured to cause the native application to instantiate the specified environmental instance.
- selection of a native application search result may cause the native application to launch (if installed on the user device 108) and generate an environment instance referenced in the application search result in the form of a screen shot.
- a native application search result may include a "purchase” (or "install") command that, when selected, results in a purchase (or free download) and installation of the native application on a user device.
- Publishers 106 that provide native applications 107 may also provide the deeplinks 109 to the search engine 120.
- an application publisher may provide a list of deeplinks 109 in the form of uniform resource identifiers (URIs) (or other instruction types that are specific to the native application published by the publisher).
- URIs uniform resource identifiers
- These deeplinks are deeplinks that publisher 106 desires to be crawled and indexed in the application index 114.
- the deeplink scorer 134 scores and ranks deeplinks that are indexed in the application index 114 according to the deeplink's relevance to a particular term.
- Fig. 2 is a block diagram of an example system flow 200 for scoring and ranking deeplinks.
- the application index 114 has an index of deeplinks, the native applications that contain the deeplinks, and the content referenced by each deeplink. A variety of index architectures and indexing techniques can be used.
- the deeplink scorer 134 determines the score for each deeplink, ranks the deeplinks according to the respective scores of the deeplinks, and sends data describing the ranking to the search engine front end 138, which, in turn, creates a list of the ranked deeplinks.
- the search engine front end 138 generates search results to be displayed on the user device 108.
- the deeplink scorer 134 can use various combinations of the ranking attributes 202 to determine the deeplink score and to rank the deeplinks. The various combinations enable deeplinks to be scored for different purposes (e.g., to enhance diversity of native applications or deeplinks that are ranked and provided in response to a search query).
- Fig. 3 is a flow chart describing a process 300 for scoring and ranking deeplinks.
- the search engine 120 receives a search query that includes a term (302).
- a user may provide a search query to the search engine 120.
- the search query may be provided in the context of an "application only" search, in which the search is limited to a search of native applications, such as in an application store.
- the search query can be provided in the context of an informational search of multiple corpora, one of which includes the corpus of native applications.
- the deeplink scorer 134 accesses the application index to generate scores for applications and deeplinks that measure the relevance of the applications and deeplinks to the query.
- the deeplink scorer 134 determines an inter-inverse popularity Inter l(T) 206 for the term based on a popularity of the term in content in each environment instance of each native application (304). For example, the deeplink scorer 134 determines how many times a term appears in of the content of all deeplinks for all native applications, and then calculates the inter-inverse popularity score based on an inverse of the number of times. For example, the term “the” will have a lower score because it appears often, while the term “endgame” may have a much higher score than the term "the” since it does not appear as often as the term "the.”
- the deeplink scorer 134 determines the intra-inverse popularity Intra_I(T, A) 204 for the term based on a popularity of the term in content in each environment instance of the native application (304). Similar to the inter-inverse popularity Inter l(T) 206, the intra-inverse popularity Intra_I(T, A) 204 is based on an inverse of the number of times a particular term appears in the content referenced by each deep link in a particular native application.
- the deeplink scorer 134 determines a term score TS(T, D) 208 for the term based on a number of times the term appears in the content in the environment instance specified by the deeplink (308).
- the term score TS(T, D) 208 is a measure of how often the term appears in the resource content that is accessed by the deeplink.
- the deeplink scorer 134 may score each deeplink based on the inter-inverse popularity Inter l(T) score 206, the intra-inverse popularity Inter_I(T, A) score 204, and the term score TS(T, D) 204(310). For example, each deeplink score may be calculated according to Equation (1) below:
- DLS(D, A, T) f(Inter_I(T), Intra_I(T, A), TS(T, D)) (1)
- D is the Deeplink of a particular URI
- A is a particular native application
- T is the query term.
- the relevance score (e.g., deeplink score) can be determined by taking the product of the inter-inverse popularity Intra l(T) score 206, the intra-inverse popularity Inter_I(T, A) score 204, and the term score TS(T, D) 204.
- the deeplink scorer 134 ranks the deeplinks according to their respective relevance scores (312).
- the deeplink scorer 134 provides data describing the ranking to the search engine front end, and the search engine front end 138 provides search results to the user device according to an order based, at least in part, on the ranking (314).
- the deep link scorer provides the scores to a mixer 136, which then converts the scores of the multiple different resource scores to a common scoring reference.
- the deeplink scorer 134 can consider other scoring attributes to score a deeplink.
- the scoring may also include, for each native application, determining a steadiness S(T, A) 210 score that is a measure of the relative change of distribution of the term in the content of each environmental instance of the native application over a predefined amount of time.
- Some native applications may have dynamic content that is modified often (e.g., news applications, social media, etc.), while other native applications may have content that is relatively static (e.g., dictionary, encyclopedia, etc.).
- the deeplink scorer 134 determines, for a first predefined time period, a first number of deeplinks in the native application that specify environmental instances having content that includes the term. The deeplink scorer 134 then determines, for a second predefined time period that is different from the first predefined time period, a second number of deeplinks for the native application that specify environmental instances having content that include the term. Based on a ratio of the first number of deeplinks and the second number of deeplinks, the deeplink scorer 134 determines the steadiness S(T, A) score 210. Other techniques to determine a steadiness score can also be used.
- a user may want search query results provided according to the native applications that have the most relevant deeplinks that access resource content which describes content related to the term in the search query.
- the deeplink scorer 134 can rank a set of native applications that have the most content relevant to the term. Further, the deeplink scorer 134 can provide a ranked list of deeplinks for each application that was determined to have the most content relevant to the term. This results in a set of native applications being identified for a query, and for each native application, a subset of deeplinks for that native application.
- Fig. 4 is a flow chart describing a process 400 for providing a list of deeplinks according to ranked native applications.
- the process 400 determines an application link score ALS(T, A) 212 that is indicative of the number of deeplinks in the native application for which respective content includes the term, relative to total number of all deeplinks of all native applications (402).
- the application link score (T, A) 212 can be used as a weight for a native application according to the term in the search query. Accordingly, a native application that contains more deeplinks with the term is determined to have a higher weight than a native application that contains fewer deeplinks with the term.
- the process 400 ranks the native applications according to their respective application link scores (404). Then the process 400 provides the search results for the deeplinks in subsets of search results, wherein each subset corresponding to one native application, and the subsets are provided to the user device in an order based on the ranking of the native applications (406).
- a set of search results will be provided to the user device, and the search results for deep links will include a first subset for application Al, e.g., A1DL1, A1DL2, and A1DL3; a second subset for application A2, e.g., A2DL1, and A2DL2; and a third subset for application A3, e.g., A3DL1, A3DL2, and A3DL3.
- the search results may be displayed according to an application hierarchy, e.g., as shown in Fig. 5, which Fig. 5 is an illustration of user device 500 displaying deeplink search results grouped by native applications in an interface 502.
- Fig. 5 is an illustration of user device 500 displaying deeplink search results grouped by native applications in an interface 502.
- the search query "Chess games with opening books”
- three native applications - Chess App 1, Chess App 2 and Chess App 3 are identified by respective search results.
- Nested beneath each search results are deeplink results for each native application.
- the deeplink results are ranked, for example, according to either formulas (1) or (2) above.
- the deeplink scorer 134 can determine the popularity of a native application. For example, the scoring further comprises, for each native application, determining popularity score P(A) 214 for the native application that is a measure of popularity of the native application relative to other native applications. The deeplink scorer 134 generating a relevance score for the deeplink further comprises generating the relevance score based also on the popularity score P(A) 214 of the native application for the deeplink.
- native application popularity can be based on the number of times a native application has been downloaded.
- the deeplink scorer 134 may use the most popular native applications to determine how to rank relevant deeplinks.
- the deeplink scorer 134 may also determine the inverse popularity score to eliminate popular applications and provide a ranked deeplinks list that includes less popular native applications.
- the deeplink scorer 134 can be determined by calculating the product of the inter-inverse popularity Inter l(T) 206, the intra-inverse popularity Intra_I(T, A) 204, the term score TS(T, D) 208, and the popularity score P(A) 214.
- the operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer- readable storage devices or received from other sources.
- data processing apparatus encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing.
- the apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question.
- a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment.
- a computer program may, but need not, correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- processors will receive instructions and data from a read-only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data.
- Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a user computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components.
- the components of the system can be interconnected by any form or medium of digital data communication, e.g., a
- Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
- LAN local area network
- WAN wide area network
- inter-network e.g., the Internet
- peer-to-peer networks e.g., ad hoc peer-to-peer networks.
- the computing system can include users and servers.
- a user and server are generally remote from each other and typically interact through a communication network. The relationship of user and server arises by virtue of computer programs running on the respective computers and having a user-server relationship to each other.
- a server transmits data (e.g., an HTML page) to a user device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the user device).
- Data generated at the user device e.g., a result of the user interaction
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201514807801A | 2015-07-23 | 2015-07-23 | |
PCT/US2016/042554 WO2017015134A1 (en) | 2015-07-23 | 2016-07-15 | Native application deeplink scoring |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3238104A1 true EP3238104A1 (en) | 2017-11-01 |
Family
ID=56507904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP16741823.5A Withdrawn EP3238104A1 (en) | 2015-07-23 | 2016-07-15 | Native application deeplink scoring |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3238104A1 (en) |
WO (1) | WO2017015134A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656671B (en) * | 2021-06-16 | 2024-05-24 | 北京百度网讯科技有限公司 | Model training method, link scoring method, device, equipment, medium and product |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124061A1 (en) * | 2010-11-12 | 2012-05-17 | Microsoft Corporation | Rich Search Over and Deep Integration with Applications |
US8996520B2 (en) * | 2013-03-15 | 2015-03-31 | Google Inc. | Ranking of native application content |
US9146972B2 (en) * | 2013-03-15 | 2015-09-29 | Google Inc. | Ranking of presentation modes for particular content |
US9806942B2 (en) * | 2013-12-02 | 2017-10-31 | Yahoo Holdings, Inc. | Deep linking to mobile applications |
-
2016
- 2016-07-15 EP EP16741823.5A patent/EP3238104A1/en not_active Withdrawn
- 2016-07-15 WO PCT/US2016/042554 patent/WO2017015134A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2017015134A1 (en) | 2017-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9652550B2 (en) | Indexing application pages of native applications | |
US20240143679A1 (en) | Search result filters from resource content | |
US9251224B2 (en) | Triggering and ranking of native applications | |
EP3234817B1 (en) | Deeplinking to multiple native applications | |
EP3161678B1 (en) | Deep links for native applications | |
US9146972B2 (en) | Ranking of presentation modes for particular content | |
EP3234818B1 (en) | Providing native application search results with web search results | |
EP3283976A1 (en) | Native application search result adjustment based on user specific affinity | |
CN107851114B (en) | Method, system, and medium for automatic information retrieval | |
WO2017034780A1 (en) | Application partial deep link to a corresponding resource | |
US11003728B1 (en) | Native application search results | |
WO2017015134A1 (en) | Native application deeplink scoring | |
WO2017003742A1 (en) | Ranking native applications and native application deep links |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20170725 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: GOOGLE LLC |
|
17Q | First examination report despatched |
Effective date: 20180511 |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
18W | Application withdrawn |
Effective date: 20191106 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230519 |