US20090076927A1 - Distinguishing accessories from products for ranking search results - Google Patents

Distinguishing accessories from products for ranking search results Download PDF

Info

Publication number
US20090076927A1
US20090076927A1 US12/199,795 US19979508A US2009076927A1 US 20090076927 A1 US20090076927 A1 US 20090076927A1 US 19979508 A US19979508 A US 19979508A US 2009076927 A1 US2009076927 A1 US 2009076927A1
Authority
US
United States
Prior art keywords
accessory
price
offer
offers
product
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/199,795
Inventor
Srinath Sridhar
Ashutosh Garg
Kedar Dhamdhere
Varun Kacholia
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to US12/199,795 priority Critical patent/US20090076927A1/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GARG, ASHUTOSH, SRIDHAR, SRINATH, DHAMDHERE, KEDAR, KACHOLIA, VARUN
Publication of US20090076927A1 publication Critical patent/US20090076927A1/en
Priority to US14/790,893 priority patent/US10354308B2/en
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy
    • G06Q30/0627Directed, with specific intent or strategy using item specifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0603Catalogue ordering

Definitions

  • the present disclosure relates to ranking search results for presentation to a computer user.
  • Search engines provide users with a list of results identified from a set of candidate data.
  • a query that includes one or more keywords related to information being sought is entered, and the system returns a set of results from which the user can choose.
  • the identification of the results included in the results set can use any number of identification algorithms and criteria.
  • Search engines are often used by consumers to perform research regarding products of interest in order to make a purchasing decision. For example, a user may wish to obtain information regarding a product's price, features, or availability.
  • the set of data from which a given system identifies results generally includes listings for products as well as a variety of accessories related to those products.
  • An accessory is an item that is sold separate from a product but is associated with the product (for example, through its function, features, operation, appearance, etc.) such that the accessory might appear in search results for the product.
  • a user search for information regarding a given product often returns a set of results that includes both product and accessory listings.
  • the product and accessory results can be intermingled in the order of the results presented to the user. This can prove frustrating. For example, if the user is researching a product to make a purchasing decision, the user is likely to be less interested in results related to a product accessory for a product that the user does not yet own.
  • the results set includes intermingled product and accessory result listings
  • the user may have to visually scan each individual result to determine if the result is of interest. To determine if a given result is a related to a product or accessory, the user may have to select the result, by clicking on it for example, to review it more thoroughly.
  • This specification describes technologies relating to distinguishing accessories from products for ranking search results.
  • one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a query, identifying a set of ranked results corresponding to the query from a corpus of offer data, classifying the query as a product query or an accessory query, generating a set of modified ranked results based on the classification of the query, generating the set of modified ranked results including, if the query is a product query, for each result in the set of ranked results, determining if the result is an accessory result, and if the result is an accessory result, demoting the rank of the result, and sending at least a subset of highest ranked results in the modified ranked results in response to the query.
  • the invention can provide a set of results more relevant to a user query. If a user query is indicative of a product search, for example, accessory results can be decreased in rank or omitted from the results presented to the user.
  • FIG. 1 is a block diagram of an example environment of an example search engine configured to distinguish accessories from products.
  • FIG. 2A is a flowchart of an example method for generating distribution data from offer records.
  • FIG. 2B is a flowchart of an example method for generating prior probabilities data from offer records.
  • FIG. 3A is a flowchart of an example method for processing results returned by a query.
  • FIG. 3B is a flowchart of an example method for determining if a query should be processed as a product query.
  • FIG. 4 is a flowchart of an example method for processing a result set for a product query.
  • FIG. 5A shows two example output records of an intermediate preprocessing step.
  • FIG. 5B shows an example price distribution output record.
  • FIG. 1 is a block diagram of an example environment 100 of an example search engine 102 configured to distinguish accessories from products.
  • the search engine 102 includes a front end server 104 that interfaces with the network 106 .
  • the front end server 104 can be, for example, a web server that communicates with one or more client computers over the Internet.
  • the front end server 104 can, for example, provide hypertext markup language formatted web pages to a web browser of the computer 108 .
  • a web browser running on the computer 108 can interpret these web pages for display on the computer 108 .
  • the displayed web pages can function as a user interface of the search engine 102 .
  • the front end server 104 can accept a query from the client computer 108 that includes one or more keywords.
  • the query can be passed on to the query processor 110 for processing.
  • the query processor 110 can identify one or more results corresponding to the query and return the results to the front end server 104 for transmission to the client computer 108 .
  • Individual results in a set of results can be ordered according to a ranking score computed by the query processor 110 .
  • a result set can be delivered to the client computer 108 as a complete set of results or delivered in segments. For example, the 10 highest ranked results can be delivered first in one web page that includes a link that can be selected by a user to cause the front end server 104 to deliver the next 10 highest ranked results.
  • the offer data store 116 includes offer records corresponding to items offered for sale by one or more merchants.
  • the merchants can, for example, register with the search engine 102 to upload offer records to the offer data store 116 .
  • the search engine 102 can retrieve offer records from merchant servers, through, for example, downloading a file including the offer records from merchants, and/or using a network crawling application.
  • the search engine 102 can search a corpus of offer data, for example, search the data store 116 to identify one or more query results from the offer records.
  • the search engine can identify query results from both offer records in the data store 116 and an index of documents available on the network 106 that is created and updated by periodically searching the network 106 .
  • a user of the computer 108 can indicate, using the user interface provided by the front end server 104 , that only items for sale should be included in the returned results. In such a case the search engine 102 can return results found in the offer data store 116 without searching the document index.
  • Merchants registered with the search engine 102 can upload offer records to the offer data store 116 from one or more merchant servers 118 A, 118 B, . . . 118 n .
  • the merchant servers can upload offer records corresponding to items offered on an online store operated by the merchant.
  • the offer records can include multiple fields such as, for example, a title of the offer, a description of the item for sale, a price at which the item is offered for sale, and/or a category of the offer.
  • the category field can include a category name and/or identifier from a list of categories designated by the search engine provider and provided to merchants. For instance, the list of categories can be provided to registered merchants, and the merchants can be instructed to categorize offer records by selecting one or more categories from the category list.
  • An offer processor 120 of the search engine can perform preprocessing operations using offer records from the offer data store 116 to generate distribution data stored in the distribution data store 122 and prior probabilities data stored in the prior probabilities data store 124 .
  • the prior probabilities data in the data store 124 can be used, for example, by the query classifier 112 and/or the result classifier 114 , as described in more detail below, to compare query keywords and keywords from identified results to offer record keywords that have a calculated probability of being associated with an accessory.
  • the query processor 110 can use this comparison to distinguish between accessory related results and product related results in the set of search results.
  • the query processor 110 can use offer records from the offer data store 116 , data from the distribution data store 122 , and/or data from the prior probabilities data store 124 to distinguish accessory related results from product related results.
  • the query processor assigns lower ranking scores to accessory results than to product results so that product results appear higher in a ranked list of search results than accessory results.
  • FIG. 2A is a flowchart of an example method 200 for generating distribution data from offer records.
  • the offer processor 120 can, for example, perform the method 200 using offer records stored in the offer data store 116 to generate the distribution data that is stored in the distribution data store 122 .
  • the offer records are classified into either a “product” cluster or an “accessory” cluster ( 202 ). For example, offer records can be heuristically classified based on information in one or more fields of an offer record.
  • only a subset of the offer records is classified as products or accessories.
  • the subset can be selected based on the category field of the offer record. For instance, offer records belonging to categories that are known to include products that often have corresponding accessories can be classified, but not offer records that belong to other categories.
  • Example categories that often have products with corresponding accessories include categories related to computers, video games, and electronics in general.
  • the offer processor 120 can heuristically classify a given offer by reading a title field of the offer to determine if the title includes words that are often associated with accessories.
  • the classification can be based on the prior probabilities data in the data store 124 .
  • the title field can be compared to a blacklist that includes words that are known to often be associated with accessories such as, e.g., “accessory”, “case”, “cartridge”, etc.
  • the offer processor 120 can also read the category field of the offer record to determine if the offer is a product or an accessory. If the corresponding category is, for example, specifically a category for accessories, the offer can be classified as an accessory.
  • the output of the offer processor 120 upon the offer processor 120 completing a heuristic classification step, can be a classification output in a format including one line for each offer title word (for example, see the format shown in FIG. 5A ).
  • Offer title words can include, for example, significant words that are included in the title field of the offer records in the offer data store 116 omitting short words and stemming prefixes and/or suffixes from root words.
  • a given offer record can include more than one title word in its title field such that multiple lines of the classification output format can correspond to a single offer record.
  • the classification output format can also include the price of the offer record associated with the offer title word and an indication as to the heuristic classification (as product or accessory) of the offer record.
  • the classification indication can be a logical yes or no as to whether the offer record was classified as an accessory.
  • a price distribution of the offers placed in the products cluster and the offers placed in the accessories cluster is computed ( 204 ).
  • Price distribution data can be stored in the distribution data store 122 .
  • the price distribution can be computed using, for example, the output of the classification step.
  • central tendency pricing data such as a mean and standard deviation of the prices for that title word, can be computed.
  • the mean value and a standard deviation of the value in the price field for lines in the classification output that have a title word of “laptop” and a classification of “product” are computed.
  • the mean and standard deviation of prices for lines having the title word “laptop” that are classified as “accessory” are also computed.
  • the format of the generated price distribution data is a title word followed by the mean and standard deviation of prices of the product cluster, and the mean and standard deviation of prices of the accessory cluster (for example see the format shown in FIG. 5B ).
  • Title word listings extracted from the offer records are then reclassified based on the likelihood that the corresponding offer is a product offer or an accessory offer according to the price distribution data ( 206 ).
  • the likelihood calculation can assume equal prior probabilities and a single Gaussian distribution for each corresponding accessory and product offer. For example, a title keyword “laptop” extracted from an offer record having a price of “53.99” can be compared to the price distribution data 506 shown in FIG. 5B for offers including the keyword “laptop”.
  • the offer from which the keyword in row 504 corresponds can be classified as an accessory since, given the price distribution 506 , it is more likely that the corresponding offer is for an accessory than a product.
  • a check is performed to determine if the classification process is complete ( 208 ).
  • the iteration criteria can be, for example, a number of title word listings that were reclassified based on the likelihood calculation. For instance, if this number is above a certain threshold, the process can return to 204 to recompute the price distributions using the reclassified clusters. Otherwise the process ends ( 210 ).
  • Distributions other than a price distribution can also be used to classify offers. For example, offers can be classified according to title unigram distribution and title word pairs distribution.
  • FIG. 2B is a flowchart of an example method for generating prior probabilities data from offer records.
  • An offer keyword is read along with its corresponding classifications ( 216 ). For instance, the output of the classification process can be read (for example, see the format shown in FIG. 5A ).
  • the number of times the keyword is found to be associated with an accessory and the number of times the keyword is found to be associated with a product can be counted and used to compute a probability that the keyword is associated with an accessory ( 218 ).
  • the computed probability can be stored with the keyword in the prior probabilities data ( 220 ).
  • Prior probabilities data in the datastore 124 can be used, for example, by the query classifier 112 to classify a query as described below.
  • FIG. 3A is a flowchart of an example method 300 for processing results returned by a query.
  • a query is received ( 302 ).
  • a determination is made as to whether the query is related to a product ( 304 ). If the query is found to not be related to a product, results of the query are processed as if the query is for an accessory ( 306 ). If the query is found to be related to a product, the results of the query are processed as if the query is for a product ( 308 ).
  • the method 300 is performed by the query classifier 112 of the query processor 110 .
  • the determination as to whether a given query relates to a product can include, for example, comparing query keywords to words in the prior probabilities data in the datastore 124 .
  • the prior probabilities data includes a blacklist that includes words that have been found to have a high probability of being associated with accessories. Such a blacklist could include, for example, words such as “accessory”, “case”, and “cartridge”.
  • the determination can also include retrieving a set of results for the query and checking the category field of any offer record corresponding to a given result. If a threshold number of results in the results set correspond to offer records that belong to product related categories, the query can be determined to be a product query.
  • the query classifier 112 can accept an input parameter that identifies a file that includes a list of product related categories.
  • the determination can also include checking a classification of offer records corresponding to results in the result set to determine if a large number of the offer records are classified as accessories. For example, if more than a threshold number of offer records corresponding to the results in the result set are classified as accessories, then the query can be determined to be an accessory query (and not a product query).
  • FIG. 3B is a flowchart of an example method 310 for determining if a query should be processed as a product query.
  • the method 310 is performed by the query classifier 112 of the query processor 110 .
  • the query keywords of a received query are analyzed to determine if they are indicative of an accessory query.
  • the query keywords can be compared to the prior probabilities data ( 312 ). If a probability calculation based on one or more query keywords and the prior probabilities data indicates that the query is an accessory query, a result set of the query is processed as if the query is for an accessory ( 314 ).
  • the query classifier 112 can accept an input parameter that identifies a file that includes a list of product related categories.
  • the query classifier can also accept the threshold number as an input.
  • the threshold number and product related categories file can be given as command line inputs to a query classifier 112 executable file.
  • a result set of the query is processed as if the query is for a product ( 318 ). For example, if a set of results includes 200 results, the threshold number used can be 10. In this case, if there are 10 or more product related results in the set of 200 results, the query is classified as a product query.
  • the threshold number of results belonging to product related categories is not met, the number of results in the result set that are classified as accessory offers is compared to a second threshold number ( 320 ).
  • This threshold number can be provided as a command line input parameter as well. If the threshold number of results classified as accessories is met, the result set is processed as if the query is for an accessory ( 314 ). If the threshold number of results classified as accessories is not met, the result set is processed as if the query is for a product ( 314 ). For example, if a set of results includes 200 results, 195 can be used as the second threshold number. In this case, if 195 of the 200 results are accessory related results, the query is classified as an accessory query.
  • a result set processed as if the query is for an accessory is processed normally without any modification to a ranking of the results in the results set based on the offers' classification as a product or accessory.
  • FIG. 4 is a flowchart of an example method 400 for processing a result set for a product query.
  • the method 400 is performed by the result classifier 114 of the query processor 110 .
  • An offer result in the query results set is read ( 402 ). Words found in the offer result are compared to the prior probabilities data stored, for example, in the prior probabilities data store 124 . If a comparison of the prior probabilities data and the keywords included in the offer indicates that the offer result is an accessory, the offer result is demoted ( 408 ).
  • the prior probabilities data includes a blacklist that includes words known to be associated with accessories. If an offer result includes a blacklisted word (for example, in its title, and/or in its description) the offer result is demoted.
  • computing the likelihood that the offer result is an accessory includes computing a likelihood ratio of products and accessories according to the following:
  • P TOTAL log( Pr [price
  • keyword 1 keyword 2 . . . keyword n keyword 1 keyword 2 . . . keyword n ,
  • n th keyword in the query is the probability that a given offer result is an accessory offer based on the offer result's price and the accessory mean and accessory standard deviation of the n th keyword in the query.
  • keyword n , product] can be computed by assuming a Gaussian distribution using the parameters from the distribution data stored, for example in the data store 122 (i.e. the output of the process 200 described with respect to FIG. 2 ).
  • the offer result is not demoted, and the next offer result in the result set is read ( 402 ). If the offer result is found to be an accessory, the offer result is demoted ( 408 ).
  • the results in the result set include an initial ranking. If the offer result is found to be an accessory, the offer result is demoted by decreasing this initial ranking. Demotion of accessory results lowers the ranking of these results to move them down the ranked list of the results set. Product results are not demoted so that product results appear earlier in the ranked list than accessory results.
  • product results can, alternatively, be promoted to move product results higher in a list of ranked results.
  • an initial rank of product results for a product query can be increased in rank by a constant amount to move these results toward the top of a list of ranked results.
  • the result classifier 114 of the query processor 110 can demote any results determined to be product results or, alternatively, promote accessory results.
  • FIG. 5A shows example output records 500 of an intermediate preprocessing step.
  • the records include a keyword field, a Boolean field that indicates whether the corresponding offer is classified as an accessory or not, and a price field.
  • Example record 502 is classified as a product, and example record 504 is classified as an accessory.
  • These records can be output, for example, by the heuristic classification and/or the reclassification operations of the method 200 .
  • FIG. 5B shows an example price distribution output record 506 .
  • the example record 506 includes a keyword field followed by four floating point numbers. These numbers correspond to, in order: the mean price of offer records classified as products that include the indicated keyword in their titles, the standard deviation of offer records classified as products that include the indicated keyword in their titles, the mean price of offer records classified as accessories that include the indicated keyword in their titles, and the standard deviation of offer records classified as accessories that include the indicated keyword in their titles.
  • Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
  • Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus.
  • the tangible program carrier can be a propagated signal or a computer-readable medium.
  • the propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer.
  • the computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
  • data processing apparatus encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
  • the apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • a computer program does not necessarily correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code).
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
  • the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read-only memory or a random access memory or both.
  • the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
  • a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • a computer need not have such devices.
  • Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
  • magnetic disks e.g., internal hard disks or removable disks
  • magneto-optical disks e.g., CD-ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.

Abstract

Offer listings can be classified as accessory offers or product offers using a classification operation performed on a corpus of offers. Data from the classification operation can be used to classify received queries as either product or accessory, and to classify results as products or accessories for purposes of presenting a relevant list of results to a user.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This Application claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Application Ser. No. 60/968,302, filed on Aug. 27, 2007, the disclosure of which is incorporated herein by reference.
  • BACKGROUND
  • The present disclosure relates to ranking search results for presentation to a computer user.
  • Search engines provide users with a list of results identified from a set of candidate data. A query that includes one or more keywords related to information being sought is entered, and the system returns a set of results from which the user can choose. The identification of the results included in the results set can use any number of identification algorithms and criteria.
  • Search engines are often used by consumers to perform research regarding products of interest in order to make a purchasing decision. For example, a user may wish to obtain information regarding a product's price, features, or availability. The set of data from which a given system identifies results generally includes listings for products as well as a variety of accessories related to those products. An accessory is an item that is sold separate from a product but is associated with the product (for example, through its function, features, operation, appearance, etc.) such that the accessory might appear in search results for the product.
  • A user search for information regarding a given product often returns a set of results that includes both product and accessory listings. The product and accessory results can be intermingled in the order of the results presented to the user. This can prove frustrating. For example, if the user is researching a product to make a purchasing decision, the user is likely to be less interested in results related to a product accessory for a product that the user does not yet own. Unfortunately, in cases where the results set includes intermingled product and accessory result listings, the user may have to visually scan each individual result to determine if the result is of interest. To determine if a given result is a related to a product or accessory, the user may have to select the result, by clicking on it for example, to review it more thoroughly.
  • SUMMARY
  • This specification describes technologies relating to distinguishing accessories from products for ranking search results.
  • In general, one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving a query, identifying a set of ranked results corresponding to the query from a corpus of offer data, classifying the query as a product query or an accessory query, generating a set of modified ranked results based on the classification of the query, generating the set of modified ranked results including, if the query is a product query, for each result in the set of ranked results, determining if the result is an accessory result, and if the result is an accessory result, demoting the rank of the result, and sending at least a subset of highest ranked results in the modified ranked results in response to the query.
  • Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages. The invention can provide a set of results more relevant to a user query. If a user query is indicative of a product search, for example, accessory results can be decreased in rank or omitted from the results presented to the user.
  • The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of an example environment of an example search engine configured to distinguish accessories from products.
  • FIG. 2A is a flowchart of an example method for generating distribution data from offer records.
  • FIG. 2B is a flowchart of an example method for generating prior probabilities data from offer records.
  • FIG. 3A is a flowchart of an example method for processing results returned by a query.
  • FIG. 3B is a flowchart of an example method for determining if a query should be processed as a product query.
  • FIG. 4 is a flowchart of an example method for processing a result set for a product query.
  • FIG. 5A shows two example output records of an intermediate preprocessing step.
  • FIG. 5B shows an example price distribution output record.
  • Like reference numbers and designations in the various drawings indicate like elements.
  • DETAILED DESCRIPTION
  • FIG. 1 is a block diagram of an example environment 100 of an example search engine 102 configured to distinguish accessories from products. The search engine 102 includes a front end server 104 that interfaces with the network 106. The front end server 104 can be, for example, a web server that communicates with one or more client computers over the Internet. The front end server 104 can, for example, provide hypertext markup language formatted web pages to a web browser of the computer 108. A web browser running on the computer 108 can interpret these web pages for display on the computer 108. The displayed web pages can function as a user interface of the search engine 102.
  • The front end server 104 can accept a query from the client computer 108 that includes one or more keywords. The query can be passed on to the query processor 110 for processing. The query processor 110 can identify one or more results corresponding to the query and return the results to the front end server 104 for transmission to the client computer 108. Individual results in a set of results can be ordered according to a ranking score computed by the query processor 110. A result set can be delivered to the client computer 108 as a complete set of results or delivered in segments. For example, the 10 highest ranked results can be delivered first in one web page that includes a link that can be selected by a user to cause the front end server 104 to deliver the next 10 highest ranked results.
  • The offer data store 116 includes offer records corresponding to items offered for sale by one or more merchants. The merchants can, for example, register with the search engine 102 to upload offer records to the offer data store 116. Alternatively, or in addition, the search engine 102 can retrieve offer records from merchant servers, through, for example, downloading a file including the offer records from merchants, and/or using a network crawling application.
  • The search engine 102 can search a corpus of offer data, for example, search the data store 116 to identify one or more query results from the offer records. In some implementations, the search engine can identify query results from both offer records in the data store 116 and an index of documents available on the network 106 that is created and updated by periodically searching the network 106. In some implementations, a user of the computer 108 can indicate, using the user interface provided by the front end server 104, that only items for sale should be included in the returned results. In such a case the search engine 102 can return results found in the offer data store 116 without searching the document index.
  • Merchants registered with the search engine 102 can upload offer records to the offer data store 116 from one or more merchant servers 118A, 118B, . . . 118 n. For example, the merchant servers can upload offer records corresponding to items offered on an online store operated by the merchant. The offer records can include multiple fields such as, for example, a title of the offer, a description of the item for sale, a price at which the item is offered for sale, and/or a category of the offer. The category field can include a category name and/or identifier from a list of categories designated by the search engine provider and provided to merchants. For instance, the list of categories can be provided to registered merchants, and the merchants can be instructed to categorize offer records by selecting one or more categories from the category list.
  • An offer processor 120 of the search engine can perform preprocessing operations using offer records from the offer data store 116 to generate distribution data stored in the distribution data store 122 and prior probabilities data stored in the prior probabilities data store 124. The prior probabilities data in the data store 124 can be used, for example, by the query classifier 112 and/or the result classifier 114, as described in more detail below, to compare query keywords and keywords from identified results to offer record keywords that have a calculated probability of being associated with an accessory.
  • The query processor 110 can use this comparison to distinguish between accessory related results and product related results in the set of search results. The query processor 110, as further described below, can use offer records from the offer data store 116, data from the distribution data store 122, and/or data from the prior probabilities data store 124 to distinguish accessory related results from product related results. In some implementations, the query processor assigns lower ranking scores to accessory results than to product results so that product results appear higher in a ranked list of search results than accessory results.
  • FIG. 2A is a flowchart of an example method 200 for generating distribution data from offer records. The offer processor 120 can, for example, perform the method 200 using offer records stored in the offer data store 116 to generate the distribution data that is stored in the distribution data store 122. The offer records are classified into either a “product” cluster or an “accessory” cluster (202). For example, offer records can be heuristically classified based on information in one or more fields of an offer record.
  • In some implementations, only a subset of the offer records is classified as products or accessories. The subset can be selected based on the category field of the offer record. For instance, offer records belonging to categories that are known to include products that often have corresponding accessories can be classified, but not offer records that belong to other categories. Example categories that often have products with corresponding accessories include categories related to computers, video games, and electronics in general.
  • In some implementations, the offer processor 120 can heuristically classify a given offer by reading a title field of the offer to determine if the title includes words that are often associated with accessories. In some implementations, the classification can be based on the prior probabilities data in the data store 124. In some implementations, and/or in situations where no prior probabilities data is available (for example, the offer records are new and no prior probabilities data has yet been generated) the title field can be compared to a blacklist that includes words that are known to often be associated with accessories such as, e.g., “accessory”, “case”, “cartridge”, etc.
  • In some implementations, the offer processor 120 can also read the category field of the offer record to determine if the offer is a product or an accessory. If the corresponding category is, for example, specifically a category for accessories, the offer can be classified as an accessory. In some implementations, the output of the offer processor 120, upon the offer processor 120 completing a heuristic classification step, can be a classification output in a format including one line for each offer title word (for example, see the format shown in FIG. 5A). Offer title words can include, for example, significant words that are included in the title field of the offer records in the offer data store 116 omitting short words and stemming prefixes and/or suffixes from root words. A given offer record can include more than one title word in its title field such that multiple lines of the classification output format can correspond to a single offer record. The classification output format can also include the price of the offer record associated with the offer title word and an indication as to the heuristic classification (as product or accessory) of the offer record. For example, the classification indication can be a logical yes or no as to whether the offer record was classified as an accessory.
  • Following the heuristic classification, a price distribution of the offers placed in the products cluster and the offers placed in the accessories cluster is computed (204). Price distribution data can be stored in the distribution data store 122. The price distribution can be computed using, for example, the output of the classification step. For each unique title word in each cluster of the classification output, central tendency pricing data, such as a mean and standard deviation of the prices for that title word, can be computed. For example, the mean value and a standard deviation of the value in the price field for lines in the classification output that have a title word of “laptop” and a classification of “product” are computed. The mean and standard deviation of prices for lines having the title word “laptop” that are classified as “accessory” are also computed. In some implementations, the format of the generated price distribution data is a title word followed by the mean and standard deviation of prices of the product cluster, and the mean and standard deviation of prices of the accessory cluster (for example see the format shown in FIG. 5B).
  • Title word listings extracted from the offer records are then reclassified based on the likelihood that the corresponding offer is a product offer or an accessory offer according to the price distribution data (206). The likelihood calculation can assume equal prior probabilities and a single Gaussian distribution for each corresponding accessory and product offer. For example, a title keyword “laptop” extracted from an offer record having a price of “53.99” can be compared to the price distribution data 506 shown in FIG. 5B for offers including the keyword “laptop”. The offer from which the keyword in row 504 corresponds can be classified as an accessory since, given the price distribution 506, it is more likely that the corresponding offer is for an accessory than a product.
  • Depending on iteration criteria, a check is performed to determine if the classification process is complete (208). The iteration criteria can be, for example, a number of title word listings that were reclassified based on the likelihood calculation. For instance, if this number is above a certain threshold, the process can return to 204 to recompute the price distributions using the reclassified clusters. Otherwise the process ends (210).
  • Distributions other than a price distribution can also be used to classify offers. For example, offers can be classified according to title unigram distribution and title word pairs distribution.
  • FIG. 2B is a flowchart of an example method for generating prior probabilities data from offer records. An offer keyword is read along with its corresponding classifications (216). For instance, the output of the classification process can be read (for example, see the format shown in FIG. 5A). For a given keyword (e.g. “cartridge”) the number of times the keyword is found to be associated with an accessory and the number of times the keyword is found to be associated with a product can be counted and used to compute a probability that the keyword is associated with an accessory (218). The computed probability can be stored with the keyword in the prior probabilities data (220). Prior probabilities data in the datastore 124 can be used, for example, by the query classifier 112 to classify a query as described below.
  • FIG. 3A is a flowchart of an example method 300 for processing results returned by a query. A query is received (302). A determination is made as to whether the query is related to a product (304). If the query is found to not be related to a product, results of the query are processed as if the query is for an accessory (306). If the query is found to be related to a product, the results of the query are processed as if the query is for a product (308).
  • In some implementations, the method 300 is performed by the query classifier 112 of the query processor 110. The determination as to whether a given query relates to a product can include, for example, comparing query keywords to words in the prior probabilities data in the datastore 124. In some implementations, the prior probabilities data includes a blacklist that includes words that have been found to have a high probability of being associated with accessories. Such a blacklist could include, for example, words such as “accessory”, “case”, and “cartridge”.
  • The determination can also include retrieving a set of results for the query and checking the category field of any offer record corresponding to a given result. If a threshold number of results in the results set correspond to offer records that belong to product related categories, the query can be determined to be a product query. In some implementations, the query classifier 112 can accept an input parameter that identifies a file that includes a list of product related categories.
  • The determination can also include checking a classification of offer records corresponding to results in the result set to determine if a large number of the offer records are classified as accessories. For example, if more than a threshold number of offer records corresponding to the results in the result set are classified as accessories, then the query can be determined to be an accessory query (and not a product query).
  • FIG. 3B is a flowchart of an example method 310 for determining if a query should be processed as a product query. In some implementations the method 310 is performed by the query classifier 112 of the query processor 110. The query keywords of a received query are analyzed to determine if they are indicative of an accessory query. For example, the query keywords can be compared to the prior probabilities data (312). If a probability calculation based on one or more query keywords and the prior probabilities data indicates that the query is an accessory query, a result set of the query is processed as if the query is for an accessory (314).
  • If the query is not found to be an accessory query, the number of results belonging to a product related category is compared to a threshold number (316). In some implementations, the query classifier 112 can accept an input parameter that identifies a file that includes a list of product related categories. The query classifier can also accept the threshold number as an input. For example, the threshold number and product related categories file can be given as command line inputs to a query classifier 112 executable file. If the threshold number of results belonging to product related categories is found, a result set of the query is processed as if the query is for a product (318). For example, if a set of results includes 200 results, the threshold number used can be 10. In this case, if there are 10 or more product related results in the set of 200 results, the query is classified as a product query.
  • If the threshold number of results belonging to product related categories is not met, the number of results in the result set that are classified as accessory offers is compared to a second threshold number (320). This threshold number can be provided as a command line input parameter as well. If the threshold number of results classified as accessories is met, the result set is processed as if the query is for an accessory (314). If the threshold number of results classified as accessories is not met, the result set is processed as if the query is for a product (314). For example, if a set of results includes 200 results, 195 can be used as the second threshold number. In this case, if 195 of the 200 results are accessory related results, the query is classified as an accessory query.
  • In some implementations, a result set processed as if the query is for an accessory is processed normally without any modification to a ranking of the results in the results set based on the offers' classification as a product or accessory.
  • FIG. 4 is a flowchart of an example method 400 for processing a result set for a product query. In some implementations, the method 400 is performed by the result classifier 114 of the query processor 110. An offer result in the query results set is read (402). Words found in the offer result are compared to the prior probabilities data stored, for example, in the prior probabilities data store 124. If a comparison of the prior probabilities data and the keywords included in the offer indicates that the offer result is an accessory, the offer result is demoted (408). In some implementations, the prior probabilities data includes a blacklist that includes words known to be associated with accessories. If an offer result includes a blacklisted word (for example, in its title, and/or in its description) the offer result is demoted.
  • If comparison of the prior probabilities data with the offer result does not indicate that the offer result in an accessory offer, the likelihood that the offer result is an accessory based on the corresponding price of the offer result and the distribution data is computed (404). In some implementations, computing the likelihood that the offer result is an accessory includes computing a likelihood ratio of products and accessories according to the following:

  • P TOTAL=log(Pr[price|keyword1,accessory])−log(Pr[price|keyword1,product])+log(Pr[price|keyword2,accessory])−log(Pr[price|keyword2,product]) . . . log(Pr[price|keywordn,accessory])−log(Pr[price|keywordn,product])
  • Where the query includes the keywords:

  • keyword1 keyword2 . . . keywordn,

  • and

  • Pr[price|keywordn,product]
  • is the probability that a given offer result is a product offer based on the offer result's price and the product mean and product standard deviation of the nth keyword in the query, and

  • Pr[price|keywordn,accessory]
  • is the probability that a given offer result is an accessory offer based on the offer result's price and the accessory mean and accessory standard deviation of the nth keyword in the query.
  • If the computed value of PTOTAL is greater than a threshold value (1 for example), the offer result is classified as an accessory, and otherwise it is classified as a product. The probabilities Pr[price|keywordn, product] can be computed by assuming a Gaussian distribution using the parameters from the distribution data stored, for example in the data store 122 (i.e. the output of the process 200 described with respect to FIG. 2).
  • If the offer result is not found to be an accessory, the offer result is not demoted, and the next offer result in the result set is read (402). If the offer result is found to be an accessory, the offer result is demoted (408). In some implementations, the results in the result set include an initial ranking. If the offer result is found to be an accessory, the offer result is demoted by decreasing this initial ranking. Demotion of accessory results lowers the ranking of these results to move them down the ranked list of the results set. Product results are not demoted so that product results appear earlier in the ranked list than accessory results.
  • Although the above disclosure describes demoting accessory results of a query classified as a product query to move these results lower in a list of ranked results, product results can, alternatively, be promoted to move product results higher in a list of ranked results. For example, an initial rank of product results for a product query can be increased in rank by a constant amount to move these results toward the top of a list of ranked results.
  • In some implementations, if a query is determined to be an accessory query, rather than a product query as described above, by the query classifier 112, the result classifier 114 of the query processor 110 can demote any results determined to be product results or, alternatively, promote accessory results.
  • FIG. 5A shows example output records 500 of an intermediate preprocessing step. The records include a keyword field, a Boolean field that indicates whether the corresponding offer is classified as an accessory or not, and a price field. Example record 502 is classified as a product, and example record 504 is classified as an accessory. These records can be output, for example, by the heuristic classification and/or the reclassification operations of the method 200.
  • FIG. 5B shows an example price distribution output record 506. The example record 506 includes a keyword field followed by four floating point numbers. These numbers correspond to, in order: the mean price of offer records classified as products that include the indicated keyword in their titles, the standard deviation of offer records classified as products that include the indicated keyword in their titles, the mean price of offer records classified as accessories that include the indicated keyword in their titles, and the standard deviation of offer records classified as accessories that include the indicated keyword in their titles.
  • Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus. The tangible program carrier can be a propagated signal or a computer-readable medium. The propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them.
  • The term “data processing apparatus” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
  • A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices.
  • Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
  • Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
  • Particular embodiments of the subject matter described in this specification have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.

Claims (35)

1. A computer implemented method comprising:
receiving a query from a client device;
identifying a set of ranked results corresponding to the query from a corpus of offer data;
classifying the query as a product query or an accessory query;
if the query is classified as a product query:
for each result in the set of ranked results, determining if the result is an accessory result;
if the result is an accessory result, demoting the rank of the result in a set of modified ranked results; and
sending to the client device at least a subset of highest ranked results in the modified ranked results in response to the query.
2. The method of claim 1, wherein determining if a result is an accessory result comprises:
comparing keywords of the result to an accessory blacklist; and
classifying the result as an accessory result if keywords of the result are found in the accessory blacklist.
3. The method of claim 1, wherein:
determining if a result is an accessory result comprises determining likelihood score based on query keywords and keyword price distribution data determined from the corpus of offer data.
4. The method of claim 3, wherein the likelihood score is a log likelihood ratio score of product prices and accessory prices.
5. The method of claim 4, wherein the likelihood ratio score is determined according to:

P TOTAL=log(Pr[price|keyword1,accessory])−log(Pr[price|keyword1,product])+log(Pr[price|keyword2,accessory])−log(Pr[price|keyword2,product]) . . . log(Pr[price|keywordn,accessory])−log(Pr[price|keywordn,product]),
wherein:
keyword1, keyword2, through keywordn, are the query keywords;
Pr [price|keywordn, product] is a probability that a given result is a product result based on a result price and a product price mean and product price standard deviation of an nth keyword in the query;
Pr [price|keywordn, accessory] is a probability that a given result is an accessory result based on the result price and an accessory price mean and an accessory price standard deviation of the nth keyword in the query; and
the result is determined to be an accessory result if PTOTAL is greater than a threshold score.
6. The method of claim 3, further comprising:
determining the keyword price distribution data from the corpus of offer data.
7. The method of claim 6, wherein determining the keyword price distribution data from the corpus of offer data comprises:
classifying offers in the corpus of offer data as product offers and accessory offers;
determining a product price mean and a product price standard deviation for offer keywords of product offers; and
determining an accessory price mean and an accessory price standard deviation for offer keywords of accessory offers.
8. The method of claim 6, wherein determining the keyword price distribution data from the corpus of offer data comprises:
heuristically classifying offers in the corpus of offer data as product offers and accessory offers;
determining price distributions for offer keywords corresponding to offers classified as accessory offers;
determining price distributions for offer keywords corresponding to offers classified as product offers; and
reclassifying the offers based on a determined likelihood that a given offer is a product offer or an accessory offer according to the price of the offer and the determined price distributions.
9. The method of claim 8, wherein determining the keyword price distribution data from the corpus of offer data further comprises:
until a number of reclassified offers is below a threshold number:
determining price distributions for offer keywords corresponding to offers classified as accessory offers;
determining price distributions for offer keywords corresponding to offers classified as product offers; and
reclassifying the offers based on a determined likelihood that a given offer is a product offer or an accessory offer according to the price of the offer and the determined price distributions.
10. The method of claim 8, wherein the price distributions are Gaussian distributions.
11. The method of claim 1, wherein classifying the query as a product query or an accessory query comprises:
comparing query keywords to an accessory blacklist;
classifying the query as an accessory query if query keywords are found in the accessory blacklist.
12. The method of claim 1, wherein classifying the query as a product query or an accessory query comprises:
if a threshold number of results are classified as accessory offers according to a classification operation, classifying the query as an accessory query.
13. The method of claim 12, wherein the previous classification operation comprises:
heuristically classifying offers in the corpus of offer data as product offers and accessory offers;
determining price distributions for offer keywords corresponding to offers classified as accessory offers;
determining price distributions for offer keywords corresponding to offers classified as product offers; and
reclassifying the offers based on a determined likelihood that a given offer is a product offer or an accessory offer according to the price of the offer and the determined price distributions.
14. A system comprising:
one or more processing devices; and
software stored on a computer readable medium comprising instructions executable by the one or more processing devices and upon such execution cause the one or more processing devices to perform operations comprising:
receive a query;
identify a set of ranked results corresponding to the query from a corpus of offer data;
classify the query as a product query or an accessory query;
if the query is classified as a product query:
for each result in the set of ranked results, determining if the result is an accessory result; and
if the result is an accessory result, demoting the rank of the result in a set of modified ranked results, and
the front end processor further operable to send at least a subset of highest ranked results in the modified ranked results to the client device in response to the query.
15. The system of claim 14, wherein determining if a result is an accessory result comprises:
comparing keywords of the result to an accessory blacklist; and
classifying the result as an accessory result if keywords of the result are found in the accessory blacklist.
16. The method of claim 14, wherein:
determining if a result is an accessory result comprises determining a likelihood score based on query keywords and keyword price distribution data determined from the corpus of offer data.
17. The method of claim 16, wherein the likelihood score is a log likelihood ratio score of products prices and accessory prices.
18. The method of claim 17, wherein the likelihood ratio score is determined according to:

P TOTAL=log(Pr[price|keyword1,accessory])−log(Pr[price|keyword1,product])+log(Pr[price|keyword2,accessory])−log(Pr[price|keyword2,product]) . . . log(Pr[price|keywordn,accessory])−log(Pr[price|keywordn,product]),
wherein:
keyword1, keyword2, through keywordn are the query keywords;
Pr [price|keywordn, product] is a probability that a given result is a product result based on a result price and a product price mean and a product price standard deviation of an nth keyword in the query;
Pr [price|keywordn, accessory] is a probability that a given result is an accessory result based on the result price and an accessory price mean and an accessory price standard deviation of the nth keyword in the query; and
the result is determined to be an accessory result if PTOTAL is greater than a threshold score.
19. The system of claim 18, further comprising an offer processor operable to determine the keyword price distribution data from the corpus of offer data.
20. The system of claim 19, wherein determining the keyword price distribution data from the corpus of offer data comprises:
classifying offers in the corpus of offer data as product offers and accessory offers;
determining a product price mean and a product price standard deviation for offer keywords of product offers; and
determining an accessory price mean and an accessory price standard deviation for offer keywords of accessory offers.
21. The system of claim 19, wherein determining the keyword price distribution data from the corpus of offer data comprises:
heuristically classifying offers in the corpus of offer data as product offers and accessory offers;
determining price distributions for offer keywords corresponding to offers classified as accessory offers;
determining price distributions for offer keywords corresponding to offers classified as product offers; and
reclassifying the offers based on a determined likelihood that a given offer is a product offer or an accessory offer according to the price of the offer and the determined price distributions.
22. The system of claim 21, wherein determining the keyword price distribution data from the corpus of offer data further comprises:
until a number of reclassified offers are below a threshold number:
determining price distributions for offer keywords corresponding to offers classified as accessory offers;
determining price distributions for offer keywords corresponding to offers classified as product offers; and
reclassifying the offers based on a determined likelihood that a given offer is a product offer or an accessory offer according to the price of the offer and the determined price distributions.
23. The system of claim 21, wherein the price distributions are Gaussian distributions.
24. The system of claim 14, wherein classifying the query as a product query or an accessory query comprises:
comparing query keywords to an accessory blacklist;
classifying the query as an accessory query if query keywords are found in the accessory blacklist.
25. The system of claim 14, wherein classifying the query as a product query or an accessory query comprises:
if a threshold number of results are classified as accessory offers according to a classification operation, classifying the query as an accessory query.
26. The system of claim 25, further comprising an offer processor operable to perform the classification operation, the previous classification operation comprising:
heuristically classifying offers in the corpus of offer data as product offers and accessory offers;
determining price distributions for offer keywords corresponding to offers classified as accessory offers;
determining price distributions for offer keywords corresponding to offers classified as product offers;
reclassifying the offers based on a determined likelihood that a given offer is a product offer or an accessory offer according to the price of the offer and the determined price distributions.
27. A computer implemented method comprising:
receiving a query from a client device;
classifying the query as a product query or an accessory query;
if the query is classified as a product query:
identifying a set of ranked results corresponding to the product query from a corpus of offer data, where a rank of a result is selectively modified based on whether the result is classified as a product result or an accessory result, such classification being based at least in part on price distribution of the offer data.
28. The method of claim 27, wherein selectively modifying a rank of a result based on whether the result is classified as a product result of an accessory result comprises demoting a rank of a result classified as an accessory.
29. The method of claim 27, wherein selectively modifying a rank of a result based on whether the result is classified as a product result of an accessory result comprises promoting a rank of a result classified as a product.
30. The method of claim 27, wherein:
a result is classified as a product result or an accessory result according to a likelihood score based on query keywords and keyword price distribution data determined from the corpus of offer data.
31. The method of claim 30, wherein the likelihood score is a log likelihood ratio score of product prices and accessory prices.
32. The method of claim 31, wherein the likelihood ratio score is determined according to:

P TOTAL=log(Pr[price|keyword1,accessory])−log(Pr[price|keyword1,product])+log(Pr[price|keyword2,accessory])−log(Pr[price|keyword2,product]) . . . log(PR[price|keyword n,accessory])−log(Pr[price|keywordn,product]),
wherein:
keyword1, keyword2, through keywordn, are the query keywords;
Pr [price|keywordn, product] is a probability that a given result is a product result based on a result price and a product price mean and product price standard deviation of an nth keyword in the query;
Pr [price|keywordn, accessory] is a probability that a given result is an accessory result based on the result price and an accessory price mean and an accessory price standard deviation of the nth keyword in the query; and
the result is determined to be an accessory result if PTOTAL is greater than a threshold score.
33. A computer implemented method comprising:
classifying offers from a corpus of offer data into a cluster of product offers and a cluster of accessory offers;
computing a price distribution of the cluster of product offers;
computing a price distribution of the cluster of accessory offers;
classifying title word listings associated with the offers based on a likelihood that the offer belongs to a cluster according to the price distributions.
34. The method of claim 33, wherein classifying offers from a corpus of offer data into a cluster of product offers and a cluster of accessory offers comprises:
heuristically classifying offers in the corpus of offer data as product offers and accessory offers;
determining price distributions for offer keywords corresponding to offers classified as accessory offers;
determining price distributions for offer keywords corresponding to offers classified as product offers; and
reclassifying the offers based on a determined likelihood that a given offer is a product offer or an accessory offer according to the price of the offer and the determined price distributions.
35. The method of claim 34, wherein classifying offers from a corpus of offer data into a cluster of product offers and a cluster of accessory offers further comprises:
until a number of reclassified offers is below a threshold number:
determining price distributions for offer keywords corresponding to offers classified as accessory offers;
determining price distributions for offer keywords corresponding to offers classified as product offers; and
reclassifying the offers based on a determined likelihood that a given offer is a product offer or an accessory offer according to the price of the offer and the determined price distributions.
US12/199,795 2007-08-27 2008-08-27 Distinguishing accessories from products for ranking search results Abandoned US20090076927A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/199,795 US20090076927A1 (en) 2007-08-27 2008-08-27 Distinguishing accessories from products for ranking search results
US14/790,893 US10354308B2 (en) 2007-08-27 2015-07-02 Distinguishing accessories from products for ranking search results

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US96830207P 2007-08-27 2007-08-27
US12/199,795 US20090076927A1 (en) 2007-08-27 2008-08-27 Distinguishing accessories from products for ranking search results

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/790,893 Continuation US10354308B2 (en) 2007-08-27 2015-07-02 Distinguishing accessories from products for ranking search results

Publications (1)

Publication Number Publication Date
US20090076927A1 true US20090076927A1 (en) 2009-03-19

Family

ID=39877846

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/199,795 Abandoned US20090076927A1 (en) 2007-08-27 2008-08-27 Distinguishing accessories from products for ranking search results
US14/790,893 Expired - Fee Related US10354308B2 (en) 2007-08-27 2015-07-02 Distinguishing accessories from products for ranking search results

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/790,893 Expired - Fee Related US10354308B2 (en) 2007-08-27 2015-07-02 Distinguishing accessories from products for ranking search results

Country Status (3)

Country Link
US (2) US20090076927A1 (en)
EP (1) EP2191401A1 (en)
WO (1) WO2009029689A1 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100121856A1 (en) * 2008-11-11 2010-05-13 Nec (China) Co., Ltd. Method and apparatus for generating index as well as search method and search apparatus
WO2011075488A1 (en) * 2009-12-15 2011-06-23 Ebay Inc. Systems and methods to generate and utilize a synonym dictionary
US8280760B1 (en) * 2010-04-30 2012-10-02 Intuit Inc. Generating pricing estimates
US20140172815A1 (en) * 2012-12-18 2014-06-19 Ebay Inc. Query expansion classifier for e-commerce
US20140289071A1 (en) * 2011-07-01 2014-09-25 Amazon Technologies, Inc. Automatic product groupings for merchandising
JP2015518220A (en) * 2012-05-22 2015-06-25 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited Online product search method and system
US9201929B1 (en) 2013-08-09 2015-12-01 Google, Inc. Ranking a search result document based on data usage to load the search result document
US9223779B2 (en) 2010-11-22 2015-12-29 Alibaba Group Holding Limited Text segmentation with multiple granularity levels
US20160378770A1 (en) * 2013-04-30 2016-12-29 Wal-Mart Stores, Inc. Training a classification model to predict categories
US10262129B1 (en) * 2015-11-02 2019-04-16 Shanit Gupta Dynamic password generator with fuzzy matching
US10354308B2 (en) 2007-08-27 2019-07-16 Google Llc Distinguishing accessories from products for ranking search results
US10366092B2 (en) 2013-04-30 2019-07-30 Walmart Apollo, Llc Search relevance
US10762145B2 (en) 2015-12-30 2020-09-01 Target Brands, Inc. Query classifier
US11080484B1 (en) * 2020-10-08 2021-08-03 Omniscient Neurotechnology Pty Limited Natural language processing of electronic records
EP3992813A1 (en) * 2020-11-03 2022-05-04 eBay Inc. Computer search engine ranking for accessory and sub-accessory requests

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055765B2 (en) * 2019-03-27 2021-07-06 Target Brands, Inc. Classification of query text to generate relevant query results
US20230316387A1 (en) * 2022-03-29 2023-10-05 Donde Fashion, Inc. Systems and methods for providing product data on mobile user interfaces

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020042793A1 (en) * 2000-08-23 2002-04-11 Jun-Hyeog Choi Method of order-ranking document clusters using entropy data and bayesian self-organizing feature maps
US6539353B1 (en) * 1999-10-12 2003-03-25 Microsoft Corporation Confidence measures using sub-word-dependent weighting of sub-word confidence scores for robust speech recognition
US20030088562A1 (en) * 2000-12-28 2003-05-08 Craig Dillon System and method for obtaining keyword descriptions of records from a large database
US20030195877A1 (en) * 1999-12-08 2003-10-16 Ford James L. Search query processing to provide category-ranked presentation of search results
US20050004889A1 (en) * 1999-12-08 2005-01-06 Bailey David R. Search engine system and associated content analysis methods for locating web pages with product offerings
US20060041548A1 (en) * 2004-07-23 2006-02-23 Jeffrey Parsons System and method for estimating user ratings from user behavior and providing recommendations
US20060161534A1 (en) * 2005-01-18 2006-07-20 Yahoo! Inc. Matching and ranking of sponsored search listings incorporating web search technology and web content
US20070061317A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Mobile search substring query completion
US20070168354A1 (en) * 2005-11-01 2007-07-19 Jorey Ramer Combined algorithmic and editorial-reviewed mobile content search results
US20070185865A1 (en) * 2006-01-31 2007-08-09 Intellext, Inc. Methods and apparatus for generating a search results model at a search engine
US20070282797A1 (en) * 2004-03-31 2007-12-06 Niniane Wang Systems and methods for refreshing a content display
US20070288431A1 (en) * 2006-06-09 2007-12-13 Ebay Inc. System and method for application programming interfaces for keyword extraction and contextual advertisement generation
US20080114721A1 (en) * 2006-11-15 2008-05-15 Rosie Jones System and method for generating substitutable queries on the basis of one or more features
US20080249876A1 (en) * 2007-04-06 2008-10-09 James Rice Method and system using distributions for making and optimizing offer selections
US20100179956A1 (en) * 2009-01-09 2010-07-15 Ravi Chandra Jammalamadaka Analyzing queries to generate product intention rules
US8271484B1 (en) * 1998-12-07 2012-09-18 A9.Com, Inc. Method and system for generation of hierarchical search results

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082426B2 (en) * 1993-06-18 2006-07-25 Cnet Networks, Inc. Content aggregation method and apparatus for an on-line product catalog
US20050021397A1 (en) * 2003-07-22 2005-01-27 Cui Yingwei Claire Content-targeted advertising using collected user behavior data
WO2006113597A2 (en) * 2005-04-14 2006-10-26 The Regents Of The University Of California Method for information retrieval
EP2191401A1 (en) 2007-08-27 2010-06-02 Google, Inc. Distinguishing accessories from products for ranking search results

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271484B1 (en) * 1998-12-07 2012-09-18 A9.Com, Inc. Method and system for generation of hierarchical search results
US6539353B1 (en) * 1999-10-12 2003-03-25 Microsoft Corporation Confidence measures using sub-word-dependent weighting of sub-word confidence scores for robust speech recognition
US20030195877A1 (en) * 1999-12-08 2003-10-16 Ford James L. Search query processing to provide category-ranked presentation of search results
US20050004889A1 (en) * 1999-12-08 2005-01-06 Bailey David R. Search engine system and associated content analysis methods for locating web pages with product offerings
US20020042793A1 (en) * 2000-08-23 2002-04-11 Jun-Hyeog Choi Method of order-ranking document clusters using entropy data and bayesian self-organizing feature maps
US20030088562A1 (en) * 2000-12-28 2003-05-08 Craig Dillon System and method for obtaining keyword descriptions of records from a large database
US20070282797A1 (en) * 2004-03-31 2007-12-06 Niniane Wang Systems and methods for refreshing a content display
US20060041548A1 (en) * 2004-07-23 2006-02-23 Jeffrey Parsons System and method for estimating user ratings from user behavior and providing recommendations
US20060161534A1 (en) * 2005-01-18 2006-07-20 Yahoo! Inc. Matching and ranking of sponsored search listings incorporating web search technology and web content
US20070061317A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Mobile search substring query completion
US20070168354A1 (en) * 2005-11-01 2007-07-19 Jorey Ramer Combined algorithmic and editorial-reviewed mobile content search results
US20070185865A1 (en) * 2006-01-31 2007-08-09 Intellext, Inc. Methods and apparatus for generating a search results model at a search engine
US20070288431A1 (en) * 2006-06-09 2007-12-13 Ebay Inc. System and method for application programming interfaces for keyword extraction and contextual advertisement generation
US20110055195A1 (en) * 2006-06-09 2011-03-03 Ebay Inc. System and method for application programming interfaces for keyword extraction and contextual advertisement generation
US20080114721A1 (en) * 2006-11-15 2008-05-15 Rosie Jones System and method for generating substitutable queries on the basis of one or more features
US20080249876A1 (en) * 2007-04-06 2008-10-09 James Rice Method and system using distributions for making and optimizing offer selections
US20100179956A1 (en) * 2009-01-09 2010-07-15 Ravi Chandra Jammalamadaka Analyzing queries to generate product intention rules

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10354308B2 (en) 2007-08-27 2019-07-16 Google Llc Distinguishing accessories from products for ranking search results
US8266137B2 (en) * 2008-11-11 2012-09-11 Nec (China) Co., Ltd. Method and apparatus for generating index as well as search method and search apparatus
US20100121856A1 (en) * 2008-11-11 2010-05-13 Nec (China) Co., Ltd. Method and apparatus for generating index as well as search method and search apparatus
WO2011075488A1 (en) * 2009-12-15 2011-06-23 Ebay Inc. Systems and methods to generate and utilize a synonym dictionary
US8700652B2 (en) 2009-12-15 2014-04-15 Ebay, Inc. Systems and methods to generate and utilize a synonym dictionary
US8280760B1 (en) * 2010-04-30 2012-10-02 Intuit Inc. Generating pricing estimates
US9223779B2 (en) 2010-11-22 2015-12-29 Alibaba Group Holding Limited Text segmentation with multiple granularity levels
US20140289071A1 (en) * 2011-07-01 2014-09-25 Amazon Technologies, Inc. Automatic product groupings for merchandising
US9811851B2 (en) * 2011-07-01 2017-11-07 Amazon Technologies, Inc. Automatic product groupings for merchandising
US9563665B2 (en) 2012-05-22 2017-02-07 Alibaba Group Holding Limited Product search method and system
JP2015518220A (en) * 2012-05-22 2015-06-25 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited Online product search method and system
US20140172815A1 (en) * 2012-12-18 2014-06-19 Ebay Inc. Query expansion classifier for e-commerce
US9135330B2 (en) * 2012-12-18 2015-09-15 Ebay Inc. Query expansion classifier for E-commerce
US20160378770A1 (en) * 2013-04-30 2016-12-29 Wal-Mart Stores, Inc. Training a classification model to predict categories
US10387436B2 (en) * 2013-04-30 2019-08-20 Walmart Apollo, Llc Training a classification model to predict categories
US10366092B2 (en) 2013-04-30 2019-07-30 Walmart Apollo, Llc Search relevance
US9672253B1 (en) 2013-08-09 2017-06-06 Google Inc. Ranking a search result document based on data usage to load the search result document
US9201929B1 (en) 2013-08-09 2015-12-01 Google, Inc. Ranking a search result document based on data usage to load the search result document
US10262129B1 (en) * 2015-11-02 2019-04-16 Shanit Gupta Dynamic password generator with fuzzy matching
US10762145B2 (en) 2015-12-30 2020-09-01 Target Brands, Inc. Query classifier
US11080484B1 (en) * 2020-10-08 2021-08-03 Omniscient Neurotechnology Pty Limited Natural language processing of electronic records
EP3992813A1 (en) * 2020-11-03 2022-05-04 eBay Inc. Computer search engine ranking for accessory and sub-accessory requests
US20220138826A1 (en) * 2020-11-03 2022-05-05 Ebay Inc. Computer Search Engine Ranking For Accessory And Sub-Accessory Requests
US11875390B2 (en) * 2020-11-03 2024-01-16 Ebay Inc. Computer search engine ranking for accessory and sub-accessory requests systems, methods, and manufactures

Also Published As

Publication number Publication date
US10354308B2 (en) 2019-07-16
EP2191401A1 (en) 2010-06-02
WO2009029689A1 (en) 2009-03-05
US20150310528A1 (en) 2015-10-29

Similar Documents

Publication Publication Date Title
US10354308B2 (en) Distinguishing accessories from products for ranking search results
US9117006B2 (en) Recommending keywords
US8566177B2 (en) User supplied and refined tags
US7657518B2 (en) Chaining context-sensitive search results
US20180046717A1 (en) Related entities
US10204121B1 (en) System and method for providing query recommendations based on search activity of a user base
US7451135B2 (en) System and method for retrieving and displaying information relating to electronic documents available from an informational network
US11036723B1 (en) Graphical user interface for recurring searches
US20090024612A1 (en) Full text query and search systems and methods of use
US20060173753A1 (en) Method and system for online shopping
US20060155751A1 (en) System and method for document analysis, processing and information extraction
US20070214133A1 (en) Methods for filtering data and filling in missing data using nonlinear inference
US7720721B1 (en) Method and system for analyzing user interaction to identify documents associated with dissimilar items that may contain synonyms
US8825641B2 (en) Measuring duplication in search results
US8713028B2 (en) Related news articles
US20200265491A1 (en) Dynamic determination of data facets
US20100042610A1 (en) Rank documents based on popularity of key metadata
US11682060B2 (en) Methods and apparatuses for providing search results using embedding-based retrieval
JP2014209376A (en) Application of advertisement source and key word set in online commercial transaction platform
WO2012044305A1 (en) Identification of events of interest

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SRIDHAR, SRINATH;GARG, ASHUTOSH;DHAMDHERE, KEDAR;AND OTHERS;REEL/FRAME:021964/0244;SIGNING DATES FROM 20081023 TO 20081120

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044142/0357

Effective date: 20170929