WO2001027816A1 - Shopping advisor component - Google Patents

Shopping advisor component Download PDF

Info

Publication number
WO2001027816A1
WO2001027816A1 PCT/US2000/028663 US0028663W WO0127816A1 WO 2001027816 A1 WO2001027816 A1 WO 2001027816A1 US 0028663 W US0028663 W US 0028663W WO 0127816 A1 WO0127816 A1 WO 0127816A1
Authority
WO
WIPO (PCT)
Prior art keywords
qualities
items
user
advisor
search
Prior art date
Application number
PCT/US2000/028663
Other languages
French (fr)
Inventor
Charles Paclat
Original Assignee
Bea Systems, Inc.
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 Bea Systems, Inc. filed Critical Bea Systems, Inc.
Priority to AU10919/01A priority Critical patent/AU1091901A/en
Publication of WO2001027816A1 publication Critical patent/WO2001027816A1/en

Links

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/02Marketing; Price estimation or determination; Fundraising
    • 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/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Definitions

  • a key part of most electronic commerce solutions involves the ability to quickly locate products and services and tailor content to each individual user or customer. This requires both product indexing and user profiling.
  • the present invention provides a mechanism by which a searchable product inventory can be matched with a customer's preference. It does so in a way that is simple for the programmer, scalable in design, and built upon an open systems architecture.
  • Normally search engines require a large amount of memory space to execute efficiently. This algorithm is designed to take advantage of the object caching built into the underlying platform such that it has a smaller footprint. Normally search engines count the number of instances of words in html documents and then cross reference by word count so that documents with the most number of word matches can be quickly found. The Advisor indexes the items in the various catalogs and makes them searchable by quality strings.
  • the present insertion has combined these two mechanisms into a single integrated solution called the Advisor or the Shopping Advisor component, which can be part of a suite of Enterprise Java Beans components that enable the rapid deployment of eCommerce Web Sites.
  • the Advisor can be part of a suite of Enterprise Java Beans components that enable the rapid deployment of eCommerce Web Sites.
  • other components in the suite can provide support for the management of user sessions and creation of customer orders.
  • an object of the present invention is to provide an Advisor, which generates a reverse index of items based on their qualities. This index allows the Advisor of the present invention to efficiently locate items with respect to the specified search criteria.
  • Figure 1 illustrates the process by which an Advisor of the present invention performs a search
  • Figure 2 is a static class diagram of an Advisor of the present invention in UML (Unified Modeling Language).
  • the Advisor is divided into two components; a searchable inventory, and a customer profile.
  • the searchable inventory is based on the Enterprise Java Beans Specification, 1.0 which is incorporated herein in its entirety built on the Enterprise Java Beans software architecture.
  • the Advisor of the present invention builds an index that is automatically cached when specific qualities are being requested from and searched for in the searchable database.
  • the programmer of the system can explicitly define the qualities of an item or provide a textual description that is parsed into a set of qualities.
  • a quality is defined to be a string and a ranking, or degree.
  • Searching is accomplished by taking a sampling of the items that are associated with each quality. Each time an item is matched the degree to which it matches that quality is added to its overall score. Upon completion of the sampling, the list is reordered in accordance with the total number of qualities matched and the overall score.
  • the search is configured by specifying the total number of qualities to be searched (referred to herein as quality depth), the total number of items sampled in each quality (referred to herein as item depth), the total number of suggestions to be returned, and if items must match all or some of the qualities requested.
  • quality depth the total number of qualities to be searched
  • item depth the total number of items sampled in each quality
  • item depth the total number of suggestions to be returned
  • This product indexing in the Advisor is implemented as a reverse index on the qualities of the objects being categorized. It implements a unique approach to sampling the index and returning a result that closely matches the search criteria.
  • the Advisor is built on top of the Enterprise Java Beans (EJB) industry standard and is designed to take advantage of its approach to distributed object transaction services. This makes the search algorithm simpler, more portable, and very space efficient.
  • the indexing and search mechanism further takes advantage of advanced Natural Language Processing technology. When objects are categorized, the Advisor will parse the textual description of the object and extract key words. These keywords are then normalized using a stemmer.
  • the user profiling is based on learning over time by averaging in information that is specified while searching and browsing. It can be used as the basis for locating a variety of contents. This can include product as well as other object types including advertising banners, securities, documents and image data. This tight integration between the search and the customer profile provides unique opportunities for creating very accurate matching of user preferences.
  • the Advisor is built using a powerful object oriented design methodologies that enables the creation of business components by the user.
  • the user models the components using a UML modeling tool, such as Rational Rose® from Rational Software Corporation, and the Advisor of the present invention generates the requisite Java source code that implements the modeled components.
  • UML Unified Modeling Language
  • the Advisor of the present invention is extensible, customizable, and configurable. Unlike most search products that are standalone and oriented towards documents, the Advisor is designed to work on heterogeneous objects of any type. By extending the Advisor, its behavior can be adapted to apply additional constraints on the input parameters and the result sets.
  • Extending the Advisor involves using the Smart Generator as described in pending U.S. Provisional Patent Application entitled “Smart Generator” filed October 10, 2000, which is incorporated herein in its entirety, to create a derived class of the Advisor that modifies its behavior, by overriding one of its methods or extending it to include new methods.
  • FIG. 1 there is illustrated an example where a collection of stuffed animals are indexed based on the type of the animal and its color.
  • the items 131-134 and their qualities, ItemQualities 100, are shown on the right.
  • the reverse index, ItemsByQuality 110 is shown on the left and consists of each quality and the list of items associated with it.
  • the items 121-129 in the collection of ItemsByQuality 110 are ranked in descending order based on the "degree" to which they possess a particular quality.
  • the simplest search involves a search based on a single quality, wherein the requested or desired quality is located in the collection of ItemsByQuality 110.
  • the items matching the desired quality are then gathered into a list of suggestions and returned to the requester or caller ("user").
  • the Advisor scores each item on the list of suggestions based on the total number of qualities matched and the accumulation of degrees. For example, if the user searches for something "red,” then the Advisor will return "Tabasco (1,97)" and "Splash (1,2),” wherein the results are represented by the notation: Item (number of qualities matched, accumulation of degrees).
  • the result Tabasco is ranked higher because its accumulation of degrees is higher, i.e., Tabasco has more red than Splash.
  • the Advisor can divide the search into multiple searches of single quality. That is, the Advisor interactively searches for items for each quality and gathers the matching items into a list of suggestions. If a matching item is not already included in the list of suggestions, the Advisor adds the item to the list of suggestions. Preferably, the Advisor sorts the list of suggestions by item so it can be quickly located. If the matching item is already on the list, the degree associated with the matching item is added to the current score (i.e., the degrees are accumulated) and the number of matching qualities is incremented by one.
  • the list is re-sorted in descending order based on the number of qualities that were matched and the total accumulated score. For example, if the user searches for something "red” and “yellow,” then the Advisor will return "Splash (2,97)" and “Tabasco (1,97)". In this case, the result Splash is ranked higher or is preferred because it has greater number of matching qualities than Tabasco. However, if the user refines the search to now include “red,” “yellow” and "bull,” the result Tabasco (2,197) will now ranked higher than the result Splash (2,97) because of its higher accumulation of degrees.
  • user can limit the scope of any search by specifying the number of qualities to be sampled and the number of items to be sampled within each quality.
  • the Advisor also considers the user's profile information, such as user's searching history, in searching for matching items (as discussed in detail herein).
  • the Advisor can limit the search to a certain maximum number of qualities and/or items to ensure that the search does not exceed certain reasonable period of lime. For example, in a large catalog containing hundreds items associated with each quality, it may be preferable for the Advisor to consider only the top N items.
  • the user can restrict the search so that the Advisor returns only items matching all of the specified qualities.
  • the Advisor may search for items using the methodologies (or algorithms) described herein for multiple qualities and then removing or filtering the items on the list that do not have all of the specified qualities.
  • the Advisor treats the additional qualities associated with the customer profile as optional searching criteria. That is, these optional searching criteria are not used to remove the items from the list but are used to refine or customize the search.
  • the user can specify a logical expression in their search to evaluate the qualities of the matching items, thereby permitting the user to specify complex queries.
  • the user can search for products that are "red but not bulls.”
  • such logical search capabilities are included in Advisor's profile matching methodologies or algorithms.
  • the Advisor explicitly performs this assignment by adding the qualities directly to the items. For example, the Advisor parses the textual description of the item and converts the parsed textual description to a list of qualities. In accordance with an embodiment of the present invention, the Advisor disregards a standard set of "stop” words and then "stems” the remaining words. It is appreciated that to a person of ordinary skill in the art, the "stop” words mean common words that provide no real descriptive content, i.e. "the”, “that", “a”, “and”, etc. "Stemming” is the process of normalizing words to a root such that they can be more easily searched.
  • the Advisor can stem or reduce the words “reddest”, “redder”, and “reddish” to its root adjective “red”, thereby reducing the number of redundant qualities and increasing the efficiency of the searches.
  • the Advisor can use a public domain stemming algorithm, such as one written by Michael Porter or any other known stemming and language processing techniques.
  • the Advisor can reduce normalized words to a common synonym, thereby reducing the over-all number of qualities (i.e., reducing the number of redundant qualities) and providing more effective searches.
  • the Advisor takes a snapshot of the qualities associated with a new item to be added to the index. This ensures that the index is properly administered by the Advisor when an item is updated or removed from the index (or system). Updating an item involves the Advisor creating a new list of qualities associated with the item and comparing the list of qualities with the stored list of qualities in ItemQualities 100. Accordingly, the Advisor adds the item to new qualities and removes the item from old qualities. Also, the Advisor may update the position of items in the ItemQualities 100 to reflect any changes in the degree of the qualities associated with the item, thereby enabling the Advisor to properly maintain the reverse index of items. To remove any item from the index, the Advisor traverses the list of qualities and then perform a linear search on each ItemQualities list to find and remove the item from the list.
  • the Advisor supports user profiling by maintaining a ranked list of qualities that a customer user may be interested in.
  • the profile list is accumulated over time through a process of observation.
  • the Advisor gradually learns the customer's preferences over time through inference.
  • the Advisor converts or translates these customer preferences into qualities, which can be used as default criteria for searching items. There are different methods for gathering these user profile characteristics.
  • the first approach is to record the qualities that are specified by the user when searching for items, i.e., user's searching history. For example, a customer that searches for "old movies" is likely to enjoy movies and old items, and accordingly such information is recorded by the Advisor for such customer.
  • the Advisor tracks and records the number of items the user searched for such quality in his/her profile.
  • a search list is sorted in descending order such that the most commonly referenced qualities remain high on the list.
  • the Advisor continuously updates the search list to reflect user's searching history.
  • Another approach involves averaging the qualities of items that a user requests additional information. While the customer may not be interested in all of the qualities, it is likely that they are interested in some of qualities for various unrelated reasons. For example, if a customer that searches for "western movies" and "romances" consistently selects movies that are also "old”, then the Advisor can infer that this customer also has a preference for "old” movies. Of course, when the customer purchases an "old" movie that is an even stronger indication of such interest. In such cases, the Advisor can learn all of the qualities of the item in question and qualities associated with the customer. The Advisor learns by applying each quality associated with the item to a profile list or information associated with the customer. Over time, the qualities frequently associated with items for all customers or a particular customer move to the top of the profile list, i.e., qualities are ranked or ordered based on their use. Accordingly, the accuracy of the profile list improves with more customers' searching and browsing.
  • the utilization of the user profile information by the Advisor in searching for item is one of the reasons why the Advisor is such a powerful search engine.
  • the qualities stored in the customer profile are used as secondary criteria by the Advisor to supplement user's search criteria.
  • the Advisor appends the qualities in the user's profile to the user's search criteria up to the specified maximum. For example, if the maximum depth of five qualities is used for a search, and if a customer specifies two search criteria and there are ten qualities in his/her customer or user profile, then the Advisor appends the top three qualities from the user's profile information to the user's two search criteria. That is, the search is now based on five search criteria encompassing two explicitly user specified qualities and the top of the first three qualities from the customer profile. This enables the Advisor to further rank and narrow the search results to provide more useful and meaningful results to the user
  • the Advisor is built on the Enterprise Java Beans (EJB) architecture, as specified in EJB 1.0 Specification, which is incorporated herein in its entirety using the design methodology of the Smart Generator.
  • This design methodology results in the creation of components that are easily customizable and extendable, thereby enabling various EJB methods to be changed, and additional behaviors and properties to be added to the components. For example, this is particularly useful with regard to the get suggestion methods.
  • the developer can extend the implementation of the Suggestions, i.e., the results of the query, to incorporate other sources of data or business logic to perform special analysis of the customer profile.
  • the Addltem can be changed such that an object is interrogated for special characteristics and such detected characteristics are then automatically added to the component.
  • the Advisor By taking advantage of the object pooling that is inherent in EJB, the Advisor retains the most commonly searched qualities in its memory, thereby reducing the number of retrievals from persistent storage. Further, the Advisor utilizes a high performance object database to improve its performance.
  • the Shopping Advisor 200 is a Stateful Session EJB that can be configured for a conversational interaction.
  • Stateful Session Beans is an EJB instance associated with a single chain and possess internal states.
  • the Stateful Session Beans need to handle Activation and Passivation.
  • Passivation is the process by which the state of a Bean is saved to persistent storage and then is swapped out.
  • Activation is the process by which the state of a Bean is restored by swapping it in from persistent storage.
  • the Shopping Advisor 200 has attributes that can be set once for a session and applied to each invocation of a getSuggestions methods. Also, the Shopping Advisor 200 has attributes to implement the business logic needed to maintain the index of suggestions.
  • the CustomerProfile 210 is an Entity EJB that maintains the persistent state of a customer's profile.
  • An Entity Bean represents information persistently stored in a database. Entity Beans are associated with database transactions, and may provide data access to multiple users. Since the data that an Entity Bean represents is persistent, Entity Beans survive server crashes (the server can reconstruct the Bean from the underlying data when it comes back online). In relational terms, an Entity Bean might represent an underlying database row, or a single SELECT result row.
  • an Entity Bean may represent a single object, with its associated attributes and relationships. That is the CustomerProfile 210 maintains a reference to the Customer Entity EJB and a collection of the qualities that that customer has previously shown an interest in.
  • OODB object-oriented database
  • the ItemsByQuality Entity EJB 220 representing a single entry in an index that maps the qualities to a collection of ItemsByDegrees 230, each of which refers to an item and the degree to which it possesses the quality.
  • the ItemQualities Entity EJB 240 maintains the snap shot of the qualities to properly maintain the index, as described herein.
  • Results of the search are returned in a Suggestions object 250, which are a collection of individual Suggestion objects and some methods for maintaining that list.
  • the Suggestion object is ordered by the number and degree of matching qualities. It is appreciated that one of ordinary skill in the art is knowledgeable about the various EJB classes and methods as detailed in the EJB 1.0 Specification or other Java documentation.

Abstract

A system and method is provided which allows item searches (200) based on the qualities of the items. Additionally, the system suggests items to a customer or user based on his/her profile information (210) that is learned by the system over time. The system learns about a customer's preferences and stores that information (210).

Description

SHOPPING ADVISOR COMPONENT
Background of the Invention
A key part of most electronic commerce solutions involves the ability to quickly locate products and services and tailor content to each individual user or customer. This requires both product indexing and user profiling.
There are many search engines and knowledge management tools, but none of these are built using the Enterprise Java Beans architecture. The present invention provides a mechanism by which a searchable product inventory can be matched with a customer's preference. It does so in a way that is simple for the programmer, scalable in design, and built upon an open systems architecture.
Normally search engines require a large amount of memory space to execute efficiently. This algorithm is designed to take advantage of the object caching built into the underlying platform such that it has a smaller footprint. Normally search engines count the number of instances of words in html documents and then cross reference by word count so that documents with the most number of word matches can be quickly found. The Advisor indexes the items in the various catalogs and makes them searchable by quality strings.
The present insertion has combined these two mechanisms into a single integrated solution called the Advisor or the Shopping Advisor component, which can be part of a suite of Enterprise Java Beans components that enable the rapid deployment of eCommerce Web Sites. For example, other components in the suite can provide support for the management of user sessions and creation of customer orders.
Objects and Summary of the Invention
Therefore, it is an object of the present invention is to provide an Advisor, which generates a reverse index of items based on their qualities. This index allows the Advisor of the present invention to efficiently locate items with respect to the specified search criteria.
It is another object of the present invention to provide the Advisor as aforesaid, which emphasizes the indexing of objects rather than specific html documents. It is a further object of the present invention to provide the Advisor as aforesaid, which is implemented using industry standard architecture, such as EJB, thereby enable the present invention to take advantage of the features of the underlying system architecture.
It is still further object of the present invention to provide the Advisor as aforesaid, which personalizes customer's shopping experience, suggests products and services based on customer profiles and buying patterns. That is, the Advisor of the present invention learns the profile of customer, thereby permitting accurate targeting of the offerings to the customer.
Various other objects, advantages and features of this invention will become readily apparent from the ensuing detailed description and the appended claim.
Brief Description of the Drawings
The following detailed description, given by way of example, and not intended to limit the present invention solely thereto, will best be understood in conjunction with the accompanying drawings in which:
Figure 1 illustrates the process by which an Advisor of the present invention performs a search; and
Figure 2 is a static class diagram of an Advisor of the present invention in UML (Unified Modeling Language).
Detailed Description of the Invention
The Advisor is divided into two components; a searchable inventory, and a customer profile. The searchable inventory is based on the Enterprise Java Beans Specification, 1.0 which is incorporated herein in its entirety built on the Enterprise Java Beans software architecture. The Advisor of the present invention builds an index that is automatically cached when specific qualities are being requested from and searched for in the searchable database. The programmer of the system can explicitly define the qualities of an item or provide a textual description that is parsed into a set of qualities. A quality is defined to be a string and a ranking, or degree. The qualities are "stemmed" and common words are discarded. Stemming is defined to be the process of reducing a word to a common form that is independent of tense. The user then adds the items to the Advisor, which causes the Advisor to create a reverse index of the items based on the qualities specified. That is, the items are stored sorted in descending order based on the ranking provided. Searching is accomplished by taking a sampling of the items that are associated with each quality. Each time an item is matched the degree to which it matches that quality is added to its overall score. Upon completion of the sampling, the list is reordered in accordance with the total number of qualities matched and the overall score. The search is configured by specifying the total number of qualities to be searched (referred to herein as quality depth), the total number of items sampled in each quality (referred to herein as item depth), the total number of suggestions to be returned, and if items must match all or some of the qualities requested. The customer profile is created by keeping a running total of the qualities being searched for, the qualities of the items for which related items are requested, and the qualities of items that are actually purchased.
This product indexing in the Advisor is implemented as a reverse index on the qualities of the objects being categorized. It implements a unique approach to sampling the index and returning a result that closely matches the search criteria. The Advisor is built on top of the Enterprise Java Beans (EJB) industry standard and is designed to take advantage of its approach to distributed object transaction services. This makes the search algorithm simpler, more portable, and very space efficient. The indexing and search mechanism further takes advantage of advanced Natural Language Processing technology. When objects are categorized, the Advisor will parse the textual description of the object and extract key words. These keywords are then normalized using a stemmer. The user profiling is based on learning over time by averaging in information that is specified while searching and browsing. It can be used as the basis for locating a variety of contents. This can include product as well as other object types including advertising banners, securities, documents and image data. This tight integration between the search and the customer profile provides unique opportunities for creating very accurate matching of user preferences.
Finally, the Advisor is built using a powerful object oriented design methodologies that enables the creation of business components by the user. The user models the components using a UML modeling tool, such as Rational Rose® from Rational Software Corporation, and the Advisor of the present invention generates the requisite Java source code that implements the modeled components. UML (Unified Modeling Language) is a general-purpose notational language for specifying and visualizing complex software, especially large, object-oriented projects. Accordingly, the Advisor of the present invention is extensible, customizable, and configurable. Unlike most search products that are standalone and oriented towards documents, the Advisor is designed to work on heterogeneous objects of any type. By extending the Advisor, its behavior can be adapted to apply additional constraints on the input parameters and the result sets. Extending the Advisor involves using the Smart Generator as described in pending U.S. Provisional Patent Application entitled "Smart Generator" filed October 10, 2000, which is incorporated herein in its entirety, to create a derived class of the Advisor that modifies its behavior, by overriding one of its methods or extending it to include new methods.
All of these features together make the Advisor the most powerful search and profiling engine available. Indexing and Searching
Turning now to Figure 1 , there is illustrated an example where a collection of stuffed animals are indexed based on the type of the animal and its color. The items 131-134 and their qualities, ItemQualities 100, are shown on the right. The reverse index, ItemsByQuality 110, is shown on the left and consists of each quality and the list of items associated with it. The items 121-129 in the collection of ItemsByQuality 110 are ranked in descending order based on the "degree" to which they possess a particular quality.
The simplest search involves a search based on a single quality, wherein the requested or desired quality is located in the collection of ItemsByQuality 110. The items matching the desired quality are then gathered into a list of suggestions and returned to the requester or caller ("user"). The Advisor scores each item on the list of suggestions based on the total number of qualities matched and the accumulation of degrees. For example, if the user searches for something "red," then the Advisor will return "Tabasco (1,97)" and "Splash (1,2)," wherein the results are represented by the notation: Item (number of qualities matched, accumulation of degrees). Although, both results matched the single search criteria, the result Tabasco is ranked higher because its accumulation of degrees is higher, i.e., Tabasco has more red than Splash.
However, a search based on multiple qualities is more complex. In accordance with an embodiment of the present invention, the Advisor can divide the search into multiple searches of single quality. That is, the Advisor interactively searches for items for each quality and gathers the matching items into a list of suggestions. If a matching item is not already included in the list of suggestions, the Advisor adds the item to the list of suggestions. Preferably, the Advisor sorts the list of suggestions by item so it can be quickly located. If the matching item is already on the list, the degree associated with the matching item is added to the current score (i.e., the degrees are accumulated) and the number of matching qualities is incremented by one. When all of the qualities and items have been iterated, the list is re-sorted in descending order based on the number of qualities that were matched and the total accumulated score. For example, if the user searches for something "red" and "yellow," then the Advisor will return "Splash (2,97)" and "Tabasco (1,97)". In this case, the result Splash is ranked higher or is preferred because it has greater number of matching qualities than Tabasco. However, if the user refines the search to now include "red," "yellow" and "bull," the result Tabasco (2,197) will now ranked higher than the result Splash (2,97) because of its higher accumulation of degrees.
In accordance with an embodiment of the present invention, user can limit the scope of any search by specifying the number of qualities to be sampled and the number of items to be sampled within each quality. Preferably, the Advisor also considers the user's profile information, such as user's searching history, in searching for matching items (as discussed in detail herein). Also, the Advisor can limit the search to a certain maximum number of qualities and/or items to ensure that the search does not exceed certain reasonable period of lime. For example, in a large catalog containing hundreds items associated with each quality, it may be preferable for the Advisor to consider only the top N items.
In accordance with an embodiment of the present invention, the user can restrict the search so that the Advisor returns only items matching all of the specified qualities. For example, the Advisor may search for items using the methodologies (or algorithms) described herein for multiple qualities and then removing or filtering the items on the list that do not have all of the specified qualities. In such cases, the Advisor treats the additional qualities associated with the customer profile as optional searching criteria. That is, these optional searching criteria are not used to remove the items from the list but are used to refine or customize the search. In accordance with another embodiment of the present invention, the user can specify a logical expression in their search to evaluate the qualities of the matching items, thereby permitting the user to specify complex queries. For example, the user can search for products that are "red but not bulls." Preferably, such logical search capabilities are included in Advisor's profile matching methodologies or algorithms.
One of the important factors in building the index is the ability to assign qualities to the items using natural language processing. The Advisor explicitly performs this assignment by adding the qualities directly to the items. For example, the Advisor parses the textual description of the item and converts the parsed textual description to a list of qualities. In accordance with an embodiment of the present invention, the Advisor disregards a standard set of "stop" words and then "stems" the remaining words. It is appreciated that to a person of ordinary skill in the art, the "stop" words mean common words that provide no real descriptive content, i.e. "the", "that", "a", "and", etc. "Stemming" is the process of normalizing words to a root such that they can be more easily searched. For example, the Advisor can stem or reduce the words "reddest", "redder", and "reddish" to its root adjective "red", thereby reducing the number of redundant qualities and increasing the efficiency of the searches. The Advisor can use a public domain stemming algorithm, such as one written by Michael Porter or any other known stemming and language processing techniques.
Alternatively, the Advisor can reduce normalized words to a common synonym, thereby reducing the over-all number of qualities (i.e., reducing the number of redundant qualities) and providing more effective searches.
To maintain the index current, the Advisor takes a snapshot of the qualities associated with a new item to be added to the index. This ensures that the index is properly administered by the Advisor when an item is updated or removed from the index (or system). Updating an item involves the Advisor creating a new list of qualities associated with the item and comparing the list of qualities with the stored list of qualities in ItemQualities 100. Accordingly, the Advisor adds the item to new qualities and removes the item from old qualities. Also, the Advisor may update the position of items in the ItemQualities 100 to reflect any changes in the degree of the qualities associated with the item, thereby enabling the Advisor to properly maintain the reverse index of items. To remove any item from the index, the Advisor traverses the list of qualities and then perform a linear search on each ItemQualities list to find and remove the item from the list.
User Profiling
The Advisor supports user profiling by maintaining a ranked list of qualities that a customer user may be interested in. The profile list is accumulated over time through a process of observation. The Advisor gradually learns the customer's preferences over time through inference. The Advisor converts or translates these customer preferences into qualities, which can be used as default criteria for searching items. There are different methods for gathering these user profile characteristics.
The first approach is to record the qualities that are specified by the user when searching for items, i.e., user's searching history. For example, a customer that searches for "old movies" is likely to enjoy movies and old items, and accordingly such information is recorded by the Advisor for such customer. Each time a user searches on a given quality, the Advisor tracks and records the number of items the user searched for such quality in his/her profile. Preferably, a search list is sorted in descending order such that the most commonly referenced qualities remain high on the list. Preferably, the Advisor continuously updates the search list to reflect user's searching history.
Another approach involves averaging the qualities of items that a user requests additional information. While the customer may not be interested in all of the qualities, it is likely that they are interested in some of qualities for various unrelated reasons. For example, if a customer that searches for "western movies" and "romances" consistently selects movies that are also "old", then the Advisor can infer that this customer also has a preference for "old" movies. Of course, when the customer purchases an "old" movie that is an even stronger indication of such interest. In such cases, the Advisor can learn all of the qualities of the item in question and qualities associated with the customer. The Advisor learns by applying each quality associated with the item to a profile list or information associated with the customer. Over time, the qualities frequently associated with items for all customers or a particular customer move to the top of the profile list, i.e., qualities are ranked or ordered based on their use. Accordingly, the accuracy of the profile list improves with more customers' searching and browsing.
Combining Searching and Profiling The utilization of the user profile information by the Advisor in searching for item is one of the reasons why the Advisor is such a powerful search engine. As noted herein, the qualities stored in the customer profile are used as secondary criteria by the Advisor to supplement user's search criteria. In accordance with an embodiment of the present invention, the Advisor appends the qualities in the user's profile to the user's search criteria up to the specified maximum. For example, if the maximum depth of five qualities is used for a search, and if a customer specifies two search criteria and there are ten qualities in his/her customer or user profile, then the Advisor appends the top three qualities from the user's profile information to the user's two search criteria. That is, the search is now based on five search criteria encompassing two explicitly user specified qualities and the top of the first three qualities from the customer profile. This enables the Advisor to further rank and narrow the search results to provide more useful and meaningful results to the user
Object Oriented Design and EJB The Advisor is built on the Enterprise Java Beans (EJB) architecture, as specified in EJB 1.0 Specification, which is incorporated herein in its entirety using the design methodology of the Smart Generator. This design methodology results in the creation of components that are easily customizable and extendable, thereby enabling various EJB methods to be changed, and additional behaviors and properties to be added to the components. For example, this is particularly useful with regard to the get suggestion methods. The developer can extend the implementation of the Suggestions, i.e., the results of the query, to incorporate other sources of data or business logic to perform special analysis of the customer profile. Preferably, the Addltem can be changed such that an object is interrogated for special characteristics and such detected characteristics are then automatically added to the component.
Most of the indices persist in the form of collections of Java classes, thereby making their retrieval very efficient. By taking advantage of the object pooling that is inherent in EJB, the Advisor retains the most commonly searched qualities in its memory, thereby reducing the number of retrievals from persistent storage. Further, the Advisor utilizes a high performance object database to improve its performance.
Turning now to Fig. 2, there is illustrated an UML (United Modeling Language) diagram describing the components of the Advisor in accordance with an embodiment of the present invention. The Shopping Advisor 200 is a Stateful Session EJB that can be configured for a conversational interaction. Stateful Session Beans is an EJB instance associated with a single chain and possess internal states. Hence, the Stateful Session Beans need to handle Activation and Passivation. Passivation is the process by which the state of a Bean is saved to persistent storage and then is swapped out. Activation is the process by which the state of a Bean is restored by swapping it in from persistent storage. That is, the Shopping Advisor 200 has attributes that can be set once for a session and applied to each invocation of a getSuggestions methods. Also, the Shopping Advisor 200 has attributes to implement the business logic needed to maintain the index of suggestions. The CustomerProfile 210 is an Entity EJB that maintains the persistent state of a customer's profile. An Entity Bean represents information persistently stored in a database. Entity Beans are associated with database transactions, and may provide data access to multiple users. Since the data that an Entity Bean represents is persistent, Entity Beans survive server crashes (the server can reconstruct the Bean from the underlying data when it comes back online). In relational terms, an Entity Bean might represent an underlying database row, or a single SELECT result row. In an object-oriented database (OODB), an Entity Bean may represent a single object, with its associated attributes and relationships. That is the CustomerProfile 210 maintains a reference to the Customer Entity EJB and a collection of the qualities that that customer has previously shown an interest in.
The ItemsByQuality Entity EJB 220 representing a single entry in an index that maps the qualities to a collection of ItemsByDegrees 230, each of which refers to an item and the degree to which it possesses the quality.
The ItemQualities Entity EJB 240 maintains the snap shot of the qualities to properly maintain the index, as described herein. Results of the search are returned in a Suggestions object 250, which are a collection of individual Suggestion objects and some methods for maintaining that list. Preferably, the Suggestion object is ordered by the number and degree of matching qualities. It is appreciated that one of ordinary skill in the art is knowledgeable about the various EJB classes and methods as detailed in the EJB 1.0 Specification or other Java documentation.
While the present invention has been particularly described with respect to the illustrated embodiment, it will be appreciated that various alterations, modifications and adaptations may be made based on the present disclosure, and are intended to be within the scope of the present invention. It is intended that the appended claims be interpreted as including the embodiments discussed above, those various alternatives, which have been described, and all equivalents thereto.

Claims

WHAT IS CLAIMED:
1. A computer based method of searching object database, comprising the steps of: receiving a search criteria consisting of one or more qualities from a user; appending said search criteria with one or more qualities associated with said user from a user profile information; searching the object database for items based on said search criteria, thereby matching items to said user's preferences.
2. The method of claim 1, further comprising the step of scoring said items based on said qualities received from said user.
3. The method of claim 1, wherein the step of appending appends a number of qualities associated said user as a function of a predetermined maximum number of qualities for a search.
4. The method of claim 1, further comprising the step of updating said user profile information with said qualities received from said user.
5. The method of claim 1, wherein the step of searching searches the object database for items matching at least one quality of said search criteria.
6. The method of claim 5, further comprising the step of updating said user profile information with matching items.
7. The method of claim 1, wherein the step of searching searches the object database for items matching all of said qualities of said search criteria.
8. The method of claim 7, further comprising the step of updating said user profile information with said matching items.
9. The method of claim 1, wherein said quality represents a string and a ranking or degree.
10. The method of claim 1, wherein said object database maintains a reverse index of items.
11. A computer based system for searching object database, comprising: a module for receiving a search criteria consisting of one or more qualities from a user; a module for appending said search criteria with one or more qualities associated with said user from a user profile information; a module for searching the object database for items based on said search criteria, thereby matching items to said user's preferences.
12. The system of claim 1 1, wherein said module for searching is operable to score said items based on said qualities received from said user.
13. The system of claim 11, wherein said module for appending is operable to append a number of qualities associated said user as a function of a predetermined maximum number of qualities for a search.
14. The system of claim 11, further comprising a module for updating said user profile information with said qualities received from said user.
15. The system of claim 11, wherein said module for searching is operable to search the object database for items matching at least one quality of said search criteria.
16. The system of claim 15, further comprising a module for updating said user profile information with matching items.
17. The system of claim 11, wherein said module for searching is operable to search the object database for items matching all of said qualities of said search criteria.
18. The system of claim 17, further comprising a module for updating said user profile information with said matching items.
19. The system of claim 11, wherein said quality represents a string and a ranking or degree.
20. The system of claim 11, wherein said object database maintains a reverse index of items.
PCT/US2000/028663 1999-10-12 2000-10-12 Shopping advisor component WO2001027816A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU10919/01A AU1091901A (en) 1999-10-12 2000-10-12 Shopping advisor component

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15875899P 1999-10-12 1999-10-12
US60/158,758 1999-10-12
US23891800P 2000-10-10 2000-10-10
US60/238,918 2000-10-10

Publications (1)

Publication Number Publication Date
WO2001027816A1 true WO2001027816A1 (en) 2001-04-19

Family

ID=26855355

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/028663 WO2001027816A1 (en) 1999-10-12 2000-10-12 Shopping advisor component

Country Status (2)

Country Link
AU (1) AU1091901A (en)
WO (1) WO2001027816A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023650A2 (en) * 2001-09-07 2003-03-20 Peter Krug Method and device for determining relevant objects
WO2004049210A1 (en) * 2002-11-28 2004-06-10 Bytalus Limited Query response system
WO2005052813A2 (en) * 2003-11-25 2005-06-09 Abb Technology Ag Generic product finder system and method
DE10357632A1 (en) * 2003-12-10 2005-07-28 Deutsche Telekom Ag A method, computer readable medium and web based communication system for guiding a user to at least one product
US9760933B1 (en) 2016-11-09 2017-09-12 International Business Machines Corporation Interactive shopping advisor for refinancing product queries
WO2017200971A1 (en) * 2016-05-16 2017-11-23 Peeractive, Inc. Performing a feature-based search and displaying an interactive dynamically updatable, multidimensional user interface

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740549A (en) * 1995-06-12 1998-04-14 Pointcast, Inc. Information and advertising distribution system and method
US5754939A (en) * 1994-11-29 1998-05-19 Herz; Frederick S. M. System for generation of user profiles for a system for customized electronic identification of desirable objects
US5918014A (en) * 1995-12-27 1999-06-29 Athenium, L.L.C. Automated collaborative filtering in world wide web advertising
US6009410A (en) * 1997-10-16 1999-12-28 At&T Corporation Method and system for presenting customized advertising to a user on the world wide web
GB2341700A (en) * 1998-05-21 2000-03-22 Ibm Parallel profile matching in a large scale webcasting system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754939A (en) * 1994-11-29 1998-05-19 Herz; Frederick S. M. System for generation of user profiles for a system for customized electronic identification of desirable objects
US5740549A (en) * 1995-06-12 1998-04-14 Pointcast, Inc. Information and advertising distribution system and method
US5918014A (en) * 1995-12-27 1999-06-29 Athenium, L.L.C. Automated collaborative filtering in world wide web advertising
US6009410A (en) * 1997-10-16 1999-12-28 At&T Corporation Method and system for presenting customized advertising to a user on the world wide web
GB2341700A (en) * 1998-05-21 2000-03-22 Ibm Parallel profile matching in a large scale webcasting system

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BUSINESS WEEK, no. 3388, 5 September 1994 (1994-09-05), pages 56 *
DATABASE BUSINESS WEEK [online] BERRY J. ET AL.: "Database marketing: A potent new tool for selling", XP002937548, Database accession no. 0595146 *
LOEB S.: "Architecting personalized delivery of multimedia information", JOURNAL OF THE ACM, vol. 35, no. 12, December 1992 (1992-12-01), pages 39 - 48, XP002937547 *
MORITA M.: "Information filtering based on user behavior and analysis and best match text retrieved", PROC. OF THE 17TH INTERNATIONAL CONFERENCE ON RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL SIGIR '94, July 1994 (1994-07-01), pages 272 - 281, XP002937545 *
SHETH B. ET AL.: "Evolving agents for personalized information filtering", PROC. OF THE 9TH IEEE CONFERENCE ON ARTIFICIAL INTELLIGENCE FOR APPLICATIONS, December 1993 (1993-12-01), pages 345 - 351, XP002937546 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023650A2 (en) * 2001-09-07 2003-03-20 Peter Krug Method and device for determining relevant objects
WO2003023650A3 (en) * 2001-09-07 2003-09-12 Peter Krug Method and device for determining relevant objects
DE10143940B4 (en) * 2001-09-07 2012-07-26 Peter Krug Method and device for determining relevant objects
WO2004049210A1 (en) * 2002-11-28 2004-06-10 Bytalus Limited Query response system
WO2005052813A2 (en) * 2003-11-25 2005-06-09 Abb Technology Ag Generic product finder system and method
WO2005052813A3 (en) * 2003-11-25 2006-03-23 Abb Technology Ag Generic product finder system and method
US7386562B2 (en) 2003-11-25 2008-06-10 Abb Technology Ag Generic product finder system and method
DE10357632A1 (en) * 2003-12-10 2005-07-28 Deutsche Telekom Ag A method, computer readable medium and web based communication system for guiding a user to at least one product
WO2017200971A1 (en) * 2016-05-16 2017-11-23 Peeractive, Inc. Performing a feature-based search and displaying an interactive dynamically updatable, multidimensional user interface
US9760933B1 (en) 2016-11-09 2017-09-12 International Business Machines Corporation Interactive shopping advisor for refinancing product queries

Also Published As

Publication number Publication date
AU1091901A (en) 2001-04-23

Similar Documents

Publication Publication Date Title
US6847963B1 (en) Method and system for appending search strings with user profile qualities
US8073840B2 (en) Querying joined data within a search engine index
US7346629B2 (en) Systems and methods for search processing using superunits
US7424486B2 (en) Selection of search phrases to suggest to users in view of actions performed by prior users
Bollacker et al. CiteSeer: An autonomous web agent for automatic retrieval and identification of interesting publications
US6920459B2 (en) System and method for context based searching of electronic catalog database, aided with graphical feedback to the user
US7881981B2 (en) Methods and computer readable media for determining a macro-context based on a micro-context of a user search
US7996393B1 (en) Keywords associated with document categories
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
US20040230461A1 (en) Methods and systems for enabling efficient retrieval of data from data collections
US20060095345A1 (en) System and method for an online catalog system having integrated search and browse capability
US20100076979A1 (en) Performing search query dimensional analysis on heterogeneous structured data based on relative density
US20070214154A1 (en) Data Storage And Retrieval
WO2001069428A1 (en) System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising
JP2007293896A (en) System and method for refining search queries
US7013300B1 (en) Locating, filtering, matching macro-context from indexed database for searching context where micro-context relevant to textual input by user
WO2001042880A2 (en) Search query refinement using related search phrases
US20050114317A1 (en) Ordering of web search results
US20120179540A1 (en) Method of finding commonalities within a database
US20090094212A1 (en) Natural local search engine
WO2001027816A1 (en) Shopping advisor component
Bhowmick et al. Web data management: a warehouse approach
WO2001055886A2 (en) System, method and database for classifying product information obtained from a computer network
Munilatha et al. A study on issues and techniques of web mining

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)