System and method for customized search platform
By customizing the search platform's ranker and parser and adjusting data source priorities based on user queries and preferences, we address the lack of user control and transparency in existing search engines and improve search efficiency and experience.
Patent Information
- Application Number
- CN202280087864.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-11-04
- Filing Date
- 2022-11-07
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2042-11-07
AI Technical Summary
Existing search engines lack user control and transparency, and users cannot effectively control the search process and the source of results, resulting in a poor search experience, especially when access to dedicated databases is required.
Provides a customized search platform that uses a ranker and parser to identify priority data sources, adjusts data source priorities through user interaction, and allows users to select or deselect data sources to personalize and update search results.
Improves search efficiency and user experience by focusing on search query characteristics and user preferences, reducing computational complexity, and providing transparency and control over data sources.
Smart Images

Figure CN118901065B_ABST
Abstract
Description
[0001] Cross-references
[0002] The present application is a non-provisional application of U.S. Provisional Application No. 63 / 277,091 filed on November 8, 2021 and claims priority under 35 U.S.C. 119 to that provisional application, which is hereby expressly incorporated herein by reference in its entirety. Technical Field
[0003] Embodiments relate generally to search engines, and more particularly to systems and methods for a customized search platform. Background Art
[0004] Search engines allow users to provide search queries and return search results in response. Search sites such as Google.com and / or Bing.com typically provide users with a list of search results from all types of data sources. For example, these existing search engines typically crawl web data to collect search results related to the search query. However, users have little control or transparency over how or where the search engines conduct their searches and what kind of search results they will obtain.
[0005] Therefore, there is a need for a customized search platform that provides users with both control and transparency regarding the searches they conduct. Summary of the Invention
[0006] Embodiments described herein provide systems and methods for a customized search platform that provides user control and transparency in a user's searches. The system can use a ranker and a parser to utilize input data and contextual information to identify search applications, rank the search applications, and present search results via user-engageable elements. The system can also use input from the user to personalize and update search results based on the user's interactions with the user-engageable elements. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 is a simplified diagram illustrating the flow of data between entities during a search according to one embodiment described herein.
[0008] Figure 2 is an example of implementing an embodiment according to the present invention. Figure 1 A simplified diagram of a computational apparatus for the search described in .
[0009] Figure 3 is suitable for implementation Figure 1-Figure 2 Simplified block diagram of a networked system for the search framework described in and other embodiments described herein.
[0010] Figure 4A is suitable for implementation Figure 1-Figure 3Simplified block diagram of the networked system of the customized search platform framework described in and other embodiments described herein.
[0011] Figure 4B Is it about Figure 4A Described Figure 4A Simplified block diagram of the ranker shown in .
[0012] Figure 4C Is it about Figure 4A Described Figure 4A A simplified block diagram of the parser shown in .
[0013] Figure 5 is an example of a method based on some embodiments described herein. Figures 1-4A An example logical flow chart of the search method of the framework shown in .
[0014] Figure 6 This is an example based on some embodiments described herein. Figures 1-4A An example logical flow chart of the custom search method of the framework shown in .
[0015] Figure 7 is realized Figure 5-Figure 6 Simplified block diagram of the custom search platform framework described in and an example search interface of other embodiments described herein.
[0016] Figures 8A-8K is realized Figure 5-Figure 6 The customized search platform framework described in and the exemplary search interface of other embodiments described herein.
[0017] The embodiments of the present disclosure and their advantages are best understood by referring to the detailed description below. It should be understood that like reference numerals are used to identify like elements illustrated in one or more of the accompanying drawings, where the illustrations are for the purpose of illustrating the embodiments of the present disclosure, not for the purpose of limiting the embodiments of the present disclosure. DETAILED DESCRIPTION
[0018] As used herein, the term "network" may include any hardware or software based framework, including any artificial intelligence network or system, neural network or system, and / or any training or learning model implemented on or with the framework.
[0019] As used herein, the term "module" may include a hardware or software-based framework that performs one or more functions. In some embodiments, a module may be implemented on one or more neural networks.
[0020] The present application relates generally to search engines and, more particularly, to systems and methods for customizing search platforms.
[0021] Search engines allow users to provide search queries and return search results in response. Search sites such as Google.com and / or Bing.com typically use a centralized structure that provides users with a list of search results from all categories of data sources. For example, these existing search engines typically crawl web data to collect search results relevant to the search query. However, users have almost no control or transparency over how or where the search engines conduct their searches. In addition, users have almost no control over how general search engines collect or use their personal or private information. For example, users may often wish to use dedicated databases to participate in specific searches. For example, human resources personnel may use background check websites to search for potential new hires. For another example, legal professionals may search legal databases such as LexisNexis for case law. However, these dedicated databases are typically dispersed and difficult to use for laymen, for example, requiring a certain level of expertise to input the most effective search string.
[0022] For example, when a user searches for "U.S. Patent 12345678," a search engine such as Google or Bing may provide a list of search results, such as internet articles that mention the patent number "12345678." If the user is actually looking for the actual patent document for "U.S. Patent 12345678," preferably from an authorized data source such as the U.S. Patent Office database, browsing all the search results may be cumbersome and inefficient for the user. Therefore, in this type of search service, the user's search experience is unsatisfactory.
[0023] In view of the need for an improved user search experience, the embodiments described herein provide systems and methods for a customized search platform. Specifically, the search system includes a web-based or mobile application platform that provides a customized search experience for individual users to control searches conducted at user-preferred data sources. In one embodiment, in response to a search query, the search system may determine one or more data sources to prioritize based on the characteristics of the search query. For example, if the search query involves a name such as "Richard Socher", data sources such as social media (e.g., Facebook, LinkedIn, Twitter, etc.), and / or news media (e.g., Silicon Valley Press, etc.) may be prioritized. For another example, if the search query involves an abstract term such as "QRNN", common sense data sources (e.g., Wikipedia, etc.), academic data sources (e.g., arXiv, Stanford course materials, etc.), and discussion sources (e.g., Quora, Reddit, etc.) may be prioritized.
[0024] In addition, the user can select or deselect data sources for his or her own search, and the search platform can conduct search queries submitted by the user only on data sources that are of interest to the user, or at least prioritize data sources that are of interest to the user, and / or exclude data sources that the user does not approve of.
[0025] In one embodiment, a user can actively select a data source of interest to him or her via a user account management page of the search platform. For example, a user can actively select Wikipedia, Reddit, and / or Arxiv.org as a preferred data source. As a result, if a user searches for "QRNN", search results grouped according to the data source selected by the user (e.g., Wikipedia, Reddit, Arxiv.org) can be presented to the user via the search user interface. The user can click on the icon of the data source (e.g., Reddit) and see a list of search results, such as discussion threads related to "QRNN" provided specifically from the data source "Reddit". For another example, if a user clicks on the "Wikipedia" icon, a Wikipedia page for "QRNN" can be provided.
[0026] In another embodiment, the search system can monitor user preferences during user interactions with search results. For example, if a user actively chooses to "dislike" displayed search results from a particular data source, or rarely interacts with search results from a particular data source, the search system can deprioritize search results from that particular data source. In the above example, if the user chooses to dislike or deselect search results from the data source "Reddit," the Reddit icon can be removed from the user interface that presents the search results.
[0027] In this way, by prioritizing data sources based on the characteristics of the search query itself and further prioritizing and filtering data sources based on user preferences, the search system significantly reduces computational complexity and improves search efficiency. Furthermore, by allowing users transparency and control over the search data sources, the user experience is greatly improved.
[0028] Overview
[0029] Figure 1 is an example of implementing an embodiment according to the present invention. Figure 2-Figure 7A simplified diagram of the data flow between the entities of the process described in
[0026] is shown. A user interacts with a user device 110, which in turn interacts with a search server 100 via an input query 112 provided by the user. The computing device 100 interacts with various data sources 103a-n (collectively referred to as 103). For example, the data sources 103a-n can be any number of available databases, web pages, servers, blogs, content providers, and / or cloud servers. As described below with reference to Figure 5-Figure 6 As described in further detail, the search server 100 utilizes a parser 134 and a ranker 132 to identify a data source 103 relevant to an input query 112, obtains search results from the data source 103, ranks 120 the search results, and presents the search results to a user via a user device 110 to display a set of search results in a user-engageable element.
[0030] Public data sources 103a-n may include Wikipedia, Reddit, Twitter, Instagram (and / or social media), etc. However, for different input queries 112, the search system can intelligently recommend what kind of data sources 103 may be most relevant to a particular search query. For example, when a user types a search for "Quasi convolutional neural network", the search system may initially determine (or classify via a classifier) that the search term is related to a technical topic. Thus, suitable data sources 103 may be identified as knowledge bases (such as "Wikipedia"), discussion forums where users can discuss technical topics (such as "Reddit"), scientific manuscript archives (such as "arXiv"), and / or other items that are most likely to be relevant to the user or of interest to the user based on the input query 112. The search system can then recommend these data sources 103 to the user.
[0031] In a different example, if a user searches using the input query 112 “Richard Socher” (which the search system may classify as a person’s name), the search system may rank the proposed data sources to include data sources 103 that are more relevant to the person, such as “Instagram,” “LinkedIn,” and / or “Google Scholar,” etc.
[0032] In another embodiment, as shown below Figure 7As described in further detail, the user may interact with the search results via the user device 110 through user engageable elements. In this way, the computing device 100 may refine the search results by allowing the user to customize their preferred data sources 103 to better tailor the results to the user's expectations and preferences. The user may choose to submit whether they prefer a particular data source by clicking on a "thumbs up" or "thumbs down" icon. Based on the preferences submitted by the user, the search system may rearrange the data sources and re-prioritize the data sources. For example, if the user has selected "thumbs up" for "LinkedIn" but "thumbs down" for "Instagram", then when the user searches for a name such as "Richard Socher", the search system may prioritize data sources such as LinkedIn, but may de-prioritize data sources such as "Instagram".
[0033] Computer and networking environment
[0034] Figure 2 is an example of implementing an embodiment according to the present invention. Figure 1 A simplified diagram of the computing device 200 of the customized search server 100 described in FIG. Figure 2 As shown, the computing device 200 includes a processor 210 coupled to a memory 220. The operation of the computing device 100 is controlled by the processor 210. And although the computing device 200 is shown as having only one processor 210, it should be understood that the processor 210 can represent one or more central processing units, multi-core processors, microprocessors, microcontrollers, digital signal processors, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and / or graphics processing units (GPUs), etc. in the computing device 200.
[0035] The computing device 200 can be implemented as a standalone subsystem, as a board added to a computing device, and / or as a virtual machine. In various embodiments, the communication device may include a personal computing device capable of communicating with a network (e.g., a smartphone, a computing tablet, a personal computer, a laptop computer, a wearable computing device such as glasses or a watch, a Bluetooth device, a key fob, a badge, etc.). The service provider may utilize a network computing device capable of communicating with a network (e.g., a network server). It should be understood that the various devices utilized by the user and the service provider may be implemented as the computer system 200 in the following manner.
[0036] Memory 220 may be used to store software executed by computing device 200 and / or one or more data structures used during operation of computing device 200. Memory 220 may include one or more types of machine-readable media. Some common forms of machine-readable media may include a floppy disk, a flexible disk, a hard disk, magnetic tape, any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with a pattern of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, and / or any other medium suitable for reading by a processor or computer.
[0037] The processor 210 and / or the memory 220 may be arranged in any suitable physical arrangement. In some embodiments, the processor 210 and / or the memory 220 may be implemented on the same board, in the same package (e.g., a system-in-package), and / or on the same chip (e.g., a system-on-chip), etc. In some embodiments, the processor 210 and / or the memory 220 may include distributed, virtualized, and / or containerized computing resources. Consistent with such embodiments, the processor 210 and / or the memory 220 may be located in one or more data centers and / or cloud computing facilities.
[0038] In some examples, the memory 220 may include a non-transitory, tangible, machine-readable medium having executable code that, when executed by one or more processors (e.g., processor 210), enables one or more processors to perform a method described in further detail herein. For example, as shown, the memory 220 includes instructions for a search platform module 230 that can be used to implement and / or simulate systems and models, and / or to implement any method described further herein. The search platform module 230 can receive input 240 via a data interface 215, such as an input search query (e.g., a term, sentence, or other input provided by a user to search), and generate an output 250, which can be one or more user-participatory elements that present search results based on different data sources. For example, if input data including a name such as "Richard Socher" is provided, the output data may include user-participatory elements showing results from "Twitter," "Facebook," "Instagram," "TikTok," or other social media sites. If input data is provided that includes food, such as "pumpkin pie," the output data may include a user-engageable element showing results from "AllRecipes," "Food Network," or other food-related websites. If input data is provided that is related to coding (such as an error in Python), the output data may include a user-engageable element showing results from "StackOverflow," "Reddit," or other web pages or blogs oriented toward coding assistance.
[0039] The data interface 215 may include a communication interface, a user interface (such as a voice input interface, and / or a graphical user interface). For example, the computing device 200 may receive input 240 (such as a search query) from a networked database via the communication interface. Alternatively, the computing device 200 may receive input 240 (such as a search query) from a user via the user interface.
[0040] In some embodiments, the search platform module 230 is configured to parse input, categorize the input, and rank the results. The search platform module 230 may also include a parser submodule 231, a categorization submodule 232, a ranker submodule 233 (e.g., similar to Figure 4A 4 and 5. In one embodiment, the search platform module 230 and its submodules 231-234 may be implemented by hardware, software, and / or a combination thereof.
[0041] In some embodiments, the search system uses a search platform module 230 to generate and filter search results from all different data sources. For example, the search platform may include Figures 1-4A The ranker 233 and parser 231 shown in the figure are used to ingest user queries, user context information and other context information to coordinate which data sources are relevant, which corresponding data source application programming interfaces (APIs) should be contacted, how to parse user queries for each search application API, and the final ranking order of the data source results.
[0042] Some examples of computing devices, such as computing device 200, may include a non-transitory, tangible, machine-readable medium having executable code that, when executed by one or more processors (e.g., processor 210), may cause the one or more processors to perform the processes of the method. Some common forms of machine-readable media that may include the processes of the method are, for example, floppy disks, flexible disks, hard disks, magnetic tape, any other magnetic medium, CD-ROMs, any other optical medium, punch cards, paper tape, any other physical medium having a pattern of holes, RAM, PROMs, EPROMs, FLASH-EPROMs, any other memory chips or cartridges, and / or any other medium suitable for reading by a processor or computer.
[0043] Figure 3 is suitable for implementation Figure 5-Figure 6
[0045] A simplified block diagram of a networked system for the customized search platform framework described in
[0046] and other embodiments described herein. In one embodiment, block diagram 300 illustrates a system comprising a user device 310 operable by a user 340, data sources 345a and 354b-345n, a platform 330, and other forms of devices, servers, and / or software components operable to perform various methods according to the described embodiments. Exemplary devices and servers may include devices similar to Figure 2 The computing device 200 described in OS, UNIX OS、LINUX OS or other suitable OS based on the device and / or server OS, etc., devices, stand-alone and enterprise-level servers. It is understood that Figure 3 The devices and / or servers shown in the figures may be deployed in other ways, and the operations performed and / or services provided by such devices and / or servers may be combined or separated for a given embodiment and may be performed by a greater or fewer number of devices and / or servers. One or more devices and / or servers may be operated and / or maintained by the same or different entities.
[0044] The user device 310, the data sources 345a and 354b-345n, and the platform 330 may communicate with one another via a network 360. The user device 310 may be utilized by a user 340 (e.g., a driver, a system administrator, etc.) to access various features available to the user device 310, which may include processes and / or applications associated with the server 330 to receive output data exception reports.
[0045] The user device 310, the data sources 345a and 354b-345n, and the platform 330 can each include one or more processors, memories, and other suitable components for executing instructions (such as program code and / or data stored on one or more computer-readable media) to implement the various applications, data, and steps described herein. For example, such instructions can be stored in one or more computer-readable media, such as memories or data storage devices, internal to and / or external to the various components of the system 300, and / or can be accessed via the network 360.
[0046] The user device 310 may be implemented as a communication device that may utilize appropriate hardware and software configured for wired and / or wireless communication with the data source 345 and / or the platform 330. For example, in one embodiment, the user device 310 may be implemented as an autonomous vehicle, a personal computer (PC), a smartphone, a laptop / tablet computer, a watch with appropriate computer hardware resources, glasses with appropriate computer hardware (e.g., GOOGLE ), other types of wearable computing devices, implantable communication devices, and / or other types of computing devices capable of sending and / or receiving data, such as from of Etc. Although only one communication device is shown, multiple communication devices may function similarly.
[0047] Figure 3 The user device 310 includes a user interface (UI) application 312 and / or other applications 316 that may correspond to executable processes, procedures, and / or applications with associated hardware. For example, the user device 310 may receive search results in the form of user-engageable elements from the platform 330 and display the message via the UI application 312. In other embodiments, the user device 310 may include additional or different modules with specialized hardware and / or software as needed.
[0048] In various embodiments, the user device 310 includes other applications 316 that may be desired in a particular embodiment to provide features to the user device 310. For example, the other applications 316 may include security applications for implementing client-side security features, programmatic client applications for interfacing with appropriate APIs over the network 360, or other types of applications. The other applications 316 may also include communication applications, such as email, text, voice, social networking, and IM applications that allow users to send and receive emails, calls, texts, and other notifications over the network 360. For example, the other applications 316 may be email or instant messaging applications that receive prediction result messages from the server 330. The other applications 316 may include device interfaces and other display modules that can receive input and / or output information. For example, the other applications 316 may include a software program for asset management that can be executed by a processor, including a graphical user interface (GUI) configured to provide an interface to the user 340 to view and interact with user-engageable elements that display search results.
[0049] The user device 310 may also include a database 318 stored in the transient and / or non-transitory memory of the user device 310, which may store various applications and data and be utilized during the execution of various modules of the user device 310. The database 318 may store, among other things, a user profile associated with the user 340, predictions previously viewed or saved by the user 340, and / or historical data received from the server 330. In some embodiments, the database 318 may be local to the user device 310. However, in other embodiments, the database 318 may be external to the user device 310 and accessible to the user device 310, including a cloud storage system and / or database accessible via the network 360.
[0050] The user device 310 includes at least one network interface component 319 adapted to communicate with the data sources 345 a and 354 b-345 n and / or the server 330. In various embodiments, the network interface component 319 may include a DSL (e.g., digital subscriber line) modem, a PSTN (public switched telephone network) modem, an Ethernet device, a broadband device, a satellite device, and / or various other types of wired and / or wireless network communication devices (including microwave, radio frequency, infrared, Bluetooth, and near field communication devices).
[0051] Data sources 345a and 354b-345n may correspond to servers hosting one or more search applications 303a-n (or collectively 303) to provide search results including web pages, posts, or other online content hosted by data sources 345a and 354b-345n to server 330. Search application 303 may be implemented by one or more relational databases, distributed databases, and / or cloud databases, etc. In some embodiments, search application 303 may be configured by platform 330, by data source 345, or by some other party.
[0052] In one embodiment, the platform 330 can allow various data sources 345a and 354b-345n to cooperate with the platform 330 as new data sources. The search system provides an application programming interface (API) for each data source 345a and 354b-345n to plug the search system into the service. For example, the California Bar Association can be registered with the search system as a data source. In this way, the data source "California Bar Association" can appear in the list of available data sources on the search system. The user can select or deselect California Bar Association as a preferred data source for their search. In a similar manner, additional data sources 345 can cooperate with the platform 330 to provide additional data sources for search so that the user can understand where the search results are collected.
[0053] Data sources 345a-n (collectively, 345) include at least one network interface component 326 suitable for communicating with user device 310 and / or server 330. In various embodiments, network interface component 326 may include a DSL (e.g., digital subscriber line) modem, a PSTN (public switched telephone network) modem, an Ethernet device, a broadband device, a satellite device, and / or various other types of wired and / or wireless network communication devices (including microwave, radio frequency, infrared, Bluetooth, and near field communication devices). For example, in one implementation, data source 345 may send asset information from search application 303 to server 330 via network interface 326.
[0054] Platform 330 can be used with Figure 2 The search platform module 230 and its submodules described in
[15] are housed together. In some implementations, the platform 330 can receive data from the search application 303 at the data source 345 and / or the network interface 326 via the network 360 to generate a user-engageable element that displays the search results. The generated user-engageable element can also be sent to the user device 310 via the network 360 for viewing by the user 340.
[0055] The database 332 may be stored in a transient and / or non-transitory memory of the server 330. In one implementation, the database 332 may store data obtained from the data provider server 345. In one implementation, the database 332 may store parameters of the search platform model 230. In one implementation, the database 332 may store user input queries, user profile information, search application information, search API information, or other information related to an ongoing search or a previously conducted search.
[0056] In some embodiments, database 332 may be local to platform 330. However, in other embodiments, database 332 may be external to and accessible to platform 330, including a cloud storage system and / or database accessible via network 360.
[0057] The platform 330 includes at least one network interface component 333 suitable for communicating with the user device 310 and / or the data sources 345a and 354b-345n via the network 360. In various embodiments, the network interface component 333 may include a DSL (e.g., digital subscriber line) modem, a PSTN (public switched telephone network) modem, an Ethernet device, a broadband device, a satellite device, and / or various other types of wired and / or wireless network communication devices (including microwave, radio frequency (RF), and infrared (IR) communication devices).
[0058] Network 360 may be implemented as a single network or a combination of multiple networks. For example, in various embodiments, network 360 may include the Internet or one or more intranets, landline networks, wireless networks, and / or other suitable types of networks. Thus, network 360 may correspond to a small-scale communication network (such as a private network or a local area network) accessible by various components of system 300, or a larger-scale network (such as a wide area network or the Internet).
[0059] Example Architecture
[0060] Figure 4A is suitable for implementation Figure 1-Figure 3 Simplified block diagram of the networked system of the customized search platform framework described in and other embodiments described herein.
[0061] Platform 410 (similar to Figure 2 230 or Figure 3330) receives input data from a user. The input data may include one or more of a user query 402, a user context 404, and other context 406. The user query 402 may include a term, multiple terms, a sentence, or any other type of search query provided by a user searching using the platform 410. For example, the user query 402 may be a search term such as "quasi recurrent neural network," "Richard Socher," or the like. The user context 404 may include input on behalf of the user, including a user ID, user preferences, user click logs, or other information collected or provided by the user, a user-selected preferred data source, and / or past user activity that "likes" or "dislikes" search results or search sources. The other context 406 may include input representing other useful input information, including information about world events, searches that have been conducted at approximately the same time, searches that have been conducted in approximately the same area, searches that have increased in volume over a period of time, or other potential contextual information that may help the platform 410 provide appropriate search results to the user.
[0062] The user query 402 can be converted into a representative string q=(q1, . . . ,q r ), where each q is a single token in a string tokenized by a certain tokenization strategy. The user context 404 and other contexts 406 can similarly be converted into a representative string u=(u1, ..., u via the platform 410 m )(eg, user context 404) and c=(c1, ..., c p ) (e.g., other context 406). These permutations of input are concatenated into a single input sentence, for example, a combined input sequence s = [TASK, q, SEP, u, SEP, c]. The combined input sequence is the entirety of the representative string q, followed by the representative string u, followed by the representative string c, where special reserved tokens (TASK and SEP) are used to inform the system where one sequence ends and another begins.
[0063] The single input sentence is then provided to the parser 414 (e.g., similar to Figure 2 ) and a ranker 412 (e.g., similar to Figure 2 Ranker submodule 233 in ). Ranker 412 and parser 414 can each be built on a neural network.
[0064] Specifically, the ranker 414 determines a list of search applications 420-420n and ranks them for searching. In some embodiments, each search application 420a-420n corresponds to Figure 1A specific data source 103a-n in Figure 3 For example, search application 420a corresponds to a search application configured to search within the database of Amazon.com; and / or search application 420b corresponds to a search application configured to search within the database of Facebook.com, etc. Ranker 414 uses an input sequence including user query 402, user context 404, and other context 406 to score multiple search applications 420a-420n by running the input sequence through a neural network model once for each search application 420a-420n, as described below with respect to Figure 4B In this manner, the ranker 414 ranks the list of search applications corresponding to the list of data sources for the user query 402. For example, for the user query 402 searching for "affordable instant pot," the search application 420a corresponding to Amazon.com may be prioritized over the search application 420b corresponding to Facebook.com.
[0065] After the ranker 412 determines and ranks the list of search applications 420a-n for a particular user query 402, the parser 414 determines the corresponding specific search inputs for the respective search application APIs 422a-n corresponding to the respective search applications 420a-n. The parser 414 can use the input sequence including the user query 402, the user context 404, and other context 406 to determine which tokens in the user query correspond to which inputs of the search application APIs 422a-422n, as described below with respect to Figure 4C Further described.
[0066] For example, the ranker 412 employs a combined input sequence s for each search application 420a-420n, where s is additionally concatenated with the representation of the search application 420 such that
[0067] Both the ranker 412 and the parser 414 use a variant of the Transformer, where sequences of n tokens are embedded as A sequence of n vectors in . Each vector is the sum of the learned token embeddings and the sinusoidal position embeddings. The vector sequence is stacked into the matrix It is processed by l attention layers. The i-th layer consists of two blocks, each of which maintains the model dimension d. The first block uses multi-head attention with k heads.
[0068]
[0069] MultiHead(X,k)=,h1;…;h k -W O
[0070] in
[0071] The second block uses a feed-forward network with ReLU activation that projects the input to the internal dimension f. This operation is done by and Parameterization:
[0072] FF(X)=max(0,XU)V
[0073] Each block performs layer normalization before the core function and residual connection after the core function. Together they produce X i+1 :
[0074] Block 1:
[0075]
[0076] Block 2:
[0077]
[0078] Then, the final output of the Transformer for a single input sequence x is X l For example, the ranker 412 may pass the output matrix after l attention layers representing the ranking information of the search applications 420a-n to the parser 414. The parser 414 may output the matrix X including the search inputs for the search applications 420a-n. l , the search inputs are sent to the search application APIs 422a-n, respectively.
[0079] The search results returned via the search application APIs 422a-422n are then sorted according to the ranking generated by the ranker 412 and presented in a ranked order 430. For example, result 431a corresponds to the group of search results from the highest ranked search application 420a, and result 431n corresponds to the search results from the lowest ranked search application 420n. The results 431a-431n are then presented to the user via a graphical user interface or some other type of user output device. For example, the search results 431a-431n can be grouped and presented in the form of a list of user-engageable elements, where each user-engageable element displays an icon representing each corresponding search application (data source). When the user selects an icon, a list of search results from the corresponding search application can be presented to the user. An example UI diagram can be found at Figures 8A-8K Found in.
[0080] Thus, by employing a neural network-based ranker 412 and parser 414, the search platform can intelligently predict which data sources may be preferred for a particular user based on the user query 402 and the user context 404. For example, a user can directly configure preferences or dislikes for data sources (e.g., see Figure 8H 、 Figure 8J ). Therefore, the search platform can accordingly include or exclude search applications corresponding to preferred or disliked data sources in the search (e.g., as filtered by the ranker 412). For another example, when a user dislikes search posts from Twitter.com, the search platform may not exclude Twitter.com from future searches. However, if the user continues to dislike search results from Twitter.com (e.g., more than a predefined number of times per day, per week, as a percentage of total searches, etc.), the search platform is more likely to deprioritize Twitter.com or exclude it from future searches. The neural model of the ranker 412 can be trained to predict whether Twitter.com should be excluded or deprioritized based on past user behavior.
[0081] For example, the ranker 412 and the parser 414 can each be trained separately. The training input can include similar data, such as user query 402, user context 404 and other context 406. The ranker 412 is used to generate a training output of the ranking of the search application (data source), and the training output is compared with the actual true ranking paired with the training input. The cross entropy loss can be calculated to update the ranker 412 via backpropagation. The parser 414 can be trained in a similar manner. For another example, the ranker 412 and the parser 414 can be jointly trained end-to-end.
[0082] These embodiments describe systems and methods for a customized search platform that provides user control and transparency in a user's searches. In some instances, a user may prefer complete privacy when it comes to the user's searches and / or Internet browsing. In such instances, the user may choose to remain in "private mode" during searches. In other instances, the user may prefer results tailored to the user's preferences or interests. In such instances, the user may choose to enter "personal mode"
[0083] Users can choose to remain in "private mode" during searches. In "private mode," the computer system will not store queries on its servers, log clicks, or any other interactions with the search engine, and all applications that require an IP address or location are disabled to protect user privacy. In a "private mode" embodiment, users are able to search with control over how the search engine collects and uses information about the user. Thus, in a "private mode" embodiment, the platform 410 may collect input from the user query 402 and other context 406, but may not have access to the user context 404 when conducting individual searches. Additionally, the platform 410 will not retain the user query 402 except when needed to conduct an instant search using the user query 402.
[0084] In "Personal Mode," users can alternatively further customize their search experience, retaining control over their searches while enjoying results tailored specifically for them. Users can optionally create user profiles to retain and store preferences. In "Personal Mode" embodiments, users are able to control their own search experience through the information they provide to the search system. For example, users can select preferred data sources and modify the order in which applications appear in response to search queries. User interactions can optionally be collected and used to provide users with better tailored results in the future, but "Personal Mode" ensures that users, rather than SEO professionals or advertisers, retain control of their search experience. Therefore, in "Personal Mode" embodiments, platform 410 can collect input including user query 402, user context 404, and other context 406. The user context 404 collected and utilized can be controlled by the user.
[0085] Figure 4B Is it about Figure 4A A simplified block diagram of the depicted ranker 412. The ranker 412 scores each search application 420a-420n using the user query 402, the user context 404, and other context 406. Thus, the ranker 412 runs once for each search application 420 being ranked.
[0086] Ranker 412 determines the ranking order 430 of the set of search applications 420Si. Given the above reference Figure 4A The input sequence described Ranker 412 runs Transformer on the input sequence to obtain the results for each search application 420. Each input sequence is reduced to a single vector via a pooling mechanism (e.g., average, maximum, minimum, convolution, etc.) and multiplied by the shared To obtain a score for the search application 420 .
[0087]
[0088] This process is repeated for each search application 420a-420n.The ranking order 430 is then determined by sorting these scores.
[0089] Figure 4C Is it about Figure 4A A simplified block diagram of the parser 414 is shown. The parser 414 tags each input x with a flag indicating whether the input x corresponds to an input to the search application API 422. The parser 414 operates on the sequence x as described above and computes the final output X of the underlying Transformer architecture. l Instead of pooling and score calculation for each search application 420a-420n, the parser 414 applies the following equation:
[0090]
[0091] In the above equation, SlotScores ai For each token in the input sequence x, determine whether the token corresponds to a specific input (or time slot, here considered to disambiguate with its own input) (e.g., departure location, destination, etc.) in the i-th search application API 420. Each search application 420 has its own corresponding parameters This parameter has an entry corresponding to each time slot that needs to be marked in order to calculate its score over the time slot.
[0092] Example workflow
[0093] Figure 5 is an example based on some embodiments described herein Figures 1-4C An example logical flow diagram of a method for searching a framework shown in . One or more of the processes of method 500 may be implemented at least in part in the form of executable code stored on a non-transitory, tangible, machine-readable medium, which, when executed by one or more processors, may cause the one or more processors to perform one or more of the processes. In some embodiments, method 500 corresponds to search platform module 230 (e.g., Figures 1-4A ) that searches based on user input and provides a user-engageable element containing the search results.
[0094] At step 502, an input query is received via a data interface. Figure 4AAs shown, according to some embodiments, the input query may include one or more of a user query 402, a user context 404, and other contexts 406. In some embodiments, the input query is provided by a user through user interaction with a search system, such as by entering a search query into the search system.
[0095] In some embodiments, an input sequence may be generated by concatenating an input query (e.g., "Richard Socher," "QuasiRecurrent Neutral Network," etc.) with a user context associated with the user who initiated the input query. The user context may include user profile information (e.g., user ID, user gender, user age, user location, zip code, device information, and / or mobile application usage information), user-configured preferences or dislikes for one or more data sources (e.g., Figure 8H 、 Figure 8J As shown), and any combination of past activity of the user approving or disapproving search results from a particular data source. In some embodiments, the input sequence also includes supplemental context, which includes contextual information related to the input query from one or more data sources. The supplemental context may include indications of "popular searches," "hot searches," "others are also searching for...", "hashtags," and other trending topics. The supplemental context may take into account global trends, local trends, news topics, or other relevant information based on current popularity. The supplemental context may also take into account searches by similar users, searches over a recent time period, searches from a geographic area, or other contextual information that may be relevant to the input query. In some embodiments, the search input may be generated by a parsing neural model based on the input sequence.
[0096] At step 504, the search system determines a first data source and a second data source that are relevant to the input query based at least in part on characteristics of potential search objects from the input query. Figure 4AAs shown, according to some embodiments, this determination of relevant data sources is performed using an input query that includes a user query 402, a user context 404, or other context 406. In some embodiments, this determination of relevant data sources is based at least in part on characteristics of potential search objects from the input query. For example, if the input query includes a name such as "Richard Socher", relevant data sources may include "Twitter", "Facebook", "Instagram", "TikTok", or other social media sites. If the input query includes food such as "pumpkin pie", relevant data sources may include "All Recipes", "Food Network", or other food-related websites. If the input query is related to coding (such as an error in python), relevant data sources may include "StackOverflow", "Reddit", or other web pages or blogs oriented towards coding help.
[0097] In some embodiments, determining the first data source and the second data source relevant to the input query includes generating an input sequence by concatenating the input query and a user context associated with a user who initiated the input query. Then, a ranking neural model (e.g., see Figure 4A In step 412), a relevance score for each data source may be generated based on the input sequence, and the relevance score may be used to determine whether each data source is relevant based on whether the corresponding relevance score is greater than a threshold. The data sources may be ranked based on the corresponding relevance score. In some embodiments, an indication may be generated for each data source by parsing the neural model.
[0098] At step 506, the search system may examine and filter the determined data sources based on the user's stored preferences for data sources, and generate / send search inputs customized for each data source. In one implementation, if the user has previously selected a particular data source as a preferred data source, the search system may include and prioritize that particular data source. In one implementation, if the user has previously deselected or disapproved a particular data source, the search system may exclude that particular data source, even if that data source may have been determined to be relevant in step 504.
[0099] In one implementation, the search system can universally apply the user's preferred data source in searches. For example, if "Wikipedia" has been selected by the user as a preferred data source, the search system can always place search result groups from "Wikipedia" in searches for the user.
[0100] In another implementation, the search system may categorize user preferred data sources based on their type. For example, if "LinkedIn" has been selected as a preferred data source by the user, the search system may store "LinkedIn" as a preferred data source for queries of a particular type (e.g., related to a person's name), and may not prioritize searches on "LinkedIn" when the query is not related to a person's name (such as "high-performance instant pot").
[0101] In an alternative implementation, at step 506, the search system may search the system via a search application programming interface ( Figure 4A The API 422a-n in the search application API 422a-n sends the first search input and the second search input to the corresponding first data source and the second data source. The search input can be customized according to the input query for each data source. Additional context related to the input query can be received from each search application API from the data source, and the additional context can be used to determine which part of the input query corresponds to each search application API. For example, for a search application API with a data source of "LinkedIn.com", when the user input query is "Richard Socher", the search input can be customized to "posts mentioning Richard Socher", "pages mentioning Richard Socher", users named "Richard Socher", stories mentioning "Richard Socher", and tags.
[0102] At step 508, the search system obtains and / or generates a first search result set from the first data source and a second search result set from the second data source. Figure 4A Results 431a - 431n are shown correspondingly. Respective search result sets are obtained and / or generated for different search applications 420a - 420n , where the respective search result sets are ranked in a ranking order 430 determined by ranker 412 and parser 414 .
[0103] At step 510, the search system presents a first user-engageable panel and a second user-engageable panel via the user interface, the first user-engageable panel containing a first set of search results having a first indication of a first data source, and the second user-engageable panel containing a second set of search results having a second indication of a second data source. These search results can be presented in the user-engageable element 700, such as Figure 7 and Figures 8A-8K The example UI diagram can be found in Figures 8A-8KEach set of search results generated at step 508 may be displayed in an additional user-engageable element at step 510, such that each set of group search results 431a-431n (e.g., Figure 4A In some embodiments, the user-participable panels are presented in a ranked order based on the ranking determined in step 504.
[0104] Figure 6 is an example of a method based on some embodiments described herein. Figures 1-4C An example logical flow diagram of a method for customizing search of a framework shown in . One or more of the processes of method 600 may be implemented at least in part in the form of executable code stored on a non-transitory, tangible, machine-readable medium, which, when executed by one or more processors, may cause the one or more processors to perform one or more of the processes. In some embodiments, method 600 corresponds to search platform module 230 (e.g., Figures 1-4A ) that searches based on user input and provides a user-engageable element containing search results.
[0105] At step 602, one or more ranked result sets are presented to the user via the user-engageable element. Figure 5 In some embodiments, the various search applications 420a-420n (e.g., Figure 4A ) will be sorted and presented to the user via a ranking order. Each search application 420a-420n will have a corresponding user-engageable element that allows the user to interact with the search results and the search application 420.
[0106] At step 604, the user accesses the Figure 7420n) interacts with one or more of the search applications 420a-420n that display results. For example, in a search where the input query includes food (such as "pumpkin pie", etc.), relevant data sources may include "All Recipes", "Food Network", or other food-related websites. A user can interact with the "All Recipes" approval element 704 in the user-engageable element 700 to indicate a preference for the "All Recipes" source. The search system can then use this information to update the user's preferences to use the "All Recipes" source for other food-based input queries. A user can also interact with the "Food Network" disapproval element 706 in the user-engageable element 700 to indicate a negative preference for the "Food Network" source. The search system can then use this information to update the user's preferences to avoid using the "Food Network" source for other food-based input queries.
[0107] In some embodiments, when a user selection of an additional data source is received, a new search input is tailored to the corresponding data source based on the input query and transmitted via a search application API integrated at a server of the additional data source. A set of search results from the data source can be received and presented via a user-engageable panel that displays the search results, as discussed above and further below.
[0108] At steps 606 / 616, the user's preferences are updated based on the input provided. These user preferences may be included as part of the user context 404 (e.g., Figure 4A ) to better tailor search results to the user. Following the example above, at step 606, this may involve updating the user's preferences to reflect the increased desire to see the "All Recipes" feed. On the other hand, at step 616, this may involve updating the user's preferences to reflect the decreased desire to see the "Food Network" feed.
[0109] In some implementations, users can directly configure preferences or dislikes for data sources (e.g., see Figure 8H 、 Figure 8J). Accordingly, the search platform may include or exclude search applications corresponding to preferred or disliked data sources in searches accordingly (e.g., as filtered by the ranker 412). In some implementations, the search platform may apply rule-based criteria based on the user's past activity with respect to search results from a particular data source to filter the data sources. For example, when a user dislikes search posts from Twitter.com, the search platform may not exclude Twitter.com from future searches. However, if the user consistently dislikes search results from Twitter.com (e.g., more than a predefined number of times per day, per week, as a percentage of total searches, etc.), the search platform may deprioritize or exclude Twitter.com from future searches.
[0110] At step 608 / 618, the search results are updated based on the user's interaction with the system. Following the example above, at step 608, this may involve searching for a recipe corresponding to the "All Recipes" source (e.g., Figure 4A ) by increasing the rank order 430 position for the result 431 corresponding to the "Food Network" source. At step 616, this may involve decreasing the rank order 430 position for the result corresponding to the "Food Network" source, or alternatively, may result in completely removing the "Food Network" source from the results 431a-431n displayed to the user.
[0111] At step 610 / 620, the updated results are presented to the user. These results can be presented to the user in a ranked order 430, wherein each result 431a-431n is shown in the user-engageable element 700, as shown below for Figure 7 discussed in further detail.
[0112] In some embodiments, the user may instead interact with the additional user-engageable element to provide an indication regarding a search application 420 that is not included in the ranked order of search applications presented to the user. In such an instance, the search system will update the user preferences as discussed above with respect to step 606. The search results may be updated in step 608 based on the input from the user-engageable element to increase the ranking of the search application 420 or to add the search application 420 to the search results (if not already present).
[0113] Figure 7 is realized Figure 5-Figure 6 Simplified block diagram of the custom search platform framework described in and an example search interface of other embodiments described herein. Figure 7 User-engageable elements 700 are depicted, and one or more user-engageable elements 700 may be presented to a user via a user interface, where each user-engageable element contains a set of search results.
[0114] The user-engageable element 700 may include source information 710 that provides the user with information having important or useful information about what source is providing the results 702a-702n shown in the user-engageable element 700. For example, this may be a website name to indicate that the results 702a-702n are shown from a particular website related to the search input query. The user-engageable element 700 corresponds to Figure 4A , a single search application 420 is depicted in which the first user-engageable element 700 shown to the user is the first result in the ranked order 430 (e.g., result 431a), and each subsequently shown user-engageable element 700 is the next result 431 in the ranked order 430.
[0115] Each user-engageable element 700 may provide one or more results 702a-702n, including web pages, social media posts, blog posts, recipes, videos, code snippets, or other content related to the search query. Each result 702 may be user-engageable and may allow the user to visit a web page, interact directly with a social media post, comment on a blog post, read and save a recipe, watch a video, copy code, provide feedback, or otherwise interact with the content in each result 702. Each user-engageable element 700 may also be provided with an approval element 704 and a disapproval element 706 for the user to indicate their preferences for the data source, as described above for Figure 6 discussed in further detail.
[0116] Figures 8A-8K is realized Figure 5-6 The custom search platform framework described in and the exemplary search interfaces 800a-800k of other embodiments described herein.
[0117] like Figure 8A As seen in the example, a custom search platform framework is utilized to allow users to conduct searches and select options for data sources for the searches. A user may conduct a search for a query such as “Quasi convolutional neural network” and the like, and the custom search platform may determine that the data source “arXiv” provides the most relevant results based on the characteristics of the user query (e.g., the name of a scientific term, etc.), and the data source is prominently displayed to the user along with a list of search results provided specifically from “arXiv”. Search results from “Arxiv.org” are presented in the form of a swipeable horizontal panel, allowing the user to engage with the panel to “swipe” and view a list of results in the panel.
[0118] like Figure 8BAs seen in Figure 2, for the same search query “quasi convolutional neural network,” the customized search platform may determine that “Reddit” is another relevant data source (e.g., a search application), but may be ranked lower than “Arxiv.org.” Consequently, search results from “Reddit” may be presented in another swipeable horizontal panel below the panel displayed for “Arxiv.org,” such that a user may engage with the panel to “swipe” and view a list of results in the panel.
[0119] like Figure 8C As shown in FIG, when the search query is “Richard Socher”, the customized search platform may determine that the most relevant results are provided from a data source from social media (such as “Twitter”) based on the characteristics of the user query (e.g., a person’s name, etc.), and prominently display the data source to the user along with a list of search results provided specifically from “Twitter”. The search results from “Twitter” are presented in the form of a swipeable horizontal panel, so that the user can engage with the panel to “swipe” and view a list of tweets from the user “Richard Socher” or mentioning “Richard Socher” in the panel.
[0120] In such Figure 8D In another example seen in , if a user enters the query "Boeuf Bourguignon," the customized search platform may initially determine that the search term is related to food, dishes, and / or related terms, and may therefore recommend search results from data sources such as "Recipes.com" or "FoodNetwork."
[0121] In such Figure 8E In another example as seen in , if a user enters the query "Asian Boss Girl", the customized search platform may initially determine that the search term is a popular topic and may point to a social media sensation. Therefore, the customized search platform may recommend search results from social media sources such as "Instagram", "Pinterest", "YouTube", and / or other social media web pages.
[0122] In such Figure 8F In another example seen in , if a user enters the query "Squid Game", the customized search platform may initially determine that the search term is related to a media item. Therefore, the customized search platform may recommend search results from data sources that provide details of the media or media item.
[0123] In such Figure 8G In another example seen in , if a user enters the query "wheels on the bus," the customized search platform may initially determine that, while the search term may be related to media items, unlike the previous example of "Squid Game," the query "wheels on the bus" refers to an old-fashioned nursery. Therefore, the customized search platform may recommend search results from sources that provide content specific to nursery rhymes, such as videos from "YouTube," "TikTok," or some other video source.
[0124] like Figure 8H As seen in , the customized search platform allows users to customize their preferred data sources. Users can choose to submit whether they prefer a particular data source by clicking an icon showing preference or approval (such as a "thumbs up" or "thumbs down" icon). Based on the preferences submitted by the user, the customized search platform can rearrange and re-prioritize the search results. For example, if the user has selected "thumbs up" (e.g., approval) for "LinkedIn" but selected "thumbs down" (e.g., disapproval) for "Instagram", then when the user searches for a person's name such as "Richard Socher", the customized search platform can prioritize results for "Richard Socher" from "LinkedIn", but may reduce the priority of results from "Instagram".
[0125] Figure 8I-8K Shows examples of searches conducted on the custom search platform before and after user configured preferences. Figure 8I , a search is shown where a user initially enters a search query of "Jo Malone red roses," where the customized search platform may return any search results from different data sources (e.g., various shopping sites such as Nordstrom.com, Walmart.com, Macys.com, etc.).
[0126] Figure 8J One embodiment of how a user can configure their source preferences is shown. In this example, the user has configured their source preferences by selecting "Amazon" and "Instagram" as preferred sources when searching on the custom search platform.
[0127] exist Figure 8K In Figure 8J Repeat after changing source preferences as seen in Figure 8IAfter the user configures source preferences, the customized search platform can initially determine that the search term "Jo Malone red rose" is related to shopping-related products. Therefore, the customized search platform can prioritize search results from the shopping site "Amazon" based on the user's preferences.
[0128] The description and drawings illustrating aspects, embodiments, implementations, or applications of the invention should not be construed as limiting. Various mechanical, compositional, structural, electrical, and operational changes may be made without departing from the spirit and scope of the description and claims. In some instances, well-known circuits, structures, or techniques are not shown or described in detail to avoid obscuring the embodiments of the present disclosure. Like numbers in two or more drawings represent the same or similar elements.
[0129] In this specification, the specific details of some embodiments consistent with the present disclosure are set forth. In order to provide a thorough understanding of the embodiments, many specific details are set forth. However, it will be apparent to those skilled in the art that some embodiments may be put into practice without some or all of these specific details. The specific embodiments disclosed herein are intended to be illustrative and not restrictive. Those skilled in the art will recognize that other elements within the scope and spirit of the present disclosure (although not specifically described herein) are provided. In addition, to avoid unnecessary repetition, one or more features shown and described in association with an embodiment may be incorporated into other embodiments, unless specifically described otherwise or unless one or more features will render the embodiments inoperative.
[0130] While illustrative embodiments have been shown and described, extensive modifications, variations, and substitutions are contemplated in the foregoing disclosure, and in some instances, some features of the embodiments may be employed without the corresponding use of other features. Those skilled in the art will recognize many variations, substitutions, and modifications. Accordingly, the scope of the present invention should be limited solely by the appended claims, and it is appropriate that the claims be broadly construed and interpreted in a manner consistent with the scope of the embodiments disclosed herein.
Claims
1. A method for presenting a plurality of search results in response to a search query, the method comprising: receiving, via a data interface, an input query for conducting an Internet search; determining, by a neural network implemented at a server, a first data source and a second data source for conducting a search related to the input query based at least in part on characteristics of potential search objects from the input query and data source preferences configured by a user prior to the Internet search, wherein the data source preferences include at least one data source deselected by the user; sending a first search input customized according to the input query to the first data source via a first search application programming interface (i.e., a first search API) integrated at the server; sending, via a second search API integrated at the server, a second search input customized according to the input query to the second data source without sending any search input to the at least one data source; obtaining a first set of search results from a first search within the first data source and a second set of search results from a second search within the second data source without obtaining any search results from the at least one data source; and A first user-engageable panel and a second user-engageable panel are caused to be displayed at a user interface, the first user-engageable panel displaying the first search result set with a first indication of the first data source, the second user-engageable panel displaying the second search result set with a second indication of the second data source.
2. The method according to claim 1, wherein Determining the first data source and the second data source by the neural network implemented at the server includes: generating an input sequence by concatenating the input query and a user context associated with a user who initiated the input query; and generating, by a ranking neural model, a first relevance score for the first data source and a second relevance score for the second data source based on the input sequence; and When the first correlation score and the second correlation score are greater than a threshold, it is determined that the first data source and the second data source are correlated.
3. The method according to claim 2, further comprising: The first data source and the second data source are ranked based on the first relevance score and the second relevance score.
4. The method according to claim 2, further comprising: The first search input or the second search input is generated based on the input sequence and an indication of the first data source or the second data source, respectively, by parsing a neural model.
5. The method according to claim 3, wherein: The first user-engageable panel and the second user-engageable panel are presented in a ranked order according to the ranking.
6. The method according to claim 1, further comprising: receiving, via the data interface, a user selection of a third data source; sending a third search input customized according to the input query to the third data source via a third search API integrated at the server; Obtain a third search result set from the third data source; as well as A third user-engageable panel displaying the third set of search results is presented via the user interface.
7. The method according to claim 1, further comprising: receiving, via the data interface, a user indication of disapproval of the second data source; as well as The second user-engageable panel is removed from the user interface.
8. The method according to claim 2, wherein: The user context includes any combination of the following: User profile information; User-configured preferences or dislikes for one or more data sources; and Approve or disapprove a user's past activity for search results from a specific data source.
9. The method according to claim 2, wherein: The input sequence also includes supplemental context including contextual information related to the input query from one or more data sources.
10. The method according to claim 4, further comprising: receiving, via the first search API or the second search API, additional contextual information related to the input query from the first data source or the second data source; as well as It is determined which portion of the input query corresponds to the first search input to the first search API or to the second search input to the second search API.
11. A system for presenting a plurality of search results in response to a search query, the system comprising: a communication interface that receives an input query for conducting an Internet search; a memory storing a plurality of processor-executable instructions; as well as a processor coupled to the memory and the communication interface, the processor executing the plurality of processor-executable instructions to: determining, by a neural network implemented at a server, a first data source and a second data source for conducting a search related to the input query based at least in part on characteristics of potential search objects from the input query and data source preferences configured by a user prior to the Internet search, wherein the data source preferences include at least one data source deselected by the user; sending a first search input customized according to the input query to the first data source via a first search application programming interface (i.e., a first search API) integrated at the server; sending, via a second search API integrated at the server, a second search input customized according to the input query to the second data source without sending any search input to the at least one data source; obtaining a first set of search results from a first search within the first data source and a second set of search results from a second search within the second data source without obtaining any search results from the at least one data source; and A first user-engageable panel and a second user-engageable panel are caused to be displayed at a user interface, the first user-engageable panel displaying the first search result set with a first indication of the first data source, the second user-engageable panel displaying the second search result set with a second indication of the second data source.
12. The system according to claim 11, wherein The processor further executes the plurality of processor-executable instructions to: generating an input sequence by concatenating the input query and a user context associated with a user initiating the input query; generating, by a ranking neural model, a first relevance score for the first data source and a second relevance score for the second data source based on the input sequence; as well as When the first correlation score and the second correlation score are greater than a threshold, it is determined that the first data source and the second data source are correlated.
13. The system according to claim 12, wherein: The processor further executes the plurality of processor-executable instructions to: The first data source and the second data source are ranked based on the first relevance score and the second relevance score.
14. The system according to claim 12, wherein: The processor further executes the plurality of processor-executable instructions to: The first search input or the second search input is generated based on the input sequence and an indication of the first data source or the second data source, respectively, by parsing a neural model.
15. The system according to claim 13, wherein: The first user-engageable panel and the second user-engageable panel are presented in a ranked order according to the ranking.
16. The system according to claim 11, wherein The processor further executes the plurality of processor-executable instructions to: receiving, via the communication interface, a user selection of a third data source; sending a third search input customized according to the input query to the third data source via a third search API integrated at the server; Obtain a third search result set from the third data source; as well as A third user-engageable panel displaying the third set of search results is presented via the user interface.
17. The system according to claim 11, wherein: The processor further executes the plurality of processor-executable instructions to: receiving, via the communication interface, a user indication of disapproval of the second data source; and The second user-engageable panel is removed from the user interface.
18. The system of claim 12, wherein: The user context includes any combination of the following: User profile information; User-configured preferences or dislikes for one or more data sources; and Approve or disapprove a user's past activity for search results from a specific data source.
19. The system of claim 12, wherein: The input sequence also includes supplemental context including contextual information related to the input query from one or more data sources.
20. A non-transitory computer-readable medium having stored thereon instructions that, when executed by a computing device, cause the computing device to perform operations to present a plurality of search results in response to a search query, the operations comprising: receiving, via a data interface, an input query for conducting an Internet search; determining, by a neural network implemented at a server, a first data source and a second data source for conducting a search related to the input query based at least in part on characteristics of potential search objects from the input query and data source preferences configured by a user prior to the Internet search, wherein the data source preferences include at least one data source deselected by the user; sending a first search input customized according to the input query to the first data source via a first search application programming interface (i.e., a first search API) integrated at the server; sending, via a second search API integrated at the server, a second search input customized according to the input query to the second data source without sending any search input to the at least one data source; obtaining a first set of search results from a first search within the first data source and a second set of search results from a second search within the second data source without obtaining any search results from the at least one data source; and A first user-engageable panel and a second user-engageable panel are caused to be displayed at a user interface, the first user-engageable panel displaying the first search result set with a first indication of the first data source, the second user-engageable panel displaying the second search result set with a second indication of the second data source.
Citation Information
Patent Citations
Method and system for blending search engine results from disparate sources into one search result
CN1809803A
System and methods and user interface for searching documents based on conceptual association
US8762371B1