Source: http://www.google.com/patents/US7974888?ie=ISO-8859-1&dq=7,752,326
Timestamp: 2015-01-29 21:16:55
Document Index: 217849453

Matched Legal Cases: ['art 1', 'art 2', 'art 1', 'art1', 'art 2', 'art2']

Patent US7974888 - Services for providing item association data - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA service is disclosed for enabling web sites and other entities to provide item recommendations and other behavior-based content to end users. The service can be implemented as a web service that is remotely accessible over the Internet. Web sites use the web service's interface to report events descriptive...http://www.google.com/patents/US7974888?utm_source=gb-gplus-sharePatent US7974888 - Services for providing item association dataAdvanced Patent SearchPublication numberUS7974888 B2Publication typeGrantApplication numberUS 11/694,745Publication dateJul 5, 2011Filing dateMar 30, 2007Priority dateMar 30, 2007Also published asUS8275674, US8504441, US20080243631, US20110258085, US20130013749Publication number11694745, 694745, US 7974888 B2, US 7974888B2, US-B2-7974888, US7974888 B2, US7974888B2InventorsFrancis J. Kane, JR., Brent R. Smith, Jocelyn M. Miller, ShenbagaKumaran Srinivasan, Matthew T. TavisOriginal AssigneeAmazon Technologies, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (25), Non-Patent Citations (10), Referenced by (10), Classifications (19), Legal Events (1) External Links: USPTO, USPTO Assignment, EspacenetServices for providing item association dataUS 7974888 B2Abstract A service is disclosed for enabling web sites and other entities to provide item recommendations and other behavior-based content to end users. The service can be implemented as a web service that is remotely accessible over the Internet. Web sites use the web service's interface to report events descriptive of item-related actions performed by end users (e.g., item views, item purchases, searches for items, etc.). The web service analyzes the reported event data on an aggregated basis to detect various types of associations between particular items, and stores resulting datasets that map items to associated items. The web service's interface also provides various API calls for enabling the web sites to request item recommendations and other behavior-based content, including but not limited to personalized recommendations that are based on the event history of the target user. Advantageously, the web sites need not host the infrastructure for providing such content.
1. A system for outsourced generation of behavior-based content, the system comprising:
a computer system that comprises one or more computers that implement a service for generating behavior-based content for each of a plurality of web sites, the computer system programmed via service code to implement:
at least one event reporting interface that enables each of the web sites to report events to the service, including item viewing events in which a web site user selects a catalog item for viewing and item purchase events in which a web site user purchases a catalog item;
a data repository that stores event data descriptive of the events reported by the web sites, including the item viewing events and item purchase events;
an association mining system that analyzes the reported item viewing events and item purchase events in combination, on a site-by-site basis, and based thereon, generates, for each web site, a respective set of data values that reflect purchase tendencies of users who view particular items, each data value representing, for a respective item pair composed of a first catalog item and a second catalog item, a tendency of users who view the first catalog item to purchase the second catalog item;
a data retrieval interface that enables each web site to selectively retrieve, from its respective set of data values, the data values for particular catalog items, said data retrieval interface enabling each web site to expose said data values to users in association with the corresponding catalog items to thereby assist users in making purchase decisions; and
a billing component that determines, for each web site, a respective monetary amount to be charged for usage of the service, said monetary amounts being dependent upon actual levels of usage of the service.
2. The system of claim 1, wherein the data retrieval interface is configured to receive, from a server of a web site, a request that identifies a source item, and to respond to the request by returning (1) a list of items commonly purchased by users who view the source item, and (2) for each item in said list, a corresponding data value representing a tendency of users who view the source item to purchase the respective item.
3. The system of claim 1, wherein the event reporting interface and data retrieval interface are implemented as application program interfaces (APIs) of a web service specified by a web services description language (WSDL) specification.
4. The system of claim 1, wherein the computer system is further programmed to implement an event deletion API that enables each web site to request deletion of recorded event data by at least user identifier and item identifier.
5. The system of claim 1, wherein the computer system is further programmed to implement an API that enables each web site to specify an event type, and to obtain a list of the most popular items corresponding to the specified event type as determined from the recorded event data.
6. The system of claim 1, wherein the computer system is programmed to generate, for each web site, a respective item-association dataset that is based solely on the event data reported by the respective web site, each item-association dataset comprising a corresponding set of said data values.
7. The system of claim 1, wherein each data value at least approximately indicates what percentage, of those who made a purchase after viewing a particular first catalog item, purchased a particular second catalog item.
8. The system of claim 1, wherein the data values are conditional probability values.
9. The system of claim 1, in combination with a web site that reports events to the system via the event reporting interface and retrieves associated data values from the system via the data retrieval interface.
10. The system of claim 1, wherein the computer system is programmed to authenticate service calls received from the web sites via the event reporting and data retrieval interfaces.
11. A computer-implemented method of outsourced generation of behavior-based content, the method comprising:
providing a service for generating behavior-based content for each of a plurality of web sites, said service provided by a computer system that comprises one or more computers, said computer system being separate from each of said web sites;
providing at least one event reporting interface that enables each of the web sites to report events to the service, including item viewing events in which a web site user selects a catalog item for viewing and item purchase events in which a web site user purchases a catalog item;
storing, in a data repository of said computer system, event data descriptive of events, including the item viewing events and item purchase events, reported by each of the web sites via the at least one event reporting interface,
analyzing the reported item viewing events and item purchase events in combination, on a site-by-site basis, and based thereon, generating, for each web site, a respective set of data values that reflect purchase tendencies of users who view particular items, each data value representing, for a respective item pair composed of a first catalog item and a second catalog item, a tendency of users who view the first catalog item to purchase the second catalog item, said analyzing performed by said computer system;
providing a data retrieval interface that enables each web site to selectively retrieve, from its respective set of data values, the data values associated with particular catalog items, said data retrieval interface enabling each web site to expose said data values to its users in association with the corresponding catalog items to thereby assist users in making purchase decisions, said data retrieval interface implemented by said computer system; and
determining, for each web site, a respective monetary amount to be charged for usage of the service, said monetary amounts being dependent upon levels of actual usage of the service.
12. The method of claim 11, further comprising receiving, from a server of a web site, via the data retrieval interface, a request that identifies a source item, and responding to the request by returning (1) a list of items commonly purchased by users who view the source item, and (2) for each item in said list, a corresponding data value representing a tendency of users who view the source item to purchase the respective item.
13. The method of claim 11, wherein the event reporting interface and data retrieval interface are specified by a web services description language (WSDL) specification.
14. The method of claim 11, further comprising implementing, by said computer system, an event deletion interface that enables each web site to request deletion of recorded event data by at least user identifier and item identifier.
15. The method of claim 11, further comprising implementing, by said computer system, an API that enables each web site to specify an event type, and to obtain a list of popular items corresponding to the specified event type as determined from the recorded event data.
16. The method of claim 11, wherein the method comprises generating, for each web site, a respective item-association dataset that is based solely on the event data reported by the respective web site, each item-association dataset comprising a corresponding set of said data values.
17. The method of claim 11, wherein each data value at least approximately indicates what percentage, of users who made a purchase after viewing a particular first catalog item, purchased a particular second catalog item.
18. The method of claim 11, wherein the data values are conditional probability values.
19. The method of claim 11, further comprising, by said computer system, authenticating service calls received via the event reporting and data retrieval interfaces from the web sites.
TECHNICAL FIELD The present disclosure relates to computer-implemented services for detecting behavior-based associations between items, and for generating item recommendations.
BACKGROUND Relatively large and sophisticated web sites typically implement some form of personalization system to provide personalized content, such as personalized item recommendations, to their users. The personalization system typically monitors and records one or more types of item-related user activity such as item purchases, item viewing events, and/or item rentals, and analyzes the collected data to detect and quantify associations between particular items. When a user accesses a particular item, such as a particular product in a catalog of an e-commerce site, or an article on a news site, an appropriate message may be displayed notifying the user of related items (e.g., �people who bought this item also bought . . . ,� or �people who viewed this item also viewed . . . �). The personalization system may also generate personalized item recommendations that are based on a target user's purchase history, item viewing history, item ratings, and/or some other type of user data.
SUMMARY A service is disclosed for enabling web sites and other entities to provide item recommendations and other user-behavior-based content to end users. The service can be implemented, for example, as a web service that is remotely accessible over the Internet. Web sites use the web service's interface to report events descriptive of item-related actions performed by end users (e.g., item views, item purchases, searches for items, etc.). The web service analyzes the reported event data on an aggregated basis to detect various types of user-behavior-based associations between particular items, and stores resulting datasets that map items to associated items. The web service's interface also provides various API calls for enabling the web sites to request item recommendations and other behavior-based content, including but not limited to personalized recommendations that are based on the event history of the target user. Advantageously, the web sites need not host the infrastructure for providing such content.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 schematically illustrates one embodiment of a personalization web service in communication with external web sites;
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS I. Overview Embodiments of the present disclosure comprise a computer system and service for enabling operators of interactive computer systems (e.g., web sites) to provide behavior-based content, such as personalized item recommendations, to their users without having to provide the infrastructure for generating such content. In some embodiments, the service is implemented as a web service that is accessible over a public network such as the Internet. For purposes of illustration, the web service will be described in the context of web sites that use the web service to generate or select content to present to web site users. As will be recognized, however, web sites are merely one type of interactive computer system that can use the web service. Other examples include interactive television systems, online services networks, in-store kiosks, and systems that provide recommendations to users by email.
The web sites typically host electronic catalogs or repositories of items that are available for purchase, rent, download, subscription, viewing, and/or some other form of consumption. Examples include retailer web sites, music and video download sites, online travel reservation sites, news sites, auction sites, shopping portals, dating sites, social networking sites and sites that provide a combination of these functions. The web sites may use the web service to perform a variety of services, including but not limited to the following: (a) storing and maintaining user-specific event histories, such as item purchase histories, item viewing histories, item rental histories, and/or search histories, (b) analyzing these event histories to detect various types of associations between specific items, (c) generating personalized item recommendations for users, (d) generating �conditional probability� data, such as �5% of the users who made a purchase after viewing item A purchased item B,� which may be displayed on item detail pages, (e) generating and returning lists of the most popular items based on various metrics. The web service may advantageously provide these and other services without having any information (other than item identifiers, and possibly item types) about the particular items involved.
FIG. 1 illustrates one embodiment of the web service 100. The web service 100 comprises a combination of hardware and software for interacting with web sites 104 (and/or other types of clients of the web service) over the Internet. Each web site 104 comprises one or more physical servers or other computing devices (not shown) for receiving and responding to page requests received from browsers/computing devices of end users 106. In some instances, an end user 106 may be an automated agent or �bot� that emulates an actual user, or may be a group of individuals who share a computer.
The web sites 104 act as clients of the web service, and are thus referred to herein as �web service clients.� The operators of these web sites 104, and of other types of web service clients, are referred to generally as �web service users.� For purposes of discussion, it will be assumed (except where specified otherwise) that each web service client 104 corresponds uniquely to a particular web service user.
The data requests may include, for example, requests for lists of items that are related to a particular source item, and requests for personalized recommendations for a particular user. (Both of these types of item content are referred to herein generally as �recommendations�). According to some embodiments, the data requests are generated by the web sites 104 in response to page requests from end users 106. The web service's responses to these requests may be embodied in specific or general purpose languages, such as, among other languages, extensible markup language (XML). The requesting web site 104 typically parses the response, and uses the response to retrieve or generate HTML or other content for displaying the recommendations within the requested web page. For example, the requesting web site may translate an XML-based list of recommended items into an HTML sequence that displays descriptions of these items.
As depicted in FIG. 1, the requests 112A from the web sites 104 are received by a web services interface 102, which can, in some embodiments, perform authentication and/or metering/billing. According to some embodiments, for example, web service users can be billed for requests and/or for the storage of user data. In one embodiment, web service users are charged only for data requests from the web service 100, not for requests to store event data, or vice-versa. The web service interface 102 communicates the received requests 112A to a recommendation service 110 through a recommendation service interface 105. Although not shown in FIG. 1, the recommendation service 110 may itself comprise multiple distinct services, such as a data service that stores the reported event data, an association or �similarities� service that detects and stores data regarding item associations, and a personalized-recommendations service that uses information retrieved from the data and association services to generate personalized recommendations for specific end users 106. Item recommendations returned by the recommendation service may be filtered by the recommendation service interface 105 before being returned to the requesting web site 104, as described below.
FIG. 2A illustrates a typical configuration of a web site 104 that may use the web service 100. The web site 104 comprises a web server 200 that utilizes a web server application 202 (e.g. Apache web server) to generate and serve pages of the web site 104 to the computing devices of the end users 106. (The term �end user� is used herein to refer generally to both the end users themselves and to the computing devices of such users.) The web server 200 provides the end users 106 with access to an electronic repository 203 of items, such as an electronic catalog of items. (The term �item� is used interchangeably and collectively to refer to an actual item, such as a physical product, and a representation of that item in a computer.)
The items may, for example, comprise items which may be purchased via the web site 104. Examples include, but are not limited to, books, music and video titles in physical or downloadable form, consumer electronics products, household appliances, and magazines and other subscriptions. Other examples include articles, web sites, web pages, event tickets, DVDs available for rent, browse nodes, video clips, television shows, restaurants, web logs (�blogs�), users of a dating or social networking website, postings by users, and advertisements. The items may, but need not, be arranged within a hierarchy of browse categories or browse nodes.
As illustrated in FIG. 2A, the web site 104 may optionally maintain a data repository 205 of user event data or �histories.� For example, the web site 104 may maintain the purchase, rental, or item download history of each of its customers. Typically, however, the web site offloads the task of storing at least some types of events to the web service 100. The types of user-generated events that may be reported to and recorded by the web service 100 may include, for example, viewing items, purchasing items, renting items, downloading items, placing items in a virtual shopping cart, returning items, rating items, submitting comments on items, and keyword searches. Supplementary information regarding each such event may also be reported, such the type of the event, an identifier of the user (which may be a session ID if the user is unknown or unrecognized), and an identifier of the item.
In one embodiment, a web services description language (WSDL) file is used to specify the API. In general, WSDL describes the web locations at which the personalization web service may be accessed (e.g. URLs, ports) as well as a list of valid operations which can be performed and the structure for generating input requests 112A and interpreting output responses 112B. Additional detail regarding WSDL is available in the �Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language, W3C Working Draft 10 May 2005� document, dated May 10, 2005 and in the �Web Services Description Language (WSDL) Version 2.0 Part 2: Adjuncts, W3C Candidate Recommendation 27 Mar. 2006� document available at http://www.w3.org/TR/wsdl20-adjuncts/, each of which is incorporated herein by reference in its entirety.
As illustrated in FIG. 2B, requests to store event data are passed to an event data repository 300. Although shown as part of the recommendation service 110, a separate data service may be provided for storing the event data. Each reported event is ordinarily stored in association with the following: the web service client that reported the event, the end user 106 that generated the event, an identifier of the type of the event (e.g., purchase, view, rent, etc.), an item/item type identifier, and an event timestamp. The event timestamps may be used to purge �old� event data as needed, with different types of events optionally being retained for longer time periods than others. In one embodiment, the event histories repository is implemented as an Oracle database in combination with a cache.
The events that are reported to and analyzed by the web service may include search events in which an end user 106 submits a search query (typically a text string containing one or more search terms) to a web site's search engine. For such events, the search query may be treated as the �item.� In this regard, search events histories may be analyzed in substantially the same way as event histories in which the events correspond to particular catalog items. By including search events in the analysis, datasets can be generated that, e.g., map specific search queries to other types of items (e.g., articles or products), or that map search queries to related search queries. These datasets may, for example, be used by a particular web site 104 (via appropriate API calls) to, e.g., suggest catalog items that are related to one or more search queries submitted by a user, or to suggest alternative search queries that are related to a search query submitted by a user.
The results of the association analyses are stored in an item association database or repository 304. These results may take the form of item association datasets or mappings, which may be stored in data structures such as tables. In a preferred embodiment, the item association data comprises item-to-item mappings. Each mapping may generally be in the form of items determined to be the most closely related to a reference item. Different datasets may also be stored for different types of events. For example, one dataset may indicate those items that have been viewed the most frequently by those who have viewed specific items. Another dataset may indicate those items that have been purchased the most frequently by users who have viewed specific items. Yet another dataset may map specific search queries to the items most commonly purchased (or viewed, rented, etc.) by those who submit the search query. The various item-to-item mappings may optionally be stored together with scores indicative of the calculated degrees of association between the items, and may be accessible via an associations or �similarities� service as discussed above.
As depicted by the arrow connecting the item associations repository 304 to the recommendation service interface 105, some data requests can be serviced directly from the item associations database 304, without invoking the recommendations engine 306. This is the case where the request is merely a request for a list of items that are related to a specified item. Although these requests do not invoke the recommendation engine 306, the returned items are referred to herein as recommended items or �recommendations� since they are typically suggested to a user.
II. Example API Parameters An example set of parameters that may be included in web service requests 112A are described below. These parameters are illustrative, and may be varied significantly without departing from the scope of the invention.
User ID�a unique identifier for the end user 106. The user IDs reported by a given web service client to the web service 100 need not be the actual user IDs used by the web service client. For example, an appropriate encryption or ID transformation algorithm may be used to protect user privacy.
As another example, a given web site 104 can use a single user ID to report the events of a group or class of end users 106, such as all users falling in a particular geographic location. For instance, when a particular end user 106 initiates an event, the web site 104 could report the event twice�once in association with the user ID of the end user, and once in associate with the user ID of a group to which the end user belongs. The events reported at the group level can be used for various purposes, such as to obtain group-level recommendations, or to identify the items that are the most popular within a particular group.
Item ID�a unique identifier provided to the personalization web service by a web service client. The Item IDs may, but need not, be the same as those ordinarily used by the web service client, provided that each Item ID remains constant throughout the use of the personalization web service. Advantageously, a given web site/web service client may mask the �true� Item IDs to protect the privacy of the end users. This may be accomplished using an appropriate encryption algorithm or other ID transformation function. Item IDs need not be unique across web service users or clients; e.g., two different web service users can use the same Item ID to identify different items. In addition, as discussed below, Item IDs need not be unique across item types.
Item Type�an identifier of a type of an item. In one embodiment, both an Item ID and an Item Type are required to uniquely identify an item. Examples of item types that may be supported by the system include the following: Product, Browse Node, Advertisement, Article, AudioDownload, Bundle, Car, Comment, Document, Flight, Group, Hotel, Listing, Person, Post, Restaurant, Review, Service, VideoDownload, SearchQuery, WebSite, Journal, Poll, Deal. As with the Event Types, the web service may use a list of valid Item Types. When an invalid Item Type is provided to the personalization web service, the web service may return a message with a list of valid Item Types and an explanation of how to request a new Item Type. In one embodiment, requests to add new Item Types may be evaluated manually and accepted or rejected by the operator of the personalization web service.
Event Type�a verb which describes the action an end user 106 has taken in connection with an item. Event types may include, but are not limited to, viewing an item, purchasing an item, renting an item, downloading an item, placing an item in an electronic shopping cart, returning an item, submitting a comment on an item, e-mailing an item listing, and using an item as a search query. Additional examples of Event Types are discussed in greater detail in the examples below in Section VIII (�Example Use Cases�). When a web service client reports an event to the web service 100, the web service client typically communicates to the web service the Event Type, the Item ID, the Item Type, the User ID of the user who generated the event, and an event timestamp (see Event Time, discussed below).
As described below, the web service 100 preferably uses Event Type information to detect different types of item associations. Specifically, by segregating and analyzing events of a particular type, the web service can generate, and supply the web service client with, item associations that are specific to that Event Type (e.g., �users who purchase A also purchase B,� �Users who view C also view D,� or �Users who rent E also rent F�). The web service 100 may also collectively analyze events of two different types to generate association data such as �users who view A purchase B,� or �X % of the users who make a purchase after viewing C purchase D.�
Event Time�the time of occurrence of the event. In one embodiment, the event time is represented as the number of seconds since epoch. The personalization web service may allow dates in the future. Event times may be used by the web service in various ways, such as to give greater weight to more recent events than to older events.
Item List�a list of Item IDs and associated Item Types, as both are required in the preferred embodiment to uniquely identify an item. In one embodiment, the Item List is a list of items from which recommendations are derived by the recommendation service, as discussed in greater detail below. It should be noted that the Item List is not the list of recommendations. In one example, the Item List may comprise the items which are present in the end user's shopping cart and the recommendations would be based upon those items.
Application ID�a security code which, in certain embodiments, is incorporated into requests 112A submitted to the personalization web service 100. As discussed in greater detail below, the Application ID comprises a combination of the Web Service Access Key ID, the Application Name (see below), and whether the personalization web service is operating in a test environment. The Application ID is written dynamically as requests are submitted to the personalization web service.
Web Service Access Key ID�An identifier of a web service user or web service client.
Time Stamp�The date and time at which a request 112A is submitted.
Signature�A hash of at least a portion of the request parameters in order to authenticate the requester. In one embodiment, the signature comprises a hash of the time stamp and the operation name, with the Access Key ID used as a seed to the hashing algorithm. In some embodiments, most or all types of API calls may require a valid signature.
Version�The version of the API which a client web site is using.
Application Name�A string that the web service user may use to subdivide its personalization space. For example, if a web service user operates multiple web sites that are clients of the web service, the Application Name may be used to distinguish between these web sites 104. In this scenario, the web service user could alternatively use the same application name for two or more of these web sites, in which case these web sites would be treated as a single web service client.
HTTP Headers�An echo of the HTTP headers sent with the request.
Arguments�An echo of name-value pairs, including all arguments, even those not understood by the personalization web service.
Request ID�A unique identifier assigned to each request submitted to the personalization web service.
Request�An echo of the request parameters for the operation which is invoked in the request 112A sent by the web site 104. In one embodiment, the Request parameter may comprise only the arguments understood by the service.
Errors�A summary of errors in the request parameters or runtime issues. In one embodiment, each Error contains a code and a message. An Error is used when the request is not processed to completion.
Warnings�A summary of warnings. In one embodiment, each Warning contains a code and a message. A Warning is used when there are exceptions to the request 112A sent by the web site 104 but that the operation is still completed.
III. API Operations Examples of the types of operations which may be invoked by requests 112A from the web service clients 104 are discussed below. These operations are illustrative, and may be varied without departing from the scope of the invention.
Record Event�This API call requests that an event be recorded by the personalization web service. These events represent end user behavior on the relevant web site 104 and will be used to determine item associations and recommendations. Sending a request for an event that already exists may result in return of a warning. The end user event histories may be stored in an event histories database 300 (FIG. 2B), as discussed in greater detail below. Input parameters may include, but are not limited to, User ID, Item ID, Item Type, Event Type, and Event Time. Output parameters may include, but are not limited to, Is Success, which is a boolean value representing whether or not the Record Event operation was successful.
As discussed below in Section VIII (�Example Use Cases�), this API may be extended by adding one or more parameters for reporting various types of item metadata, such as item subjects and item categories/subcategories. When such an extension is made, the various data request APIs discussed below may be augmented to permit filtering based on the supported types of item metadata. For example, the Get Recommendations APIs may include an input parameter for limiting the recommendations to a particular subject.
Delete Events By Event Type�This API call requests that a set of events be deleted from the histories stored by the personalization web service based on the User ID and Event Type. For example, this API call can be used to clear an end user's 106 viewed items history stored by the personalization web service. Input parameters may include, but are not limited to, User ID and Event Type. Output parameters may include, but are not limited to, Number of Events Deleted, which is an integer value representing the total number of events deleted by the Delete Events By Event Type operation, and Is Success.
Delete Event�This API deletes an event from the histories stored by the personalization web service. The event is identified by the event parameters specified. For instance, this API call can be used if a customer has returned an item. Requesting the deletion of an event that does not exist will return a successful result, as the state of the personalization web service is what the web service client requested. Input parameters include User ID, Item ID, Item Type, Event Type, and Event Time. Output parameters may include, but are not limited to, Is Success and Number of Events Deleted.
Get Recommendations by User�This API call returns recommendatations of a specific Item Type based on a end user's 106 history, and based on item association data generated/maintained by the web service 100 for the associated web site 104. For example, this operation may be called when an end user 106 clicks on a web site link for accessing a web page that is configured to display personalized item recommendations.
In one embodiment, the input parameters are User ID, Item Type, Event Type, and, optionally, Filter List and Max Number. The Event Type parameter enables the requester to request recommendations that are based on a particular type of event, such as purchases or item viewing events. For example, if the API call specifies an Event Type of purchases, the web service 100 uses the end user's purchase history, in combination with the web service user's dataset of purchase-based item associations, to generate personalized item recommendations for the end user 106. If, on the other hand, the API call specifies an Event Type of �views,� the web service 100 uses the end user's item viewing history, in combination with the web service user's dataset of view-based item associations, to generate the personalized item recommendations for the end user 106.
The output parameter is or includes Recommended Items, which is a list of the recommended items (ItemID plus ItemType) based upon the input parameters. In some embodiments, the list of recommended items may be accompanied by score values indicating the �strength� of each item recommendation. In one embodiment, the web service filters out (does not return) any items that already appear in the end user's purchase history.
Get Recommendations By Items�This API call returns item recommendations based upon an input list of items, and based on item association data generated/maintained by the web service 100 for the associated web site 104. In one example, this operation may be called to obtain recommendations based on the contents of an end user's shopping cart. In this case, the web site would pass a list of the cart items to the web service 100 as the Item List and would received recommendations based on those items. The recommendations may be generated as described in the aforementioned patents.
In an alternative embodiment, this API also allows the web site user to supply item weights for the source items (i.e., those on the Item List). Each such weight may be a value on a scale of 0 to 1 which specifies the amount of weight to be given the respective item in generating recommendations. For example, if the input list includes �item A (0.5) and item B (1),� more weight would be given to item B in generating the recommendations.
Get Related Items�This API call returns a list of related items for an input or �source� item. This data is based on aggregated end user 104 data provided by the web service client/user. This operation may be called to, e.g., provide a list of related items on an item detail page. In one embodiment, the input parameters are Item ID, Item Type, Event Type, and Max Number, and the output is a list of Related Items. If a particular Event Type is specified, the Related Items list is based on that time of event; for instance, if the Event Type is purchase, a list of items that are commonly purchased in combination with the source item will be returned. In some embodiments, the web service 100 may also return, for each Related Item, a score value indicating the strength of its association with the source item.
Get Conditional Associations�This API enables the web service client to retrieve item associations, and associated conditional probability values, for a specified �source event�/�target event� pair. In one embodiment, the input parameters are: Item ID, Item Type, Source Event Type, and Target Event Type. The output is a list of items (identified by Item ID plus Item Type), together with associated conditional probability values. In some embodiments, the conditional probability values may be omitted. Optionally, a Target Item Type may be supplied as an input parameter, in which case the output list is filtered to return only items of that type.
For instance, suppose that an API call specifies the following: Item=1234, Source Event Type=view, Target Event Type=purchase. The web service would return: (a) a list of the items that are the most commonly purchased by those who viewed item 1234, and (b) associated conditional probability values representing conditional probabilities that such items will be purchased. In this example, the conditional probabilities are conditional on a purchase being made following the viewing of the source item. A given web site 104 may use this API call to provide the following type of messages on item detail pages: �of those who purchased an item after viewing this item, 2% bought this item, 6% bought item 2345, and 1.5% bought item 3456.� The conditional probability values may be generated as described below, and as described in U.S. patent application Ser. No. 10/864,288, referenced above.
The following are examples of other source/target event-type pairs that may be supported: view/rent, view/add-to-cart, search/purchase, search/add-to-cart, search/rent, search/view, search/click-on, purchase/submit-review, download/purchase, comment-on/view. If an API call specifies an invalid source/target event-type pair, the web service 100 may return a runtime error message. Section VIII (�Example Use Cases�) below provides some examples of types of content that may be provided to end users via the Get Conditional Associations API.
Get Events�This API call returns a set of events recorded by the personalization web service 100. Input parameters include User ID, Event Type, Item Type, and, optionally, Max Number. The output parameters include Events, which is a list of events corresponding to the input parameters. This API call may, for example, be used for end user 106 navigation aids, and for reminding end users of previous interests. For example, a web site 104 can use this API to retrieve and display a personalized list of recently viewed items, with each such item displayed as or with a link to a corresponding item detail page. The web site 104 can also use this API in combination with Get Recommendations by Items to enable the end user to request recommendations that are based on the set of recently viewed items. In addition, the web site 104 can use the Get Events API in combination with the Delete Events API to enable end users to delete events from their respective event histories, as may be desirable for improving personalized recommendations.
Get Event Type ID�This API call returns an Event Type ID when provided an Event Type.
Get Item Type ID�This API call returns an Item Type ID when provided an Item Type.
Get Most Popular Items�This API call returns the most popular items for a specified Event Type. An Item Type can be specified to limit the type of the items returned. In certain embodiments, a time decay may be utilized in order to bias the popularity by recent sales. Alternatively, a time window may be specified over which most popular items are to be determined.
Add Stoplist Item�This API call requests that an item be placed onto the relevant stoplist. This prevents these items from being returned in the responses of the Related Items and Recommendation API calls. Example use cases are to filter items that are out of stock, or to filter adult items which are viewed often but some users may find objectionable. Input parameters may include, but are not limited to, Item ID, Item Type, and, optionally, Reason and Expiration date. Reason is a description of why the item is being added to the stop list. Expiration Date is the date at which the item will be removed from the stoplist. Output parameters may include, but are not limited to, Is Success.
Remove Stoplist Item�This API call requests that an item placed onto the stoplist be removed. Input parameters may include, but are not limited to, Item ID and Item Type. Output parameters may include, but are not limited to, Is Success.
Get Stoplisted Items�This API call returns the items which have been added to the stoplist. This API call can be used for auditing by a web service user. Input parameters may include, but are not limited to, Item Type, Page Size, and Page Number. The Page Size is the number of items returned per request. The Page Size may be set to a default value or adjusted from the default.
IV. Web Service Interface The requests and responses to the personalization web service may be made using any suitable interface. Examples include, but are not limited to: (a) an interface using Simple Object Access Protocol (SOAP) messages; (b) an interface that uses network-addressable resources (e.g. as a part of the Representational Stat Transfer or REST distributed interaction model); (c) an interface which utilizes Query; and (d) an interface based on the extensible markup language (XML) document sent over hypertext transfer protocol (HTTP) (e.g. using a remote procedure call (RPC) interaction model that focuses on available operations). In some embodiments, multiple mechanisms may be provided for submitting API calls and receiving responses. These mechanisms may describe multiple interfaces and/or network endpoints or other addresses for use with the alternative protocols. Where multiple interfaces are provided, a web service user may select a single interface or a combination of interfaces.
Additional details regarding SOAP may be obtained in �SOAP Version 1.2 Part 1: Messaging Framework, W3C Recommendation 24 Jun. 2003� document, dated Jun. 24, 2003 and available at http://www.w3.org/TR2003/REC-soap12-part1-20030624 and in the SOAP Version 1.2 Part 2: Adjuncts, W3C Recommendation 24 Jun. 2003� document, available at http://www.w3.org/TR/soap12-part2/, each of which is hereby incorporated by reference in its entirety.
V. Registration Process and Web Site Configuration Prior to use of the personalization web service 100, a web service user may be required to complete a registration process. FIG. 3 illustrates one embodiment of a method 250 by which a new web service user 252 may register with, and configure its web site to interoperate with, the web service.
VI. Authentication of Requests As discussed above, according to some embodiments, the web service interface 102 authenticates the requests it receives before processing such requests. Although a number of request authentication schemes can be used, in one embodiment, the authentication is performed according to X.509 certificate authentication, as is known in the art. X.509 is an International Telecommunication Standardization Sector (ITU-T) standard for Public Key Infrastructure (PKI) in cryptography. Amongst other things, this standard defines specific formats for Public Key Certificates and the algorithm that verifies a given certificate path is valid under a given PKI (called the certification path validation algorithm). Additional information on X.509 may be found at http://www.itu.int/rec/T-REC-X.509-200508-I.
VII Item Association Mining and Recommendations FIG. 4A illustrates one embodiment of an item association method 400 performed by the association mining component 302 to identify the items most closely associated to a target item for a specific set of events. The association method 400 may be performed for each item for which a sufficient quantity of event data has been collected to reliably detect behavior-based associations between that item and other items. The item association method 400 begins with block 404, where the event histories of a plurality of end users are initially retrieved from the event data repository 300. These event histories may be restricted to a given time period to ensure relevancy, and within a given storage space limitation assigned to the web service user. Subsequently, the histories may be optionally filtered in block 406 so as to retain only a desired type or types of user events, such as views, purchases, searches, etc. Items for which an insufficient quantity of history data exists may also be filtered out.
Next, at block 410, item association scores (also referred to as �similarity scores�) are generated for each of the items that co-occur with the target item within at least one event history. Each such score represents a degree of association with the target item. Examples of specific methods that may be used to calculate such scores are provided in the incorporated-by-reference patent references.
The item associations stored in the item association database 304 may be used by a given web site 104 to supplement item detail pages with lists of related items. For example, when an end user 106 requests the detail page for a particular item, a dynamic page generator of the web site 104 may send a �Get Related Items� API call to the personalization web service, providing the Target Item ID, Target Item Type, and Event Type. This request is passed through the web service interface 102 and the recommendation service interface 105 to the item associations database 304, which returns a corresponding list of related items. The recommendation services interface 105 then removes any of these items that appear on the stop list, if any, of the associated web service user or client. The filtered list is then returned to the web site 104 via the web services interface 102, and is incorporated into the requested item detail page.
As discussed above, the item associations are also used for generating personalized recommendations (FIG. 4B) in real time in response to requests (e.g. Get Recommendations and Get Recommendations By Items calls) by the web sites 104. As illustrated by the process 416 shown in FIG. 4B, recommendations for a given user are generated by first retrieving at least a selected portion of the end user's selection history from the event-data storage component 300 (block 422). The item association component 304 is further accessed (block 424) to look up the items (�candidates�) that are the most closely related to the source items present in the relevant selection history. In block 426, each such candidate item is scored according to its overall similarity to the source items. The recommendation results are subsequently returned (block 430) to the recommendation services interface 105, which may perform stoplist filtering as described above, and the filtered list is returned to the requesting web site 104. In one illustrative application, the requesting web site transforms the list into names (and possibly images and descriptions) of the recommended items, and incorporates these information into a web page requested by an end user 106.
The conditional probabilities may be used to provide conditional probability data to end users performing a keyword search on the web site. For example, when an end user runs a keyword search for �mp3 player�, the search results page may be supplemented with a conditional probability list indicating the frequencies with which users that have purchased a product after searching for �mp3 player� have purchased specific products. To implement this variation, method 500 may be modified to perform the following steps:
analyze user history data reflective of user search activities to identify the most frequently submitted search queries (e.g., the 100,000 most common search queries); for each such search query, identify a set of end users that submitted the search query and then made a purchase, and for each such set of end users, calculate, for each of a plurality of items purchased by one or more end users in the set after submitting the respective search query, what percentage of the set of end users purchased the respective purchased item. Some or all of the resulting conditional probability values may be stored in a mapping table that maps search queries (one type of item) to corresponding lists of purchased items. When a user submits a search query, the list of purchased items associated with that search query, including the associated percentage values, may be retrieved from the web service and incorporated into the search results page returned to the end user. Conditional probability lists may be omitted from search results pages where none of the conditional probability values associated with the query exceeds a particular threshold, such as 1%.
VIII. Example Use Cases The following examples illustrate how the personalization web service may be used with various types of web sites. These examples are discussed for illustrative purposes and should not be construed to limit the embodiments of the invention.
Example 1 Newspaper The personalization web service 100 may be utilized in conjunction with a newspaper publisher to increase the frequency and duration of customer visits to the newspaper's web site 104. Beneficially, use of the web service may provide the end user with links to additional content of interest on the web site.
Customers who read this whole article (read all the pages) also completely read these articles� (optionally arranged by category and subcategory). The Event Type �CompletelyRead,� as well as the item metadata extension mentioned above, may be added to the Report Event API to implement this feature;
Customers who emailed this article also emailed these articles. The Event Type �Emailed� may be added to the Report Event API to implement this feature;
Customers who printed this article also printed these articles. The Event Type �Printed� may be added to the Report Event API to implement this feature;
Customers who saved this article also saved these articles. The Event Type �Saved� may be added to the Report Event API to implement this feature;
Top articles by category; this feature, and the others listed below involving �top� items, may be implemented using the Get Most Popular Items API described above;
Example 2 Content Aggregators Content aggregators are web sites which carry a mixture of different types of content. Examples of such content may include, but are not limited to, customer comments and polls, web logs (blogs), advertisements, journals, and stories. Examples of such web sites may include, but are not limited to, web portals such as Yahoo, Google, Hotmail, and Microsoft Network (MSN). Beneficially, use of the personalization web service 100 may provide the end user with links to additional content of interest on the web site 104.
To adapt to these conditions, the personalization web service may be configured to support several standard and novel parameters and events. The personalization web service, in one embodiment, may be adapted to support events such as �viewed� and �commented on�. The web service may further support the categorization of items by Item Subject and Item Type in order to filter the recommendation and association results on these bases. Furthermore, the web service may identify associations and make relationships which are a mixture of event types.
Example 3 Redirectors Redirectors are web sites which handle millions of requests per day for products and redirects searches to various online retailers. They further list millions of products in various categories. Examples include Bizrate.com and Slickdeals. In general, redirectors receive commissions from the various retailers to which they redirect users.
Beneficially, use of the personalization web service may provide end users with links to additional content of interest on the web site 104. In one embodiment, the web service may support �searched for�, �viewed�, and �clicked through� events. A �searched for� event comprises an item which the end user searches for. A �viewed� event comprises selection of an item from the search results so as to view the item details. These details may include the web sites of vendors which sell the item. A �clicked through� event comprises selection of a vendor's web site from the item detail view.
In one aspect, the personalization web service may improve the quality of search results, allowing the redirector to return not only search results but results which are associated with the item being searched for. As a result, the end user is more likely to find the item being searching for, potentially viewing and clicking through to the vendor's web site. This improvement in �findability� of items is of benefit to the redirector, as redirectors typically receive revenue from views as well as commissions from the vendors for sales.
To adapt to these conditions, in one embodiment, the personalization web service 100 may be configured to support several standard and novel parameters and events. To this end, the personalization web service may support a �Vendor ID� parameter for each item, as well as the ability to limit recommendations and associations by category and vendor. When an end user searches for Item A, the personalization web service may determine that Item B is similar to the Item A based upon the searches of other end users. The Vendor ID of the items may be used to further filter the results based upon the vendor with the highest commission. Thus, the redirector may return search results to the end user which maximizes the redirector's commission. This substitution may be performed by the redirector or implemented in the personalization web service.
Example 4 Redirectors In another example, redirectors may offer Internet deals and coupons. The volume of offers makes it difficult for customers to find the popular and/or correct offer, however. As redirectors are paid for page views and receive commissions on sales, it is of benefit for the redirectors to be able to provide listings of the most popular items so as to improve the length of time end users are on the web site 104, as well as the number of pages they view.
To adapt to these conditions, in one embodiment, the personalization web service may be configured to support several standard and novel parameters and events. The personalization web service may be tailored to support �Searched For�, �Viewed� and �Clicked Through� events, as well as an �Offering Site ID� for the items. The ability to limit recommendations and associations by category and offering site are also important.
Example 5 Social Networking Sites Social networking sites have been characterized as the online version of the �town square.� End users come to social networking sites to meet friends, conduct conversations, gain information, and buy and sell items, among other activities. Examples include MySpace and Craigslist. Typically, social networking sites are paid for posting advertisements of items for sale and available jobs. Finding these types of advertisements amongst the large volume of advertisements is problematic, however. This difficulty is compounded by the fact that postings are quickly outdated by the submission of newer advertisements.
To adapt to these conditions, in one embodiment, the personalization web service may be configured to specify a customer segment in addition to a User ID. The items may be further specified by identifying items by both an item area (location) as well as an Item ID. To facilitate networking contacts, the web service 100 may further support both �viewed� as well as �contacted� events. The �contacted� event represents whether the seller/vendor of an item has been previously contacted. The personalization web service may also support limiting its recommendations by area and category. The personalization web service may be adapted to provide results by RSS and e-mail, allowing the web service to engage end users through whatever communication mechanism they prefer, enhancing the end user's experience.
Popular listings by area and category. This feature, and the others mentioned below involving �popular� items, may be implemented using the Get Most Popular Items API;
The web service 100 may also include functions for assisting users in locating other users they may like (e.g., �other customers who viewed XYZ's profile also viewed ABC's profile,� or �based on your browse history and those of other users, you may be interested in contacting the following users . . . �).
Example 6 Blogs In general, blogs are user-generated web sites or pages where entries are made in journal style and displayed in a reverse chronological order. Typically, blogs blend some combination of text, images, and links to other blogs, web pages, and other media related to its topic. Additionally, readers of the blog often leave comments in an interactive format. Unfortunately, due to the chronological nature of the postings, most blog entries become difficult to locate in the repeated posts of a heavy blogger.
The personalization web service may also support limits on recommendations and similarities by subject area (e.g. Microsoft). This subject limitation is particularly well suited to blogs, which often follow a �thread� or subject. As a result, end users may quickly find threads of interest, rather than trudging through many uninteresting posts.
Example 7 Search Engines Search engines are widely used web sites which catalog internet content, allowing searches to be performed on various topics. The quality of the searching may be improved through use of the personalization web service 100.
In one embodiment, the personalization web service may be adapted to provide �Searched For� and �Clicked On� events. The Searched For event indicates that a search has been performed on the item, while the Clicked On event indicates that an item link was selected by the searcher. The Searched For and Clicked On events may also be linked together in certain embodiments. In this fashion, relationships may be determined between items that are searched for and items that are clicked on. Beneficially, the positive action of clicking on a link indicates that there is a high likelihood of association between the two.
Similar searches�Customers who searched for these keywords also searched for . . . .
Popular hits�Customers who searched for these keywords most commonly chose . . . .
Example 8 Cross Site Personalization Large companies often own more than one Internet property. For example, one company may own a web site about movies, a movie studio, a sports web site, an Internet portal, and a news web site. Personalization of the customer experience between the Internet properties may be accomplished through use of the personalization web service.
In one aspect, the personalization service receives history data from the different Internet properties. With this information, associations may be made between items on the web sites, despite their origin from different web sites 104. In certain embodiments, a �URL� parameter may be added to each item, allowing recommendations and associations to be filtered by web site.
VIII. Conclusion Although this invention has been described in terms of certain preferred embodiments and applications, other embodiments and applications that are apparent to those of ordinary skill in the art, including embodiments and applications that do not provide all of the benefits described herein, are also within the scope of this invention. The scope of the invention is defined only by the claims, which are intended to be construed without reliance on any definitions that may be implicitly or explicitly included in the incorporated-by-reference materials.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS6006225Sep 1, 1998Dec 21, 1999Amazon.ComRefining search queries by the suggestion of correlated terms from prior searchesUS6356879Oct 9, 1998Mar 12, 2002International Business Machines CorporationContent based method for product-peer filteringUS6505185 *Mar 30, 2000Jan 7, 2003Microsoft CorporationDynamic determination of continuous split intervals for decision-tree learning without sortingUS6772150Mar 22, 2000Aug 3, 2004Amazon.Com, Inc.Search query refinement using related search phrasesUS6865546Apr 19, 2000Mar 8, 2005Amazon.Com, Inc.Methods and systems of assisting users in purchasing itemsUS6871186 *Nov 13, 1998Mar 22, 2005New York UniversitySystem and method for dynamic profiling of users in one-to-one applications and for validating user rulesUS6912505Mar 29, 2001Jun 28, 2005Amazon.Com, Inc.Use of product viewing histories of users to identify related productsUS6981040Jun 20, 2000Dec 27, 2005Utopy, Inc.Automatic, personalized online information and product servicesUS7062510 *Dec 2, 1999Jun 13, 2006Prime Research Alliance E., Inc.Consumer profiling and advertisement selection systemUS7114170Feb 7, 2002Sep 26, 2006Neoris Usa, Inc.Method and apparatus for providing interactive media presentationUS7152061Sep 16, 2004Dec 19, 2006Iac Search & Media, Inc.Methods and systems for providing a response to a queryUS7412442Oct 15, 2004Aug 12, 2008Amazon Technologies, Inc.Augmenting search query results with behaviorally related itemsUS7565425Jul 2, 2003Jul 21, 2009Amazon Technologies, Inc.Server architecture and methods for persistently storing and serving event dataUS7590562Jun 29, 2005Sep 15, 2009Google Inc.Product recommendations based on collaborative filtering of user dataUS7680703Jun 5, 2008Mar 16, 2010Amazon Technologies, Inc.Data mining system capable of generating pairwise comparisons of user-selectable items based on user event historiesUS7881984Mar 30, 2007Feb 1, 2011Amazon Technologies, Inc.Service for providing item recommendationsUS20020019763Mar 29, 2001Feb 14, 2002Linden Gregory D.Use of product viewing histories of users to identify related productsUS20040103186Nov 21, 2002May 27, 2004Fabio CasatiPlatform and method for monitoring and analyzing dataUS20050038819Aug 13, 2004Feb 17, 2005Hicken Wendell T.Music Recommendation system and methodUS20050071251Nov 19, 2004Mar 31, 2005Linden Gregory D.Data mining of user activity data to identify related items in an electronic catalogUS20060106665Nov 12, 2004May 18, 2006Kumar Dilip SComputer-based analysis of affiliate web site performanceUS20060206510Mar 14, 2005Sep 14, 2006Microsoft CorporationStorage application programming interfaceUS20060206932Mar 14, 2005Sep 14, 2006Microsoft CorporationTrusted third party authentication for web servicesUS20070005437Jun 29, 2005Jan 4, 2007Michael StoppelmanProduct recommendations based on collaborative filtering of user dataUS20070208729Mar 6, 2006Sep 6, 2007Martino Paul JUsing cross-site relationships to generate recommendations* Cited by examinerNon-Patent CitationsReference1Article titled "The Great Giveaway," by Erick Schonfeld, in Business 2.0 Magazine dated Apr. 1, 2005.2Blog posting titled "Loomia: a product-recommendation Web service," Alpha Blog, Alpha.cnet.com, dated Jul. 10, 2006, posted by Andrew Gruen, printed from http://reviews.cnet.com/4531-10921-7-6550327.html.3Blog posting titled "Loomia: a product-recommendation Web service," Alpha Blog, Alpha.cnet.com, dated Jul. 10, 2006, posted by Andrew Gruen, printed from http://reviews.cnet.com/4531-10921�7-6550327.html.4Ibrahim Cingil, et al., "A Broader Approach to Personalization," Communications of the ACM, vol. 43, No. 8, dated Aug. 2000, pp. 136-141.5International Search Report and Written Opinion in counterpart PCT application PCT/US 08/58516.6Notification of concurrently-filed applications in one page, Applications 11/694,758 & 11694,745 filed Mar. 30, 2007.7Press release titled "Aggregate Knowledge Delivers Relevance and Increases Revenue for Retail and Media Sites," dated Mar. 7, 2006.8Press release titled "Aggregate Knowledge Unveils the Internet's First Discovery Service," dated Jan. 30, 2007.9Schafer et al., "E-Commerce Recommendation Applications," Data Mining and Knowledge Discovery, vol. 5, Nos. 1-2, Jan. 2001, pp. 115-153.10U.S. Appl. No. 10/864,288, filed Jun. 9, 2004.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS8249948Jul 14, 2011Aug 21, 2012Amazon Technologies, Inc.System for obtaining recommendations from multiple recommendersUS8275674Jul 1, 2011Sep 25, 2012Amazon Technologies, Inc.Services for providing item association dataUS8285602Nov 19, 2009Oct 9, 2012Amazon Technologies, Inc.System for recommending item bundlesUS8290818Nov 19, 2009Oct 16, 2012Amazon Technologies, Inc.System for recommending item bundlesUS8392281 *Aug 12, 2008Mar 5, 2013Amazon Technologies, Inc.System and interface for promoting complementary itemsUS8438052Apr 20, 2009May 7, 2013Amazon Technologies, Inc.Automated selection of three of more items to recommend as a bundleUS8504441Sep 15, 2012Aug 6, 2013Amazon Technologies, Inc.Services for providing item association dataUS8533067Aug 8, 2012Sep 10, 2013Amazon Technologies, Inc.System for obtaining recommendations from multiple recommendersUS20090222749 *Feb 29, 2008Sep 3, 2009Business Objects, S.A.Apparatus and method for automated creation and update of a web service applicationUS20120059735 *Sep 1, 2011Mar 8, 2012Alibaba Group Holding LimitedProduct recommendations* Cited by examinerClassifications U.S. Classification705/26.7, 705/26.1International ClassificationG06Q30/00Cooperative ClassificationG06Q30/0631, G06Q30/0641, G06Q30/0253, G06Q30/0252, G06Q30/02, G06F17/3089, G06Q30/0601, G06Q30/0282European ClassificationG06F17/30W7, G06Q30/02, G06Q30/0601, G06Q30/0252, G06Q30/0631, G06Q30/0641, G06Q30/0253, G06Q30/0282Legal EventsDateCodeEventDescriptionMar 28, 2008ASAssignmentOwner name: AMAZON TECHNOLOGIES, INC., NEVADAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KANE, FRANCIS J., JR.;SMITH, BRENT R.;MILLER, JOCELYN M.;AND OTHERS;REEL/FRAME:020720/0282;SIGNING DATES FROM 20070420 TO 20070815Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KANE, FRANCIS J., JR.;SMITH, BRENT R.;MILLER, JOCELYN M.;AND OTHERS;SIGNING DATES FROM 20070420 TO 20070815;REEL/FRAME:020720/0282RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services