Searching for data using online searching tools often yields irrelevant results. Such search results are often irrelevant because searching utilities provide results based on what the public as a whole may be looking for rather than the specific user. Further, a user may not know how to search for the desired information. For example, a user searching for information on setting up a wireless router may not know or have much information about the router being set up. Thus, when such a user submits a query such as “wireless router setup,” the user may receive search results about brand X routers when the user has a brand Y router.
Various embodiments described herein provide systems, methods, and software to automatically reorder search results presented to users based on information specific to the user or the computing environment of the user. Some embodiments include a data store holding user or environment specific data that is used to identify search results that are more likely to be relevant to the user. These and other embodiments are described in greater detail herein.
In the following detailed description, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific embodiments in which the inventive subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice them, and it is to be understood that other embodiments may be utilized and that structural, logical, and electrical changes may be made without departing from the scope of the inventive subject matter. Such embodiments of the inventive subject matter may be referred to, individually and/or collectively, herein by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
The following description is, therefore, not to be taken in a limited sense, and the scope of the inventive subject matter is defined by the appended claims.
The functions or algorithms described herein are implemented in hardware, software or a combination of software and hardware in one embodiment. The software comprises computer executable instructions stored on computer readable media such as memory or other type of storage devices. Further, described functions may correspond to modules, which may be software, hardware, firmware, or any combination thereof. Multiple functions are performed in one or more modules as desired, and the embodiments described are merely examples. The software is executed on a digital signal processor, ASIC, microprocessor, or other type of processor operating on a system, such as a personal computer, server, a router, or other device capable of processing data including network interconnection devices.
Some embodiments implement the functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the exemplary process flow is applicable to software, firmware, and hardware implementations.
The network connections of the various network capable devices may be direct connections as illustrated by the host platform 110a, media center 112a, personal multimedia device 114a, personal digital assistant 116a, and printer 118a in Room 1 or indirect connections using another network capable device as illustrated in Room 2 by the host platform 110b connecting the personal multimedia device 114b, personal digital assistant 116b, the video camera 117b, the printer 118b, and the camera 119b to the home network 100. The digital home network 100 may include both wired and wireless connections to the different home network devices (110-165) as seen.
For illustrative purpose, home networks 100 may have a number of complex devices (e.g. 112-165) in which problems arise and induce the consumer to seek technical support. For example, home network 100 may contain a media center 112a in which the Compact Disk Player will not stream certain file formats. More specifically, the consumer may attempt to access information regarding this issue via the internet with a query similar to, “what file formats can my CD Player stream?”
In accordance with one embodiment, digital devices or appliances incorporating the processor host platform described in greater detail in
In one embodiment, the network interface 230 may be configured to monitor the network for packets of device information and descriptions of devices within the network, e.g. device specific information. In various embodiments, the network interface may monitor the network for device specific information from a dedicated virtual partition 233 on the host platform. In this manner, the monitoring and obtaining of device specific information may be accomplished with resources not allocated to the main partition, and accordingly, if the main partition 223 is busy or hibernating, the virtual partition 233 is able to continue monitoring for new devices. In the alternative, the network interface may monitor the network for device specific information from a main partition 233 along side other software components 227.
In one embodiment, system memory 240 may store a plurality of programming instructions designed to enable the chipset 250 and tie processors 210 to receive a query pertaining to a query subject and modify the query or an answer to the query based, at least in part, on information related to the query subject. In these and other embodiments, the system memory 240 may store a plurality of programming instructions designed to enable the chipset 250 and processors 210 to receive query results in a first order and reorder the results as a function of a scoring algorithm that takes into account stored data about devices present on the network.
The plurality of processors 210 are the primary resources allocated to the respective partitions and may include any variety of processors known in the art including, in one embodiment, processors having a plurality of processing cores, for example Intel® Pentium® D Processors, Intel® Core™ 2 Extreme, and Intel® Core™ 2 Duo. The processors may be adapted to function within generic computer systems, as well as, Intel® ViiV Embedded Personal Computers (“ViiV EPC”). The plurality of processors 210 may comprise an integrated circuit (“IC”), such as a semiconductor integrated circuit chip. In the embodiment illustrated in
The at least one primary host processor associated with the main partition 223 is adapted to execute the one or more software components 227 and the operating system 225 which may include, for example, a general operating system such as Windows® operating systems, Linux, etc. The at least one processor associated with virtual partition 233 may be adapted to perform the monitoring and obtaining of device specific information from devices within or added to the network.
System memory 240 may include semiconductor firmware memory, programmable memory, non-volatile memory, read only memory, electrically programmable memory, random access memory, flash memory (which may include, for example, NAND or NOR type memory structures), magnetic disk memory, and/or optical disk memory. Either additionally or alternatively, memory 240 may comprise other and/or later-developed types of computer readable memory. Machines-readable firmware program instructions may be stored in memory 240. As described above, the instructions may be accessed and executed by the main partition 223 and/or the virtual partition 233 of host processor 210.
In one embodiment, network devices 300 transmit device specific information 310 to a transmit/receive module 320 via a network interface 230. It is contemplated that the transmit/receive module may be implemented in a hardware configuration or a software configuration. In one embodiment, the transmit/receive module 320 may contain a packet monitor 420. The packet monitor 420 may be integrated into a network interface card (not shown), run in a dedicated virtual partition 233 on a computer system, or run in a main partition 223 along side other applications. In various embodiments, the packet monitor 420 extracts or receives device information from a network device 300. In one embodiment, the packet monitor 420 monitors for Universal Plug and Play advertisements and device descriptions and maintains a time ordered log of the device information it receives. This log allows far query modification, as discussed below, when the network device 300 is not present, not powered on, or incapable of transmitting device specific information 230.
In one embodiment, the packet monitor 420 transmits the time ordered log 311, from the transmit/receive module 320, to a configuration extractor 430 located in a processing module 330. The processing module 330 may be implemented in a hardware configuration or a software configuration similar to the transmit/receive module 320. The configuration extractor 430 takes the device specific information 311 and creates word groups that are correlated with each other. In one embodiment, the word groups are stored in a configuration table 312. The configuration table 312 may then be applied, in various embodiments, to a query for the purpose of modification as will be discussed more below.
In various embodiments, a query may be entered by either of a user interface 350 or a generator 351. The user interface may be any one of a keyboard, a mouse, a computer screen, a touch pad, or any other user device capable of submitting a query. The generator 351 may be implemented in a hardware or software configuration.
In one embodiment, the generator 351 automatically generates a query 301 upon an occurrence of a network device being detected or a problem occurring within the network. The query 301 may pertain to common issues regarding the network deice or specific issues relating to the network device or the network in general. Similarly, in other embodiments, the user may generate a query 301 upon an occurrence of a problem with a device or a network.
In various embodiments, the query 301 initiated by the generator 351 or the user interface 350 is received by the transmit/receive module 320 and transmitted to at least one of a configuration based query expander 440 in a processing module 330, or a query processing system 450. In one embodiment, the transmit/receive module 320 sends the query 301, as received, directly to a query processing system 450. The query processing system may be any of an internet search engine, a telephony system, an online chat-room, or any other software or hardware configuration capable of receiving queries. In response to receiving the query 301, the query processing system returns query answers 360. In various embodiments, the configuration extractor 430 may then apply the configuration table 312 to the query answers to perform the post processing function of ranking the answers resulting in ranked answers 361. The ranked answers 361 may provide a fast and viable solution to a user's query or, in one embodiment, provide a list of the most likely causes of a problem or a list of the most common problems associated with a device should the generator 351 initiate the query.
In another embodiment, the query 301 is received by the transmit/receive module 320 and transmitted to a configuration based query expander 440 located in a processing module 330. Once a query 301 is received, the configuration based query expander 440 may apply the configuration table 312 from the configuration extractor 430 in order to concatenate or expand the query 301 with synonymous terms from the table 312. The expansion may include simply adding terms, deleting terms while adding others, or simply concatenating terms. In one embodiment, the configuration based query expander 440 then sends the modified query 302 to a query processing system 450 which returns query answers 360. The process of modifying the query prior to submitting it to a query processing system, or pre-processing, may create a more well-framed query which returns more relevant answers.
In yet another embodiment, preprocessing on a query 301 is performed and returns query answers 360. The query answers nay then undergo a similar post processing procedure to that describe above in which the configuration extractor applies the configuration table 312 to the pre-processed query answers returning ranked answers 361. In such a manner the system may incorporate pre-processing and post processing; only post processing; or only pre-processing. The post processing in such embodiments, may include re-ranking of at least some of the answers, such as Internet search engine query results. Further detail of such embodiments is described in greater detail below.
Although most embodiments described herein pertain to a home network environment and use of the configuration extractor 430 to build a configuration table 312, other embodiments are contemplated. For example, some embodiments may include one or both of pre and post-processing based on virtually any type of information of interest. That information may be represented in a table as words and the table may be used to expand searches or make theme more precise. The information may also be used to re-rank search results.
The method 400 further includes receiving query results in a first order in response to a user submitted query 404 and scoring each of at least a subset of the query results as a function of the data of interest 406. Based on the scoring, the method 400 also includes reordering the query results into a second order as a function of the scoring 408. The result is search results that are received based on a specific query, but are sorted based on information of interest to the query submitter.
In some embodiments, the scoring may include retrieving at least a subset of web pages represented in Internet search engine query results and identifying and counting unique features represented in the data of interest that occur in each of the retrieved web pages. The scoring may also include counting occurrences of each unique feature in each of the retrieved web pages scoring each of at least the subset of the query results as a function of a website from which the respective webpage is retrieved. The score may include one or more of these, and other, scoring mechanisms which may be considered individually or in sum.
Scoring each of at least the subset of the query results based on data of interest may also include scoring each of a plurality of features of a retrieved web page, weighting at least one feature, and summing each of the features, including weighted features, to determine a score for each retrieved webpage.
The re-ranking, or reordering, of search results may be considered in a more formal manner in view of contextual ranking. For a given user's query qk with the corresponding context Ck (output of the configuration extractor), for each of the first P web pages pjk returned by the search engine, its new rain DR (pjk) (as for Device Rank) may be calculated as follows.
First, for each page pjk a set of features fijk is extracted, such as, for example:
where ck are all the words in the context Ck and C(ck, pjk) is the count of all instances of ck in pjk (i.e. f1jk is proportional to the total number of context words in pjk), or:
where C′ is 1 if ck is in pjk, 0 otherwise (i.e. f2jk is proportional to the number of unique context words in pjk). Another feature would indicate if the context words appear in the URL of pjkor in its title. These features allows incorporation of contextual information. Any number of other types of information and constraints may be included through the features fijk. For example, A feature that would allow promoting of “high quality,” domain specific Web sites may be included, as for example:
where D is the set of all domain specific sites identified to contain important or noteworthy information.
A linear combination of these features fijk may then be calculated:
Intuitively, one can see that the higher the value of this sum the more relevant is the page pjk to the query and context, this sum is thus an example of a “score” for page pjk. The parameters wi are the weights assigned to each feature.
However, the original rank of the search engine may be used, SER(pjk) in some embodiments. The original rank may be added to the score S(pjk) as an additional feature multiplied by a factor w0 which determines how much weight to give to the original search engine used. In such embodiments, the final score may be represented as:
where SER(pjk) is the search engine rank for the query qk which is just the position of the web page pjk in the returned list (rank=1 being the rank of first page returned).
Given these scores DRS(pjk), the web pages pjk may be ranked by obtaining the Device Rank DR(pjk), (rank=1 being the rank of the page with the highest score and so on). The ranked pages may then be presented via a web browsing application accordingly to DR(pjk). In some embodiments, a “better” ranking DR(pjk) may be made by learning the parameters W=(w0, w1, . . . , wN) via a machine learning technique, such as logistic regression, or a variant thereof (as opposed to just setting them manually). The learning would find the optimal set of weights.
It is emphasized that the Abstract is provided to comply with 37 C.F.R. §1.72(b) requiring an Abstract that will allow the reader to quickly ascertain the nature and gist of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
In the foregoing Detailed Description, various features are grouped together in a single embodiment to streamline the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the inventive subject matter require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
It will be readily understood to those skilled in the art that various other changes in the details, material, and arrangements of the parts and method stages which have been described and illustrated in order to explain the nature of the inventive subject matter may be made without departing from the principles and scope of the inventive subject matter as expressed in the subjoined claims.
Number | Name | Date | Kind |
---|---|---|---|
5655148 | Richman et al. | Aug 1997 | A |
5935262 | Barrett et al. | Aug 1999 | A |
6411950 | Moricz et al. | Jun 2002 | B1 |
6640278 | Nolan et al. | Oct 2003 | B1 |
7062451 | Dentel et al. | Jun 2006 | B1 |
7555556 | Motoyama | Jun 2009 | B2 |
7953851 | Britton et al. | May 2011 | B2 |
20020023959 | Miller et al. | Feb 2002 | A1 |
20020078161 | Cheng | Jun 2002 | A1 |
20020078293 | Kou et al. | Jun 2002 | A1 |
20020111698 | Graziano et al. | Aug 2002 | A1 |
20020169765 | Saltz | Nov 2002 | A1 |
20030041088 | Wilson et al. | Feb 2003 | A1 |
20030061267 | Dunstan | Mar 2003 | A1 |
20030088544 | Kan et al. | May 2003 | A1 |
20050060527 | Philyaw | Mar 2005 | A1 |
20050136949 | Barnes, Jr. | Jun 2005 | A1 |
20050160190 | Bhesania et al. | Jul 2005 | A1 |
20050210119 | Kumar | Sep 2005 | A1 |
20060069663 | Adar et al. | Mar 2006 | A1 |
20060094360 | Jung et al. | May 2006 | A1 |
20060156307 | Kunjithapatham et al. | Jul 2006 | A1 |
20060184693 | Rao et al. | Aug 2006 | A1 |
20060195440 | Burges et al. | Aug 2006 | A1 |
20060230130 | Cho et al. | Oct 2006 | A1 |
20060242129 | Libes et al. | Oct 2006 | A1 |
20060271364 | Mirkovic et al. | Nov 2006 | A1 |
20070075916 | Bump et al. | Apr 2007 | A1 |
20070112909 | Miyamoto et al. | May 2007 | A1 |
20070214131 | Cucerzan et al. | Sep 2007 | A1 |
20070244584 | John et al. | Oct 2007 | A1 |
20080016101 | Ginsburg et al. | Jan 2008 | A1 |
20080201132 | Brown et al. | Aug 2008 | A1 |
20080243838 | Scott et al. | Oct 2008 | A1 |
20080250010 | Rathod et al. | Oct 2008 | A1 |
20080294617 | Chakrabarti et al. | Nov 2008 | A1 |
20080313179 | Trepess et al. | Dec 2008 | A1 |
20090019091 | Horvitz et al. | Jan 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20090006372 A1 | Jan 2009 | US |