CA2309940A1 - System and method for dynamic profiling of users in one-to-one applications and for validating user rules - Google Patents
System and method for dynamic profiling of users in one-to-one applications and for validating user rules Download PDFInfo
- Publication number
- CA2309940A1 CA2309940A1 CA002309940A CA2309940A CA2309940A1 CA 2309940 A1 CA2309940 A1 CA 2309940A1 CA 002309940 A CA002309940 A CA 002309940A CA 2309940 A CA2309940 A CA 2309940A CA 2309940 A1 CA2309940 A1 CA 2309940A1
- Authority
- CA
- Canada
- Prior art keywords
- user
- rules
- profile
- information
- subset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/018—Certifying business or products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0224—Discounts or incentives, e.g. coupons or rebates based on user history
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0255—Targeted advertisements based on user history
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0267—Wireless devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S706/00—Data processing: artificial intelligence
- Y10S706/902—Application using ai with detail of the ai system
- Y10S706/925—Business
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S706/00—Data processing: artificial intelligence
- Y10S706/902—Application using ai with detail of the ai system
- Y10S706/934—Information retrieval or Information management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Abstract
A system and method for generating and validating a user profile (25) for a user based on a static profile (10) and a dynamic profile (15) of the user.
The method and system compresses the dynamic rules (15) into aggregated rules so that the user can view a comparatively small number of the aggregated rules and select the desired rules from the aggregated rules based on user-desired criteria. The method and system validates user rules (60) using a processing device, which are retrieved from a storage device. The user rules are seperated into at least one subset of a user set. Then, it is determined if a particular rule of the at least one subset is one of acceptable, unacceptable and undecided based on a defined criteria (415). If the particular rules of the at least one subset are acceptable, the particular rules of the at least one subset are provided (e.g. assigned) to a corresponding user (435).
The method and system compresses the dynamic rules (15) into aggregated rules so that the user can view a comparatively small number of the aggregated rules and select the desired rules from the aggregated rules based on user-desired criteria. The method and system validates user rules (60) using a processing device, which are retrieved from a storage device. The user rules are seperated into at least one subset of a user set. Then, it is determined if a particular rule of the at least one subset is one of acceptable, unacceptable and undecided based on a defined criteria (415). If the particular rules of the at least one subset are acceptable, the particular rules of the at least one subset are provided (e.g. assigned) to a corresponding user (435).
Description
SYSTEM AND METHOD FOR DYNAMIC PROFILING OF
USERS IN ONE-TO-ONE APPLICATIONS AND FOR VALIDATING USER RULES
FIELD OF THE INVENTION
The present invention relates to a system and method for dynamic profiling of a user in one-to-one marketing applications.
BACKGROUND INFORMATION
Many organizations collect historical data about every transaction that every customer performs with that organization. Such historical transactional data is useful in various one-to-one marketing applications, such as, e.g., shopping assistant application and dynamic Web site content presentation. A number of problems have been encountered in these marketing applications. One such problem relates to the creation of highly pertinent and comprehensible individual user profiles that are derived from the historical transactional data. In addition, it is also important to have the ability to utilize these user profiles when the marketing application obtains a current status of the user. If the user profiles are generated in a highly relevant and comprehensible manner with respect to a specific user, the applications would be able to understand that user's needs better and more efficiently serve that user.
There are two basic types of user profiles that can be generated - a "static" profile and a "dynamic" profile.
The static profile contains all of the factual information of the user including, for example, demographic data (e. g., age, sex, address), psychographic data (e. g., personality traits and habits), purchasing preferences (e. g., what does the user purchase in an average week), etc. Static profiles are generated using conventional methods that are known to those of ordinary skill in the art.
Dynamic profiling information includes specific rules describing the user's behavior. For example, such rules may include: "whenever user X travels to France, user X often buys expensive wines in Paris" or "when user Y shops on a WO 99126180 PCTlUS98/24339 weekend and did not buy any groceries for at least 3 days, user Y usually purchases a large amount of groceries." These rules can be generated with transactional data for each user using various rule generation methods that are generally known to those of ordinary skill in the art. For example, one such conventional rule generation method is implemented in a rule learning system which generates behavior rules for individual customers. (See T. Fawcett et al., "Combining Data Mining and Machine Learning for Effective User Profiling", Proceedings of the KDD'96 Conference, 1996, pp. S-13).
In order to obtain an extensive understanding of the user, it is desirable to build both static and dynamic profiles for that user. Although the generation of static profiles is generally straight-forward, generating dynamic profiles for a large number of users may present potential problems. Many transactional systems (e. g., airline reservations systems, credit card transactional systems and/or Web site management systems) generate a various number of transactions for each user. For example, some systems and/or applications may only generate a dozen transactions per each user, which may not be enough to construct a statistically significant and reliable set of rules for a specific user.
Even if there are enough transactions to construct a statistically significant set of rules, these rules should still be verified for their pertinence to the user. Since there can be a large number of users, and since the rules generated for each user may not be reliable, there is a problem of verifying a large set of generated rules for the users. For example, in a typical system facilitating 5 million users and providing about 100 rules per user, approximately 500 million rules would have to be either stored or processed. Generally, many of these rules are either not useful or insignificant. Thus, due to the amount of these generated rules, a rule validation process becomes considerably complicated. Furthermore, checking the usefulness of these rules "by hand" becomes practically impossible.
USERS IN ONE-TO-ONE APPLICATIONS AND FOR VALIDATING USER RULES
FIELD OF THE INVENTION
The present invention relates to a system and method for dynamic profiling of a user in one-to-one marketing applications.
BACKGROUND INFORMATION
Many organizations collect historical data about every transaction that every customer performs with that organization. Such historical transactional data is useful in various one-to-one marketing applications, such as, e.g., shopping assistant application and dynamic Web site content presentation. A number of problems have been encountered in these marketing applications. One such problem relates to the creation of highly pertinent and comprehensible individual user profiles that are derived from the historical transactional data. In addition, it is also important to have the ability to utilize these user profiles when the marketing application obtains a current status of the user. If the user profiles are generated in a highly relevant and comprehensible manner with respect to a specific user, the applications would be able to understand that user's needs better and more efficiently serve that user.
There are two basic types of user profiles that can be generated - a "static" profile and a "dynamic" profile.
The static profile contains all of the factual information of the user including, for example, demographic data (e. g., age, sex, address), psychographic data (e. g., personality traits and habits), purchasing preferences (e. g., what does the user purchase in an average week), etc. Static profiles are generated using conventional methods that are known to those of ordinary skill in the art.
Dynamic profiling information includes specific rules describing the user's behavior. For example, such rules may include: "whenever user X travels to France, user X often buys expensive wines in Paris" or "when user Y shops on a WO 99126180 PCTlUS98/24339 weekend and did not buy any groceries for at least 3 days, user Y usually purchases a large amount of groceries." These rules can be generated with transactional data for each user using various rule generation methods that are generally known to those of ordinary skill in the art. For example, one such conventional rule generation method is implemented in a rule learning system which generates behavior rules for individual customers. (See T. Fawcett et al., "Combining Data Mining and Machine Learning for Effective User Profiling", Proceedings of the KDD'96 Conference, 1996, pp. S-13).
In order to obtain an extensive understanding of the user, it is desirable to build both static and dynamic profiles for that user. Although the generation of static profiles is generally straight-forward, generating dynamic profiles for a large number of users may present potential problems. Many transactional systems (e. g., airline reservations systems, credit card transactional systems and/or Web site management systems) generate a various number of transactions for each user. For example, some systems and/or applications may only generate a dozen transactions per each user, which may not be enough to construct a statistically significant and reliable set of rules for a specific user.
Even if there are enough transactions to construct a statistically significant set of rules, these rules should still be verified for their pertinence to the user. Since there can be a large number of users, and since the rules generated for each user may not be reliable, there is a problem of verifying a large set of generated rules for the users. For example, in a typical system facilitating 5 million users and providing about 100 rules per user, approximately 500 million rules would have to be either stored or processed. Generally, many of these rules are either not useful or insignificant. Thus, due to the amount of these generated rules, a rule validation process becomes considerably complicated. Furthermore, checking the usefulness of these rules "by hand" becomes practically impossible.
Conventional systems have not successfully provided detailed solutions to constructing reliable dynamic profiles for the users. One such system (described in T. Fawcett et al., "Combining Data Mining and Machine Learning for Effective User Profiling", Proceedings of the KDD'96 Conference, 1996) provides a limited generation of user's dynamic profiles.
However, this conventional system does not provide a comprehensive method and system for analyzing a large number of dynamic rules, and thus does not provide adequate.
assistance for the user.
SUMMARY OF THE INVENTION
The system and method according to the present invention generates dynamic profiles and, thereafter, transforms the dynamic profiles for various users into aggregate rules. In particular, "similar" individual rules are compressed into a smaller number of aggregated rules.
Because the total number of aggregate rules is substantially smaller than the total number of individual rules for all of the users, the aggregate rules can be examined manually by a human expert. This expert examines these aggregated rules and selects only rules based on the expert's preferences. Only the individual rules that correspond to the aggregated rules selected by the human expert are retained in the user's profiles. Since the selected aggregate rules were selected by the human expert, a creation of more accurate dynamic profiles is further assured. The system and method according to the present invention thus provide a more useful set of individual rules for each user.
The dynamic profiles generated with the system and method according to the present invention can be used in various systems (e.g., Personal Shopping Assistant and Personal Intelligent Digital Assistant) to provide better recommendations to the users as to which products and services each individual user should utilize. Accordingly, the user would be more satisfied with these systems and the suggestions that these systems provide to the user. In addition, Dynamic WO 99/261$0 PCT/US98124339 Web Content Presentation systems can include the system and method according to the present invention because the users will be provided with better quality profiles to facilitate the provision of more pertinent Web pages to the user visiting a particular Web site. Fraud detection systems may also include the system and method according to the present invention, thus providing higher quality user profiles which may facilitate better fraud detection. Other applications for the system and method according to the present invention are also conceivable to those of ordinary skill in the art.
In addition, the system and method according to the present invention utilizing the above-described rule compression method is not limited to a construction of pertinent dynamic profiles, and can be used in a vast variety of applications (e. g., construction of high quality association rules in data mining applications). Other usages of the system and method according to the present invention are also conceivable to one having ordinary skill in the art.
In another embodiment of the system and method according to the present invention, the user rules are validated using a processing device. These user rules are retrieved from a storage device. The user rules are then separated into at least one subset of a user set. Then, it is determined if particular rules of the at least one subset is one of acceptable, unacceptable and undecided based on a defined criteria. If the particular rules of at Least one subset are acceptable, the particular rules of the at least one subset are provided to a corresponding user.
When constructing good dynamic profiles, validation is an important consideration. It is possible to construct dynamic profiles for individual customers using any existing data mining methods. For example, an exemplary user rule may indicate that whenever a user buys milk in the evening, this user also buys onions. It is difficult to ascertain if this rule adequately describe the user's behavior. In fact, it may be a statistical coincidence. Therefore, it is preferable to allow the user (or a human expert) to examine groups of the user rules.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 shows a top level diagram of a process for generating user profiles.
Fig. 2 shows a flow diagram for generating static and dynamic user profiles.
Fig. 3 shows a flow diagram of a process for compressing dynamic rules, generating aggregate rules, validating the aggregate rules and creating user profiles.
Fig. 4 shows a detailed flow diagram of an exemplary rule compression process according to the present invention.
Fig. 5 shows a detailed flow diagram of an exemplary cluster compression process according to the present invention.
Fig. 6a shows an exemplary system for generating user profiles according to the present invention.
Fig. 6b shows a first system for generating the user profiles according to the present invention as illustrated in Fig. 6a.
Fig. 6c shows a second system for generating the user profiles according to the present invention as illustrated in Fig. 6a.
Fig. 7 shows a block diagram of an exemplary Personal Intelligent Digital Assistant system according to the present invention.
Fig. 8 shows a flow diagram of another embodiment of the process according to the present invention in which individual user rules are selectively validated using a selective validation module.
Fig. 9 shows a flow diagram of an exemplary embodiment of a process executed by the selective validation module (illustrated in Fig.8).
Fig. 10 shows a flow diagram of an exemplary procedure to generate the attribute hierarchy and to provide a cluster operation.
However, this conventional system does not provide a comprehensive method and system for analyzing a large number of dynamic rules, and thus does not provide adequate.
assistance for the user.
SUMMARY OF THE INVENTION
The system and method according to the present invention generates dynamic profiles and, thereafter, transforms the dynamic profiles for various users into aggregate rules. In particular, "similar" individual rules are compressed into a smaller number of aggregated rules.
Because the total number of aggregate rules is substantially smaller than the total number of individual rules for all of the users, the aggregate rules can be examined manually by a human expert. This expert examines these aggregated rules and selects only rules based on the expert's preferences. Only the individual rules that correspond to the aggregated rules selected by the human expert are retained in the user's profiles. Since the selected aggregate rules were selected by the human expert, a creation of more accurate dynamic profiles is further assured. The system and method according to the present invention thus provide a more useful set of individual rules for each user.
The dynamic profiles generated with the system and method according to the present invention can be used in various systems (e.g., Personal Shopping Assistant and Personal Intelligent Digital Assistant) to provide better recommendations to the users as to which products and services each individual user should utilize. Accordingly, the user would be more satisfied with these systems and the suggestions that these systems provide to the user. In addition, Dynamic WO 99/261$0 PCT/US98124339 Web Content Presentation systems can include the system and method according to the present invention because the users will be provided with better quality profiles to facilitate the provision of more pertinent Web pages to the user visiting a particular Web site. Fraud detection systems may also include the system and method according to the present invention, thus providing higher quality user profiles which may facilitate better fraud detection. Other applications for the system and method according to the present invention are also conceivable to those of ordinary skill in the art.
In addition, the system and method according to the present invention utilizing the above-described rule compression method is not limited to a construction of pertinent dynamic profiles, and can be used in a vast variety of applications (e. g., construction of high quality association rules in data mining applications). Other usages of the system and method according to the present invention are also conceivable to one having ordinary skill in the art.
In another embodiment of the system and method according to the present invention, the user rules are validated using a processing device. These user rules are retrieved from a storage device. The user rules are then separated into at least one subset of a user set. Then, it is determined if particular rules of the at least one subset is one of acceptable, unacceptable and undecided based on a defined criteria. If the particular rules of at Least one subset are acceptable, the particular rules of the at least one subset are provided to a corresponding user.
When constructing good dynamic profiles, validation is an important consideration. It is possible to construct dynamic profiles for individual customers using any existing data mining methods. For example, an exemplary user rule may indicate that whenever a user buys milk in the evening, this user also buys onions. It is difficult to ascertain if this rule adequately describe the user's behavior. In fact, it may be a statistical coincidence. Therefore, it is preferable to allow the user (or a human expert) to examine groups of the user rules.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 shows a top level diagram of a process for generating user profiles.
Fig. 2 shows a flow diagram for generating static and dynamic user profiles.
Fig. 3 shows a flow diagram of a process for compressing dynamic rules, generating aggregate rules, validating the aggregate rules and creating user profiles.
Fig. 4 shows a detailed flow diagram of an exemplary rule compression process according to the present invention.
Fig. 5 shows a detailed flow diagram of an exemplary cluster compression process according to the present invention.
Fig. 6a shows an exemplary system for generating user profiles according to the present invention.
Fig. 6b shows a first system for generating the user profiles according to the present invention as illustrated in Fig. 6a.
Fig. 6c shows a second system for generating the user profiles according to the present invention as illustrated in Fig. 6a.
Fig. 7 shows a block diagram of an exemplary Personal Intelligent Digital Assistant system according to the present invention.
Fig. 8 shows a flow diagram of another embodiment of the process according to the present invention in which individual user rules are selectively validated using a selective validation module.
Fig. 9 shows a flow diagram of an exemplary embodiment of a process executed by the selective validation module (illustrated in Fig.8).
Fig. 10 shows a flow diagram of an exemplary procedure to generate the attribute hierarchy and to provide a cluster operation.
WO 99/2b180 PCT/US98/24339 Fig. 11 shows a detailed illustration of an exemplary procedure to generate "Cut" data.
Fig. 12 shows an exemplary procedure for grouping subsets using the "Cut" data.
Fig. 13 shows an exemplary attribute hierarchy which can be utilized with this embodiment of the process and system according to the present invention.
Fig. 14 shows an exemplary illustration of a first level extension and a second level extensions of an exemplary node/group illustrated in Fig. 13.
Fig. 15 shows an exemplary implementation of the process and system according to this embodiment of the present invention as illustrated in Figs. 8 and 9.
DETAILED DESCRIPTION OF THEINVENTION
In many customer-related applications (e. g., banking, credit card, Internet marketing applications, etc.), user profiles for each user (or customer) are generated to better understand the user (i.e., user's purchasing trends, business travel locations, types of favorite restaurants, etc.). A flow diagram of an exemplary process for building user profiles is illustrated in Fig. 1. In particular, information regarding, e.g., the user's past purchasing history is retrieved in step 1. In step 2, user profiles are built, and the process completion is signaled in step 3. User profiles can preferably be generated using static profiles and dynamic profiles. A more detailed flow diagram of the process of building user profiles (represented in Fig. 1 by step 2) is illustrated in Fig. 2. The static profile includes user static characteristics (e. g., name of the user, address, telephone number, date of birth, sex, income, etc.). The static profile is built in step 10 using methods known to one having ordinary skill in the art. After the static profile is built, this static profile is stored in a separate file based on the data obtained from the OUST and TRANS files, as discussed below. The "CUST" file has the following format:
Fig. 12 shows an exemplary procedure for grouping subsets using the "Cut" data.
Fig. 13 shows an exemplary attribute hierarchy which can be utilized with this embodiment of the process and system according to the present invention.
Fig. 14 shows an exemplary illustration of a first level extension and a second level extensions of an exemplary node/group illustrated in Fig. 13.
Fig. 15 shows an exemplary implementation of the process and system according to this embodiment of the present invention as illustrated in Figs. 8 and 9.
DETAILED DESCRIPTION OF THEINVENTION
In many customer-related applications (e. g., banking, credit card, Internet marketing applications, etc.), user profiles for each user (or customer) are generated to better understand the user (i.e., user's purchasing trends, business travel locations, types of favorite restaurants, etc.). A flow diagram of an exemplary process for building user profiles is illustrated in Fig. 1. In particular, information regarding, e.g., the user's past purchasing history is retrieved in step 1. In step 2, user profiles are built, and the process completion is signaled in step 3. User profiles can preferably be generated using static profiles and dynamic profiles. A more detailed flow diagram of the process of building user profiles (represented in Fig. 1 by step 2) is illustrated in Fig. 2. The static profile includes user static characteristics (e. g., name of the user, address, telephone number, date of birth, sex, income, etc.). The static profile is built in step 10 using methods known to one having ordinary skill in the art. After the static profile is built, this static profile is stored in a separate file based on the data obtained from the OUST and TRANS files, as discussed below. The "CUST" file has the following format:
CUST (Cust-ID, Al, Az . . . Am) , where Cust~ID is a user identifier that provides an index value for locating a specific user in the CUST file. A1, AZ
... Am are fields describing the characteristics of the user (e. g., sex, income, education, etc.).
The dynamic profile is built instep 15. A dynamic profile consists of rules (or patterns) characterizing a user's behavior, e.g., "if user X shops in the evening on weekdays and purchases diapers, user X also buys beer", "if user X shops on weekdays, user X usually buys a small number of items", "if user X travels to New York on business, user X
prefers to have lunches at expensive seafood restaurants."
The rules are derived from a set of transactions pertaining to a particular user. These transactions may be, for example, credit card transactions, airline reservations and Web site visit transactions, and are stored in the "TRAMS" file which has the following format:
TRAMS (Trans_ID, Cust_ID, C1, C2, . . . C") where Trans_ID corresponds to a unique index key that identifies the transaction being performed by the user.
Fields C1, C2, ... C" identify a particular transaction (e.g., date of transaction, time of transaction, amount spent, location of the transaction, etc.). The field "Gust ID"
corresponds to an index key pointing to a particular user having a respective record in the OUST file. Thus, the user performing a particular transaction can be identified.
Other file formats can also be utilized, as can be understood by those having ordinary skill in the art. For example, the user-specific information can also be stored in several files rather than in a single CUST file (thus, the CUST file can be normalized by splitting the CUST file into several smaller files). Using different file formats does not affect the operability of the system and process according to the present WO 99/26180 PCT/US98lZ4339 invention. After the dynamic profile for a particular user is generated, this dynamic profile is validated in step 20.
After the validation of the dynamic profile, the static and dynamic profiles are combined to form a combined user profile in step 25. The following exemplary information can be obtained from the TRANS file to be provided into the static profile when the static and dynamic profiles (the OUST
and TRANS files) are combined: a) an average transaction amount for user X; b) user X's favorite brand of beer is, e.g., Heineken; c) user X shops mostly on week-ends.
While it is relatively uncomplicated to construct user static profiles, it is much more difficult to construct quality dynamic profiles. Rules provided in the dynamic profile are generated for each user. Because a user may perform only a small number of transactions, the corresponding rules generated may be statistically insignificant, unreliable and irrelevant. In many systems (e. g, airline reservations systems, credit card transactional systems, or Web site usage systems), it is possible to have from as little as a few dozen to a few hundred transactions per each user. The rules generated with such amounts of data are often ineffective and insignificant.
The total number of generated rules can also be very large. For example, in a system serving 5 million customers and generating an average of 100 rules per user, a total number of generated rules can reach 500 million. Many of the 500 million generated rules are of questionable quality and usefulness. In order to filter the rules having such undesirable characteristics, a human expert must decide which dynamic rules should be stored and which dynamic rules should be discarded. It would be impossible for the human expert to manually check the usefulness of all 500 million rules.
Quality dynamic profiles are generated by validating dynamic rules generated using various rule induction methods.
Ultimately, however, the human expert validates the machine-generated rules to determine their "usefulness" in various systems. Since most of the systems generate too many rules to be manually examined by human experts, the system and method according to the present invention facilitates compressing individual rules into "aggregated" rules. After the individual rules are compressed into the aggregated rules, the aggregated rules are evaluated by a human expert who selects only the rules that the expert believes are pertinent for the user. In addition, it is possible (in some applications) that the respective user can be such a human expert (and examining only the rules that are pertinent to the respective user).
A. Dynamic Profile Construction Procedure It can be assumed that user-specific rules have been already created using methods known to those having ordinary skill in the art. For example, individual user rules can be generated using an induction software system (e. g., "CART"
Breiman et al., 1984; C4.5, Quinlan, 1993; or RL, Clearwater &
Provost, 1990). The structure of these rules has, preferably, the following form:
Cileilail ~ Ci2ei2ai2 ~ . . . n Cik~ikaik ~ Cieiai (1) where Cil, Ciz, . ~ ~ , Cik, Ci are fields from the TRAMS file, ail aiz, ~ ~ . , aik, ai are constants, and 8i~ are relational operators (e. g., "_", ">", "<", etc.). In addition, each rule is assigned to a user defined by the Cust ID (user identifier) from the CUST file.
Next, it is important to remove "useless" individual rules from the total number of rules. A process to remove these useless individual rules is shown in Fig. 3. In step 30, individual rules are provided for processing. In step 35 several "similar" individual rules (of the form (1)) are compressed into one aggregated rule of the form:
Aileilbil ~ Ai2ei2bi2 ~ . . . n Ai~ei~bi~ n 3 5 CilB hail ~ Ci2 a i2ai2 ~ ~ . . /~ Cik~ ikaik ~ Ci a iai ( 2 ) where A;1, . . . , A;~ are the fields in the CUST file, b;l, . . . , bi~are constants, and Big are relational operators (e.g., "_", ">", "<", etc.). For each individual rule of the form (1) the aggregated rule of the form (2) is formed after the individual rules are compressed. The newly aggregated rules (formed in step 40) can be, e.g., fuzzy rules, and the operators 6;~ should also be, e.g., fuzzy operators. For example, several of the individual rules that are similar (generally pertaining to different users) can be compressed into one aggregated rule pertaining to the same subject matter that can be applicable to several users. For example, if several rules have the form:
IF Shopping-time = "evening" and Day-of week =
"weekday" and Purchase = "diapers" THEN Purchase =
"beer", and it is known that most of the users corresponding to this rule are males, then these rules can be compressed into the aggregated rule having the following form:
IF Sex = "Male" and Shopping-time = "evening" and Day-of week = "weekday" and Purchase = "diapers"
THEN Purchase = "beer".
Additional fields (e. g., Sex, etc.), unlike other fields in the above exemplary rule, are fields from the CUST
file. Individual rules relating to different users can be compressed into the same aggregated rule for a group of users.
Thus, the rule compression can preferably be implemented for different users. The number of aggregated rules (of the form (2)) generated by the compression algorithm should be much smaller than the initial number of individual rules. Then, in step 45, the aggregated rules can be validated (one by one) by the human expert (including a particular user) to determine which rules are appropriate for that user. After the user validates the aggregated rules, this user selects the set of preferred aggregated rules in step 50. Only the individual rules corresponding to the aggregated rules selected in step 50 are retained in the user's dynamic profile (step 55) to provide validated individual rules (step 60) to the user.
B. Rule Compression Process Fig. 4 illustrates a detailed flow diagram of an exemplary rule compression process (starting from step 35 in Fig. 3). Two individual rules of the form (1) are referred to as "similar" rules if they differ from each~other only in the values of their respective constants air. Thus, similar rules should have the same number of terms, the same fields Ci~, and the same comparison operators 9;~. Similar rules can be mapped into the (k-~1) dimensional space defined by Dom(C;1) x...x Dom(Cik) x Dom(Ci), where Dom is a domain (or range of values) of the field C, with a rule having the form (1) being mapped into the points ( i . a . , ail, aiz, . . . , aix, ai) . This set of points is generated by similar rules. For example, the rule "if user X shops in the evening on weekdays and purchases diapers, user X also buys beer" can be written as:
IF (Shopping time = "evening" and Day of week "weekday" and Purchase = "diapers") THEN Purchase =
"beer".
This sample rule would be mapped into the corresponding vector ("evening", "weekday", "diapers", "beer") of the 4-dimensional space of attributes (variables):Shopping_time, Day_of week, Purchase and another Purchase.
The exemplary rule compression process (described below in detail) then generates rules (e.g., fuzzy rules of the form (2)). These fuzzy rules utilize fuzzy linguistic variables for the fields from the CUST and TRANS files, which are generally known to those having ordinary skill in the art.
Each fuzzy linguistic variable has a corresponding identifier (e. g., Tncome, Transaction Amount, etc.), each being capable of providing a range of values (e. g., natural numbers between 0 and 1,000,000), a set of terms (e.g., "low", "medium", "high", etc.), and a membership function that assigns a membership value (e. g., between 0 and 1) to each value from the domain of the fuzzy linguistic variable for each range of WO 99126180 PCT/US98r14339 values. In addition, the non-ordered fields in the CUST and TRAMS files (e. g., "Product_Purchased") have assigned classification hierarchies; for example, the field "Product Purchased" can include standard classification hierarchies used in marketing. Thus, UPCs, e.g., can be grouped into brands, brands can be grouped into product categories, etc.
The following exemplary inputs are provided to the Rule Compression Process:
a. Individual rules from users' dynamic profiles.
b. Fuzzy linguistic variables for all fields in the CUST and TRAMS files.
c. Hierarchical classifications for non-ordered fields.
Exemplary outputs generated by the Rule Compression Process are a set of (preferably) fuzzy aggregated rules having the form (2).
The steps of the exemplary rule compression process shall now be described in detail with reference to Fig. 4. In step 160, all the individual rules of the form (1) are grouped into sets of similar rules (i.e., rules having the same structure). The maximal number of such similar groups is 4", where n is the number of fields in the TRAMS file. For example, if n = 10, then there can be at most 1 x 22° similar groups. However, this number is typically much smaller in practice. Each set of similar rules forms a set of points in a k-dimensional space generated by the individual rules described above. In step 165, a group of clusters of the generated points is determined using any of the cluster computation methods known to those of ordinary skill in the art. In step 170, starting from the first cluster of the group of clusters determined in Step 165, an approximate rule for that cluster is determined in Step 180. The approximate rule is determined as a function of the points in the cluster.
For example, a point in the cluster may be the "center" of the cluster. The center can be identified as a point that minimizes the sum of distances from a particular point to other points in the cluster. For example, given Cluster Ci - (cil, ci2, . . . cik) , the center of this cluster is the point that minimizes the expression:
min ~ d ( x, ci ) ' Ci xeClusti The center of the cluster can also be determined using other methods, such as, e.g., selecting the most "representative"
point in that cluster.
In step 185, the next cluster is selected and the procedure described with respect to step 180 is repeated. In step 175, it is determined whether all of the clusters in the group of clusters have been evaluated. As an illustration, if cluster Clusti contains three 3-dimensional points (0,0,1), (0,1,0), (1,0,1), corresponding to the vertices of a equilateral triangle, then the center of this cluster C; is the center of the triangle, i.e., the point (~,~,~). Other approaches to defining the center of a cluster can be used.
This exemplary rule compression process does not depend on any specific method for defining any center of a cluster Ci.
Given the set of rules (1) corresponding to the cluster with the center Ci - (cil, ci2, . . . cik) , the corresponding aggregated rule has the form:
Ciieiicii n CizeizCiz n . . . n Cik9ixCix ~ Cieici (3 ) which is a "representative" rule for the cluster of similar rules. For example, if the center of the cluster is (;~,;~,~), the following rule is generated:
'~z n Cz =
Also, for totally ordered fields Ci~, standard deviations Qi~ of the points in that cluster are calculated for that field. For unordered categorical fields Ci~, a measure of the "deviation"
of the points is determined in that cluster along the j-th dimension from ci~ (by using the hierarchical classification for that field).
In step 190, a total number of clusters generated in Step 165 is provided to the user. In step 195, the user is . asked if there are too many of the generated clusters for manually inspecting the aggregated rules (i.e., the number of generated clusters is greater than a predetermined number).
If so, the generated clusters are compressed using a cluster compression process described in step 205. Thereafter, there is a smaller number of clusters (and corresponding aggregation rules per cluster}. The user is asked again, in step 195, if there are too many generated clusters for the manual inspection of aggregated rules. If the number of clusters is smaller than the predetermined number, for each cluster Ci obtained in step 165 or in step 205, a set of users corresponding to the points for that cluster is identified in step 210. Each point in a cluster corresponds to a first representative rule from the dynamic profile of the user, so that all of the users corresponding to the dynamic profile rules from that cluster can be identified. For example, CUST-ID; is defined as a set of values Cust-ID;~ corresponding to the users corresponding to the rules of cluster Ci. A set of records ("CUST;") from the CUST file corresponding to the users of that cluster is identified (i.e., having user ID
values from the set OUST-IDi). Thus, CUSTi = { r ~ CUST(r) and r.Cust-ID E CUST_IDi }.
The set of records CUSTi form a set of points in m-dimensional space (where m is the number of fields in the CUST
file). These points are separated into clusters using the same techniques as described in step 165. For each resulting cluster CUSTi~, a center is located as explained below. The set of points belonging to that cluster is approximated with a logical statement having the form:
Al9i~lb;31 n A26i~2b;~2 n . . . n Am9i~mbi~m (4 ) to form a corresponding condition in step 215, where Ai are the fields of the OUST file, 9;~1 are relational operators (e. g., "_", "<", ">", etc.) and bi~l are constants. One way to construct the condition (4) would be by finding the center bij - (bi~l, . . . , biam) of the cluster OUST ;~ as described in step 180, and substituting the values of bi~l into the condition (4) (also setting all the relational operators to be "_").
Another way to construct this condition (4) is described in A.
Motro, "Using Integrity Constraints to Provide Intentional Answers to Relational Queries", Proceedings of the 15th International Conference on Very Large Databases, 1989, pp.
237-246, and C. Shum et al., "Implicit Representation of Extensional Answers", Proceedings of the 2nd International Conference on Expert Database Systems, 1988.
In step 220, the first and second representative rules are augmented (i.e., expression (4) is augmented with expression (3)). The resulting rule is:
Aleijlbijl ~ A2eijZbij2 ~ . . . ~ A",ei~mbijm ~ Cil~ilCil 2O Ci28i2Ci2 n . . . /~ CikBikCik ~ CimeimCi ~ (5) For example, assume that the center of a cluster is a rule: "if a user shops in the evening on weekdays and buys diapers, the user also buys beer" (i.e., IF Shopping_time =
' "evening" and Day_of week = "weekday" and Purchase = "diapers"
THEN Purchase = "beer"). Also, assume that most of the users in that cluster are men, thus forming the expression (4) where "Sex" - "Male". Accordingly, the augmented rule is "if a male user shops in the evening on weekdays and buys diapers, the user also buys beer" (i.e., IF "Sex" - "Male" and "Shoppang_time" - "evening" and "Day of week" - "weekday" and "Purchase" - "diapers" THEN "Purchase" - "beer").
Then, in step 225, the rules of the form (5) generated in step 220 are converted into fuzzy aggregated rules. In particular, each field A; and C;~ in the form (5) is mapped into a corresponding fuzzy linguistic variable associated with that field. In addition, all of the terms in WO 99/Z6180 PCTIUS981~4339 the expression (5) are converted into appropriate fuzzy expressions. For example, assume that a non-fuzzy term A1 = 20 corresponds to a fuzzy linguistic variable also denoted as A1.
Further assume that the term set for A1 is either low or high, and that there is a membership function that assigns the membership value (e. g., between O and 1) to each value from the domain of fuzzy term A1 for each value from the term set.
Then, it can be determined for which term (i.e., low or high) the membership value 20 is higher, and a corresponding term is assigned. If the membership value is higher for the term °low", then the expression A1 = 20 is replaced by A1 = LOW.
In step 230, the set of aggregated fuzzy rules generated by the rule compression process is shown to the human expert who selects only the meaningful and useful rules from this set according to user desired criteria.
C. Cluster Compression Process Fig. 5 shows an exemplary cluster compression process as discussed above with respect to step 205 illustrated in Fig. 4. As an initial matter, it is assumed that, e.g., clusters Clustl and Clustz are determined in step 165. Since Clustl and Clust2 can be generated by dissimilar rules, the rules from each of these clusters Clustl and Clust2 can be very different (or similar). Therefore, it is important to determine whether two different clusters are substantially similar to each other so that they can be merged. In particular, the distance between two aggregated rules of the form (3) corresponding to the centers of these clusters is determined to ascertain whether these different clusters are substantially similar. As an example, the following two aggregated rules corresponding to the center of Clustl and Clust2 are considered C1 - a /1 CZ < b ~ C4 - c, and C1 - d n C3 - a ~ C4 = g It may be also assumed that the domains of attributes Cz and C3 are discrete and ordered. These rules have different structure and therefore are different. In order to calculate the distance between these rules, we first have to bring these rules into the same 4-dimensional space of attributes Cl, C2, C3, and C4. This can be done by replacing these rules with the rules C1 - a n CZ - z n C3 = x ~ C4 - c ( 6 ) C1 - d /~ Cz - y n C3 - a ~ C4 - g ( 7 ) where x and y are uniformly distributed random variables ranging over the domains Dom(C3) and Dom(C2) of attributes C3 and CZ respectively and z is a uniformly distributed random variable ranging over the domain of Dom(C2) from its smallest element to b. This procedure can also be performed using actual distribution in the data for corresponding attributes of x and y variables. It should be noted that the term CZ < b (the first aggregated rule described above) should be replaced with CZ = z in rule (6). In addition, term C3 = x is provided into the first aggregated rule and term C2 = y is provided into the second aggregated rule. It is also assumed that, e.g., random variables x, y, and z are uniformly distributed over their respective domains.
If constants are substituted fox the variables x, y, and z, the terms of the aggregated rules (6) and (7) will contain only equalities and constants. Thus, these aggregated rules (with the above-described substitutions) will have respective paints in the same 4-dimensional space. If the distance between these two points can be calculated for fixed values of variables x, y, and z -- d(Clustl (x, z), Clustz (y)) (i.e., if all the attributes are numeric, then the distance can be a Euclidean distance; if some of the attributes are categorical and unordered, the distance can be calculated in terms of how far the nodes are in the aggregation hierarchy defined for that attribute) -- then the distance between clusters Clustl and Clustz is equal to:
d(Clustl, C.Iust2) = 1 Dom ( Cz ) ' Dom ( C3 ) " ( b-mi n ( Dom ( C2 ) ) d ( Cl us tl ( x, z ) , Cl us t2 ( y) ) xeDom ( C3 ) , yeDom ( Cz ) , z<b since it can be assumed that the domains of attributes CZ and C3 are discrete. If these domains were continuous, integration would have been used instead.
In general, let cl - (cll, c12, ... clk) and c2 = (c21, c22, . . . , czm) be the centers of two clusters Clustl and Clust2 as calculated in steps 170 through 185 illustrated in Fig. 4, where cl and cz are vectors with different dimensions (because different rules can have different numbers of terms). The rules corresponding to the centers of these two clusters are extended with, e.g., dummy attributes and dummy random variables that form a union of the attributes for clusters Clustl and Clust2. Assuming that the dummy variables are uniformly distributed over their domains, the distances between the two rules for fixed values of random variables can be calculated. Thereafter, the random variables are either integrated (for continuous random variables) or summed (for discrete random variable) over different values of these random variables. Thus, the distance between clusters can be determined using the system and method according to the present invention.
Once the distance between the two clusters is determined, the clusters can be merged as follows. In order to perform this operation, the size of the cluster should be determined as a part of the Cluster Compression process. The size of the cluster is the measure of how far the points of the cluster are apart from each other. This size can be determined, e.g., using the following formula:
WO 99/26180 PCTIUS98t24339 size(Clust) = 1 ~ d(x, c) Clust xeClust where c is the center of the cluster. Other measurements can also be used by those having ordinary skill in the art.
The flow diagram in Fig. 5 illustrates an exemplary process for compressing clusters. In particular, two clusters Clustl and Clust2 are selected in step 250. There are a number of ways to determine which clusters should be selected in step 250. The simplest way to select the clusters is in an arbitrary manner. In step 260, the distance between the clusters is determined, as discussed above. In step 265, the respective size of each cluster is determined. In step 270, a check is performed to determine if the distance between the clusters ~d(Clustl, Clustz)} is smaller than the sizes of these clusters (e. g., to determine if these two clusters are "close enough" to each other). If so, the clusters should be merged into one cluster in step 275; otherwise, the clusters are ' maintained as separate clusters. In particular, an inquiry as to whether two clusters are "close enough" can be computed in the following manner, e.g..
2*d(Clust,,Clustz) ~a 2 o size (Clustl ) +size (Clust2 ) ( 8 ) where a is a predetermined threshold value. The two clusters should be merged by forming a new cluster consisting of points from Clustland Clustz if condition (8) occurs. Steps 250-275 should be repeated until there are no more clusters left that can be merged (see step 255).
In deciding which clusters Clustl and Clust2 should be chosen in step 250 of the cluster compression process, distances between, e.g., all pairs of clusters can be calculated and condition (8) can be checked to ascertain which clusters should be merged. Other methods to select the clusters for compression can also be used. Furthermore, the distance between all the pairs of clusters does not necessarily have to be calculated.
The system according to the present invention can be used in a Personal Shopping Assistant (PSA), a Personal Intelligent Digital Assistant {PIDA), and in a dynamic Web content presentation system, described below.
A Personal Shopping Assistant (PSA) system according to the present invention provides recommendations on the products and services that its users should consider purchasing (including, e.g., suggestions for purchasing at a specific source, and at a particular price). An exemplary embodiment of the PSA system according to the present invention is shown in Fig. 6a. In particular, the system includes a User Transaction Collection and Recording Unit (or module) 115, a Past Purchasing History Storage Unit (or module) 120, a User Profile Generation module 110, a State-of-the-World module 150, a User Estimated Purchasing Needs module 140, a Purchasing Recommendations module 145, and the State-of-the-User module 160.
The User Transaction Collection and Recording Unit 115 collects most of the shopping transactions performed by the user (e. g. 80-90% of all the purchases made by the user).
The User Transaction Collection and Recording Unit 115 can be implemented as a "smart card," or as a smart Point of Sales register that records individual items purchased by the user.
Alternatively, the user himself can record this information (as part of the User Transaction Collection and Recording Unit 115? using some transaction recording systems such as Quicken or Microsoft's Money.
When the user purchases one or more products, the User Transaction Collection and Recording Unit 115 records and transmits this information to the Purchasing History Storage Unit 120 where this information is stored as part of the purchasing history of the user. The Purchasing History Storage Unit 120 can be implemented, e.g., as a database that records transactions performed by various users in the TRAMS
file, as described above.
Information stored by the Purchasing History Storage Unit 120 is provided to User Estimated Purchasing Needs module 140. In order to estimate the user's purchasing needs, pertinent static and dynamic profiles of the user should be constructed based on the past purchasing histories obtained from the Purchasing History Storage Unit 120, which is performed by the User Profile Generation module 110. Static profiles include the user's demographic information (e. g., age, sex, marital status), particular preferences (e: g., user prefers a particular brand of beer), and certain purchasing decisions (e.g., the user bought a particular automobile in a particular month). Dynamic profiles include a set of rules (e. g., "if a user goes to France, the user often buys perfumes in Paris", "if user Y visits a Web site from the site Z in the evening, user Y does not spend a predetermined amount of time at site Z", etc.).
In addition, the PSA system maintains information on the current State of the World using the State-of-the-World module 150, which records information, e.g., on a broad range of products and services offered by various suppliers and on promotions and discounts run for these products and services.
Also, the PSA system includes the State-of-the-User module 160 that maintains information about the user obtained from the Purchasing History Storage Unit 120 (e.g., the user will be in New York on June 28, 1995 because she purchased an airline ticket for that date and destination) and various external . information (e.g., the date, time, and the user's location, if available).
By knowing the purchasing history of a user (provided from the Purchasing History Storage Unit 120), the user's profile (provided from the User Profile Generation module 110), and the external information about the user (provided from the State-of-the-User module 160), the PSA
system estimates the user's future purchasing needs using the User Estimated Purchasing Needs module 140. This Estimated Purchasing Needs module 140 may match the rules specifying which products the user will buy (and when) with the user's purchasing history. As a result, a set of products that the user should consider buying is produced.
Once future purchasing needs are estimated in Step 140, the PSA system will match these needs against a broad range of products and services offered by various suppliers and on the promotions and discounts run for these products and services. This matching process is performed by the Purchasing Recommendation module 145 using .conventional methods that are known to those of ordinary skill in the art.
For example, if the user needs to buy a pair of jeans within the next two months, the Purchasing Recommendations module 145 selects the merchants selling jeans, e.g, the cheapest pair of jeans that fits the use's requirements (considering the promotions offered within the next two months) by matching to the user profile (i.e., the user's purchasing needs). Once the Purchasing Recommendations module 145 matches the user's purchasing needs against the products and services, the Purchasing Recommendations module 145 provides purchasing recommendations to the user.
For example, based on the past purchasing history of a particular user, the PSA service may ascertain that whenever user X goes to France, user X often buys perfume in Paris.
This rule is stored as a part of.the user profile using the User Profile Generation,module 110. In addition, the Purchasing History Storage Unit 120 of the PSA service may receive information that the user has purchased a ticket to Paris, and in a substantially same time period, the State-of-the-World Unit 150 of the PSA service also receives information that, e.g., Christian Dior has launched a new line of perfumes that is similar to the brands previously purchased by user X. In addition, the State-of-the-World Unit 150 may also receive information that the duty-free shop at Charles de Gaulle airport is having a sale on these new perfumes (the price being very competitive). Using the above-described exemplary information, the PSA service (using the User Estimated Purchasing Needs module 140) estimates that user X
may want to buy these perfumes and sends a message to user X
(via the Purchasing Recommendation module 145) to consider purchasing the new perfume at the duty-free shop at Charles de Gaulle airport.
The success of the PSA service depends primarily on accurate predictions by the PSA service of users' future needs. If the user finds, e.g., 50% of the PSA suggestions useful, the user will probably be satisfied with the PSA
service. However, if the user finds, e.g., only 10% of the suggestions to be useful, the user will, most likely, reject this service. As indicated above, in order to make predictions of the user's future needs more accurate, it is important to build reliable user profiles. The present invention provides a method and system for generating better dynamic profiles and, therefore, providing more accurate predictions of the users' future needs.
The PSA system illustrated in Fig. 6a can be implemented using a first exemplary system shown in Fig. 6b and a second exemplary system shown in Fig. 6c. The first exemplary system of Fig. 6b provides that the User Transaction Collection and Recording Unit 115 is stored on the client side. All other modules from Fig. 6a are stored on the server side and are connected to the User Transaction Collection and Recording Unit 115 via a Telecommunication Medium 130 (e.g., a telephone line or a wireless communication medium). In the first exemplary system, individual user purchasing histories and static and dynamic profiles of these users are stored on the server at a central location (e.g. a database), and the method and system according to the present invention (as described above) generates improved dynamic profiles, and thus provides better estimated purchasing needs of the users.
The second exemplary system of Fig. 6c provides that the User Transaction Collection and Recording Unit 115, the User's Profile Generation Module 110, the Purchasing History Storage Unit 120, the State-of-the-World module 150, the State-of-the-User module 160, and the User Estimated Purchasing Needs module 140 are stored on the client side, while the State-of-the-World module 150 and the Purchasing Recommendations module 145 are stored on the server side. In the second exemplary system, the user dynamic profiles are validated in Step 20 of Figure 2 by the user (since these profiles are stored on the client side and are available to the user for checking and validating). Once module 140 estimates user purchasing needs, these estimated user purchasing needs are transmitted via the Telecommunication Medium 130 (e. g., a telephone line or a wireless communication medium) to the server, where the estimated user purchasing needs are matched by the Purchasing Recommendation module 145 to various products and services offered by various suppliers (that are stored on the server side). The resulting purchasing recommendations are transmitted back to the client side via the telecommunication medium 130 for the user's consideration.
The PSA service can also be used in a Personal Intelligent Digital Assistant (PIDA) service as illustrated in Fig. 7. Each user subscribing to this additional service is provided with a Personal Digital Assistant (PDA) (e.g., the remote device 350 or the User Transaction Collection and Recording Unit 115), which is connected to the PSA system (e. g., a general purpose computer 300). The PDA remote devices) 350 (which includes, e.g., a PDA processor 360, a PDA I/O port 365 and a PDA input device 355) and the PSA
systems) 300 (which includes, e.g., a display device 310, a storage device, a PSA processor 320, a PSA/ I/O port 325 and a PSA input device 305) form a client-server architecture, in which the PDA remote device is a client and the PSA system is a server. The PSA system, using the Past Purchasing History Storage Unit 120 (e. g., a storage device 315) and the User Profile Generation module 110, the State-of-the-World module 150, the State-of-the-User module 160, the User Estimated Purchasing Needs module 140 and the Purchasing Recommendations module 145 (executed by, e.g., a processor 320) estimates users' future needs and behavior as described above. The PDA
device accumulates additional information on the user's current state, such as the user's location information, preferences, and desires (e.g., the user is hungry now and wants to eat). This additional information is transmitted from the PDA device to the PSA system via the telecommunication medium 130 (e. g., a wireless network, fiber-s optics communication system, telephone wired system, etc.) to be stored using the State-of-the-User module 160 (e.g., in the storage device 315) as part of the user's state and is used subsequently for estimating the user's purchasing needs.
For example, in order to illustrate how the PIDA
service operates, assume that it is Tuesday, 11:30 am and that user X is driving in his car on I-87 in the Albany region on business, and that he indicated through his PDA device 350 that he wants to have lunch. The PDA device (350) records the current state of user X as "Tuesday, 11:30 am, presently driving in user X's car on I-87 in the Albany region, travel purpose is business, wants to have lunch." This information is sent from the PDA device 350 to the PSA system 300 via telecommunication medium 130. Based on user X's past purchasing history, the PIDA service recognizes that whenever user X is traveling on business, he likes to have light lunches at good quality restaurants and that he generally likes sea food. By examining user X's personal profile, and by matching the dynamic rule which provides that "whenever user X travels on business, he prefers light lunches at good quality restaurants", with user X's current state (user X is currently traveling on business), the PSA system 300 can predict that user X prefers a lunch at a good quality restaurant and he wants to eat light food. Next, the State-of-the-world module 150 of the PSA system 300 searches for highly rated seafood restaurants in the Albany region. If the PSA system 300 finds any such restaurant, user X is provided with restaurant choices (e.g., if more than one restaurant is located) by contacting user X's PDA device 350. If the PSA
system 300 does not find first choice restaurants conforming to the user X's preferences, the PSA system 300 provides second choice restaurants to user X.
User needs are estimated based on purchasing history, the user's static and dynamic profiles and the current "state" of the user (sent to the PSA system from the PDA device). When the needs of the user are estimated (e. g.
the user wants to buy a perfume in Paris, or wants to eat at a good seafood restaurant in the Albany region), they are matched with the current state of the "world." If the PIDA
service finds good matches (e.g., Christian Dior perfumes are on sale at Charles de Gaulle airport in Paris, or that there is a good seafood restaurant in the Albany region serving special lunches and located very close to the user's current route), purchase recommendations are provided to the customer based on these matches. These recommendations are sent back from the PSA server 300 to the PDA device 350 via a telecommunication medium 130 (e. g., via e-mail or through another intelligent user interface).
The PIDA service incorporating the system and method according to the present invention can be used for notifying the users about various purchasing opportunities, both time sensitive (e.g., a particular sale will start next week) and spatial (e.g., if you need a new sweater, and sweaters you would probably like are on sale at the store near your work).
The system and method according to the present invention can also be incorporated in a Web site system. In conventional systems, when a user visits a particular Web site, the user usually sees the same contents, regardless of who the user is. Using the system and method according to the present invention (i.e., individual profiles for respective users), the dynamic Web content of the Web site presented to the user can be varied to conform to the dynamic profile of the user visiting the Web site. Furthermore, dynamic profile construction methods can also be used in fraud detection systems. In particular, a set of fraud detection rules can be dynamically generated for each user.
It should be noted that the use of the above-described rule compression process and the cluster compression process according to the present invention is not limited to a construction of user profiles. For example, these process can also be used for computing useful association rules in data mining applications, or in general compressing large sets of rules generated by data mining algorithms.
D. Selective Validation Procedure Another embodiment of the present invention for providing a selective validation of individual user rules is shown in Fig. 8. In particular, user rules for all individual users (e. g., customers) are provided to a selective validation module/arrangement (step 375). The selective validation module/arrangement can be preferably executed by a central computing device illustrated in Figs. 6a and 6b, or executed by the processor 320 of the general purpose computer 300 illustrated in Fig. 7. The individual user rules may be stored in the storage device 315. It is also possible to provide the selective validation module/arrangement in the remote unit 350 illustrated in Fig. 7. In step 380, the selective validation module/arrangement receives still unvalidated user rules and outputs at least one set of selectively validated individual user rules (step 390). In addition, the selective validation module/arrangement can optionally include the process illustrated in Fig. 3. In an exemplary embodiment of the present invention, this selective validation procedure allows the human expert to select particular subsets of individual user rules and characterize these subsets as "Good" subsets, "Bad" subsets and/or "Undecided" subsets.
A flow chart representation of an exemplary embodiment of a process executed by the selective validation module (or an exemplary steps executed by the selective validation arrangement) described above is illustrated in Fig.
9. According to the present invention, a "Good Rules" set is provided to maintain (e. g., store) all sets of individual user rules which were selected by the human expert as rules which are usable for a particular user. A "Bad Rules" set is WO 99/26180 PCT/US98/'24339 provided to store all sets of individual user rules selected by the human expert to be unusable for that user.
As shown in Fig.9, (in step 400) each of the "Good Rules" and "Bad Rules" sets are initialized, e.g., to be empty or null sets. In step 405, all user rules are combined to form Set S. Set S initially contains all related (e. g., similar) subsets of the unvalidated individual user rules for all users. These similar subsets may be grouped in a similar manner as discussed above with reference to Fig. 4, or using a filtering and/or clustering operator as discussed below. In step 410, the user rules in Set S (or subsets in Set S) can be displayed. The human expert examines the subsets of "related"
rules from Set S (e.g., one rule or one set at a time), and selects which subsets (or which rules) in Set S are "good", "bad" and/or neither (step 415). These subsets can also be examined automatically by a system (e.g., the processor 320 implementing an expert system or an artificial intelligence system) using a predetermined criteria. If a particular subset in Set S is selected to be usable, the particular subset is marked as "good"; if this subset is selected to be unusable, it is marked as "bad"; if the human expert (or the system) cannot determine if the particular subset is usable or not, such subset is marked as "undecided" (step 420). In step 425, the subsets which are marked as "good" are moved from Set S to the Good Rules set, and the subsets which are marked as "bad" are moved from Set S to Bad Rules set.
In step 430, a decision is made (e. g., automatically via the processor 320 or by the human expert) if the processing of the selective validation module/arrangement is completed, and, if so, initiates a completion process according to this embodiment of the present invention. There can be numerous conditions to indicate to the selective validation module/arrangement according to the present invention that the completion process should be initiated.
For example, the following exemplary conditions may prompt the selective validation module/arrangement to stop processing:
- Set S can became empty (i.e., all subsets of rules are moved from Set S to "Good Rules" set and/or to "Bad Rules" set). If this is the case, all subsets of rules are marked with their appropriate designation (i.e., "good" or "bad");
- the number of subsets in Set S is less than a predetermined number;
- the ratio of the rules in Set S with respect to all of the existing rules is less than predetermined value; and - the user decides to stop the process (e.g., a desired number of rules has already been classified or marked).
Other stopping criteria may be used for initiating the completion process according to the present invention.
If it is determined that the processing of the completion process according to the present invention should be initiated, the rules from the Good Rules set is assigned to one or more corresponding users (step 435), Good Rules set and/or undecided subsets can be displayed (step 440), and the execution of the process according to the present invention is stopped. If, however, it is determined that the completion process should not be initiated (i.e., the subsets should be regrouped), the remaining rules in Set S (i.e., the subsets marked as "undecided") are grouped or regrouped to generate a new Set S (step 445), and this new Set S is provided to the human expert (i.e., looped back to step 410.) so that the rules within new Set S may be reclassified using the process and/or the arrangement according to the present invention (i.e., looped again starting with step 410).
It should be noted that if a particular subset Set S
is marked as "undecided", this subset is then further analyzed by either splitting it into smaller subsets using techniques described below or optionally regrouping this particular subset with other related sets from Set S as also described below.
According to an exemplary embodiment of the process according to.the present invention, the rules in Set S which were marked as "undecided" are grouped to generate a new Set S
according to the following exemplary methods:
- A predetermined number of the remaining subsets (which can also be a single subset) contained in Set S are selected and merged together to form new subsets. The above-described remaining sets can be selected by the human expert or according to some predetermined selection criterion (e. g., the size of individual sets of rules should be smaller than a predetermined value).
One or more subsets are selected from Set S. For each of these subsets, at least one of the following exemplary "partitioning" operators is applied to the selected subsets: a filtering operator and/or a cluster/grouping operator (which are as described below). Other "partitioning" operators can also be implemented. The terms - "clustering operator" and "grouping operator refer to identical operations and shall be utilized interchangeably below. In a particular embodiment of the present invention, subsets in Set S (obtained using the cluster operator with a particular "cut" operator) can be re-grouped based on a different "cut" operator, which may depend from the previous cut and/or can be based on other parameters or criteria. For example, these subsets can be merged back into a single set of rules and the cluster operator is then applied to this subset again (but with a different "cut" parameter). Other operators can also be used to regroup the subsets in Set S.
I. Filterincr Operators An exemplary filtering operator receives a subset of rules and splits this subset into at least 2 subsets: one subset contains rules which pass a predetermined selection criteria of the filter, and another subset contains rules which do not. In particular, this selection criteria may be specified using a data mining query (or a pattern template).
The data mining query describes a class of patterns in general terms.
Data mining queries are described in publications -T. Imielinski et al., "DataMine: Application Programming Interface and Query Language for Database Mining", Proceedings of the Second International Conference on Knowledge Discovery and Data Mining, August 1996; J. Han et al., "DMQL: A Data Mining Query Language for relational Databases", Proceedings of the SIGMOD Workshop in Research Issues on Data Mining and Knowledge Discovery, Montreal, June 1996; and W. Shen et al., "Metaqueries for Data Mining," Advances in Knowledge Discovery and Data Mining, chap. 15, AAAI Press, 1996. Any pattern description language or any data mining query language can be used to specify patterns and data mining queries. For example, article by T. Imielinski et al., "DataMine:
Application Programming Interface and Query Language for Database Mining," Proceedings of the Second International Conference on Knowledge Discovery and Data Mining, August 1996 introduced "M-SQL" for association rule discovery which is based on software query language ("SQL") modified with additional data mining operators. However, the exemplary embodiment of the data mining query does not depend on any specific language.
For the following exemplary request, "Find all rules in customer purchase data specifying which product categories the customers with children of various ages are buying", M-SQL
query is as follows:
SELECT
FROM Mine(CustomerPurchaseData) R
WHERE R.Body<((Children=*), (ChildrenAgeLess6=*), (ChildrenAge6to12=*), (ChildrenAgeMorel2=*)~ and {(Children=*)~<R.Body and R.Consequent IN
{(CategorySweets=*), (CategoryCereal =*), (Ca tegoryFrui t=* ) } and R. Confidence>=0 . 5 and R.Support>=0.01.
This data mining query discovers association rules if and only if they satisfy certain criteria. First, the association rules must include the fields Children, ChildrenAgeLess6, ChildrenAgre6to12, ChildrenAgeMorel2 of the table CustomerPurchaseData in the body of the rule. Second, the attribute Children must necessarily be present (this is specified by R. Body). Third, the discovered patterns must have one of the fields CategorySweets, CategoryCereal or CategoryFruit as a consequent of the rule (specified by R.Consequent). Finally, the discovered patterns must satisfy certain thresholds measuring statistical significance (i.e., R.Confidence and R.Support).
Thus, this exemplary data mining query specifies a set of patterns. The set of these exemplary patterns may indicate:
- the extent to which families with children younger than six years old buy sweets, - the extent to which families with children older than 12 years old buy sweets, - the extent to which families with children older than 12 years old buy fruit, etc..
Therefore, the pattern specified by the association rule:
Children = YES and ChildrenAgeLess6 = YES -->
Ca tegorySweets = YES (0.01, 0.55) noted above is also one of the patterns specified by the data mining query.
Pattern Templates are described in M. Klemmettinen et al., "Finding Interesting Rules for Large Sets of Discovered Association Rules", Proceedings of the Third International Conference on Information and Knowledge Management, December, 1994. For example, a pattern template may be provided as follows:
Children and Chi3drenAge * --> Category(0.01,0.5) where ChildrenAge and Category are generalizations of attributes. Thus, if ChildrenAge specifies the set of attributes {ChildrenAgeLess6, ChildrenAge6to12, ChildrenAgeMorel2} and Category specifies the set of WO 99/26180 PC"fIUS98l24339 attributes {CategorySweets, CategoryCereal, CategoryFruit}, then this pattern template specifies the same patterns as the above-described data mining query.
II. Clusterina Operator The clustering operator receives, as input, a subset of rules and an attribute hierarchy of this subset. In particular, the attribute hierarchy can be formed using the procedure described below with reference with Fig. 10. An exemplary attribute hierarchy is illustrated in Fig. 13. All of the fields (i.e., attributes) of the attribute hierarchy are provided at the bottom of the attribute hierarchy. These fields are portions of the transaction file TRANS(Trans_ID, Cust_ID, C~, ... C") as described above, without the fields Trans_ID and Cust_ID. In the exemplary hierarchy illustrated in Fig . 13 , n = 13 .
A top portion of Fig. 10 shows an exemplary procedure to generate the attribute hierarchy. In step 450, grouping data of a particular subset of rules is determined by combining the fields of the TRANS file (e. g., a table) into groups (e.g., fields C1, C2, C3 illustrated in Fig. 13 are combined into group N1, fields C4 and C5 into group N2, etc.).
In step 455, these groups are further combined into larger groups, and so on. For example and as shown in Fig. 13, groups N2 and N3 are combined into group N4, groups Nl and N4 are combined into group N5, fields C9 and C10 are combined into group N6, group N7 and field C11 are combined into group N8, groups N6 and N8 axe combined into N9, and groups N5 and N9 are combined into N10. As a result, the attribute hierarchy is generated (step 455), with attributes of the TR.ANS transaction file being its leaves. It should be noted that a tree which defines this attribute hierarchy (shown in Fig. 13) does not have to be balanced, i.e., all path lengths from the root node to the leaves do not have to be equal.
The attribute hierarchy may include one or more (e.g., two) levels of nodes below the descendent leaves of the attribute hierarchy (i.e., the fields of the TRANS transaction WO 99IZ6180 PCTIUS98f24339 file). A first level consists of a pair of attributes - field and a relational operator. The relational operator may include exemplary operators such as "_", "<", ">", etc. A
second level is below the first level and consists of three attributes - field, relational operator and sets of values which the field attribute can be compared to (e. g., predetermined values, one or more intervals, etc.). For example, the second level can be (C3, _, a) (i.e., field C3 uses the relational operator "_" to be compared to variable "a") , (C5, <, 20) (i.e., field C5, via the relational operator "<" is compared to number 20), (C8, _, [60, 80]) (i.e., field C8, via the relational operator "_" is compared to a range between 60 and 80), etc. Fig. 14 shows an exemplary illustration of the first and second level extensions of node N7. In particular, the first level of field C12 is a leaf 540, which contains field C12 and a relational operator "<". Below leaf 540, a lowest leaf of field C12 (leaf 550) is provided with field C12, the relational operator "<" and a comparison value "20". In addition, the first level of field C13 is a leaf 545, which contains field C13 and a relational operator "_". Below leaf 545, a lowest leaf of field C13 (leaf 555) is provided with field C13, the relational operator "_" and a comparison~range "[60, 80]". These leaves are only provided for illustrative purposes, and it should be understood that other combinations of field to relational operators to comparison values/ranges are possible. These hierarchies don't necessarily have to include the same number of extensions/leaves. For example, field C12 may have two extensions, field C4 may have one extension, field C5 can have no extensions and field C6 can have four extensions.
After the attribute hierarchy is generated in step 455 (shown in Fig. 10), "Cut" data is generated with respect to the attribute hierarchy (step 460) by providing a "Cut" in the attribute hierarchy. "Cut" in the attribute hierarchy is defined as a set of nodes of the tree such that a union of all descendant leaves of the nodes which were identified in the cut consists of all the fields of TRANS transaction file (i.e., C1,...,Cn). An exemplary cut is shown in Fig. 13 which includes the following groups/fields - C1, C2, C3, N4, N6, C11 and N7. In addition, the "Cut" is not limited to the nodes of shown in Fig. 13, and can also include one or two levels below the field levels (shown in Fig. 14). Fig. 11 shows a detailed illustration of step 460 in which "Cut" data is generated. In step 480, the "Cut" is provided to the attribute hierarchy.
If the "Cut" is properly specified (e.g., all of the leaves of the attribute hierarchy are above the "Cut", leaves being the lowest level of the attribute hierarchy) in step 485, or if the human expert (or the system) indicates that the "Cut" is unacceptable (step 490), a different "Cut" is created using similar techniques as described above for providing the original cut (step 497) and the procedure is restarted at step 485 with this newly created "Cut". Otherwise, "Cut" data is generated as a function of the "Cut" (step 495) and can be stored in memory for a possible future use.
After the "Cut" data is generated (step 460 in Fig.
... Am are fields describing the characteristics of the user (e. g., sex, income, education, etc.).
The dynamic profile is built instep 15. A dynamic profile consists of rules (or patterns) characterizing a user's behavior, e.g., "if user X shops in the evening on weekdays and purchases diapers, user X also buys beer", "if user X shops on weekdays, user X usually buys a small number of items", "if user X travels to New York on business, user X
prefers to have lunches at expensive seafood restaurants."
The rules are derived from a set of transactions pertaining to a particular user. These transactions may be, for example, credit card transactions, airline reservations and Web site visit transactions, and are stored in the "TRAMS" file which has the following format:
TRAMS (Trans_ID, Cust_ID, C1, C2, . . . C") where Trans_ID corresponds to a unique index key that identifies the transaction being performed by the user.
Fields C1, C2, ... C" identify a particular transaction (e.g., date of transaction, time of transaction, amount spent, location of the transaction, etc.). The field "Gust ID"
corresponds to an index key pointing to a particular user having a respective record in the OUST file. Thus, the user performing a particular transaction can be identified.
Other file formats can also be utilized, as can be understood by those having ordinary skill in the art. For example, the user-specific information can also be stored in several files rather than in a single CUST file (thus, the CUST file can be normalized by splitting the CUST file into several smaller files). Using different file formats does not affect the operability of the system and process according to the present WO 99/26180 PCT/US98lZ4339 invention. After the dynamic profile for a particular user is generated, this dynamic profile is validated in step 20.
After the validation of the dynamic profile, the static and dynamic profiles are combined to form a combined user profile in step 25. The following exemplary information can be obtained from the TRANS file to be provided into the static profile when the static and dynamic profiles (the OUST
and TRANS files) are combined: a) an average transaction amount for user X; b) user X's favorite brand of beer is, e.g., Heineken; c) user X shops mostly on week-ends.
While it is relatively uncomplicated to construct user static profiles, it is much more difficult to construct quality dynamic profiles. Rules provided in the dynamic profile are generated for each user. Because a user may perform only a small number of transactions, the corresponding rules generated may be statistically insignificant, unreliable and irrelevant. In many systems (e. g, airline reservations systems, credit card transactional systems, or Web site usage systems), it is possible to have from as little as a few dozen to a few hundred transactions per each user. The rules generated with such amounts of data are often ineffective and insignificant.
The total number of generated rules can also be very large. For example, in a system serving 5 million customers and generating an average of 100 rules per user, a total number of generated rules can reach 500 million. Many of the 500 million generated rules are of questionable quality and usefulness. In order to filter the rules having such undesirable characteristics, a human expert must decide which dynamic rules should be stored and which dynamic rules should be discarded. It would be impossible for the human expert to manually check the usefulness of all 500 million rules.
Quality dynamic profiles are generated by validating dynamic rules generated using various rule induction methods.
Ultimately, however, the human expert validates the machine-generated rules to determine their "usefulness" in various systems. Since most of the systems generate too many rules to be manually examined by human experts, the system and method according to the present invention facilitates compressing individual rules into "aggregated" rules. After the individual rules are compressed into the aggregated rules, the aggregated rules are evaluated by a human expert who selects only the rules that the expert believes are pertinent for the user. In addition, it is possible (in some applications) that the respective user can be such a human expert (and examining only the rules that are pertinent to the respective user).
A. Dynamic Profile Construction Procedure It can be assumed that user-specific rules have been already created using methods known to those having ordinary skill in the art. For example, individual user rules can be generated using an induction software system (e. g., "CART"
Breiman et al., 1984; C4.5, Quinlan, 1993; or RL, Clearwater &
Provost, 1990). The structure of these rules has, preferably, the following form:
Cileilail ~ Ci2ei2ai2 ~ . . . n Cik~ikaik ~ Cieiai (1) where Cil, Ciz, . ~ ~ , Cik, Ci are fields from the TRAMS file, ail aiz, ~ ~ . , aik, ai are constants, and 8i~ are relational operators (e. g., "_", ">", "<", etc.). In addition, each rule is assigned to a user defined by the Cust ID (user identifier) from the CUST file.
Next, it is important to remove "useless" individual rules from the total number of rules. A process to remove these useless individual rules is shown in Fig. 3. In step 30, individual rules are provided for processing. In step 35 several "similar" individual rules (of the form (1)) are compressed into one aggregated rule of the form:
Aileilbil ~ Ai2ei2bi2 ~ . . . n Ai~ei~bi~ n 3 5 CilB hail ~ Ci2 a i2ai2 ~ ~ . . /~ Cik~ ikaik ~ Ci a iai ( 2 ) where A;1, . . . , A;~ are the fields in the CUST file, b;l, . . . , bi~are constants, and Big are relational operators (e.g., "_", ">", "<", etc.). For each individual rule of the form (1) the aggregated rule of the form (2) is formed after the individual rules are compressed. The newly aggregated rules (formed in step 40) can be, e.g., fuzzy rules, and the operators 6;~ should also be, e.g., fuzzy operators. For example, several of the individual rules that are similar (generally pertaining to different users) can be compressed into one aggregated rule pertaining to the same subject matter that can be applicable to several users. For example, if several rules have the form:
IF Shopping-time = "evening" and Day-of week =
"weekday" and Purchase = "diapers" THEN Purchase =
"beer", and it is known that most of the users corresponding to this rule are males, then these rules can be compressed into the aggregated rule having the following form:
IF Sex = "Male" and Shopping-time = "evening" and Day-of week = "weekday" and Purchase = "diapers"
THEN Purchase = "beer".
Additional fields (e. g., Sex, etc.), unlike other fields in the above exemplary rule, are fields from the CUST
file. Individual rules relating to different users can be compressed into the same aggregated rule for a group of users.
Thus, the rule compression can preferably be implemented for different users. The number of aggregated rules (of the form (2)) generated by the compression algorithm should be much smaller than the initial number of individual rules. Then, in step 45, the aggregated rules can be validated (one by one) by the human expert (including a particular user) to determine which rules are appropriate for that user. After the user validates the aggregated rules, this user selects the set of preferred aggregated rules in step 50. Only the individual rules corresponding to the aggregated rules selected in step 50 are retained in the user's dynamic profile (step 55) to provide validated individual rules (step 60) to the user.
B. Rule Compression Process Fig. 4 illustrates a detailed flow diagram of an exemplary rule compression process (starting from step 35 in Fig. 3). Two individual rules of the form (1) are referred to as "similar" rules if they differ from each~other only in the values of their respective constants air. Thus, similar rules should have the same number of terms, the same fields Ci~, and the same comparison operators 9;~. Similar rules can be mapped into the (k-~1) dimensional space defined by Dom(C;1) x...x Dom(Cik) x Dom(Ci), where Dom is a domain (or range of values) of the field C, with a rule having the form (1) being mapped into the points ( i . a . , ail, aiz, . . . , aix, ai) . This set of points is generated by similar rules. For example, the rule "if user X shops in the evening on weekdays and purchases diapers, user X also buys beer" can be written as:
IF (Shopping time = "evening" and Day of week "weekday" and Purchase = "diapers") THEN Purchase =
"beer".
This sample rule would be mapped into the corresponding vector ("evening", "weekday", "diapers", "beer") of the 4-dimensional space of attributes (variables):Shopping_time, Day_of week, Purchase and another Purchase.
The exemplary rule compression process (described below in detail) then generates rules (e.g., fuzzy rules of the form (2)). These fuzzy rules utilize fuzzy linguistic variables for the fields from the CUST and TRANS files, which are generally known to those having ordinary skill in the art.
Each fuzzy linguistic variable has a corresponding identifier (e. g., Tncome, Transaction Amount, etc.), each being capable of providing a range of values (e. g., natural numbers between 0 and 1,000,000), a set of terms (e.g., "low", "medium", "high", etc.), and a membership function that assigns a membership value (e. g., between 0 and 1) to each value from the domain of the fuzzy linguistic variable for each range of WO 99126180 PCT/US98r14339 values. In addition, the non-ordered fields in the CUST and TRAMS files (e. g., "Product_Purchased") have assigned classification hierarchies; for example, the field "Product Purchased" can include standard classification hierarchies used in marketing. Thus, UPCs, e.g., can be grouped into brands, brands can be grouped into product categories, etc.
The following exemplary inputs are provided to the Rule Compression Process:
a. Individual rules from users' dynamic profiles.
b. Fuzzy linguistic variables for all fields in the CUST and TRAMS files.
c. Hierarchical classifications for non-ordered fields.
Exemplary outputs generated by the Rule Compression Process are a set of (preferably) fuzzy aggregated rules having the form (2).
The steps of the exemplary rule compression process shall now be described in detail with reference to Fig. 4. In step 160, all the individual rules of the form (1) are grouped into sets of similar rules (i.e., rules having the same structure). The maximal number of such similar groups is 4", where n is the number of fields in the TRAMS file. For example, if n = 10, then there can be at most 1 x 22° similar groups. However, this number is typically much smaller in practice. Each set of similar rules forms a set of points in a k-dimensional space generated by the individual rules described above. In step 165, a group of clusters of the generated points is determined using any of the cluster computation methods known to those of ordinary skill in the art. In step 170, starting from the first cluster of the group of clusters determined in Step 165, an approximate rule for that cluster is determined in Step 180. The approximate rule is determined as a function of the points in the cluster.
For example, a point in the cluster may be the "center" of the cluster. The center can be identified as a point that minimizes the sum of distances from a particular point to other points in the cluster. For example, given Cluster Ci - (cil, ci2, . . . cik) , the center of this cluster is the point that minimizes the expression:
min ~ d ( x, ci ) ' Ci xeClusti The center of the cluster can also be determined using other methods, such as, e.g., selecting the most "representative"
point in that cluster.
In step 185, the next cluster is selected and the procedure described with respect to step 180 is repeated. In step 175, it is determined whether all of the clusters in the group of clusters have been evaluated. As an illustration, if cluster Clusti contains three 3-dimensional points (0,0,1), (0,1,0), (1,0,1), corresponding to the vertices of a equilateral triangle, then the center of this cluster C; is the center of the triangle, i.e., the point (~,~,~). Other approaches to defining the center of a cluster can be used.
This exemplary rule compression process does not depend on any specific method for defining any center of a cluster Ci.
Given the set of rules (1) corresponding to the cluster with the center Ci - (cil, ci2, . . . cik) , the corresponding aggregated rule has the form:
Ciieiicii n CizeizCiz n . . . n Cik9ixCix ~ Cieici (3 ) which is a "representative" rule for the cluster of similar rules. For example, if the center of the cluster is (;~,;~,~), the following rule is generated:
'~z n Cz =
Also, for totally ordered fields Ci~, standard deviations Qi~ of the points in that cluster are calculated for that field. For unordered categorical fields Ci~, a measure of the "deviation"
of the points is determined in that cluster along the j-th dimension from ci~ (by using the hierarchical classification for that field).
In step 190, a total number of clusters generated in Step 165 is provided to the user. In step 195, the user is . asked if there are too many of the generated clusters for manually inspecting the aggregated rules (i.e., the number of generated clusters is greater than a predetermined number).
If so, the generated clusters are compressed using a cluster compression process described in step 205. Thereafter, there is a smaller number of clusters (and corresponding aggregation rules per cluster}. The user is asked again, in step 195, if there are too many generated clusters for the manual inspection of aggregated rules. If the number of clusters is smaller than the predetermined number, for each cluster Ci obtained in step 165 or in step 205, a set of users corresponding to the points for that cluster is identified in step 210. Each point in a cluster corresponds to a first representative rule from the dynamic profile of the user, so that all of the users corresponding to the dynamic profile rules from that cluster can be identified. For example, CUST-ID; is defined as a set of values Cust-ID;~ corresponding to the users corresponding to the rules of cluster Ci. A set of records ("CUST;") from the CUST file corresponding to the users of that cluster is identified (i.e., having user ID
values from the set OUST-IDi). Thus, CUSTi = { r ~ CUST(r) and r.Cust-ID E CUST_IDi }.
The set of records CUSTi form a set of points in m-dimensional space (where m is the number of fields in the CUST
file). These points are separated into clusters using the same techniques as described in step 165. For each resulting cluster CUSTi~, a center is located as explained below. The set of points belonging to that cluster is approximated with a logical statement having the form:
Al9i~lb;31 n A26i~2b;~2 n . . . n Am9i~mbi~m (4 ) to form a corresponding condition in step 215, where Ai are the fields of the OUST file, 9;~1 are relational operators (e. g., "_", "<", ">", etc.) and bi~l are constants. One way to construct the condition (4) would be by finding the center bij - (bi~l, . . . , biam) of the cluster OUST ;~ as described in step 180, and substituting the values of bi~l into the condition (4) (also setting all the relational operators to be "_").
Another way to construct this condition (4) is described in A.
Motro, "Using Integrity Constraints to Provide Intentional Answers to Relational Queries", Proceedings of the 15th International Conference on Very Large Databases, 1989, pp.
237-246, and C. Shum et al., "Implicit Representation of Extensional Answers", Proceedings of the 2nd International Conference on Expert Database Systems, 1988.
In step 220, the first and second representative rules are augmented (i.e., expression (4) is augmented with expression (3)). The resulting rule is:
Aleijlbijl ~ A2eijZbij2 ~ . . . ~ A",ei~mbijm ~ Cil~ilCil 2O Ci28i2Ci2 n . . . /~ CikBikCik ~ CimeimCi ~ (5) For example, assume that the center of a cluster is a rule: "if a user shops in the evening on weekdays and buys diapers, the user also buys beer" (i.e., IF Shopping_time =
' "evening" and Day_of week = "weekday" and Purchase = "diapers"
THEN Purchase = "beer"). Also, assume that most of the users in that cluster are men, thus forming the expression (4) where "Sex" - "Male". Accordingly, the augmented rule is "if a male user shops in the evening on weekdays and buys diapers, the user also buys beer" (i.e., IF "Sex" - "Male" and "Shoppang_time" - "evening" and "Day of week" - "weekday" and "Purchase" - "diapers" THEN "Purchase" - "beer").
Then, in step 225, the rules of the form (5) generated in step 220 are converted into fuzzy aggregated rules. In particular, each field A; and C;~ in the form (5) is mapped into a corresponding fuzzy linguistic variable associated with that field. In addition, all of the terms in WO 99/Z6180 PCTIUS981~4339 the expression (5) are converted into appropriate fuzzy expressions. For example, assume that a non-fuzzy term A1 = 20 corresponds to a fuzzy linguistic variable also denoted as A1.
Further assume that the term set for A1 is either low or high, and that there is a membership function that assigns the membership value (e. g., between O and 1) to each value from the domain of fuzzy term A1 for each value from the term set.
Then, it can be determined for which term (i.e., low or high) the membership value 20 is higher, and a corresponding term is assigned. If the membership value is higher for the term °low", then the expression A1 = 20 is replaced by A1 = LOW.
In step 230, the set of aggregated fuzzy rules generated by the rule compression process is shown to the human expert who selects only the meaningful and useful rules from this set according to user desired criteria.
C. Cluster Compression Process Fig. 5 shows an exemplary cluster compression process as discussed above with respect to step 205 illustrated in Fig. 4. As an initial matter, it is assumed that, e.g., clusters Clustl and Clustz are determined in step 165. Since Clustl and Clust2 can be generated by dissimilar rules, the rules from each of these clusters Clustl and Clust2 can be very different (or similar). Therefore, it is important to determine whether two different clusters are substantially similar to each other so that they can be merged. In particular, the distance between two aggregated rules of the form (3) corresponding to the centers of these clusters is determined to ascertain whether these different clusters are substantially similar. As an example, the following two aggregated rules corresponding to the center of Clustl and Clust2 are considered C1 - a /1 CZ < b ~ C4 - c, and C1 - d n C3 - a ~ C4 = g It may be also assumed that the domains of attributes Cz and C3 are discrete and ordered. These rules have different structure and therefore are different. In order to calculate the distance between these rules, we first have to bring these rules into the same 4-dimensional space of attributes Cl, C2, C3, and C4. This can be done by replacing these rules with the rules C1 - a n CZ - z n C3 = x ~ C4 - c ( 6 ) C1 - d /~ Cz - y n C3 - a ~ C4 - g ( 7 ) where x and y are uniformly distributed random variables ranging over the domains Dom(C3) and Dom(C2) of attributes C3 and CZ respectively and z is a uniformly distributed random variable ranging over the domain of Dom(C2) from its smallest element to b. This procedure can also be performed using actual distribution in the data for corresponding attributes of x and y variables. It should be noted that the term CZ < b (the first aggregated rule described above) should be replaced with CZ = z in rule (6). In addition, term C3 = x is provided into the first aggregated rule and term C2 = y is provided into the second aggregated rule. It is also assumed that, e.g., random variables x, y, and z are uniformly distributed over their respective domains.
If constants are substituted fox the variables x, y, and z, the terms of the aggregated rules (6) and (7) will contain only equalities and constants. Thus, these aggregated rules (with the above-described substitutions) will have respective paints in the same 4-dimensional space. If the distance between these two points can be calculated for fixed values of variables x, y, and z -- d(Clustl (x, z), Clustz (y)) (i.e., if all the attributes are numeric, then the distance can be a Euclidean distance; if some of the attributes are categorical and unordered, the distance can be calculated in terms of how far the nodes are in the aggregation hierarchy defined for that attribute) -- then the distance between clusters Clustl and Clustz is equal to:
d(Clustl, C.Iust2) = 1 Dom ( Cz ) ' Dom ( C3 ) " ( b-mi n ( Dom ( C2 ) ) d ( Cl us tl ( x, z ) , Cl us t2 ( y) ) xeDom ( C3 ) , yeDom ( Cz ) , z<b since it can be assumed that the domains of attributes CZ and C3 are discrete. If these domains were continuous, integration would have been used instead.
In general, let cl - (cll, c12, ... clk) and c2 = (c21, c22, . . . , czm) be the centers of two clusters Clustl and Clust2 as calculated in steps 170 through 185 illustrated in Fig. 4, where cl and cz are vectors with different dimensions (because different rules can have different numbers of terms). The rules corresponding to the centers of these two clusters are extended with, e.g., dummy attributes and dummy random variables that form a union of the attributes for clusters Clustl and Clust2. Assuming that the dummy variables are uniformly distributed over their domains, the distances between the two rules for fixed values of random variables can be calculated. Thereafter, the random variables are either integrated (for continuous random variables) or summed (for discrete random variable) over different values of these random variables. Thus, the distance between clusters can be determined using the system and method according to the present invention.
Once the distance between the two clusters is determined, the clusters can be merged as follows. In order to perform this operation, the size of the cluster should be determined as a part of the Cluster Compression process. The size of the cluster is the measure of how far the points of the cluster are apart from each other. This size can be determined, e.g., using the following formula:
WO 99/26180 PCTIUS98t24339 size(Clust) = 1 ~ d(x, c) Clust xeClust where c is the center of the cluster. Other measurements can also be used by those having ordinary skill in the art.
The flow diagram in Fig. 5 illustrates an exemplary process for compressing clusters. In particular, two clusters Clustl and Clust2 are selected in step 250. There are a number of ways to determine which clusters should be selected in step 250. The simplest way to select the clusters is in an arbitrary manner. In step 260, the distance between the clusters is determined, as discussed above. In step 265, the respective size of each cluster is determined. In step 270, a check is performed to determine if the distance between the clusters ~d(Clustl, Clustz)} is smaller than the sizes of these clusters (e. g., to determine if these two clusters are "close enough" to each other). If so, the clusters should be merged into one cluster in step 275; otherwise, the clusters are ' maintained as separate clusters. In particular, an inquiry as to whether two clusters are "close enough" can be computed in the following manner, e.g..
2*d(Clust,,Clustz) ~a 2 o size (Clustl ) +size (Clust2 ) ( 8 ) where a is a predetermined threshold value. The two clusters should be merged by forming a new cluster consisting of points from Clustland Clustz if condition (8) occurs. Steps 250-275 should be repeated until there are no more clusters left that can be merged (see step 255).
In deciding which clusters Clustl and Clust2 should be chosen in step 250 of the cluster compression process, distances between, e.g., all pairs of clusters can be calculated and condition (8) can be checked to ascertain which clusters should be merged. Other methods to select the clusters for compression can also be used. Furthermore, the distance between all the pairs of clusters does not necessarily have to be calculated.
The system according to the present invention can be used in a Personal Shopping Assistant (PSA), a Personal Intelligent Digital Assistant {PIDA), and in a dynamic Web content presentation system, described below.
A Personal Shopping Assistant (PSA) system according to the present invention provides recommendations on the products and services that its users should consider purchasing (including, e.g., suggestions for purchasing at a specific source, and at a particular price). An exemplary embodiment of the PSA system according to the present invention is shown in Fig. 6a. In particular, the system includes a User Transaction Collection and Recording Unit (or module) 115, a Past Purchasing History Storage Unit (or module) 120, a User Profile Generation module 110, a State-of-the-World module 150, a User Estimated Purchasing Needs module 140, a Purchasing Recommendations module 145, and the State-of-the-User module 160.
The User Transaction Collection and Recording Unit 115 collects most of the shopping transactions performed by the user (e. g. 80-90% of all the purchases made by the user).
The User Transaction Collection and Recording Unit 115 can be implemented as a "smart card," or as a smart Point of Sales register that records individual items purchased by the user.
Alternatively, the user himself can record this information (as part of the User Transaction Collection and Recording Unit 115? using some transaction recording systems such as Quicken or Microsoft's Money.
When the user purchases one or more products, the User Transaction Collection and Recording Unit 115 records and transmits this information to the Purchasing History Storage Unit 120 where this information is stored as part of the purchasing history of the user. The Purchasing History Storage Unit 120 can be implemented, e.g., as a database that records transactions performed by various users in the TRAMS
file, as described above.
Information stored by the Purchasing History Storage Unit 120 is provided to User Estimated Purchasing Needs module 140. In order to estimate the user's purchasing needs, pertinent static and dynamic profiles of the user should be constructed based on the past purchasing histories obtained from the Purchasing History Storage Unit 120, which is performed by the User Profile Generation module 110. Static profiles include the user's demographic information (e. g., age, sex, marital status), particular preferences (e: g., user prefers a particular brand of beer), and certain purchasing decisions (e.g., the user bought a particular automobile in a particular month). Dynamic profiles include a set of rules (e. g., "if a user goes to France, the user often buys perfumes in Paris", "if user Y visits a Web site from the site Z in the evening, user Y does not spend a predetermined amount of time at site Z", etc.).
In addition, the PSA system maintains information on the current State of the World using the State-of-the-World module 150, which records information, e.g., on a broad range of products and services offered by various suppliers and on promotions and discounts run for these products and services.
Also, the PSA system includes the State-of-the-User module 160 that maintains information about the user obtained from the Purchasing History Storage Unit 120 (e.g., the user will be in New York on June 28, 1995 because she purchased an airline ticket for that date and destination) and various external . information (e.g., the date, time, and the user's location, if available).
By knowing the purchasing history of a user (provided from the Purchasing History Storage Unit 120), the user's profile (provided from the User Profile Generation module 110), and the external information about the user (provided from the State-of-the-User module 160), the PSA
system estimates the user's future purchasing needs using the User Estimated Purchasing Needs module 140. This Estimated Purchasing Needs module 140 may match the rules specifying which products the user will buy (and when) with the user's purchasing history. As a result, a set of products that the user should consider buying is produced.
Once future purchasing needs are estimated in Step 140, the PSA system will match these needs against a broad range of products and services offered by various suppliers and on the promotions and discounts run for these products and services. This matching process is performed by the Purchasing Recommendation module 145 using .conventional methods that are known to those of ordinary skill in the art.
For example, if the user needs to buy a pair of jeans within the next two months, the Purchasing Recommendations module 145 selects the merchants selling jeans, e.g, the cheapest pair of jeans that fits the use's requirements (considering the promotions offered within the next two months) by matching to the user profile (i.e., the user's purchasing needs). Once the Purchasing Recommendations module 145 matches the user's purchasing needs against the products and services, the Purchasing Recommendations module 145 provides purchasing recommendations to the user.
For example, based on the past purchasing history of a particular user, the PSA service may ascertain that whenever user X goes to France, user X often buys perfume in Paris.
This rule is stored as a part of.the user profile using the User Profile Generation,module 110. In addition, the Purchasing History Storage Unit 120 of the PSA service may receive information that the user has purchased a ticket to Paris, and in a substantially same time period, the State-of-the-World Unit 150 of the PSA service also receives information that, e.g., Christian Dior has launched a new line of perfumes that is similar to the brands previously purchased by user X. In addition, the State-of-the-World Unit 150 may also receive information that the duty-free shop at Charles de Gaulle airport is having a sale on these new perfumes (the price being very competitive). Using the above-described exemplary information, the PSA service (using the User Estimated Purchasing Needs module 140) estimates that user X
may want to buy these perfumes and sends a message to user X
(via the Purchasing Recommendation module 145) to consider purchasing the new perfume at the duty-free shop at Charles de Gaulle airport.
The success of the PSA service depends primarily on accurate predictions by the PSA service of users' future needs. If the user finds, e.g., 50% of the PSA suggestions useful, the user will probably be satisfied with the PSA
service. However, if the user finds, e.g., only 10% of the suggestions to be useful, the user will, most likely, reject this service. As indicated above, in order to make predictions of the user's future needs more accurate, it is important to build reliable user profiles. The present invention provides a method and system for generating better dynamic profiles and, therefore, providing more accurate predictions of the users' future needs.
The PSA system illustrated in Fig. 6a can be implemented using a first exemplary system shown in Fig. 6b and a second exemplary system shown in Fig. 6c. The first exemplary system of Fig. 6b provides that the User Transaction Collection and Recording Unit 115 is stored on the client side. All other modules from Fig. 6a are stored on the server side and are connected to the User Transaction Collection and Recording Unit 115 via a Telecommunication Medium 130 (e.g., a telephone line or a wireless communication medium). In the first exemplary system, individual user purchasing histories and static and dynamic profiles of these users are stored on the server at a central location (e.g. a database), and the method and system according to the present invention (as described above) generates improved dynamic profiles, and thus provides better estimated purchasing needs of the users.
The second exemplary system of Fig. 6c provides that the User Transaction Collection and Recording Unit 115, the User's Profile Generation Module 110, the Purchasing History Storage Unit 120, the State-of-the-World module 150, the State-of-the-User module 160, and the User Estimated Purchasing Needs module 140 are stored on the client side, while the State-of-the-World module 150 and the Purchasing Recommendations module 145 are stored on the server side. In the second exemplary system, the user dynamic profiles are validated in Step 20 of Figure 2 by the user (since these profiles are stored on the client side and are available to the user for checking and validating). Once module 140 estimates user purchasing needs, these estimated user purchasing needs are transmitted via the Telecommunication Medium 130 (e. g., a telephone line or a wireless communication medium) to the server, where the estimated user purchasing needs are matched by the Purchasing Recommendation module 145 to various products and services offered by various suppliers (that are stored on the server side). The resulting purchasing recommendations are transmitted back to the client side via the telecommunication medium 130 for the user's consideration.
The PSA service can also be used in a Personal Intelligent Digital Assistant (PIDA) service as illustrated in Fig. 7. Each user subscribing to this additional service is provided with a Personal Digital Assistant (PDA) (e.g., the remote device 350 or the User Transaction Collection and Recording Unit 115), which is connected to the PSA system (e. g., a general purpose computer 300). The PDA remote devices) 350 (which includes, e.g., a PDA processor 360, a PDA I/O port 365 and a PDA input device 355) and the PSA
systems) 300 (which includes, e.g., a display device 310, a storage device, a PSA processor 320, a PSA/ I/O port 325 and a PSA input device 305) form a client-server architecture, in which the PDA remote device is a client and the PSA system is a server. The PSA system, using the Past Purchasing History Storage Unit 120 (e. g., a storage device 315) and the User Profile Generation module 110, the State-of-the-World module 150, the State-of-the-User module 160, the User Estimated Purchasing Needs module 140 and the Purchasing Recommendations module 145 (executed by, e.g., a processor 320) estimates users' future needs and behavior as described above. The PDA
device accumulates additional information on the user's current state, such as the user's location information, preferences, and desires (e.g., the user is hungry now and wants to eat). This additional information is transmitted from the PDA device to the PSA system via the telecommunication medium 130 (e. g., a wireless network, fiber-s optics communication system, telephone wired system, etc.) to be stored using the State-of-the-User module 160 (e.g., in the storage device 315) as part of the user's state and is used subsequently for estimating the user's purchasing needs.
For example, in order to illustrate how the PIDA
service operates, assume that it is Tuesday, 11:30 am and that user X is driving in his car on I-87 in the Albany region on business, and that he indicated through his PDA device 350 that he wants to have lunch. The PDA device (350) records the current state of user X as "Tuesday, 11:30 am, presently driving in user X's car on I-87 in the Albany region, travel purpose is business, wants to have lunch." This information is sent from the PDA device 350 to the PSA system 300 via telecommunication medium 130. Based on user X's past purchasing history, the PIDA service recognizes that whenever user X is traveling on business, he likes to have light lunches at good quality restaurants and that he generally likes sea food. By examining user X's personal profile, and by matching the dynamic rule which provides that "whenever user X travels on business, he prefers light lunches at good quality restaurants", with user X's current state (user X is currently traveling on business), the PSA system 300 can predict that user X prefers a lunch at a good quality restaurant and he wants to eat light food. Next, the State-of-the-world module 150 of the PSA system 300 searches for highly rated seafood restaurants in the Albany region. If the PSA system 300 finds any such restaurant, user X is provided with restaurant choices (e.g., if more than one restaurant is located) by contacting user X's PDA device 350. If the PSA
system 300 does not find first choice restaurants conforming to the user X's preferences, the PSA system 300 provides second choice restaurants to user X.
User needs are estimated based on purchasing history, the user's static and dynamic profiles and the current "state" of the user (sent to the PSA system from the PDA device). When the needs of the user are estimated (e. g.
the user wants to buy a perfume in Paris, or wants to eat at a good seafood restaurant in the Albany region), they are matched with the current state of the "world." If the PIDA
service finds good matches (e.g., Christian Dior perfumes are on sale at Charles de Gaulle airport in Paris, or that there is a good seafood restaurant in the Albany region serving special lunches and located very close to the user's current route), purchase recommendations are provided to the customer based on these matches. These recommendations are sent back from the PSA server 300 to the PDA device 350 via a telecommunication medium 130 (e. g., via e-mail or through another intelligent user interface).
The PIDA service incorporating the system and method according to the present invention can be used for notifying the users about various purchasing opportunities, both time sensitive (e.g., a particular sale will start next week) and spatial (e.g., if you need a new sweater, and sweaters you would probably like are on sale at the store near your work).
The system and method according to the present invention can also be incorporated in a Web site system. In conventional systems, when a user visits a particular Web site, the user usually sees the same contents, regardless of who the user is. Using the system and method according to the present invention (i.e., individual profiles for respective users), the dynamic Web content of the Web site presented to the user can be varied to conform to the dynamic profile of the user visiting the Web site. Furthermore, dynamic profile construction methods can also be used in fraud detection systems. In particular, a set of fraud detection rules can be dynamically generated for each user.
It should be noted that the use of the above-described rule compression process and the cluster compression process according to the present invention is not limited to a construction of user profiles. For example, these process can also be used for computing useful association rules in data mining applications, or in general compressing large sets of rules generated by data mining algorithms.
D. Selective Validation Procedure Another embodiment of the present invention for providing a selective validation of individual user rules is shown in Fig. 8. In particular, user rules for all individual users (e. g., customers) are provided to a selective validation module/arrangement (step 375). The selective validation module/arrangement can be preferably executed by a central computing device illustrated in Figs. 6a and 6b, or executed by the processor 320 of the general purpose computer 300 illustrated in Fig. 7. The individual user rules may be stored in the storage device 315. It is also possible to provide the selective validation module/arrangement in the remote unit 350 illustrated in Fig. 7. In step 380, the selective validation module/arrangement receives still unvalidated user rules and outputs at least one set of selectively validated individual user rules (step 390). In addition, the selective validation module/arrangement can optionally include the process illustrated in Fig. 3. In an exemplary embodiment of the present invention, this selective validation procedure allows the human expert to select particular subsets of individual user rules and characterize these subsets as "Good" subsets, "Bad" subsets and/or "Undecided" subsets.
A flow chart representation of an exemplary embodiment of a process executed by the selective validation module (or an exemplary steps executed by the selective validation arrangement) described above is illustrated in Fig.
9. According to the present invention, a "Good Rules" set is provided to maintain (e. g., store) all sets of individual user rules which were selected by the human expert as rules which are usable for a particular user. A "Bad Rules" set is WO 99/26180 PCT/US98/'24339 provided to store all sets of individual user rules selected by the human expert to be unusable for that user.
As shown in Fig.9, (in step 400) each of the "Good Rules" and "Bad Rules" sets are initialized, e.g., to be empty or null sets. In step 405, all user rules are combined to form Set S. Set S initially contains all related (e. g., similar) subsets of the unvalidated individual user rules for all users. These similar subsets may be grouped in a similar manner as discussed above with reference to Fig. 4, or using a filtering and/or clustering operator as discussed below. In step 410, the user rules in Set S (or subsets in Set S) can be displayed. The human expert examines the subsets of "related"
rules from Set S (e.g., one rule or one set at a time), and selects which subsets (or which rules) in Set S are "good", "bad" and/or neither (step 415). These subsets can also be examined automatically by a system (e.g., the processor 320 implementing an expert system or an artificial intelligence system) using a predetermined criteria. If a particular subset in Set S is selected to be usable, the particular subset is marked as "good"; if this subset is selected to be unusable, it is marked as "bad"; if the human expert (or the system) cannot determine if the particular subset is usable or not, such subset is marked as "undecided" (step 420). In step 425, the subsets which are marked as "good" are moved from Set S to the Good Rules set, and the subsets which are marked as "bad" are moved from Set S to Bad Rules set.
In step 430, a decision is made (e. g., automatically via the processor 320 or by the human expert) if the processing of the selective validation module/arrangement is completed, and, if so, initiates a completion process according to this embodiment of the present invention. There can be numerous conditions to indicate to the selective validation module/arrangement according to the present invention that the completion process should be initiated.
For example, the following exemplary conditions may prompt the selective validation module/arrangement to stop processing:
- Set S can became empty (i.e., all subsets of rules are moved from Set S to "Good Rules" set and/or to "Bad Rules" set). If this is the case, all subsets of rules are marked with their appropriate designation (i.e., "good" or "bad");
- the number of subsets in Set S is less than a predetermined number;
- the ratio of the rules in Set S with respect to all of the existing rules is less than predetermined value; and - the user decides to stop the process (e.g., a desired number of rules has already been classified or marked).
Other stopping criteria may be used for initiating the completion process according to the present invention.
If it is determined that the processing of the completion process according to the present invention should be initiated, the rules from the Good Rules set is assigned to one or more corresponding users (step 435), Good Rules set and/or undecided subsets can be displayed (step 440), and the execution of the process according to the present invention is stopped. If, however, it is determined that the completion process should not be initiated (i.e., the subsets should be regrouped), the remaining rules in Set S (i.e., the subsets marked as "undecided") are grouped or regrouped to generate a new Set S (step 445), and this new Set S is provided to the human expert (i.e., looped back to step 410.) so that the rules within new Set S may be reclassified using the process and/or the arrangement according to the present invention (i.e., looped again starting with step 410).
It should be noted that if a particular subset Set S
is marked as "undecided", this subset is then further analyzed by either splitting it into smaller subsets using techniques described below or optionally regrouping this particular subset with other related sets from Set S as also described below.
According to an exemplary embodiment of the process according to.the present invention, the rules in Set S which were marked as "undecided" are grouped to generate a new Set S
according to the following exemplary methods:
- A predetermined number of the remaining subsets (which can also be a single subset) contained in Set S are selected and merged together to form new subsets. The above-described remaining sets can be selected by the human expert or according to some predetermined selection criterion (e. g., the size of individual sets of rules should be smaller than a predetermined value).
One or more subsets are selected from Set S. For each of these subsets, at least one of the following exemplary "partitioning" operators is applied to the selected subsets: a filtering operator and/or a cluster/grouping operator (which are as described below). Other "partitioning" operators can also be implemented. The terms - "clustering operator" and "grouping operator refer to identical operations and shall be utilized interchangeably below. In a particular embodiment of the present invention, subsets in Set S (obtained using the cluster operator with a particular "cut" operator) can be re-grouped based on a different "cut" operator, which may depend from the previous cut and/or can be based on other parameters or criteria. For example, these subsets can be merged back into a single set of rules and the cluster operator is then applied to this subset again (but with a different "cut" parameter). Other operators can also be used to regroup the subsets in Set S.
I. Filterincr Operators An exemplary filtering operator receives a subset of rules and splits this subset into at least 2 subsets: one subset contains rules which pass a predetermined selection criteria of the filter, and another subset contains rules which do not. In particular, this selection criteria may be specified using a data mining query (or a pattern template).
The data mining query describes a class of patterns in general terms.
Data mining queries are described in publications -T. Imielinski et al., "DataMine: Application Programming Interface and Query Language for Database Mining", Proceedings of the Second International Conference on Knowledge Discovery and Data Mining, August 1996; J. Han et al., "DMQL: A Data Mining Query Language for relational Databases", Proceedings of the SIGMOD Workshop in Research Issues on Data Mining and Knowledge Discovery, Montreal, June 1996; and W. Shen et al., "Metaqueries for Data Mining," Advances in Knowledge Discovery and Data Mining, chap. 15, AAAI Press, 1996. Any pattern description language or any data mining query language can be used to specify patterns and data mining queries. For example, article by T. Imielinski et al., "DataMine:
Application Programming Interface and Query Language for Database Mining," Proceedings of the Second International Conference on Knowledge Discovery and Data Mining, August 1996 introduced "M-SQL" for association rule discovery which is based on software query language ("SQL") modified with additional data mining operators. However, the exemplary embodiment of the data mining query does not depend on any specific language.
For the following exemplary request, "Find all rules in customer purchase data specifying which product categories the customers with children of various ages are buying", M-SQL
query is as follows:
SELECT
FROM Mine(CustomerPurchaseData) R
WHERE R.Body<((Children=*), (ChildrenAgeLess6=*), (ChildrenAge6to12=*), (ChildrenAgeMorel2=*)~ and {(Children=*)~<R.Body and R.Consequent IN
{(CategorySweets=*), (CategoryCereal =*), (Ca tegoryFrui t=* ) } and R. Confidence>=0 . 5 and R.Support>=0.01.
This data mining query discovers association rules if and only if they satisfy certain criteria. First, the association rules must include the fields Children, ChildrenAgeLess6, ChildrenAgre6to12, ChildrenAgeMorel2 of the table CustomerPurchaseData in the body of the rule. Second, the attribute Children must necessarily be present (this is specified by R. Body). Third, the discovered patterns must have one of the fields CategorySweets, CategoryCereal or CategoryFruit as a consequent of the rule (specified by R.Consequent). Finally, the discovered patterns must satisfy certain thresholds measuring statistical significance (i.e., R.Confidence and R.Support).
Thus, this exemplary data mining query specifies a set of patterns. The set of these exemplary patterns may indicate:
- the extent to which families with children younger than six years old buy sweets, - the extent to which families with children older than 12 years old buy sweets, - the extent to which families with children older than 12 years old buy fruit, etc..
Therefore, the pattern specified by the association rule:
Children = YES and ChildrenAgeLess6 = YES -->
Ca tegorySweets = YES (0.01, 0.55) noted above is also one of the patterns specified by the data mining query.
Pattern Templates are described in M. Klemmettinen et al., "Finding Interesting Rules for Large Sets of Discovered Association Rules", Proceedings of the Third International Conference on Information and Knowledge Management, December, 1994. For example, a pattern template may be provided as follows:
Children and Chi3drenAge * --> Category(0.01,0.5) where ChildrenAge and Category are generalizations of attributes. Thus, if ChildrenAge specifies the set of attributes {ChildrenAgeLess6, ChildrenAge6to12, ChildrenAgeMorel2} and Category specifies the set of WO 99/26180 PC"fIUS98l24339 attributes {CategorySweets, CategoryCereal, CategoryFruit}, then this pattern template specifies the same patterns as the above-described data mining query.
II. Clusterina Operator The clustering operator receives, as input, a subset of rules and an attribute hierarchy of this subset. In particular, the attribute hierarchy can be formed using the procedure described below with reference with Fig. 10. An exemplary attribute hierarchy is illustrated in Fig. 13. All of the fields (i.e., attributes) of the attribute hierarchy are provided at the bottom of the attribute hierarchy. These fields are portions of the transaction file TRANS(Trans_ID, Cust_ID, C~, ... C") as described above, without the fields Trans_ID and Cust_ID. In the exemplary hierarchy illustrated in Fig . 13 , n = 13 .
A top portion of Fig. 10 shows an exemplary procedure to generate the attribute hierarchy. In step 450, grouping data of a particular subset of rules is determined by combining the fields of the TRANS file (e. g., a table) into groups (e.g., fields C1, C2, C3 illustrated in Fig. 13 are combined into group N1, fields C4 and C5 into group N2, etc.).
In step 455, these groups are further combined into larger groups, and so on. For example and as shown in Fig. 13, groups N2 and N3 are combined into group N4, groups Nl and N4 are combined into group N5, fields C9 and C10 are combined into group N6, group N7 and field C11 are combined into group N8, groups N6 and N8 axe combined into N9, and groups N5 and N9 are combined into N10. As a result, the attribute hierarchy is generated (step 455), with attributes of the TR.ANS transaction file being its leaves. It should be noted that a tree which defines this attribute hierarchy (shown in Fig. 13) does not have to be balanced, i.e., all path lengths from the root node to the leaves do not have to be equal.
The attribute hierarchy may include one or more (e.g., two) levels of nodes below the descendent leaves of the attribute hierarchy (i.e., the fields of the TRANS transaction WO 99IZ6180 PCTIUS98f24339 file). A first level consists of a pair of attributes - field and a relational operator. The relational operator may include exemplary operators such as "_", "<", ">", etc. A
second level is below the first level and consists of three attributes - field, relational operator and sets of values which the field attribute can be compared to (e. g., predetermined values, one or more intervals, etc.). For example, the second level can be (C3, _, a) (i.e., field C3 uses the relational operator "_" to be compared to variable "a") , (C5, <, 20) (i.e., field C5, via the relational operator "<" is compared to number 20), (C8, _, [60, 80]) (i.e., field C8, via the relational operator "_" is compared to a range between 60 and 80), etc. Fig. 14 shows an exemplary illustration of the first and second level extensions of node N7. In particular, the first level of field C12 is a leaf 540, which contains field C12 and a relational operator "<". Below leaf 540, a lowest leaf of field C12 (leaf 550) is provided with field C12, the relational operator "<" and a comparison value "20". In addition, the first level of field C13 is a leaf 545, which contains field C13 and a relational operator "_". Below leaf 545, a lowest leaf of field C13 (leaf 555) is provided with field C13, the relational operator "_" and a comparison~range "[60, 80]". These leaves are only provided for illustrative purposes, and it should be understood that other combinations of field to relational operators to comparison values/ranges are possible. These hierarchies don't necessarily have to include the same number of extensions/leaves. For example, field C12 may have two extensions, field C4 may have one extension, field C5 can have no extensions and field C6 can have four extensions.
After the attribute hierarchy is generated in step 455 (shown in Fig. 10), "Cut" data is generated with respect to the attribute hierarchy (step 460) by providing a "Cut" in the attribute hierarchy. "Cut" in the attribute hierarchy is defined as a set of nodes of the tree such that a union of all descendant leaves of the nodes which were identified in the cut consists of all the fields of TRANS transaction file (i.e., C1,...,Cn). An exemplary cut is shown in Fig. 13 which includes the following groups/fields - C1, C2, C3, N4, N6, C11 and N7. In addition, the "Cut" is not limited to the nodes of shown in Fig. 13, and can also include one or two levels below the field levels (shown in Fig. 14). Fig. 11 shows a detailed illustration of step 460 in which "Cut" data is generated. In step 480, the "Cut" is provided to the attribute hierarchy.
If the "Cut" is properly specified (e.g., all of the leaves of the attribute hierarchy are above the "Cut", leaves being the lowest level of the attribute hierarchy) in step 485, or if the human expert (or the system) indicates that the "Cut" is unacceptable (step 490), a different "Cut" is created using similar techniques as described above for providing the original cut (step 497) and the procedure is restarted at step 485 with this newly created "Cut". Otherwise, "Cut" data is generated as a function of the "Cut" (step 495) and can be stored in memory for a possible future use.
After the "Cut" data is generated (step 460 in Fig.
10), subsets of the user rules are grouped using "Cut" data and the hierarchy data (step 465), and these grouped subsets are placed into Set S (step 470) to be provided to the human expert.
Thus, the clustering operator consists of steps 460-470. As indicated above, the following data is provided as input to the clustering operator: a) initial set of user rules, b) an attribute hierarchy as described above, and c) the "Cut". The output of the clustering operator is Set S
which includes subsets of rules. These subsets are mutually exclusive and collectively exhaustive (e.g., a union of the subsets is equal to all of the rules in Set S).
Fig. 12 shows an exemplary procedure for grouping subsets of the user rules using the "Cut" data as described for step 465 above (Fig. 10). In particular, all user rules are combined from a number of subsets of Set S to form Set A.
In step 505, another set (i.e., a Cluster Working Set B) is initialized (e.g., to be an empty set or a null set). A new rule is then retrieved from Set A (step 510). In step 515, if there are no more rules in Set A to be analyzed or regrouped (e.g., Set A has no more rules or is a null set), the exemplary procedure shown in Fig. 12 is completed. Otherwise, in step 520, it is determined if the new rule corresponds to a class of any existing cluster subset in Set B. If that is the case, the new rule is moved into a "matched" subset in Set B
(step 525) and the procedure is directed to step 510.
Otherwise, a new cluster subset is created in Set B (step 530), the new rule is moved to the new cluster subset in Set B
(step 535), and then the procedure is directed to step 510.
Using the "Cut", two rules are provided to the same class if and only if they have the same structure with respect to the "Cut". In particular, the rules should have the same number of attributes and these attributes, e.g., can be grouped in pairs so that two attributes in the same pair have the same ancestor in the "Cut". For example, the rules:
C1 = 5 and C4 < 6 and C9 > 8 ~ C12 = 8 and C1 > 3 and C6 - 5 and C10 < 2 ~ C13 < 7 are equivalent because fields C4 and C6 (shown in Fig. 13) have group N4 as an ancestor in the "Cut", rules C9 and C10 have group N6 as an ancestor in the "Cut", and rules C12 and C13 have group N7 as an ancestor in the "Cut". It should be noted that the user rules in the same cluster are "equivalent". As such, a new rule retrieved from Set A can be compared with any rule (or a specific rule) in the related cluster subset in Set B in step 520 shown in Fig. 12. In addition and as shown in Fig. 13, the rules:
C2 = 4 and C9 = 5 ~ C12 - 8 and C2 - 8 and C11 = 3 ~ C12 - 6 WO 99/26180 PC'f/US98/24339 are not equivalent because fields C9 and C11 do not have a common ancestor in the "Cut". Accordingly, using the procedure shown in Figs. 10 and 12, the subsets of rules of the generated clusters are provided into the set of regrouped rules generated in step 445 of Fig. 9.
After Set S is split into a subset of clusters, one or more statistics may be generated for each cluster. These statistics may be, e.g., - the number of rules per cluster.
- if a component of the rule is an attribute, the ranges of values that such attribute can assume. For example, if the attribute is "Age = a", then it may be preferable to collect statistics on the maximum and minimal values for the age in the rules for that cluster, in addition to the average value and standard deviation for that age.
- for different nodes/groups, how many rules correspond to different attributes for each node/group. For example, for group N6 shown in Fig. 13, it is possible to maintain the number of rules with attribute C9 and the number of rules with attribute C10.
- centers of clusters (calculated, e.g., with the method described above and illustrated in Figs. 4 and 5). These centers can be reported to the human expert.
These exemplary statistics may be utilized by the human expert in step 410 (shown in Fig: 9) to determine which sets of rules the human expert may select for a manual examination.
This completes the description of Fig. 9 and the way rules are examined by the human expert.
If the human expert determines that the clustering of rules based on a particular "Cut" is unsatisfactory, the rules may be regrouped in step 445 using a different "Cut".
For example, this different cut would be a finer cut which generated a larger number of clusters (which are smaller in size). This can be done by merging back the. clusters of rules obtained with the previous "Cut" (in step 445), returning to step 410 where the human expert marks all the merged rules as WO 99/26180 PCT~IJS98/24339 "undecided", and then, in step 445 again, re-cluster rules based on the different (e.g., finer) "Cut".
The process and system according to the present invention can be implemented using, e.g., a graphical user interface ("GUI") which enables the human expert to communicate with the validation system according to the present invention. Using this GUI, the human expert selects a number of operators from a graphical menu of the GUI.
Exemplary operators provided on this graphical menu may include a "Filtering" operator, a "Clustering" operator and a "Browsing" operator (e. g., allows the human expert to examine sets of rules generated by the "Clustering" operator or another operator). Other operators can also be included in the graphical menu of the GUI.
Fig. 15 shows an exemplary flow of the process and system according to this embodiment of the present invention.
In particular, the user (e.g., human expert) can select the "Filtering" operator from the graphical menu and apply this operator to Set S (step 600). As a part of the filtering operator, the human expert may specify a data mining query which selects "Goad", "Bad" or "undecided" rules from Set S.
Then, in step 605, "Good" rules are moved from Set S to "Good Rules" set, and "Bad" rules are moved from Set S to "Bad Rules" set which is, preferably, automatically saved by the system (e.g., the processor) into a memory device. In step 615, the system may mark the user rules which were determined by the user (or automatically by the system) as "undecided". In step 620, the human expert may apply the remaining "undecided" rules through another filter to again obtain "Good", "Bad" and "undecided" rules (which can be determined using another user-specified data mining query) from the rest of the rules. After the second "Filtering"
operator is applied, the system may move "Good" rules from Set S to "Good Rules" set, and "Bad" rules from Set S to "Bad Rules" set (step 625). In step 640, the human expert may decide to cluster the remaining "undecided" rules in Set S
using the "Clustering" operator (which the human expert selects from the graphical menu). The "Clustering" operator generates many sets of rules that the user may decide to examine using a graphical browser by selecting a "Browsing"
operator from the graphic menu (step 645). The "Browsing"
operator allows the user (e. g., the human expert) to examine the clusters of generated user rules by analyzing the statistics (described above) for these clusters. This process of selecting operators (from the graphical menu of available operators) can continue until, e.g., all the rules in Set S
have been validated or until the human expert decides to stop the processing of the validation procedure based on at least one of the above-described stopping criteria.
The human expert may apply a number of (e. g., four) operations in sequence (e.g., two filtering operators, one clustering operator, and one browsing operator). This process can also be performed in parallel (e. g., the human expert may decide to perform two filtering operations in parallel and then combine their results).
In another embodiment of the present invention, while the human expert proceeds deeper into an validation process (i.e., performs more iterations of steps 410-430 and 445 shown in Fig. 9), the process steps may be recorded using the GUI interface.
Thus, the clustering operator consists of steps 460-470. As indicated above, the following data is provided as input to the clustering operator: a) initial set of user rules, b) an attribute hierarchy as described above, and c) the "Cut". The output of the clustering operator is Set S
which includes subsets of rules. These subsets are mutually exclusive and collectively exhaustive (e.g., a union of the subsets is equal to all of the rules in Set S).
Fig. 12 shows an exemplary procedure for grouping subsets of the user rules using the "Cut" data as described for step 465 above (Fig. 10). In particular, all user rules are combined from a number of subsets of Set S to form Set A.
In step 505, another set (i.e., a Cluster Working Set B) is initialized (e.g., to be an empty set or a null set). A new rule is then retrieved from Set A (step 510). In step 515, if there are no more rules in Set A to be analyzed or regrouped (e.g., Set A has no more rules or is a null set), the exemplary procedure shown in Fig. 12 is completed. Otherwise, in step 520, it is determined if the new rule corresponds to a class of any existing cluster subset in Set B. If that is the case, the new rule is moved into a "matched" subset in Set B
(step 525) and the procedure is directed to step 510.
Otherwise, a new cluster subset is created in Set B (step 530), the new rule is moved to the new cluster subset in Set B
(step 535), and then the procedure is directed to step 510.
Using the "Cut", two rules are provided to the same class if and only if they have the same structure with respect to the "Cut". In particular, the rules should have the same number of attributes and these attributes, e.g., can be grouped in pairs so that two attributes in the same pair have the same ancestor in the "Cut". For example, the rules:
C1 = 5 and C4 < 6 and C9 > 8 ~ C12 = 8 and C1 > 3 and C6 - 5 and C10 < 2 ~ C13 < 7 are equivalent because fields C4 and C6 (shown in Fig. 13) have group N4 as an ancestor in the "Cut", rules C9 and C10 have group N6 as an ancestor in the "Cut", and rules C12 and C13 have group N7 as an ancestor in the "Cut". It should be noted that the user rules in the same cluster are "equivalent". As such, a new rule retrieved from Set A can be compared with any rule (or a specific rule) in the related cluster subset in Set B in step 520 shown in Fig. 12. In addition and as shown in Fig. 13, the rules:
C2 = 4 and C9 = 5 ~ C12 - 8 and C2 - 8 and C11 = 3 ~ C12 - 6 WO 99/26180 PC'f/US98/24339 are not equivalent because fields C9 and C11 do not have a common ancestor in the "Cut". Accordingly, using the procedure shown in Figs. 10 and 12, the subsets of rules of the generated clusters are provided into the set of regrouped rules generated in step 445 of Fig. 9.
After Set S is split into a subset of clusters, one or more statistics may be generated for each cluster. These statistics may be, e.g., - the number of rules per cluster.
- if a component of the rule is an attribute, the ranges of values that such attribute can assume. For example, if the attribute is "Age = a", then it may be preferable to collect statistics on the maximum and minimal values for the age in the rules for that cluster, in addition to the average value and standard deviation for that age.
- for different nodes/groups, how many rules correspond to different attributes for each node/group. For example, for group N6 shown in Fig. 13, it is possible to maintain the number of rules with attribute C9 and the number of rules with attribute C10.
- centers of clusters (calculated, e.g., with the method described above and illustrated in Figs. 4 and 5). These centers can be reported to the human expert.
These exemplary statistics may be utilized by the human expert in step 410 (shown in Fig: 9) to determine which sets of rules the human expert may select for a manual examination.
This completes the description of Fig. 9 and the way rules are examined by the human expert.
If the human expert determines that the clustering of rules based on a particular "Cut" is unsatisfactory, the rules may be regrouped in step 445 using a different "Cut".
For example, this different cut would be a finer cut which generated a larger number of clusters (which are smaller in size). This can be done by merging back the. clusters of rules obtained with the previous "Cut" (in step 445), returning to step 410 where the human expert marks all the merged rules as WO 99/26180 PCT~IJS98/24339 "undecided", and then, in step 445 again, re-cluster rules based on the different (e.g., finer) "Cut".
The process and system according to the present invention can be implemented using, e.g., a graphical user interface ("GUI") which enables the human expert to communicate with the validation system according to the present invention. Using this GUI, the human expert selects a number of operators from a graphical menu of the GUI.
Exemplary operators provided on this graphical menu may include a "Filtering" operator, a "Clustering" operator and a "Browsing" operator (e. g., allows the human expert to examine sets of rules generated by the "Clustering" operator or another operator). Other operators can also be included in the graphical menu of the GUI.
Fig. 15 shows an exemplary flow of the process and system according to this embodiment of the present invention.
In particular, the user (e.g., human expert) can select the "Filtering" operator from the graphical menu and apply this operator to Set S (step 600). As a part of the filtering operator, the human expert may specify a data mining query which selects "Goad", "Bad" or "undecided" rules from Set S.
Then, in step 605, "Good" rules are moved from Set S to "Good Rules" set, and "Bad" rules are moved from Set S to "Bad Rules" set which is, preferably, automatically saved by the system (e.g., the processor) into a memory device. In step 615, the system may mark the user rules which were determined by the user (or automatically by the system) as "undecided". In step 620, the human expert may apply the remaining "undecided" rules through another filter to again obtain "Good", "Bad" and "undecided" rules (which can be determined using another user-specified data mining query) from the rest of the rules. After the second "Filtering"
operator is applied, the system may move "Good" rules from Set S to "Good Rules" set, and "Bad" rules from Set S to "Bad Rules" set (step 625). In step 640, the human expert may decide to cluster the remaining "undecided" rules in Set S
using the "Clustering" operator (which the human expert selects from the graphical menu). The "Clustering" operator generates many sets of rules that the user may decide to examine using a graphical browser by selecting a "Browsing"
operator from the graphic menu (step 645). The "Browsing"
operator allows the user (e. g., the human expert) to examine the clusters of generated user rules by analyzing the statistics (described above) for these clusters. This process of selecting operators (from the graphical menu of available operators) can continue until, e.g., all the rules in Set S
have been validated or until the human expert decides to stop the processing of the validation procedure based on at least one of the above-described stopping criteria.
The human expert may apply a number of (e. g., four) operations in sequence (e.g., two filtering operators, one clustering operator, and one browsing operator). This process can also be performed in parallel (e. g., the human expert may decide to perform two filtering operations in parallel and then combine their results).
In another embodiment of the present invention, while the human expert proceeds deeper into an validation process (i.e., performs more iterations of steps 410-430 and 445 shown in Fig. 9), the process steps may be recorded using the GUI interface.
Claims (75)
1. A method for generating a user profile for a user based on a static profile and a dynamic profile of the user, the static profile including factual user information, the dynamic profile including user dynamic rules as a function of transactional user information, the method comprising the steps of:
a) retrieving the factual user information and the user dynamic rules;
b) generating the static profile as a function of the factual and transactional user information;
c) compressing the user dynamic rules into user aggregated rules;
d) providing the user aggregated rules to the user;
e) user selecting at least one aggregated rule from the user aggregated rules based on a user-desired criteria;
f) matching the user dynamic rules to the at least one selected aggregated rule to generate the dynamic profile; and g) combining the static profiles and the dynamic profile to form the user profile.
a) retrieving the factual user information and the user dynamic rules;
b) generating the static profile as a function of the factual and transactional user information;
c) compressing the user dynamic rules into user aggregated rules;
d) providing the user aggregated rules to the user;
e) user selecting at least one aggregated rule from the user aggregated rules based on a user-desired criteria;
f) matching the user dynamic rules to the at least one selected aggregated rule to generate the dynamic profile; and g) combining the static profiles and the dynamic profile to form the user profile.
2. The method according to claim 1, wherein step (e) includes the substep of:
h) validating the user aggregated rules in the dynamic profile.
h) validating the user aggregated rules in the dynamic profile.
3. The method according to claim 1, wherein step (c) includes the following substeps:
I. determining a plurality of similar dynamic rules from the user dynamic rules, ii. combining the plurality of similar dynamic rules into at least one corresponding cluster, and iii. generating the user aggregated rules as a function of the at least one corresponding cluster.
I. determining a plurality of similar dynamic rules from the user dynamic rules, ii. combining the plurality of similar dynamic rules into at least one corresponding cluster, and iii. generating the user aggregated rules as a function of the at least one corresponding cluster.
4. The method according to claim 3, wherein the at least one cluster includes a plurality of clusters, and wherein substep (iii) includes the following substeps:
A) determining a first representative rule for each cluster of the plurality of clusters, and B) if a number of the plurality of clusters is greater that a predetermined threshold number, compressing the plurality of clusters into a smaller number of the plurality of clusters.
A) determining a first representative rule for each cluster of the plurality of clusters, and B) if a number of the plurality of clusters is greater that a predetermined threshold number, compressing the plurality of clusters into a smaller number of the plurality of clusters.
5. The method according to claim 4, wherein substep (iii) further includes the following substeps:
C) identifying users providing the first representative rule which corresponds to a particular cluster of the plurality of clusters to form a user cluster, D) determining a second representative expression for the user cluster, E) augmenting the first representative rules and the second representative rules to form combined rules, and F) converting the combined rules into the user aggregated rules.
C) identifying users providing the first representative rule which corresponds to a particular cluster of the plurality of clusters to form a user cluster, D) determining a second representative expression for the user cluster, E) augmenting the first representative rules and the second representative rules to form combined rules, and F) converting the combined rules into the user aggregated rules.
6. The method according to claim 3, wherein each of the user aggregated rules is determined by obtaining a center of the at least one corresponding cluster.
7. The method according to claim 5, wherein the user aggregated rules include fuzzy logic characteristics.
8. The method according to claim 4, wherein substep (B) includes the following substeps:
I. selecting a first cluster and a second cluster from the plurality of clusters, II. determining a cluster distance between the first cluster and the second cluster, III. determining a first size of the first cluster and a second size of the second cluster, IV. if the cluster distance between the first cluster and the second cluster is smaller than or equal to a predetermined relation between the first size and the second size, merging the first cluster and the second cluster to form a merged cluster, and V. if the cluster distance is larger than the predetermined relation, selecting a further first cluster and a further second cluster and repeating substeps II through IV using the further first cluster as the first cluster and using the further second cluster as the second cluster.
I. selecting a first cluster and a second cluster from the plurality of clusters, II. determining a cluster distance between the first cluster and the second cluster, III. determining a first size of the first cluster and a second size of the second cluster, IV. if the cluster distance between the first cluster and the second cluster is smaller than or equal to a predetermined relation between the first size and the second size, merging the first cluster and the second cluster to form a merged cluster, and V. if the cluster distance is larger than the predetermined relation, selecting a further first cluster and a further second cluster and repeating substeps II through IV using the further first cluster as the first cluster and using the further second cluster as the second cluster.
9. The method according to claim 8, wherein substep (B) includes the following substep:
VI. determining a center cluster of the plurality of clusters from the merged cluster.
VI. determining a center cluster of the plurality of clusters from the merged cluster.
10. The method according to claim 1, wherein step (a) further includes a step of retrieving a previous dynamic profile of the user, and wherein step (g) includes a step of combining the previous dynamic profile to the static profile and the dynamic profile to form the user profile.
11. A method for providing suggestions to a user based on a user profile associated with the user, comprising the steps of:
a) receiving user current state information associated with the user;
b) retrieving a static profile associated with the user, the static profile including factual user information corresponding to user preferences;
c) retrieving a dynamic profile associated with the user, the dynamic profile including rules corresponding to user repetitive transactions;
d) compressing the rules of the dynamic profile to form aggregated rules as a function of a predetermined similarity criteria;
e) providing the aggregated rules corresponding to the dynamic profile to an expert;
f) selecting at least one rule from the aggregated rules based on a user-desired criteria;
g) matching user dynamic rules to the at least one selected rule to update the dynamic profile;
h) combining the static profile and the dynamic profile to form the user profile; and i) providing recommendations to the user as a function of the user profile and the user current state information.
a) receiving user current state information associated with the user;
b) retrieving a static profile associated with the user, the static profile including factual user information corresponding to user preferences;
c) retrieving a dynamic profile associated with the user, the dynamic profile including rules corresponding to user repetitive transactions;
d) compressing the rules of the dynamic profile to form aggregated rules as a function of a predetermined similarity criteria;
e) providing the aggregated rules corresponding to the dynamic profile to an expert;
f) selecting at least one rule from the aggregated rules based on a user-desired criteria;
g) matching user dynamic rules to the at least one selected rule to update the dynamic profile;
h) combining the static profile and the dynamic profile to form the user profile; and i) providing recommendations to the user as a function of the user profile and the user current state information.
12. The method according to claim 11, further comprising the step of:
j) after step (h) and before step (i), receiving present state-of-the-world information corresponding to the user profile and the user current state information, wherein step (i) further includes a step of providing recommendations as a further function of the present state-of-the-world information.
j) after step (h) and before step (i), receiving present state-of-the-world information corresponding to the user profile and the user current state information, wherein step (i) further includes a step of providing recommendations as a further function of the present state-of-the-world information.
13. The method according to claim 12, further comprising the step of:
k) after step (a) and before step (b), receiving past transactional information associated with the user.
k) after step (a) and before step (b), receiving past transactional information associated with the user.
14. The method according to claim 12, wherein step (d) includes the following substeps:
I. determining a plurality of similar dynamic rules from the user dynamic rules, ii. combining the plurality of similar dynamic rules into at least one corresponding cluster, and iii. generating the user aggregated rules as a function of the at least one corresponding cluster.
I. determining a plurality of similar dynamic rules from the user dynamic rules, ii. combining the plurality of similar dynamic rules into at least one corresponding cluster, and iii. generating the user aggregated rules as a function of the at least one corresponding cluster.
15. A system for generating a user profile for a user based on a static profile and a dynamic profile of the user, the static profile including factual user information corresponding to substantially fixed user information, the dynamic profile including user dynamic rules corresponding to transactional user information, the system comprising:
a communication arrangement;
a storage arrangement storing the static and dynamic profiles of the user;
a processor retrieving the factual user information and the user dynamic rules from the storage arrangement, the processor generating the static and dynamic profile as a function of the factual user information, the user dynamic rules being compressed by the processor to form user aggregated rules, the user aggregated rules being provided to the communication arrangement; and a device coupled to the communication arrangement and including a communications unit, a display unit and an input device, the communications unit receiving the user aggregated rules via the communication arrangement, the display unit displaying the user aggregated rules to at least one of the user and a human expert, the input unit accepting commands from the user to select at least one aggregated rule from at least one of the user and the human expert aggregated rules based on a desired criteria, the communications unit providing the at least one selected aggregated rule to the processor via the communication arrangement, wherein the processor matches the user dynamic rules to the at least one selected aggregated rule to generate the dynamic profile, and wherein the static profile and the dynamic profile are combined to form the user profile.
a communication arrangement;
a storage arrangement storing the static and dynamic profiles of the user;
a processor retrieving the factual user information and the user dynamic rules from the storage arrangement, the processor generating the static and dynamic profile as a function of the factual user information, the user dynamic rules being compressed by the processor to form user aggregated rules, the user aggregated rules being provided to the communication arrangement; and a device coupled to the communication arrangement and including a communications unit, a display unit and an input device, the communications unit receiving the user aggregated rules via the communication arrangement, the display unit displaying the user aggregated rules to at least one of the user and a human expert, the input unit accepting commands from the user to select at least one aggregated rule from at least one of the user and the human expert aggregated rules based on a desired criteria, the communications unit providing the at least one selected aggregated rule to the processor via the communication arrangement, wherein the processor matches the user dynamic rules to the at least one selected aggregated rule to generate the dynamic profile, and wherein the static profile and the dynamic profile are combined to form the user profile.
16. The device according to claim 15, wherein the communication arrangement includes a telephone communication line.
17. The device according to claim 15, wherein the communication arrangement includes a wireless communication arrangement.
18. The system according to claim 15, wherein the device collects transactional data from the user and provides the transactional data to the processor via the communication arrangement.
19. A method for providing a recommendation to a particular user of a group of users based on a user profile associated with the particular user, comprising the steps of:
a) requesting a particular purchasing history of the particular user from a list of purchasing histories which are assigned to the group of users;
b) receiving user current state information and transactional information associated with the particular user;
c) storing the transactional information as at least a portion of the particular purchasing history of the particular user;
d) providing the particular purchasing history to a user profile generation module for generating the user profile for the particular user as a function of the particular purchasing history;
e) estimating user needs information as a function of at least one of the particular purchasing history, user current state information and the user profile;
f) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and g) providing the recommendation to the particular user via a remote unit.
a) requesting a particular purchasing history of the particular user from a list of purchasing histories which are assigned to the group of users;
b) receiving user current state information and transactional information associated with the particular user;
c) storing the transactional information as at least a portion of the particular purchasing history of the particular user;
d) providing the particular purchasing history to a user profile generation module for generating the user profile for the particular user as a function of the particular purchasing history;
e) estimating user needs information as a function of at least one of the particular purchasing history, user current state information and the user profile;
f) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and g) providing the recommendation to the particular user via a remote unit.
20. The method according to claim 19, wherein the recommendation is generated as a further function of the state-of-the-world information, the state-of-the-world information including at least one of product-service location information, discount information and price information.
21. A method for providing a recommendation to a user based on a user profile associated with the user, comprising the steps of:
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history, the user profile including a static profile and a dynamic profile, the static profile including factual user information, the dynamic profile including user dynamic rules as a function of the transactional information;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and f) providing the recommendation to the user using a remote unit.
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history, the user profile including a static profile and a dynamic profile, the static profile including factual user information, the dynamic profile including user dynamic rules as a function of the transactional information;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and f) providing the recommendation to the user using a remote unit.
22. A method for providing a recommendation to a user based on a user profile associated with the user, comprising the steps of:
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and f) providing the recommendation to the user using a remote unit, wherein the user profile includes user rules, the user rules being matched to the user purchasing history and the state-of-the-world information for generating the user needs information.
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and f) providing the recommendation to the user using a remote unit, wherein the user profile includes user rules, the user rules being matched to the user purchasing history and the state-of-the-world information for generating the user needs information.
23. A method for providing a recommendation to a user based on a user profile associated with the user, comprising the steps of:
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and f) providing the recommendation to the user using a remote unit, wherein the dynamic profile is improved by compressing user dynamic rules to form user aggregated rules.
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and f) providing the recommendation to the user using a remote unit, wherein the dynamic profile is improved by compressing user dynamic rules to form user aggregated rules.
24. A method for providing a recommendation to a user based on a user profile associated with the user, comprising the steps of:
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information;
f) providing the recommendation to the user using a portable remote unit;
g) before step (b) and after step (a), transmitting the transactional information via a telecommunications arrangement from the portable remote unit to a central computing device;
and h) before step (f) and after step (e), transmitting the recommendation via the telecommunications arrangement from the central computing device to the portable remote unit.
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information;
f) providing the recommendation to the user using a portable remote unit;
g) before step (b) and after step (a), transmitting the transactional information via a telecommunications arrangement from the portable remote unit to a central computing device;
and h) before step (f) and after step (e), transmitting the recommendation via the telecommunications arrangement from the central computing device to the portable remote unit.
25. A method for providing a recommendation to a user based on a user profile associated with the user, comprising the steps of:
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information;
f) providing the recommendation to the user using a remote unit;
(i) before step (e) and after step (d), transmitting the user estimated needs information via a wireless telecommunications arrangement from the remote device to a central computing device; and (j) before step (f) and after step (e), transmitting the recommendation via the wireless telecommunications arrangement from the central computing device to the remote unit.
a) receiving user current state information and transactional information associated with the user;
b) storing the transactional information as at least a portion of a user purchasing history;
c) providing the user purchasing history to a user profile generation module for generating the user profile as a function of the user purchasing history;
d) estimating user needs information as a function of at least one of the user purchasing history, user current state information and the user profile;
e) generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information;
f) providing the recommendation to the user using a remote unit;
(i) before step (e) and after step (d), transmitting the user estimated needs information via a wireless telecommunications arrangement from the remote device to a central computing device; and (j) before step (f) and after step (e), transmitting the recommendation via the wireless telecommunications arrangement from the central computing device to the remote unit.
26. A system for providing a recommendation to a particular user of a group of users based on a user profile associated with the particular user, comprising:
a first module requesting a particular purchasing history of the particular user from a list of purchasing histories which are assigned to the group of users, and receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of the particular purchasing history obtained from the transactional information;
a second module receiving the particular purchasing history of the particular user, and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the particular purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the particular user via a remote unit.
a first module requesting a particular purchasing history of the particular user from a list of purchasing histories which are assigned to the group of users, and receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of the particular purchasing history obtained from the transactional information;
a second module receiving the particular purchasing history of the particular user, and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the particular purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the particular user via a remote unit.
27. A system for providing a recommendation to a user based on a user profile associated with the user, comprising:
a first module receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of a user purchasing history obtained from the transactional information;
a second module receiving the user purchasing history and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the user purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the user via a portable personal shopping assistant.
a first module receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of a user purchasing history obtained from the transactional information;
a second module receiving the user purchasing history and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the user purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the user via a portable personal shopping assistant.
28. The system according to claim 27, wherein the personal digital assistant device accepts commands from the user and provides a currents state of the user to the system.
29. A system for providing a recommendation to a user based on a user profile associated with the user, comprising:
a first module receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of a user purchasing history obtained from the transactional information;
a second module receiving the user purchasing history and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the user purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the user using a remote unit, wherein the user profile includes a static profile and a dynamic profile, the dynamic profile being improved by compressing user dynamic rules to form user aggregated rules.
a first module receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of a user purchasing history obtained from the transactional information;
a second module receiving the user purchasing history and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the user purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the user using a remote unit, wherein the user profile includes a static profile and a dynamic profile, the dynamic profile being improved by compressing user dynamic rules to form user aggregated rules.
30. A system for providing a recommendation to a user based on a user profile associated with the user, comprising:
a first module receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of a user purchasing history obtained from the transactional information;
a second module receiving the user purchasing history and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the user purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the user using a remote unit, wherein the remote unit includes the output device and a fifth module transmitting the transactional information via a wireless telecommunications arrangement from the remote unit to a central computing device, and wherein the central computing device includes the first, second, third and fourth module and the storage device.
a first module receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of a user purchasing history obtained from the transactional information;
a second module receiving the user purchasing history and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the user purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the user using a remote unit, wherein the remote unit includes the output device and a fifth module transmitting the transactional information via a wireless telecommunications arrangement from the remote unit to a central computing device, and wherein the central computing device includes the first, second, third and fourth module and the storage device.
31. A system for providing a recommendation to a user based on a user profile associated with the user, comprising:
a first module receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of a user purchasing history obtained from the transactional information;
a second module receiving the user purchasing history and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the user purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the user using a remote unit, wherein the remote unit includes the first, second and third module, the storage device, the output device, and wherein the fourth module is provided in a central computing device, the remote unit transmitting the user estimated needs information via a wireless telecommunications arrangement to the central computing device, the central computing device transmitting the recommendation to the remote unit.
a first module receiving user current state information and transactional information associated with the user;
a storage device storing as at least a portion of a user purchasing history obtained from the transactional information;
a second module receiving the user purchasing history and generating the user profile as a function of the user purchasing history;
a third module estimating the user needs information as a function of the user purchasing history, the user profile and the user current state information;
a fourth module generating the recommendation to the user as a function of the user estimated needs information and state-of-the-world information; and an output device providing the recommendation to the user using a remote unit, wherein the remote unit includes the first, second and third module, the storage device, the output device, and wherein the fourth module is provided in a central computing device, the remote unit transmitting the user estimated needs information via a wireless telecommunications arrangement to the central computing device, the central computing device transmitting the recommendation to the remote unit.
32. A method for validating user rules using a processing device, the user rules being indicative of at least one of factual user information and transactional user information, the method comprising the steps of:
a) retrieving the user rules from a storage device;
b) separating the user rules into at least one subset of a user set;
c) determining if particular rules of the at least one subset is one of acceptable, unacceptable and undecided based on a defined criteria; and d) if the particular rules of at least one subset are acceptable, providing the particular rules of the at least one subset to a corresponding user.
a) retrieving the user rules from a storage device;
b) separating the user rules into at least one subset of a user set;
c) determining if particular rules of the at least one subset is one of acceptable, unacceptable and undecided based on a defined criteria; and d) if the particular rules of at least one subset are acceptable, providing the particular rules of the at least one subset to a corresponding user.
33. The method according to claim 32, further comprising the steps of:
f) if the particular rules are acceptable, moving the at least one subset from the user set to a further set; and g) if the particular rules are unacceptable, removing the at least one subset from the user set.
f) if the particular rules are acceptable, moving the at least one subset from the user set to a further set; and g) if the particular rules are unacceptable, removing the at least one subset from the user set.
34. The method according to claim 32, wherein the factual user information is a part of a static profile, wherein the transactional user information is utilized to provide a dynamic profile which includes the user rules, and wherein step includes the step of generating a user profile for the corresponding user based on the static profile and the dynamic profile of the corresponding user, the generating step including the substeps of:
i) retrieving the factual user information and the user dynamic rules, ii) generating the static profile as a function of the factual and transactional user information, iii) compressing the user dynamic rules into user aggregated rules, iv) providing the user aggregated rules to the user, v) selecting, by a user, at least one aggregated rule from the user aggregated rules based on a further criteria, vi) matching the user dynamic rules to the at least one selected aggregated rule to generate the dynamic profile, and vii) combining the static profiles and the dynamic profile to form the user profile.
i) retrieving the factual user information and the user dynamic rules, ii) generating the static profile as a function of the factual and transactional user information, iii) compressing the user dynamic rules into user aggregated rules, iv) providing the user aggregated rules to the user, v) selecting, by a user, at least one aggregated rule from the user aggregated rules based on a further criteria, vi) matching the user dynamic rules to the at least one selected aggregated rule to generate the dynamic profile, and vii) combining the static profiles and the dynamic profile to form the user profile.
35. The method according to claim 32, wherein the at least one subset includes a plurality of subsets, and wherein steps (c) and (d) are executed for each of the subsets.
36. The method according to claim 35, further comprising the steps of:
i) forming the user set with the subsets using a predetermined criteria.
i) forming the user set with the subsets using a predetermined criteria.
37. The method according to claim 32, further comprising the step of:
j) displaying the particular rules of the at least one set; and k) if the particular rules in the at least one subsets are determined to be one of acceptable and unacceptable, correspondingly marking the at least one set as one of an acceptable subset and an unacceptable subset.
j) displaying the particular rules of the at least one set; and k) if the particular rules in the at least one subsets are determined to be one of acceptable and unacceptable, correspondingly marking the at least one set as one of an acceptable subset and an unacceptable subset.
38. The method according to claim 37, wherein the at least one subset is displayed on a display device.
39. The method according to claim 32, further comprising the steps of:
l) if the particular rules of the at least one subset are marked as unacceptable, re-forming the user set using the at least one subset to generate further subsets of the re-formed user set; and m) repeating steps (c) and (d) using each of the further subsets as the at least one subset.
l) if the particular rules of the at least one subset are marked as unacceptable, re-forming the user set using the at least one subset to generate further subsets of the re-formed user set; and m) repeating steps (c) and (d) using each of the further subsets as the at least one subset.
40. The method according to claim 32, further comprising the steps of:
n) if the particular rules of the at least one subset are marked as undecided, re-forming the user set using the at least one subset to generate further subsets of the re-formed user set; and o) repeating steps (c) and (d) using each of the further subsets as the at least one subset.
n) if the particular rules of the at least one subset are marked as undecided, re-forming the user set using the at least one subset to generate further subsets of the re-formed user set; and o) repeating steps (c) and (d) using each of the further subsets as the at least one subset.
41. The method according to claim 40, wherein step (n) includes the substeps of:
i) combining attributes from the transactional user information into related groups, ii) generating attribute hierarchy data using the related groups, iii) configuring at least a portion of the attribute hierarchy data as a function of separation data, the separation data separating a first portion of the attributed hierarchy data from a second portion of the attribute hierarchy data, and iv) grouping the user rules into further subsets of the user set as a function of the attribute hierarchy data and the separation data.
i) combining attributes from the transactional user information into related groups, ii) generating attribute hierarchy data using the related groups, iii) configuring at least a portion of the attribute hierarchy data as a function of separation data, the separation data separating a first portion of the attributed hierarchy data from a second portion of the attribute hierarchy data, and iv) grouping the user rules into further subsets of the user set as a function of the attribute hierarchy data and the separation data.
42. The method according to claim 41, wherein the separation data is generated based on the attribute hierarchy data and using a further criteria which is defined by a human expert.
43. The method according to claim 42, wherein substep (iii) includes further substeps of:
A. generating a cut to separate the attribute hierarchy data, and B. if the cut is improperly specified or if the cut is unacceptable, generating a new cut and repeating substep A using new cut, wherein the separation data is generated as a function of at least one of the cut and the different cut.
A. generating a cut to separate the attribute hierarchy data, and B. if the cut is improperly specified or if the cut is unacceptable, generating a new cut and repeating substep A using new cut, wherein the separation data is generated as a function of at least one of the cut and the different cut.
44. The method according to claim 42, wherein substep (iv) includes the substeps of:
A. combining the user rules from the user set to form a first set, B. initializing a second set, C. retrieving a further rule from the first set, D. if the first set does not have any rules, aborting substep (iv), E. if the further rule corresponds to a predetermined class of a particular cluster subset in the second set, moving the further rule from the first set to the particular cluster subset, and F. if the further rule does not correspond to the predetermined class of the particular cluster subset in the second set, generating a new cluster subset in the second set having a further class which corresponds to the further rule, and moving the further rule from the first set to the new cluster subset.
A. combining the user rules from the user set to form a first set, B. initializing a second set, C. retrieving a further rule from the first set, D. if the first set does not have any rules, aborting substep (iv), E. if the further rule corresponds to a predetermined class of a particular cluster subset in the second set, moving the further rule from the first set to the particular cluster subset, and F. if the further rule does not correspond to the predetermined class of the particular cluster subset in the second set, generating a new cluster subset in the second set having a further class which corresponds to the further rule, and moving the further rule from the first set to the new cluster subset.
45. The method according to claim 40, wherein the at least one subset includes a plurality of subsets, and wherein step (n) includes the substep of:
i) selecting a predetermined number of the subsets in the user set, and ii) merging the predetermined number of subsets to form the further subsets.
i) selecting a predetermined number of the subsets in the user set, and ii) merging the predetermined number of subsets to form the further subsets.
46. The method according to claim 45, wherein the predetermined number of the subsets is selected by one of a human expert and as a function of a predetermined selection criterion.
47. The method according to claim 46, wherein the predetermined selection criteria provides that a size of the subsets is smaller than a predetermined value.
48. The method according to claim 40, wherein the at least one subset includes a plurality of subsets, and wherein step (n) includes the substep of:
i) selecting a predetermined number of the subsets in the user set, and ii) applying a partitioning operator to each of the selected subsets.
i) selecting a predetermined number of the subsets in the user set, and ii) applying a partitioning operator to each of the selected subsets.
49. The method according to claim 48, wherein the partitioning operator includes at least one of a filtering operator and a clustering operator.
50. The method according to claim 49, wherein substep (ii) includes the substeps of:
receiving, at the filtering operator, a particular subset of the subsets, and separating the particular subset from a first subset and a second subset of the user set, the first subset including the user rules which pass a predetermined selection criteria of the filtering operator, the second subset including the user rules which do not pass the predetermined selection criteria.
receiving, at the filtering operator, a particular subset of the subsets, and separating the particular subset from a first subset and a second subset of the user set, the first subset including the user rules which pass a predetermined selection criteria of the filtering operator, the second subset including the user rules which do not pass the predetermined selection criteria.
51. The method according to claim 50, wherein the predetermined selection criteria is specified using at least one of a data mining query and a pattern template.
52. The method according to claim 32, further comprising the step of:
p) terminating an operation of the method based on a predetermined condition.
p) terminating an operation of the method based on a predetermined condition.
53. The method according to claim 52, wherein the predetermined condition includes at least one of:
- a first condition in which the user set is empty, - a second condition in which a number of subsets in user set is less than a first predetermined value, - a third condition in which a ratio of the user rules in user set with respect to all of existing rules is less than a second predetermined value, and - a fourth condition in which a human expert stops the operation of the method.
- a first condition in which the user set is empty, - a second condition in which a number of subsets in user set is less than a first predetermined value, - a third condition in which a ratio of the user rules in user set with respect to all of existing rules is less than a second predetermined value, and - a fourth condition in which a human expert stops the operation of the method.
54. An arrangement for validating user rules, the user rules being indicative of at least one of factual user information and transactional user information, the arrangement comprising:
a storage device maintaining the user rules; and a processing device retrieving the user rules from a storage device and providing the user rules into at least one subset of a user set, wherein the processing device determines if particular rules of the at least one subset are one of acceptable, unacceptable and undecided based on a defined criteria, wherein the processing device providing the particular rules of the at least one subset to a corresponding user if the particular rules of at least one subset are acceptable.
a storage device maintaining the user rules; and a processing device retrieving the user rules from a storage device and providing the user rules into at least one subset of a user set, wherein the processing device determines if particular rules of the at least one subset are one of acceptable, unacceptable and undecided based on a defined criteria, wherein the processing device providing the particular rules of the at least one subset to a corresponding user if the particular rules of at least one subset are acceptable.
55. The arrangement according to claim 54, wherein the processing device moves the at least one subset from the user set to a further set if the particular rules are acceptable, and wherein the processing device removes the at least one subset from the user set if the particular rules are unacceptable.
56. The arrangement according to claim 55, wherein the factual user information is a part of a static profile, wherein the transactional user information is utilized to provide a dynamic profile which includes the user rules, and wherein the processing device generates a user profile for the corresponding user based on the static profile and the dynamic profile of the corresponding user, the processing device providing the particular rules of the at least one subset to the corresponding user by:
i) retrieving the factual user information and the user dynamic rules, ii) generating the static profile as a function of the factual and transactional user information, iii) compressing the user dynamic rules into user aggregated rules, iv) providing the user aggregated rules to the user, v) selecting, by a user, at least one aggregated rule from the user aggregated rules based on a further criteria, vi) matching the user dynamic rules to the at least one selected aggregated rule to generate the dynamic profile, and vii) combining the static profiles and the dynamic profile to form the user profile.
i) retrieving the factual user information and the user dynamic rules, ii) generating the static profile as a function of the factual and transactional user information, iii) compressing the user dynamic rules into user aggregated rules, iv) providing the user aggregated rules to the user, v) selecting, by a user, at least one aggregated rule from the user aggregated rules based on a further criteria, vi) matching the user dynamic rules to the at least one selected aggregated rule to generate the dynamic profile, and vii) combining the static profiles and the dynamic profile to form the user profile.
57. The arrangement according to claim 54, wherein the at least one subset includes a plurality of subsets, and wherein the processing device determines and provides the acceptable subset for each of the subsets.
58. The arrangement according to claim 57, wherein the processing device forms the user set with the subsets using a further criteria.
59. The arrangement according to claim 54, wherein the processing device outputs the particular rules of at least one set, and wherein the processing device correspondingly marks the at least one set as one of an acceptable subset and an unacceptable subset if the particular rules in the at least one subsets are determined to be one of acceptable and unacceptable.
60. The arrangement according to claim 59, further comprising:
a display device for displaying the at least one subset.
a display device for displaying the at least one subset.
61. The arrangement according to claim 54, wherein the processing device re-form the user set using the at least one subset to generate further subsets of the re-formed user set if the particular rules of the at least one subset are marked as unacceptable, and wherein the processing device provides the particular rules of the at least one subset to the corresponding user for each of the further subsets as the at least one subset.
62. The arrangement according to claim 54, wherein the processing device re-form the user set using the at least one subset to generate further subsets of the re-formed user set if the particular rules of the at least one subset are marked as undecided, and wherein the processing device provides the particular rules of the at least one subset to the corresponding user for each of the further subsets as the at least one subset.
63. The arrangement according to claim 62, wherein the processing device groups the at least one subset into the further subsets by:
i) combining attributes from the transactional user information into related groups, ii) generating attribute hierarchy data using the related groups, iii) configuring at least a portion of the attribute hierarchy data as a function of separation data, the separation data separating a first portion of the attributed hierarchy data from a second portion of the attribute hierarchy data, and iv) grouping the user rules into further subsets of the user set as a function of the attribute hierarchy data and the separation data.
i) combining attributes from the transactional user information into related groups, ii) generating attribute hierarchy data using the related groups, iii) configuring at least a portion of the attribute hierarchy data as a function of separation data, the separation data separating a first portion of the attributed hierarchy data from a second portion of the attribute hierarchy data, and iv) grouping the user rules into further subsets of the user set as a function of the attribute hierarchy data and the separation data.
64. The arrangement according to claim 63, wherein the separation data is generated based on the attribute hierarchy data and using a further criteria which is defined by a human expert.
65. The arrangement according to claim 64, wherein the processing device configures the portion of the attribute hierarchy data by:
generating a cut to separate the attribute hierarchy data, and if the cut is improperly specified or if the cut is unacceptable, generating a new cut and separating the attribute hierarchy using new cut, wherein the separation data is generated as a function of at least one of the cut and the different cut.
generating a cut to separate the attribute hierarchy data, and if the cut is improperly specified or if the cut is unacceptable, generating a new cut and separating the attribute hierarchy using new cut, wherein the separation data is generated as a function of at least one of the cut and the different cut.
66. The arrangement according to claim 64, wherein the processing device groups the user rules into the further subsets by:
combining the user rules from the user set to form a first set, initializing a second set, retrieving a further rule from the first set, if the first set does not have any rules, aborting grouping of the user rules, if the further rule corresponds to a predetermined class of a particular cluster subset in the second set, moving the particular rules from the first set to the particular cluster subset, and if the further rule does not correspond to the predetermined class of the particular cluster subset in the second set, generating a new cluster subset in the second set having a further class which corresponds to the further rule, and moving the further rule from the first set to the new cluster subset.
combining the user rules from the user set to form a first set, initializing a second set, retrieving a further rule from the first set, if the first set does not have any rules, aborting grouping of the user rules, if the further rule corresponds to a predetermined class of a particular cluster subset in the second set, moving the particular rules from the first set to the particular cluster subset, and if the further rule does not correspond to the predetermined class of the particular cluster subset in the second set, generating a new cluster subset in the second set having a further class which corresponds to the further rule, and moving the further rule from the first set to the new cluster subset.
67. The arrangement according to claim 62, wherein the at least one subset includes a plurality of subsets, and wherein the processing device re-forms the at least one subset into the further subsets by:
i) selecting a predetermined number of the subsets in the user set, and ii) merging the predetermined number of subsets to form the further subsets.
i) selecting a predetermined number of the subsets in the user set, and ii) merging the predetermined number of subsets to form the further subsets.
68. The arrangement according to claim 67, wherein the predetermined number of the subsets is selected by one of a human expert and as a function of a predetermined selection criterion.
69. The arrangement according to claim 68, wherein the predetermined selection criteria provides that a size of the subsets is smaller than a predetermined value.
70. The arrangement according to claim 62, wherein the at least one subset includes a plurality of subsets, and wherein the processing device groups the at least one subset into the further subsets by:
i) selecting a predetermined number of the subsets in the user set, and ii) applying a partitioning operator to each of the selected subsets.
i) selecting a predetermined number of the subsets in the user set, and ii) applying a partitioning operator to each of the selected subsets.
71. The arrangement according to claim 70, wherein the partitioning operator includes at least one of a filtering operator and a clustering operator.
72. The arrangement according to claim 71, wherein the processing device applies the partitioning operator by:
receiving, at the filtering operator, a particular subset of the plurality of subsets, and separating the particular subset from a first subset and a second subset, the first subset including the user rules which pass a predetermined selection criteria of the filtering operator, the second subset including the user rules which do not pass the predetermined selection criteria.
receiving, at the filtering operator, a particular subset of the plurality of subsets, and separating the particular subset from a first subset and a second subset, the first subset including the user rules which pass a predetermined selection criteria of the filtering operator, the second subset including the user rules which do not pass the predetermined selection criteria.
73. The arrangement according to claim 72, wherein the predetermined selection criteria is specified using at least one of a data mining query and a pattern template.
74. The arrangement according to claim 73, wherein the processing device stops processing the subsets based on a predetermined condition.
75. The arrangement according to claim 74, wherein the predetermined condition includes at least one of:
- a first condition in which the user set is empty, - a second condition in which a number of subsets in user set is less than a first predetermined value, - a third condition in which a ratio of the user rules in user set with respect to all of existing rules is less than a second predetermined value, and - a fourth condition in which a human expert stops the processing device from processing the subsets.
- a first condition in which the user set is empty, - a second condition in which a number of subsets in user set is less than a first predetermined value, - a third condition in which a ratio of the user rules in user set with respect to all of existing rules is less than a second predetermined value, and - a fourth condition in which a human expert stops the processing device from processing the subsets.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/970,359 US6236978B1 (en) | 1997-11-14 | 1997-11-14 | System and method for dynamic profiling of users in one-to-one applications |
US08/970,359 | 1997-11-14 | ||
PCT/US1998/024339 WO1999026180A1 (en) | 1997-11-14 | 1998-11-13 | System and method for dynamic profiling of users in one-to-one applications and for validating user rules |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2309940A1 true CA2309940A1 (en) | 1999-05-27 |
Family
ID=25516831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002309940A Abandoned CA2309940A1 (en) | 1997-11-14 | 1998-11-13 | System and method for dynamic profiling of users in one-to-one applications and for validating user rules |
Country Status (6)
Country | Link |
---|---|
US (8) | US6236978B1 (en) |
EP (1) | EP1029304A4 (en) |
JP (1) | JP2002517027A (en) |
CA (1) | CA2309940A1 (en) |
IL (1) | IL136103A (en) |
WO (1) | WO1999026180A1 (en) |
Families Citing this family (831)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818212B1 (en) | 1999-10-22 | 2010-10-19 | Ewinwin, Inc. | Multiple criteria buying and selling model |
WO2000070424A2 (en) | 1999-05-12 | 2000-11-23 | Ewinwin, Inc. | Multiple criteria buying and selling model, and system for managing open offer sheets |
US7693748B1 (en) | 1991-06-03 | 2010-04-06 | Ewinwin, Inc. | Method and system for configuring a set of information including a price and volume schedule for a product |
USRE46310E1 (en) | 1991-12-23 | 2017-02-14 | Blanding Hovenweep, Llc | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US6850252B1 (en) | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
USRE48056E1 (en) | 1991-12-23 | 2020-06-16 | Blanding Hovenweep, Llc | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
USRE47908E1 (en) | 1991-12-23 | 2020-03-17 | Blanding Hovenweep, Llc | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US5903454A (en) | 1991-12-23 | 1999-05-11 | Hoffberg; Linda Irene | Human-factored interface corporating adaptive pattern recognition based controller apparatus |
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
JP4472786B2 (en) | 1993-03-05 | 2010-06-02 | ジェムスター ディベロプメント コーポレイション | Method and system for communicating television program information |
US6999938B1 (en) * | 1996-06-10 | 2006-02-14 | Libman Richard M | Automated reply generation direct marketing system |
US7774230B2 (en) | 1996-06-10 | 2010-08-10 | Phoenix Licensing, Llc | System, method, and computer program product for selecting and presenting financial products and services |
AU4175797A (en) * | 1996-09-03 | 1998-03-26 | Starsight Telecast Incorporated | Schedule system with enhanced recording capability |
US7055166B1 (en) * | 1996-10-03 | 2006-05-30 | Gotuit Media Corp. | Apparatus and methods for broadcast monitoring |
US6604138B1 (en) * | 1996-12-18 | 2003-08-05 | Clubcom, Inc. | System and method for providing demographically targeted information |
US20060020614A1 (en) * | 1997-08-08 | 2006-01-26 | Kolawa Adam K | Method and apparatus for automated selection, organization, and recommendation of items based on user preference topography |
US6236978B1 (en) | 1997-11-14 | 2001-05-22 | New York University | System and method for dynamic profiling of users in one-to-one applications |
WO1999044159A1 (en) | 1998-02-27 | 1999-09-02 | Engage Technologies | System and method for building user profiles |
US6055513A (en) | 1998-03-11 | 2000-04-25 | Telebuyer, Llc | Methods and apparatus for intelligent selection of goods and services in telephonic and electronic commerce |
US8315909B1 (en) | 1998-03-11 | 2012-11-20 | West Corporation | Methods and apparatus for intelligent selection of goods and services in point-of-sale commerce |
US7364068B1 (en) | 1998-03-11 | 2008-04-29 | West Corporation | Methods and apparatus for intelligent selection of goods and services offered to conferees |
US7729945B1 (en) | 1998-03-11 | 2010-06-01 | West Corporation | Systems and methods that use geographic data to intelligently select goods and services to offer in telephonic and electronic commerce |
US7386485B1 (en) | 2004-06-25 | 2008-06-10 | West Corporation | Method and system for providing offers in real time to prospective customers |
US7437313B1 (en) | 1998-03-11 | 2008-10-14 | West Direct, Llc | Methods, computer-readable media, and apparatus for offering users a plurality of scenarios under which to conduct at least one primary transaction |
US7117518B1 (en) * | 1998-05-14 | 2006-10-03 | Sony Corporation | Information retrieval method and apparatus |
US6782409B1 (en) * | 1998-05-29 | 2004-08-24 | Sony Corporation | Experience/sympathy information providing system |
CN1867068A (en) | 1998-07-14 | 2006-11-22 | 联合视频制品公司 | Client-server based interactive television program guide system with remote server recording |
ATE460812T1 (en) | 1998-07-17 | 2010-03-15 | United Video Properties Inc | INTERACTIVE TELEVISION PROGRAM GUIDE SYSTEM WITH MULTIPLE DEVICES IN ONE HOUSE |
AR020608A1 (en) | 1998-07-17 | 2002-05-22 | United Video Properties Inc | A METHOD AND A PROVISION TO SUPPLY A USER REMOTE ACCESS TO AN INTERACTIVE PROGRAMMING GUIDE BY A REMOTE ACCESS LINK |
US6505348B1 (en) * | 1998-07-29 | 2003-01-07 | Starsight Telecast, Inc. | Multiple interactive electronic program guide system and methods |
WO2000022551A1 (en) * | 1998-10-13 | 2000-04-20 | Chris Cheah | Method and system for controlled distribution of information over a network |
EP1517259A1 (en) | 1998-12-03 | 2005-03-23 | Samsung Electronics Co., Ltd. | A method and system for generating a subscriber profile |
US7260823B2 (en) | 2001-01-11 | 2007-08-21 | Prime Research Alliance E., Inc. | Profiling and identification of television viewers |
US7240355B1 (en) * | 1998-12-03 | 2007-07-03 | Prime Research Alliance E., Inc. | Subscriber characterization system with filters |
US20020123928A1 (en) * | 2001-01-11 | 2002-09-05 | Eldering Charles A. | Targeting ads to subscribers based on privacy-protected subscriber profiles |
US7150030B1 (en) | 1998-12-03 | 2006-12-12 | Prime Research Alliance, Inc. | Subscriber characterization system |
US7949565B1 (en) | 1998-12-03 | 2011-05-24 | Prime Research Alliance E., Inc. | Privacy-protected advertising system |
US6560578B2 (en) * | 1999-03-12 | 2003-05-06 | Expanse Networks, Inc. | Advertisement selection system supporting discretionary target market characteristics |
WO2000033233A1 (en) * | 1998-12-03 | 2000-06-08 | Expanse Networks, Inc. | Subscriber identification system |
US7231439B1 (en) | 2000-04-02 | 2007-06-12 | Tangis Corporation | Dynamically swapping modules for determining a computer user's context |
US6920616B1 (en) | 1998-12-18 | 2005-07-19 | Tangis Corporation | Interface for exchanging context data |
US9183306B2 (en) | 1998-12-18 | 2015-11-10 | Microsoft Technology Licensing, Llc | Automated selection of appropriate information based on a computer user's context |
US7073129B1 (en) | 1998-12-18 | 2006-07-04 | Tangis Corporation | Automated selection of appropriate information based on a computer user's context |
US8181113B2 (en) | 1998-12-18 | 2012-05-15 | Microsoft Corporation | Mediating conflicts in computer users context data |
US7046263B1 (en) | 1998-12-18 | 2006-05-16 | Tangis Corporation | Requesting computer user's context data |
US6801223B1 (en) | 1998-12-18 | 2004-10-05 | Tangis Corporation | Managing interactions between computer users' context models |
US6842877B2 (en) | 1998-12-18 | 2005-01-11 | Tangis Corporation | Contextual responses based on automated learning techniques |
US6791580B1 (en) | 1998-12-18 | 2004-09-14 | Tangis Corporation | Supplying notifications related to supply and consumption of user context data |
US6513046B1 (en) | 1999-12-15 | 2003-01-28 | Tangis Corporation | Storing and recalling information to augment human memories |
US7904187B2 (en) * | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
US20110213648A1 (en) * | 1999-05-12 | 2011-09-01 | Ewinwin, Inc. | e-COMMERCE VOLUME PRICING |
US8732018B2 (en) * | 1999-05-12 | 2014-05-20 | Ewinwin, Inc. | Real-time offers and dynamic price adjustments presented to mobile devices |
US7593871B1 (en) | 2004-06-14 | 2009-09-22 | Ewinwin, Inc. | Multiple price curves and attributes |
US8140402B1 (en) | 2001-08-06 | 2012-03-20 | Ewinwin, Inc. | Social pricing |
US8290824B1 (en) | 1999-05-12 | 2012-10-16 | Ewinwin, Inc. | Identifying incentives for a qualified buyer |
US8311896B2 (en) | 1999-05-12 | 2012-11-13 | Ewinwin, Inc. | Multiple criteria buying and selling model |
US8626605B2 (en) | 1999-05-12 | 2014-01-07 | Ewinwin, Inc. | Multiple criteria buying and selling model |
CA2338795C (en) * | 1999-06-01 | 2011-09-13 | Lucent Technologies Inc. | Method for constructing an updateable database of subject behavior patterns |
US7013301B2 (en) * | 2003-09-23 | 2006-03-14 | Predixis Corporation | Audio fingerprinting system and method |
US20050038819A1 (en) * | 2000-04-21 | 2005-02-17 | Hicken Wendell T. | Music Recommendation system and method |
US8429026B1 (en) | 1999-06-28 | 2013-04-23 | Dietfood Corp. | System and method for creating and submitting electronic shopping lists |
US6741976B1 (en) * | 1999-07-01 | 2004-05-25 | Alexander Tuzhilin | Method and system for the creation, application and processing of logical rules in connection with biological, medical or biochemical data |
US6505168B1 (en) * | 1999-08-16 | 2003-01-07 | First Usa Bank, Na | System and method for gathering and standardizing customer purchase information for target marketing |
EP1230798A1 (en) * | 1999-08-31 | 2002-08-14 | Labeeb K. Ismail | Method and apparatus for delivery of targeted video programming |
US7103561B1 (en) * | 1999-09-14 | 2006-09-05 | Ford Global Technologies, Llc | Method of profiling new vehicles and improvements |
US8108245B1 (en) | 1999-09-17 | 2012-01-31 | Cox Communications, Inc. | Method and system for web user profiling and selective content delivery |
US7542921B1 (en) | 1999-09-30 | 2009-06-02 | Jpmorgan Chase Bank, N.A. | Network-based financial planning system and method |
US20020055903A1 (en) * | 1999-11-01 | 2002-05-09 | Neal Solomon | System, method, and apparatus for a cooperative communications network |
US20020069134A1 (en) * | 1999-11-01 | 2002-06-06 | Neal Solomon | System, method and apparatus for aggregation of cooperative intelligent agents for procurement in a distributed network |
US20030074301A1 (en) * | 1999-11-01 | 2003-04-17 | Neal Solomon | System, method, and apparatus for an intelligent search agent to access data in a distributed network |
US20020046157A1 (en) * | 1999-11-01 | 2002-04-18 | Neal Solomon | System, method and apparatus for demand-initiated intelligent negotiation agents in a distributed network |
US7571131B1 (en) | 1999-11-05 | 2009-08-04 | Ford Motor Company | Method of conducting online competitive price quoting events |
US7062510B1 (en) | 1999-12-02 | 2006-06-13 | Prime Research Alliance E., Inc. | Consumer profiling and advertisement selection system |
US7188076B2 (en) * | 1999-12-20 | 2007-03-06 | Ndex Systems Inc. | System and method for creating a true customer profile |
US7173177B1 (en) * | 1999-12-28 | 2007-02-06 | Blue Dolphin Solutions Llc | User interface for simultaneous management of owned and unowned inventory |
US6693236B1 (en) * | 1999-12-28 | 2004-02-17 | Monkeymedia, Inc. | User interface for simultaneous management of owned and unowned inventory |
US7720707B1 (en) | 2000-01-07 | 2010-05-18 | Home Producers Network, Llc | Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics |
US8214254B1 (en) | 2000-01-07 | 2012-07-03 | Home Producers Network, Llc | Method and system for compiling a consumer-based electronic database, searchable according to individual internet user-defined micro-demographics (II) |
US7051352B1 (en) * | 2000-02-04 | 2006-05-23 | Koninklijke Philips Electronics N.V. | Adaptive TV program recommender |
JP3545666B2 (en) * | 2000-02-14 | 2004-07-21 | 株式会社東芝 | Service providing system for mobile terminals |
US20020049770A1 (en) * | 2000-02-29 | 2002-04-25 | Vijay Mayadas | System and method for distributed audience profile development through consensual interaction with a network |
US6917940B1 (en) * | 2000-03-10 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Olap-based customer behavior profiling method and system |
WO2001075676A2 (en) * | 2000-04-02 | 2001-10-11 | Tangis Corporation | Soliciting information based on a computer user's context |
US7228283B1 (en) * | 2000-04-05 | 2007-06-05 | David Hornstein | Aesthetic profile collection |
CA2406001A1 (en) | 2000-04-14 | 2001-10-25 | American Express Travel Related Services Company, Inc. | A system and method for using loyalty points |
US7212996B1 (en) | 2000-04-20 | 2007-05-01 | Jpmorgan Chase Bank, N.A. | System and method for dynamic, multivariable comparison of financial products |
US20060217828A1 (en) * | 2002-10-23 | 2006-09-28 | Hicken Wendell T | Music searching system and method |
US7979880B2 (en) * | 2000-04-21 | 2011-07-12 | Cox Communications, Inc. | Method and system for profiling iTV users and for providing selective content delivery |
US20030167259A1 (en) * | 2000-05-01 | 2003-09-04 | Mike Casson | Interactive sales and marketing network system |
US7389214B1 (en) * | 2000-05-01 | 2008-06-17 | Accenture, Llp | Category analysis in a market management |
US7395193B1 (en) | 2000-05-01 | 2008-07-01 | Accenture, Llp | Manufacture for a market management framework |
US7251687B1 (en) | 2000-06-02 | 2007-07-31 | Vignette Corporation | Method for click-stream analysis using web directory reverse categorization |
US8346580B2 (en) * | 2000-06-09 | 2013-01-01 | Flash Seats, Llc | System and method for managing transfer of ownership rights to access to a venue and allowing access to the venue to patron with the ownership right |
US9697650B2 (en) * | 2000-06-09 | 2017-07-04 | Flash Seats, Llc | Method and system for access verification within a venue |
US20060095344A1 (en) * | 2000-06-09 | 2006-05-04 | Nakfoor Brett A | System and method for fan lifecycle management |
US6496809B1 (en) * | 2000-06-09 | 2002-12-17 | Brett Nakfoor | Electronic ticketing system and method |
US6947922B1 (en) * | 2000-06-16 | 2005-09-20 | Xerox Corporation | Recommender system and method for generating implicit ratings based on user interactions with handheld devices |
DE10030358A1 (en) * | 2000-06-21 | 2002-01-03 | Heidenhain Gmbh Dr Johannes | Method and device for serial data transmission between a position measuring system and a processing unit |
US7359880B2 (en) * | 2000-07-11 | 2008-04-15 | Abel Luther C | System and method for consumer control over card-based transactions |
US7031951B2 (en) * | 2000-07-19 | 2006-04-18 | Convergys Information Management Group, Inc. | Expert system adapted dedicated internet access guidance engine |
US7885820B1 (en) * | 2000-07-19 | 2011-02-08 | Convergys Cmg Utah, Inc. | Expert system supported interactive product selection and recommendation |
US7937725B1 (en) * | 2000-07-27 | 2011-05-03 | Koninklijke Philips Electronics N.V. | Three-way media recommendation method and system |
US7031935B1 (en) * | 2000-07-31 | 2006-04-18 | J.P. Morgan Advisory Services Inc. | Method and system for computing path dependent probabilities of attaining financial goals |
US6655963B1 (en) * | 2000-07-31 | 2003-12-02 | Microsoft Corporation | Methods and apparatus for predicting and selectively collecting preferences based on personality diagnosis |
US6895406B2 (en) * | 2000-08-25 | 2005-05-17 | Seaseer R&D, Llc | Dynamic personalization method of creating personalized user profiles for searching a database of information |
US7599851B2 (en) * | 2000-09-05 | 2009-10-06 | Renee Frengut | Method for providing customized user interface and targeted marketing forum |
US6959296B1 (en) | 2000-09-20 | 2005-10-25 | Paul Reiss | Systems and methods of choosing multi-component packages using an expert system |
US8843965B1 (en) * | 2000-09-20 | 2014-09-23 | Kaushal Kurapati | Method and apparatus for generating recommendation scores using implicit and explicit viewing preferences |
US6920458B1 (en) | 2000-09-22 | 2005-07-19 | Sas Institute Inc. | Model repository |
US20020111870A1 (en) * | 2000-09-26 | 2002-08-15 | I2 Technologies, Inc. | System and method for identifying a product |
US7590558B2 (en) * | 2000-09-26 | 2009-09-15 | I2 Technologies Us, Inc. | System and method for facilitating electronic commerce transactions |
US7299255B2 (en) | 2000-09-26 | 2007-11-20 | I2 Technologies Us, Inc. | System and method for migrating data in an electronic commerce system |
ATE339729T1 (en) * | 2000-09-27 | 2006-10-15 | Pertinence Data Intelligence | COLLABORATIVE SEARCH ENGINE |
EP1986435B1 (en) | 2000-10-11 | 2020-01-22 | Rovi Guides, Inc. | Systems and methods for providing storage of data on servers in an on-demand media delivery system |
AU2002213226A1 (en) * | 2000-10-16 | 2002-04-29 | Engage Technologies | Demographic profiling engine |
WO2002033687A2 (en) * | 2000-10-17 | 2002-04-25 | Moonlight Cordless Ltd. | Method and system for remote video display through a wireless projector |
US7831467B1 (en) | 2000-10-17 | 2010-11-09 | Jpmorgan Chase Bank, N.A. | Method and system for retaining customer loyalty |
US20020052780A1 (en) * | 2000-10-30 | 2002-05-02 | Mark Landesmann | Serious intent mechanism and method |
US20020053076A1 (en) * | 2000-10-30 | 2002-05-02 | Mark Landesmann | Buyer-driven targeting of purchasing entities |
US7844489B2 (en) * | 2000-10-30 | 2010-11-30 | Buyerleverage | Buyer-driven targeting of purchasing entities |
US20020052752A1 (en) * | 2000-10-30 | 2002-05-02 | Mark Landesmann | Serious intent mechanism and method |
AU2002225822A1 (en) * | 2000-10-31 | 2002-05-15 | Contextweb | Internet contextual communication system |
US7103556B2 (en) | 2000-11-02 | 2006-09-05 | Jpmorgan Chase Bank, N.A. | System and method for aggregate portfolio client support |
US7398225B2 (en) | 2001-03-29 | 2008-07-08 | American Express Travel Related Services Company, Inc. | System and method for networked loyalty program |
US7398226B2 (en) | 2000-11-06 | 2008-07-08 | American Express Travel Related Services Company, Inc. | System and method for networked loyalty program |
US7200606B2 (en) * | 2000-11-07 | 2007-04-03 | The Regents Of The University Of California | Method and system for selecting documents by measuring document quality |
US8954432B2 (en) | 2000-11-15 | 2015-02-10 | Mark Frigon | Users tagging users in photos online |
WO2002042968A1 (en) * | 2000-11-27 | 2002-05-30 | Matsushita Electric Industrial Co., Ltd. | Method for supplying information, system for supplying information, recorder/reproducer, and recording medium |
US7721310B2 (en) * | 2000-12-05 | 2010-05-18 | Koninklijke Philips Electronics N.V. | Method and apparatus for selective updating of a user profile |
US7295999B1 (en) * | 2000-12-20 | 2007-11-13 | Jpmorgan Chase Bank, N.A. | System and method for determining eligibility and enrolling members in various programs |
US7698161B2 (en) * | 2001-01-04 | 2010-04-13 | True Choice Solutions, Inc. | System to quantify consumer preferences |
US7174305B2 (en) | 2001-01-23 | 2007-02-06 | Opentv, Inc. | Method and system for scheduling online targeted content delivery |
JP3925772B2 (en) * | 2001-01-30 | 2007-06-06 | 東芝テック株式会社 | Merchandise sales data processing device, portable electronic terminal, and ticket issuing method |
US20030074253A1 (en) * | 2001-01-30 | 2003-04-17 | Scheuring Sylvia Tidwell | System and method for matching consumers with products |
WO2002065327A1 (en) * | 2001-02-12 | 2002-08-22 | New York University | System, process and software arrangement for providing multidimensional recommendation/suggestions |
US7222101B2 (en) | 2001-02-26 | 2007-05-22 | American Express Travel Related Services Company, Inc. | System and method for securing data through a PDA portal |
US7584149B1 (en) | 2001-02-26 | 2009-09-01 | American Express Travel Related Services Company, Inc. | System and method for securing data through a PDA portal |
US7895098B2 (en) | 2001-03-01 | 2011-02-22 | Jpmorgan Chase Bank, N.A. | System and method for measuring and utilizing pooling analytics |
WO2002078259A1 (en) * | 2001-03-26 | 2002-10-03 | Geo Trust, Inc. | Dynamic content certification |
US7114177B2 (en) | 2001-03-28 | 2006-09-26 | Geotrust, Inc. | Web site identity assurance |
US20060053056A1 (en) * | 2001-03-29 | 2006-03-09 | American Express Marketing & Development Corporati | Card member discount system and method |
US7467096B2 (en) | 2001-03-29 | 2008-12-16 | American Express Travel Related Services Company, Inc. | System and method for the real-time transfer of loyalty points between accounts |
US20020178445A1 (en) * | 2001-04-03 | 2002-11-28 | Charles Eldering | Subscriber selected advertisement display and scheduling |
US7412202B2 (en) * | 2001-04-03 | 2008-08-12 | Koninklijke Philips Electronics N.V. | Method and apparatus for generating recommendations based on user preferences and environmental characteristics |
US7669133B2 (en) * | 2001-04-16 | 2010-02-23 | Wellogix Technology Licensing, Llc | System and method for developing rules utilized in a knowledge management system |
US7499948B2 (en) * | 2001-04-16 | 2009-03-03 | Bea Systems, Inc. | System and method for web-based personalization and ecommerce management |
US7080139B1 (en) * | 2001-04-24 | 2006-07-18 | Fatbubble, Inc | Method and apparatus for selectively sharing and passively tracking communication device experiences |
US7958006B2 (en) * | 2001-04-27 | 2011-06-07 | True Choice Solutions, Inc. | System to provide consumer preference information |
US7739162B1 (en) | 2001-05-04 | 2010-06-15 | West Corporation | System, method, and business method for setting micropayment transaction to a pre-paid instrument |
US6684177B2 (en) * | 2001-05-10 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | Computer implemented scalable, incremental and parallel clustering based on weighted divide and conquer |
US7349868B2 (en) | 2001-05-15 | 2008-03-25 | I2 Technologies Us, Inc. | Pre-qualifying sellers during the matching phase of an electronic commerce transaction |
US7475030B1 (en) | 2001-05-16 | 2009-01-06 | I2 Technologies Us, Inc. | Facilitating electronic commerce transactions using a shared product data repository |
US6684206B2 (en) * | 2001-05-18 | 2004-01-27 | Hewlett-Packard Development Company, L.P. | OLAP-based web access analysis method and system |
US20020184052A1 (en) * | 2001-06-05 | 2002-12-05 | Parker Matthew A. | Method of providing an elective organization providing premium health services for members of the organization |
JP2002366838A (en) * | 2001-06-06 | 2002-12-20 | Toshiba Corp | Recommendation method, server system, and program |
US7346546B2 (en) * | 2001-06-07 | 2008-03-18 | Gateway Inc. | Purchasing interface with a task display |
EP1265170A1 (en) * | 2001-06-08 | 2002-12-11 | Hewlett-Packard Company | Method of maintaining a user profile |
US7263515B1 (en) * | 2001-06-18 | 2007-08-28 | I2 Technologies Us, Inc. | Content enhancement in an electronic marketplace |
US7127416B1 (en) | 2001-06-18 | 2006-10-24 | I2 Technologies Us, Inc. | Distributed processing of sorted search results in an electronic commerce system and method |
US7110525B1 (en) | 2001-06-25 | 2006-09-19 | Toby Heller | Agent training sensitive call routing system |
US7330829B1 (en) | 2001-06-26 | 2008-02-12 | I2 Technologies Us, Inc. | Providing market feedback associated with electronic commerce transactions to sellers |
US7809672B1 (en) * | 2001-06-28 | 2010-10-05 | I2 Technologies Us, Inc. | Association of data with a product classification schema |
US8086643B1 (en) | 2001-06-28 | 2011-12-27 | Jda Software Group, Inc. | Translation between product classification schemas |
US7162453B1 (en) | 2001-06-29 | 2007-01-09 | I2 Technologies Us, Inc. | Protecting content from unauthorized reproduction |
US7346560B1 (en) | 2001-06-29 | 2008-03-18 | I2 Technologies Us, Inc. | Protecting content from unauthorized reproduction |
WO2003005232A2 (en) * | 2001-07-06 | 2003-01-16 | Angoss Software Corporation | A method and system for the visual presentation of data mining models |
US7822843B2 (en) * | 2001-08-13 | 2010-10-26 | Cox Communications, Inc. | Predicting the activities of an individual or group using minimal information |
AU2001284628A1 (en) * | 2001-08-31 | 2003-03-10 | Kent Ridge Digital Labs | Time-based media navigation system |
US20030049021A1 (en) * | 2001-09-12 | 2003-03-13 | General Instrument Corporation | Apparatus for monitoring of DVD/CD usage and targeted DVD/CD sales utilizing a set top with DVD/CD capability |
US7039622B2 (en) * | 2001-09-12 | 2006-05-02 | Sas Institute Inc. | Computer-implemented knowledge repository interface system and method |
KR100438857B1 (en) * | 2001-09-26 | 2004-07-05 | 엘지전자 주식회사 | Multimedia Searching And Browsing System Based On User Profile |
AU2002329417A1 (en) * | 2001-09-27 | 2003-04-07 | British Telecommunications Public Limited Company | Method and apparatus for data analysis |
AU2002335062B2 (en) | 2001-10-12 | 2007-07-19 | Digicert, Inc. | Methods and systems for automated authentication, processing and issuance of digital certificates |
US7346548B2 (en) * | 2001-10-25 | 2008-03-18 | Goldman Sachs & Co. | System, method, apparatus and means evaluating historical network activity |
US7191143B2 (en) * | 2001-11-05 | 2007-03-13 | Keli Sev K H | Preference information-based metrics |
JP2003223414A (en) * | 2001-11-21 | 2003-08-08 | Matsushita Electric Ind Co Ltd | Attribute information protection system, device, and computer program |
JP2003223590A (en) * | 2001-11-21 | 2003-08-08 | Matsushita Electric Ind Co Ltd | System and device for using attribute information |
US20030115105A1 (en) * | 2001-12-14 | 2003-06-19 | Ncr Corporation | Personal data mining on the web |
US20030130820A1 (en) * | 2002-01-07 | 2003-07-10 | Lane George H. | Work order system |
US20030144898A1 (en) * | 2002-01-31 | 2003-07-31 | Eric Bibelnieks | System, method and computer program product for effective content management in a pull environment |
US20040205157A1 (en) * | 2002-01-31 | 2004-10-14 | Eric Bibelnieks | System, method, and computer program product for realtime profiling of web site visitors |
US20030149743A1 (en) * | 2002-02-06 | 2003-08-07 | Shumeet Baluja | Data logging for resident applications within portable electronic devices |
US7020494B2 (en) * | 2002-02-07 | 2006-03-28 | Sap Aktiengesellschaft | Integrating contextual information into mobile enterprise applications |
US7283846B2 (en) * | 2002-02-07 | 2007-10-16 | Sap Aktiengesellschaft | Integrating geographical contextual information into mobile enterprise applications |
US7372952B1 (en) | 2002-03-07 | 2008-05-13 | Wai Wu | Telephony control system with intelligent call routing |
US7756896B1 (en) | 2002-03-11 | 2010-07-13 | Jp Morgan Chase Bank | System and method for multi-dimensional risk analysis |
US7412424B1 (en) | 2002-03-19 | 2008-08-12 | I2 Technologies Us, Inc. | Third party certification of content in electronic commerce transactions |
US20030187937A1 (en) * | 2002-03-28 | 2003-10-02 | Yao Timothy Hun-Jen | Using fuzzy-neural systems to improve e-mail handling efficiency |
US8516114B2 (en) * | 2002-03-29 | 2013-08-20 | International Business Machines Corporation | Method and apparatus for content pre-fetching and preparation |
US8751391B2 (en) | 2002-03-29 | 2014-06-10 | Jpmorgan Chase Bank, N.A. | System and process for performing purchase transactions using tokens |
US7203909B1 (en) | 2002-04-04 | 2007-04-10 | Microsoft Corporation | System and methods for constructing personalized context-sensitive portal pages or views by analyzing patterns of users' information access activities |
US6763354B2 (en) * | 2002-05-10 | 2004-07-13 | Agentarts, Inc. | Mining emergent weighted association rules utilizing backlinking reinforcement analysis |
US7162494B2 (en) * | 2002-05-29 | 2007-01-09 | Sbc Technology Resources, Inc. | Method and system for distributed user profiling |
US20030225772A1 (en) * | 2002-05-31 | 2003-12-04 | International Business Machines Corporation | Business method for determining required product configurations to meet varied performance requirements |
US20040006593A1 (en) * | 2002-06-14 | 2004-01-08 | Vogler Hartmut K. | Multidimensional approach to context-awareness |
US7899707B1 (en) * | 2002-06-18 | 2011-03-01 | Ewinwin, Inc. | DAS predictive modeling and reporting function |
US7606756B2 (en) * | 2002-08-02 | 2009-10-20 | Jpmorgan Chase Bank, N.A. | Synthetic funds having structured notes |
AU2003265369A1 (en) * | 2002-08-06 | 2004-02-23 | Blue Flame Data, Inc. | System to quantify consumer preferences |
US7689463B1 (en) | 2002-08-28 | 2010-03-30 | Ewinwin, Inc. | Multiple supplier system and method for transacting business |
WO2004031948A1 (en) * | 2002-10-03 | 2004-04-15 | Whisperwire, Inc. | System and method for bundling resources |
US7900229B2 (en) * | 2002-10-15 | 2011-03-01 | Opentv, Inc. | Convergence of interactive television and wireless technologies |
US20040203891A1 (en) * | 2002-12-10 | 2004-10-14 | International Business Machines Corporation | Dynamic service binding providing transparent switching of information services having defined coverage regions |
US7136658B2 (en) | 2002-12-10 | 2006-11-14 | International Business Machines Corporation | High-rate proximity detection with the ability to provide notification |
US8306908B1 (en) | 2002-12-31 | 2012-11-06 | West Corporation | Methods and apparatus for intelligent selection of goods and services in telephonic and electronic commerce |
US20040141003A1 (en) * | 2003-01-21 | 2004-07-22 | Dell Products, L.P. | Maintaining a user interest profile reflecting changing interests of a customer |
US20040148566A1 (en) * | 2003-01-24 | 2004-07-29 | Jp Morgan Chase Bank | Method to evaluate project viability |
US20040148241A1 (en) * | 2003-01-24 | 2004-07-29 | Qi Thomas J. | Method of evaluating a portfolio of leased items |
US7493646B2 (en) | 2003-01-30 | 2009-02-17 | United Video Properties, Inc. | Interactive television systems with digital video recording and adjustable reminders |
US9818136B1 (en) | 2003-02-05 | 2017-11-14 | Steven M. Hoffberg | System and method for determining contingent relevance |
US7996313B1 (en) | 2003-03-03 | 2011-08-09 | Federal Home Loan Mortgage Corporation (Freddie Mac) | Method for structuring a supplemental interest mortgage |
US7676034B1 (en) | 2003-03-07 | 2010-03-09 | Wai Wu | Method and system for matching entities in an auction |
US20050198933A1 (en) * | 2004-03-15 | 2005-09-15 | Klein John A. | Deck for mowers |
EP1606754A4 (en) * | 2003-03-25 | 2006-04-19 | Sedna Patent Services Llc | Generating audience analytics |
US8712857B1 (en) | 2003-03-31 | 2014-04-29 | Tuxis Technologies Llc | Methods and apparatus for intelligent selection of goods and services in mobile commerce |
US8590785B1 (en) | 2004-06-15 | 2013-11-26 | Ewinwin, Inc. | Discounts in a mobile device |
US7364086B2 (en) | 2003-06-16 | 2008-04-29 | Ewinwin, Inc. | Dynamic discount card tied to price curves and group discounts |
US7403785B2 (en) * | 2003-06-17 | 2008-07-22 | International Business Machines Corporation | Consolidating online privacy preferences |
US7446972B2 (en) * | 2003-07-24 | 2008-11-04 | Quantum Corporation | Tape drive with a single reel tape cartridge having single guide surface and method for driving |
US8458033B2 (en) | 2003-08-11 | 2013-06-04 | Dropbox, Inc. | Determining the relevance of offers |
US7624068B1 (en) * | 2003-08-18 | 2009-11-24 | Jpmorgan Chase Bank, N.A. | Method and system for dynamically adjusting discount rates for a card transaction |
US8175908B1 (en) | 2003-09-04 | 2012-05-08 | Jpmorgan Chase Bank, N.A. | Systems and methods for constructing and utilizing a merchant database derived from customer purchase transactions data |
US20050060252A1 (en) * | 2003-09-11 | 2005-03-17 | Andrew Doddington | Graphical software tool for modeling financial products |
US7379941B2 (en) * | 2003-09-13 | 2008-05-27 | Compumine Ab | Method for efficiently checking coverage of rules derived from a logical theory |
US20050119938A1 (en) * | 2003-11-17 | 2005-06-02 | Smith Richard T. | Method for providing consumer benefits using a club program |
US7827099B1 (en) | 2003-11-25 | 2010-11-02 | Autoalert, Inc. | System and method for assessing and managing financial transactions |
US8954420B1 (en) | 2003-12-31 | 2015-02-10 | Google Inc. | Methods and systems for improving a search ranking using article information |
US7567950B2 (en) * | 2004-01-14 | 2009-07-28 | Sap Ag | Analytical task execution |
US8015119B2 (en) | 2004-01-21 | 2011-09-06 | Google Inc. | Methods and systems for the display and navigation of a social network |
US8010459B2 (en) * | 2004-01-21 | 2011-08-30 | Google Inc. | Methods and systems for rating associated members in a social network |
US7519566B2 (en) * | 2004-02-11 | 2009-04-14 | Oracle International Corporation | Method and apparatus for automatically and continuously updating prediction models in real time based on data mining |
US10339538B2 (en) | 2004-02-26 | 2019-07-02 | Oath Inc. | Method and system for generating recommendations |
US20050195966A1 (en) * | 2004-03-03 | 2005-09-08 | Sigma Dynamics, Inc. | Method and apparatus for optimizing the results produced by a prediction model |
US8631076B1 (en) | 2004-03-31 | 2014-01-14 | Google Inc. | Methods and systems for associating instant messenger events |
US7941439B1 (en) | 2004-03-31 | 2011-05-10 | Google Inc. | Methods and systems for information capture |
US8161053B1 (en) | 2004-03-31 | 2012-04-17 | Google Inc. | Methods and systems for eliminating duplicate events |
US7333976B1 (en) | 2004-03-31 | 2008-02-19 | Google Inc. | Methods and systems for processing contact information |
US8099407B2 (en) | 2004-03-31 | 2012-01-17 | Google Inc. | Methods and systems for processing media files |
US8346777B1 (en) | 2004-03-31 | 2013-01-01 | Google Inc. | Systems and methods for selectively storing event data |
US8275839B2 (en) * | 2004-03-31 | 2012-09-25 | Google Inc. | Methods and systems for processing email messages |
US8386728B1 (en) | 2004-03-31 | 2013-02-26 | Google Inc. | Methods and systems for prioritizing a crawl |
US8326658B1 (en) | 2004-04-12 | 2012-12-04 | Amazon Technologies, Inc. | Generation and contextual presentation of statistical data reflective of user selections from an electronic catalog |
US7386572B2 (en) * | 2004-04-14 | 2008-06-10 | Nancy Kramer | System and method for a modular user controlled search engine |
US7802007B2 (en) | 2004-05-19 | 2010-09-21 | Salesforce.Com, Inc. | Techniques for providing connections to services in a network environment |
US8019875B1 (en) | 2004-06-04 | 2011-09-13 | Google Inc. | Systems and methods for indicating a user state in a social network |
US8832132B1 (en) | 2004-06-22 | 2014-09-09 | Google Inc. | Personalizing search queries based on user membership in social network communities |
US7974895B1 (en) | 2004-07-16 | 2011-07-05 | Jp Morgan Chase Bank | System and method for developing finance rate information |
US8015019B1 (en) | 2004-08-03 | 2011-09-06 | Google Inc. | Methods and systems for providing a document |
US20060212149A1 (en) * | 2004-08-13 | 2006-09-21 | Hicken Wendell T | Distributed system and method for intelligent data analysis |
US7178720B1 (en) | 2004-09-30 | 2007-02-20 | West Corporation | Methods, computer-readable media, and computer program product for intelligent selection of items encoded onto portable machine-playable entertainment media |
US8806533B1 (en) | 2004-10-08 | 2014-08-12 | United Video Properties, Inc. | System and method for using television information codes |
WO2006054222A1 (en) * | 2004-11-18 | 2006-05-26 | Koninklijke Philips Electronics N.V. | Apparatus and method for updating user profile |
EP1817919A4 (en) * | 2004-11-29 | 2011-07-20 | Arbitron Inc | Systems and processes for use in media and/or market research |
US7480631B1 (en) | 2004-12-15 | 2009-01-20 | Jpmorgan Chase Bank, N.A. | System and method for detecting and processing fraud and credit abuse |
GB0428365D0 (en) * | 2004-12-24 | 2005-02-02 | Ibm | Methods and apparatus for generating a parser and parsing a document |
US7716140B1 (en) | 2004-12-31 | 2010-05-11 | Google Inc. | Methods and systems for controlling access to relationship information in a social network |
US20110161958A1 (en) * | 2005-01-03 | 2011-06-30 | Jp Morgan Chase Bank | Method and system for managing business calculations using multi-dimensional data |
US7890343B1 (en) | 2005-01-11 | 2011-02-15 | Jp Morgan Chase Bank | System and method for generating risk management curves |
CA2644943A1 (en) * | 2005-03-04 | 2006-09-14 | Musicip Corporation | Scan shuffle for building playlists |
EP1859350B1 (en) * | 2005-03-16 | 2015-06-24 | BRITISH TELECOMMUNICATIONS public limited company | Monitoring computer-controlled processes |
US20060212815A1 (en) * | 2005-03-16 | 2006-09-21 | Huerta Juan M | Dialog system and method for efficient computer interaction |
US7175072B2 (en) * | 2005-03-25 | 2007-02-13 | Microsoft Corporation | Strategies for handling transactions based on policies |
EP1708099A1 (en) * | 2005-03-29 | 2006-10-04 | BRITISH TELECOMMUNICATIONS public limited company | Schema matching |
US8412780B2 (en) * | 2005-03-30 | 2013-04-02 | Google Inc. | Methods and systems for providing current email addresses and contact information for members within a social network |
US9165042B2 (en) * | 2005-03-31 | 2015-10-20 | International Business Machines Corporation | System and method for efficiently performing similarity searches of structural data |
US20080253645A1 (en) * | 2005-04-01 | 2008-10-16 | British Telecommunications Public Limited Company | Adaptive Classifier, and Method of Creation of Classification Parameters Therefor |
US8214264B2 (en) * | 2005-05-02 | 2012-07-03 | Cbs Interactive, Inc. | System and method for an electronic product advisor |
US7613736B2 (en) * | 2005-05-23 | 2009-11-03 | Resonance Media Services, Inc. | Sharing music essence in a recommendation system |
AU2006279694B2 (en) * | 2005-08-11 | 2011-11-17 | Contextweb, Inc. | Method and system for placement and pricing of internet-based advertisements or services |
US9058406B2 (en) | 2005-09-14 | 2015-06-16 | Millennial Media, Inc. | Management of multiple advertising inventories using a monetization platform |
US20110313853A1 (en) | 2005-09-14 | 2011-12-22 | Jorey Ramer | System for targeting advertising content to a plurality of mobile communication facilities |
US8989718B2 (en) | 2005-09-14 | 2015-03-24 | Millennial Media, Inc. | Idle screen advertising |
US8660891B2 (en) | 2005-11-01 | 2014-02-25 | Millennial Media | Interactive mobile advertisement banners |
US9201979B2 (en) * | 2005-09-14 | 2015-12-01 | Millennial Media, Inc. | Syndication of a behavioral profile associated with an availability condition using a monetization platform |
US8812526B2 (en) | 2005-09-14 | 2014-08-19 | Millennial Media, Inc. | Mobile content cross-inventory yield optimization |
US8364521B2 (en) | 2005-09-14 | 2013-01-29 | Jumptap, Inc. | Rendering targeted advertisement on mobile communication facilities |
US8805339B2 (en) | 2005-09-14 | 2014-08-12 | Millennial Media, Inc. | Categorization of a mobile user profile based on browse and viewing behavior |
US9471925B2 (en) | 2005-09-14 | 2016-10-18 | Millennial Media Llc | Increasing mobile interactivity |
US8832100B2 (en) | 2005-09-14 | 2014-09-09 | Millennial Media, Inc. | User transaction history influenced search results |
US8503995B2 (en) | 2005-09-14 | 2013-08-06 | Jumptap, Inc. | Mobile dynamic advertisement creation and placement |
US8302030B2 (en) | 2005-09-14 | 2012-10-30 | Jumptap, Inc. | Management of multiple advertising inventories using a monetization platform |
US7676394B2 (en) | 2005-09-14 | 2010-03-09 | Jumptap, Inc. | Dynamic bidding and expected value |
US9703892B2 (en) | 2005-09-14 | 2017-07-11 | Millennial Media Llc | Predictive text completion for a mobile communication facility |
US8156128B2 (en) | 2005-09-14 | 2012-04-10 | Jumptap, Inc. | Contextual mobile content placement on a mobile communication facility |
US10592930B2 (en) | 2005-09-14 | 2020-03-17 | Millenial Media, LLC | Syndication of a behavioral profile using a monetization platform |
US8103545B2 (en) | 2005-09-14 | 2012-01-24 | Jumptap, Inc. | Managing payment for sponsored content presented to mobile communication facilities |
US7660581B2 (en) | 2005-09-14 | 2010-02-09 | Jumptap, Inc. | Managing sponsored content based on usage history |
US9076175B2 (en) | 2005-09-14 | 2015-07-07 | Millennial Media, Inc. | Mobile comparison shopping |
US8615719B2 (en) | 2005-09-14 | 2013-12-24 | Jumptap, Inc. | Managing sponsored content for delivery to mobile communication facilities |
US8229914B2 (en) | 2005-09-14 | 2012-07-24 | Jumptap, Inc. | Mobile content spidering and compatibility determination |
US20090240568A1 (en) * | 2005-09-14 | 2009-09-24 | Jorey Ramer | Aggregation and enrichment of behavioral profile data using a monetization platform |
US8666376B2 (en) | 2005-09-14 | 2014-03-04 | Millennial Media | Location based mobile shopping affinity program |
US8290810B2 (en) | 2005-09-14 | 2012-10-16 | Jumptap, Inc. | Realtime surveying within mobile sponsored content |
US7702318B2 (en) | 2005-09-14 | 2010-04-20 | Jumptap, Inc. | Presentation of sponsored content based on mobile transaction event |
US7752209B2 (en) | 2005-09-14 | 2010-07-06 | Jumptap, Inc. | Presenting sponsored content on a mobile communication facility |
US10911894B2 (en) | 2005-09-14 | 2021-02-02 | Verizon Media Inc. | Use of dynamic content generation parameters based on previous performance of those parameters |
US8311888B2 (en) * | 2005-09-14 | 2012-11-13 | Jumptap, Inc. | Revenue models associated with syndication of a behavioral profile using a monetization platform |
US8364540B2 (en) * | 2005-09-14 | 2013-01-29 | Jumptap, Inc. | Contextual targeting of content using a monetization platform |
US8027879B2 (en) | 2005-11-05 | 2011-09-27 | Jumptap, Inc. | Exclusivity bidding for mobile sponsored content |
US7769764B2 (en) | 2005-09-14 | 2010-08-03 | Jumptap, Inc. | Mobile advertisement syndication |
US8532633B2 (en) | 2005-09-14 | 2013-09-10 | Jumptap, Inc. | System for targeting advertising content to a plurality of mobile communication facilities |
US8209344B2 (en) | 2005-09-14 | 2012-06-26 | Jumptap, Inc. | Embedding sponsored content in mobile applications |
US8238888B2 (en) | 2006-09-13 | 2012-08-07 | Jumptap, Inc. | Methods and systems for mobile coupon placement |
US8195133B2 (en) | 2005-09-14 | 2012-06-05 | Jumptap, Inc. | Mobile dynamic advertisement creation and placement |
US8688671B2 (en) | 2005-09-14 | 2014-04-01 | Millennial Media | Managing sponsored content based on geographic region |
US8131271B2 (en) | 2005-11-05 | 2012-03-06 | Jumptap, Inc. | Categorization of a mobile user profile based on browse behavior |
US7577665B2 (en) | 2005-09-14 | 2009-08-18 | Jumptap, Inc. | User characteristic influenced search results |
US10038756B2 (en) | 2005-09-14 | 2018-07-31 | Millenial Media LLC | Managing sponsored content based on device characteristics |
US8819659B2 (en) | 2005-09-14 | 2014-08-26 | Millennial Media, Inc. | Mobile search service instant activation |
US7912458B2 (en) | 2005-09-14 | 2011-03-22 | Jumptap, Inc. | Interaction analysis and prioritization of mobile content |
US8874477B2 (en) | 2005-10-04 | 2014-10-28 | Steven Mark Hoffberg | Multifactorial optimization system and method |
US8175585B2 (en) | 2005-11-05 | 2012-05-08 | Jumptap, Inc. | System for targeting advertising content to a plurality of mobile communication facilities |
US7945653B2 (en) * | 2006-10-11 | 2011-05-17 | Facebook, Inc. | Tagging digital media |
US8244532B1 (en) | 2005-12-23 | 2012-08-14 | At&T Intellectual Property Ii, L.P. | Systems, methods, and programs for detecting unauthorized use of text based communications services |
US9117223B1 (en) | 2005-12-28 | 2015-08-25 | Deem, Inc. | Method and system for resource planning for service provider |
US20070157223A1 (en) * | 2005-12-29 | 2007-07-05 | United Video Properties, Inc. | Systems and methods for managing content |
US7634463B1 (en) | 2005-12-29 | 2009-12-15 | Google Inc. | Automatically generating and maintaining an address book |
US20070157247A1 (en) * | 2005-12-29 | 2007-07-05 | United Video Properties, Inc. | Systems and methods for managing content |
US7685144B1 (en) * | 2005-12-29 | 2010-03-23 | Google Inc. | Dynamically autocompleting a data entry |
US9262446B1 (en) * | 2005-12-29 | 2016-02-16 | Google Inc. | Dynamically ranking entries in a personal data book |
US20070157222A1 (en) * | 2005-12-29 | 2007-07-05 | United Video Properties, Inc. | Systems and methods for managing content |
US20090012903A1 (en) * | 2006-01-26 | 2009-01-08 | Contextweb, Inc. | Online exchange for internet ad media |
US20070192345A1 (en) * | 2006-01-27 | 2007-08-16 | William Derek Finley | Method of assessing consumer preference tendencies based on an analysis of correlated communal information |
US7962396B1 (en) | 2006-02-03 | 2011-06-14 | Jpmorgan Chase Bank, N.A. | System and method for managing risk |
US20090210244A1 (en) * | 2006-02-04 | 2009-08-20 | Tn20 Incorporated | Trusted acquaintances network system |
WO2007098068A2 (en) * | 2006-02-17 | 2007-08-30 | The Directv Group, Inc. | Amalgamation of user data for geographical trending |
US20070220543A1 (en) * | 2006-02-17 | 2007-09-20 | Shanks David E | Mirroring of live data to guide data in a broadcast system |
US20070277196A1 (en) * | 2006-02-24 | 2007-11-29 | Steengaard Bodil H | Methods of user behavior learning and acting in a pervasive system |
US7904524B2 (en) * | 2006-03-06 | 2011-03-08 | Aggregate Knowledge | Client recommendation mechanism |
US7788358B2 (en) | 2006-03-06 | 2010-08-31 | Aggregate Knowledge | Using cross-site relationships to generate recommendations |
US7853630B2 (en) * | 2006-03-06 | 2010-12-14 | Aggregate Knowledge | System and method for the dynamic generation of correlation scores between arbitrary objects |
US20070243509A1 (en) * | 2006-03-31 | 2007-10-18 | Jonathan Stiebel | System and method for electronic media content delivery |
US8300798B1 (en) | 2006-04-03 | 2012-10-30 | Wai Wu | Intelligent communication routing system and method |
US7707192B1 (en) | 2006-05-23 | 2010-04-27 | Jp Morgan Chase Bank, N.A. | Confidence index for assets |
US8668146B1 (en) | 2006-05-25 | 2014-03-11 | Sean I. Mcghie | Rewards program with payment artifact permitting conversion/transfer of non-negotiable credits to entity independent funds |
US8342399B1 (en) | 2006-05-25 | 2013-01-01 | Mcghie Sean I | Conversion of credits to funds |
US8376224B2 (en) | 2006-05-25 | 2013-02-19 | Sean I. Mcghie | Self-service stations for utilizing non-negotiable credits earned from a game of chance |
US8684265B1 (en) | 2006-05-25 | 2014-04-01 | Sean I. Mcghie | Rewards program website permitting conversion/transfer of non-negotiable credits to entity independent funds |
US8162209B2 (en) | 2006-05-25 | 2012-04-24 | Buchheit Brian K | Storefront purchases utilizing non-negotiable credits earned from a game of chance |
US10062062B1 (en) | 2006-05-25 | 2018-08-28 | Jbshbm, Llc | Automated teller machine (ATM) providing money for loyalty points |
US9704174B1 (en) | 2006-05-25 | 2017-07-11 | Sean I. Mcghie | Conversion of loyalty program points to commerce partner points per terms of a mutual agreement |
US7703673B2 (en) | 2006-05-25 | 2010-04-27 | Buchheit Brian K | Web based conversion of non-negotiable credits associated with an entity to entity independent negotiable funds |
US7590035B1 (en) | 2006-08-29 | 2009-09-15 | Resonance Media Services, Inc. | System and method for generating and using table of content (TOC) prints |
EP3343905A1 (en) * | 2006-09-29 | 2018-07-04 | Rovi Guides, Inc. | Systems and methods for a modular media guidance dashboard application |
US20080082373A1 (en) * | 2006-10-03 | 2008-04-03 | American Express Travel Related Services Co., Inc. | System and method for improved itinerary providing merchant information |
UY30755A1 (en) * | 2006-12-04 | 2008-07-31 | Bayer Schering Pharma Ag | LIPOXINE A4 ANALOG CRYSTAL POTASSIUM SALT |
US7685274B2 (en) * | 2006-12-22 | 2010-03-23 | General Electric Company | Method and apparatus for clustered filtering in an RFID infrastructure |
US20080159114A1 (en) * | 2007-01-02 | 2008-07-03 | Dipietro Richard Anthony | High density data storage medium, method and device |
WO2008092079A2 (en) | 2007-01-25 | 2008-07-31 | Clipmarks Llc | System, method and apparatus for selecting content from web sources and posting content to web logs |
US8352980B2 (en) * | 2007-02-15 | 2013-01-08 | At&T Intellectual Property I, Lp | System and method for single sign on targeted advertising |
US8418206B2 (en) | 2007-03-22 | 2013-04-09 | United Video Properties, Inc. | User defined rules for assigning destinations of content |
US7974888B2 (en) * | 2007-03-30 | 2011-07-05 | Amazon Technologies, Inc. | Services for providing item association data |
US7881984B2 (en) * | 2007-03-30 | 2011-02-01 | Amazon Technologies, Inc. | Service for providing item recommendations |
US8087047B2 (en) | 2007-04-20 | 2011-12-27 | United Video Properties, Inc. | Systems and methods for providing remote access to interactive media guidance applications |
US8200663B2 (en) | 2007-04-25 | 2012-06-12 | Chacha Search, Inc. | Method and system for improvement of relevance of search results |
US7991790B2 (en) | 2007-07-20 | 2011-08-02 | Salesforce.Com, Inc. | System and method for storing documents accessed by multiple users in an on-demand service |
US20090037431A1 (en) * | 2007-07-30 | 2009-02-05 | Paul Martino | System and method for maintaining metadata correctness |
CA2637975A1 (en) * | 2007-08-16 | 2009-02-16 | Radian6 Technologies Inc. | Method and system for determining topical on-line influence of an entity |
US20090157668A1 (en) * | 2007-12-12 | 2009-06-18 | Christopher Daniel Newton | Method and system for measuring an impact of various categories of media owners on a corporate brand |
US8645390B1 (en) * | 2007-08-31 | 2014-02-04 | Google Inc. | Reordering search query results in accordance with search context specific predicted performance functions |
US8327403B1 (en) | 2007-09-07 | 2012-12-04 | United Video Properties, Inc. | Systems and methods for providing remote program ordering on a user device via a web server |
US8032714B2 (en) | 2007-09-28 | 2011-10-04 | Aggregate Knowledge Inc. | Methods and systems for caching data using behavioral event correlations |
US8606634B2 (en) * | 2007-10-09 | 2013-12-10 | Microsoft Corporation | Providing advertising in a virtual world |
US8600779B2 (en) * | 2007-10-09 | 2013-12-03 | Microsoft Corporation | Advertising with an influential participant in a virtual world |
US20090113319A1 (en) * | 2007-10-30 | 2009-04-30 | Dawson Christopher J | Developing user profiles in virtual worlds |
US8145725B2 (en) * | 2007-10-31 | 2012-03-27 | International Business Machines Corporation | Updating data stores of virtual worlds based on data stores external to the virtual worlds |
US20090125377A1 (en) * | 2007-11-14 | 2009-05-14 | Microsoft Corporation | Profiling system for online marketplace |
US20090132366A1 (en) * | 2007-11-15 | 2009-05-21 | Microsoft Corporation | Recognizing and crediting offline realization of online behavior |
US20090132361A1 (en) * | 2007-11-21 | 2009-05-21 | Microsoft Corporation | Consumable advertising in a virtual world |
WO2009070727A2 (en) * | 2007-11-27 | 2009-06-04 | Regulus Group, Llc. | Billing and remittance payment system |
US20090164919A1 (en) | 2007-12-24 | 2009-06-25 | Cary Lee Bates | Generating data for managing encounters in a virtual world environment |
US8527334B2 (en) * | 2007-12-27 | 2013-09-03 | Microsoft Corporation | Advertising revenue sharing |
US20090171760A1 (en) * | 2007-12-31 | 2009-07-02 | Nokia Corporation | Systems and Methods for Facilitating Electronic Commerce |
CA2650319C (en) | 2008-01-24 | 2016-10-18 | Radian6 Technologies Inc. | Method and system for targeted advertising based on topical memes |
US8719077B2 (en) * | 2008-01-29 | 2014-05-06 | Microsoft Corporation | Real world and virtual world cross-promotion |
US20090210301A1 (en) * | 2008-02-14 | 2009-08-20 | Microsoft Corporation | Generating customized content based on context data |
US8478637B1 (en) | 2008-04-08 | 2013-07-02 | Jpmorgan Chase Bank, N.A. | Index for assessing discount potential |
US9245252B2 (en) * | 2008-05-07 | 2016-01-26 | Salesforce.Com, Inc. | Method and system for determining on-line influence in social media |
US20090300523A1 (en) * | 2008-05-29 | 2009-12-03 | Sony Corporation And Sony Electronics Inc. | System and method for embedding information in an electronic device |
US8601526B2 (en) | 2008-06-13 | 2013-12-03 | United Video Properties, Inc. | Systems and methods for displaying media content and media guidance information |
WO2010011752A2 (en) * | 2008-07-22 | 2010-01-28 | Contextweb, Inc. | New open insertion order system to interface with an exchange for internet ad media |
JP5215099B2 (en) * | 2008-09-17 | 2013-06-19 | オリンパス株式会社 | Information processing system, digital photo frame, program, and information storage medium |
US10063934B2 (en) | 2008-11-25 | 2018-08-28 | Rovi Technologies Corporation | Reducing unicast session duration with restart TV |
US8244674B2 (en) * | 2008-12-10 | 2012-08-14 | Gartner, Inc. | Interactive peer directory |
US9477672B2 (en) | 2009-12-02 | 2016-10-25 | Gartner, Inc. | Implicit profile for use with recommendation engine and/or question router |
US8918391B2 (en) | 2009-12-02 | 2014-12-23 | Gartner, Inc. | Interactive peer directory with question router |
US8200661B1 (en) | 2008-12-18 | 2012-06-12 | Google Inc. | Dynamic recommendations based on user actions |
US9449281B2 (en) * | 2008-12-31 | 2016-09-20 | Sap Se | Statistical machine learning |
US8612276B1 (en) | 2009-02-11 | 2013-12-17 | Certusview Technologies, Llc | Methods, apparatus, and systems for dispatching service technicians |
US20100217616A1 (en) | 2009-02-25 | 2010-08-26 | HCD Software, LLC | Methods, apparatus and computer program products for targeted and customized marketing of prospective customers |
AU2010201495B2 (en) | 2009-04-16 | 2012-04-12 | Accenture Global Services Limited | Touchpoint customization system |
US10552849B2 (en) | 2009-04-30 | 2020-02-04 | Deem, Inc. | System and method for offering, tracking and promoting loyalty rewards |
US20100299691A1 (en) * | 2009-05-20 | 2010-11-25 | Genieo Innovation Ltd. | System and Method for Personalization of Television Content Provided by a Set-Top Box Based on a User's Context and Uniquifiers |
US20100294821A1 (en) * | 2009-05-20 | 2010-11-25 | Laci Szabo | Welding/cutting torch system holster |
US8504569B2 (en) * | 2009-05-20 | 2013-08-06 | Genieo Innovation Ltd. | Apparatus and methods for providing answers to queries respective of a user based on user uniquifiers |
US8407212B2 (en) * | 2009-05-20 | 2013-03-26 | Genieo Innovation Ltd. | System and method for generation of a customized web page based on user identifiers |
CN102033886B (en) * | 2009-09-25 | 2012-07-04 | 香港纺织及成衣研发中心 | Fabric search method and system utilizing same |
US20110106808A1 (en) * | 2009-10-30 | 2011-05-05 | Salesforce.Com, Inc. | Multi-dimensional content organization and delivery |
US8621015B2 (en) | 2009-10-30 | 2013-12-31 | Salesforce.Com, Inc. | Integrating and managing social networking information in an on-demand database system |
US20110113057A1 (en) | 2009-11-12 | 2011-05-12 | Salesforce.Com, Inc. | Subscriptions for enterprise level business information networking |
US8560575B2 (en) * | 2009-11-12 | 2013-10-15 | Salesforce.Com, Inc. | Methods and apparatus for selecting updates to associated records to publish on an information feed in an on-demand database service environment |
JP2011107557A (en) * | 2009-11-20 | 2011-06-02 | Fuji Xerox Co Ltd | Image forming apparatus |
US20110131202A1 (en) * | 2009-12-02 | 2011-06-02 | International Business Machines Corporation | Exploration of item consumption by customers |
US20110153423A1 (en) * | 2010-06-21 | 2011-06-23 | Jon Elvekrog | Method and system for creating user based summaries for content distribution |
US10102278B2 (en) | 2010-02-03 | 2018-10-16 | Gartner, Inc. | Methods and systems for modifying a user profile for a recommendation algorithm and making recommendations based on user interactions with items |
US20110191311A1 (en) * | 2010-02-03 | 2011-08-04 | Gartner, Inc. | Bi-model recommendation engine for recommending items and peers |
US8661034B2 (en) | 2010-02-03 | 2014-02-25 | Gartner, Inc. | Bimodal recommendation engine for recommending items and peers |
US8898287B2 (en) | 2010-02-24 | 2014-11-25 | Salesforce.Com, Inc. | System, method and computer program product for monitoring data activity utilizing a shared data store |
US9600512B2 (en) | 2010-02-25 | 2017-03-21 | Salesforce.Com, Inc. | Systems and methods for implementing customized drop-down menus |
US8898582B2 (en) * | 2010-03-10 | 2014-11-25 | Salesforce.Com, Inc. | Configurable highlights panel for display of database records |
US8745272B2 (en) * | 2010-03-12 | 2014-06-03 | Salesforce.Com, Inc. | Service cloud console |
US20110231457A1 (en) * | 2010-03-16 | 2011-09-22 | Salesforce.Com, Inc. | Monitoring and managing job resources for database tasks |
US9009709B2 (en) | 2010-03-16 | 2015-04-14 | Salesforce.Com, Inc. | Asynchronous rollup numbers forecasting methods and systems |
US9246707B2 (en) | 2010-03-16 | 2016-01-26 | Salesforce.Com, Inc. | Cost-based SMTP email routing |
US8977675B2 (en) | 2010-03-26 | 2015-03-10 | Salesforce.Com, Inc. | Methods and systems for providing time and date specific software user interfaces |
US8539234B2 (en) | 2010-03-30 | 2013-09-17 | Salesforce.Com, Inc. | Secure client-side communication between multiple domains |
US8818985B2 (en) | 2010-04-06 | 2014-08-26 | Salesforce.Com, Inc. | Rule-based prioritization of social data |
US8543522B2 (en) * | 2010-04-21 | 2013-09-24 | Retail Decisions, Inc. | Automatic rule discovery from large-scale datasets to detect payment card fraud using classifiers |
US8751939B2 (en) | 2010-04-26 | 2014-06-10 | Salesforce.Com, Inc. | Side tab navigation and page views personalization systems and methods |
US8972431B2 (en) | 2010-05-06 | 2015-03-03 | Salesforce.Com, Inc. | Synonym supported searches |
US9781049B2 (en) | 2010-05-07 | 2017-10-03 | Salesforce.Com, Inc. | Resolving information in a database environment |
US8718241B2 (en) | 2010-05-07 | 2014-05-06 | Salesforce.Com, Inc. | Methods and apparatus for interfacing with a phone system in an on-demand service environment |
US9009669B2 (en) | 2010-05-07 | 2015-04-14 | Salesforce.Com, Inc. | Visual user interface validator |
US8566792B2 (en) | 2010-05-07 | 2013-10-22 | Salesforce, Inc. | Validating visual components |
US8959483B2 (en) | 2010-05-13 | 2015-02-17 | Salesforce.Com, Inc. | Test framework of visual components in a multitenant database environment |
US8850219B2 (en) | 2010-05-13 | 2014-09-30 | Salesforce.Com, Inc. | Secure communications |
US9204193B2 (en) | 2010-05-14 | 2015-12-01 | Rovi Guides, Inc. | Systems and methods for media detection and filtering using a parental control logging application |
US20110289401A1 (en) | 2010-05-20 | 2011-11-24 | Salesforce.Com, Inc. | Multiple graphical annotations of documents using overlays |
US20110289425A1 (en) | 2010-05-20 | 2011-11-24 | Salesforce.Com, Inc. | Methods and systems for providing a user interface in a multi-tenant database environment |
US8738603B2 (en) | 2010-05-20 | 2014-05-27 | Salesforce.Com, Inc. | Metrics-based accessing of social threads |
US8751305B2 (en) | 2010-05-24 | 2014-06-10 | 140 Proof, Inc. | Targeting users based on persona data |
US8572080B2 (en) | 2010-06-04 | 2013-10-29 | Salesforce.Com, Inc. | Methods and systems for analyzing a network feed in a multi-tenant database system environment |
US9223852B2 (en) | 2010-06-11 | 2015-12-29 | Salesforce.Com, Inc. | Methods and systems for analyzing search terms in a multi-tenant database system environment |
US8230062B2 (en) | 2010-06-21 | 2012-07-24 | Salesforce.Com, Inc. | Referred internet traffic analysis system and method |
US9280596B2 (en) | 2010-07-01 | 2016-03-08 | Salesforce.Com, Inc. | Method and system for scoring articles in an on-demand services environment |
US9817637B2 (en) | 2010-07-01 | 2017-11-14 | Salesforce.Com, Inc. | Methods and systems for providing enhancements to a business networking feed |
US8862587B1 (en) | 2010-08-05 | 2014-10-14 | Ca, Inc. | Server and system for automatic profiling based in part on user names |
US8560554B2 (en) | 2010-09-23 | 2013-10-15 | Salesforce.Com, Inc. | Methods and apparatus for selecting updates to associated records to publish on an information feed using importance weights in an on-demand database service environment |
US8661076B2 (en) | 2010-09-23 | 2014-02-25 | Salesforce.Com, Inc. | Business networking information feed alerts |
US9106761B2 (en) | 2010-09-23 | 2015-08-11 | Salesforce.Com, Inc. | Methods and apparatus for inviting users to follow records in an on-demand database service environment |
US8732150B2 (en) | 2010-09-23 | 2014-05-20 | Salesforce.Com, Inc. | Methods and apparatus for suppressing network feed activities using an information feed in an on-demand database service environment |
US20120086544A1 (en) | 2010-10-08 | 2012-04-12 | Salesforce.Com, Inc. | Following Data Records in an Information Feed |
US9767221B2 (en) * | 2010-10-08 | 2017-09-19 | At&T Intellectual Property I, L.P. | User profile and its location in a clustered profile landscape |
US9031957B2 (en) | 2010-10-08 | 2015-05-12 | Salesforce.Com, Inc. | Structured data in a business networking feed |
US8903770B2 (en) | 2010-10-15 | 2014-12-02 | Salesforce.Com, Inc. | Methods and apparatus for discontinuing the following of records in an on-demand database service environment |
US9411855B2 (en) | 2010-10-25 | 2016-08-09 | Salesforce.Com, Inc. | Triggering actions in an information feed system |
US8732606B2 (en) | 2010-10-25 | 2014-05-20 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for dynamic windowing in user interfaces |
US8886766B2 (en) | 2010-10-25 | 2014-11-11 | Salesforce.Com, Inc. | Systems and methods for tracking responses on an online social network |
US8756221B2 (en) | 2010-12-03 | 2014-06-17 | Salesforce.Com, Inc. | Social files |
US8566648B2 (en) | 2011-02-02 | 2013-10-22 | Salesforce, Inc. | Automated testing on devices |
US8903943B2 (en) | 2011-02-15 | 2014-12-02 | Salesforce.Com, Inc. | Integrating cloud applications and remote jobs |
US20120215707A1 (en) | 2011-02-18 | 2012-08-23 | Salesforce.Com, Inc. | Methods And Systems For Providing A Recognition User Interface For An Enterprise Social Network |
US9443224B2 (en) | 2011-03-01 | 2016-09-13 | Salesforce.Com, Inc. | Systems, apparatus and methods for selecting updates to associated records to publish on an information feed |
US8713165B2 (en) | 2011-03-03 | 2014-04-29 | Salesforce.Com, Inc. | Method and system for providing status of a machine |
US8458069B2 (en) * | 2011-03-04 | 2013-06-04 | Brighterion, Inc. | Systems and methods for adaptive identification of sources of fraud |
US9424509B2 (en) | 2011-03-09 | 2016-08-23 | T-Mobile Usa, Inc. | System for application personalization for a mobile device |
US8949270B2 (en) | 2011-03-10 | 2015-02-03 | Salesforce.Com, Inc. | Methods and systems for processing social media data |
US8818940B2 (en) | 2011-03-29 | 2014-08-26 | Salesforce.Com, Inc. | Systems and methods for performing record actions in a multi-tenant database and application system |
US9058612B2 (en) | 2011-05-27 | 2015-06-16 | AVG Netherlands B.V. | Systems and methods for recommending software applications |
US9430583B1 (en) | 2011-06-10 | 2016-08-30 | Salesforce.Com, Inc. | Extracting a portion of a document, such as a web page |
US9208187B2 (en) | 2011-06-24 | 2015-12-08 | Salesforce.Com, Inc. | Using a database system for selective inclusion and exclusion of types of updates to provide a configuration feed of a social networking system |
US20130002676A1 (en) | 2011-06-28 | 2013-01-03 | Salesforce.Com, Inc. | Computer implemented systems and methods for visualizing organizational connections |
US9953273B2 (en) | 2011-06-28 | 2018-04-24 | Salesforce.Com, Inc. | Systems and methods for creating a rich social media profile |
US9123028B2 (en) | 2011-07-01 | 2015-09-01 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for controlling the inclusion of edited information in an information feed |
US9195971B2 (en) | 2011-07-12 | 2015-11-24 | Salesforce.Com, Inc. | Method and system for planning a meeting in a cloud computing environment |
US9489660B2 (en) | 2011-07-12 | 2016-11-08 | Salesforce.Com, Inc. | Methods and systems for public collaborative interface for private network groups |
US9395881B2 (en) | 2011-07-12 | 2016-07-19 | Salesforce.Com, Inc. | Methods and systems for navigating display sequence maps |
US8954449B2 (en) | 2011-07-12 | 2015-02-10 | Salesforce.Com, Inc. | Method and system for determining a user's brand influence |
US9071658B2 (en) | 2011-07-12 | 2015-06-30 | Salesforce.Com, Inc. | Method and system for presenting a meeting in a cloud computing environment |
US9037681B2 (en) | 2011-07-12 | 2015-05-19 | Salesforce.Com, Inc. | Methods and systems for prioritizing multiple network feeds |
US9563712B2 (en) | 2011-07-14 | 2017-02-07 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing internal custom feed items |
US9443225B2 (en) | 2011-07-18 | 2016-09-13 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for presentation of feed items in an information feed to be displayed on a display device |
US8762870B2 (en) | 2011-07-19 | 2014-06-24 | Salesforce.Com, Inc. | Multifunction drag-and-drop selection tool for selection of data objects in a social network application |
US20130024910A1 (en) | 2011-07-22 | 2013-01-24 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for integrating a social network information feed with a network communications application |
US9325750B2 (en) | 2011-07-26 | 2016-04-26 | Salesforce.Com, Inc. | Method and system for viewing a contact network feed in a business directory environment |
US9256859B2 (en) | 2011-07-26 | 2016-02-09 | Salesforce.Com, Inc. | Systems and methods for fragmenting newsfeed objects |
US8984051B2 (en) | 2011-07-26 | 2015-03-17 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for communicating feed information to one or more recipients |
US9591090B2 (en) | 2011-08-22 | 2017-03-07 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for sharing data of an information feed of an online social network |
US9395882B2 (en) | 2011-08-24 | 2016-07-19 | Salesforce.Com, Inc. | Systems and methods for promoting related lists |
US8549047B2 (en) | 2011-08-25 | 2013-10-01 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for feed-based case management |
US9215096B2 (en) | 2011-08-26 | 2015-12-15 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing communication between network domains in a service cloud |
US10158638B2 (en) | 2011-08-31 | 2018-12-18 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing access to an online social network |
US9542711B2 (en) | 2011-10-07 | 2017-01-10 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing selective notifications in an online social network |
US9058363B2 (en) | 2011-10-07 | 2015-06-16 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing a distribution list of users in an online social network |
US9767132B2 (en) | 2011-10-10 | 2017-09-19 | Salesforce.Com, Inc. | Systems and methods for real-time de-duplication |
US9589070B2 (en) | 2011-10-10 | 2017-03-07 | Salesforce.Com, Inc. | Method and system for updating a filter logic expression representing a boolean filter |
US9727924B2 (en) | 2011-10-10 | 2017-08-08 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for informing a user of social network data when the data is relevant to the user |
US9195648B2 (en) | 2011-10-12 | 2015-11-24 | Salesforce.Com, Inc. | Multi-lingual knowledge base |
US9007364B2 (en) | 2011-10-12 | 2015-04-14 | Salesforce.Com, Inc. | Augmented reality display apparatus and related methods using database record data |
US9064287B2 (en) | 2011-10-13 | 2015-06-23 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing group-related social network information |
US9443007B2 (en) | 2011-11-02 | 2016-09-13 | Salesforce.Com, Inc. | Tools and techniques for extracting knowledge from unstructured data retrieved from personal data sources |
US9471666B2 (en) | 2011-11-02 | 2016-10-18 | Salesforce.Com, Inc. | System and method for supporting natural language queries and requests against a user's personal data cloud |
US9152725B2 (en) | 2011-11-04 | 2015-10-06 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for configuring and performing a custom rule to process a preference indication |
US9830050B2 (en) | 2011-11-23 | 2017-11-28 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing a reminder regarding a feed item of a feed of an online social network |
US20130159071A1 (en) * | 2011-12-14 | 2013-06-20 | Daily Referral, Llc | Method for connecting customers and businesses |
US8805418B2 (en) | 2011-12-23 | 2014-08-12 | United Video Properties, Inc. | Methods and systems for performing actions based on location-based rules |
US20130185654A1 (en) | 2012-01-17 | 2013-07-18 | Salesforce.Com, Inc. | Systems and methods for mapping relevant personal connections |
US8731151B2 (en) | 2012-02-02 | 2014-05-20 | Salesforce.Com, Inc. | Methods and apparatus for partially updating a web page using an embedded iFrame |
US20130218885A1 (en) | 2012-02-22 | 2013-08-22 | Salesforce.Com, Inc. | Systems and methods for context-aware message tagging |
US20130231990A1 (en) * | 2012-03-01 | 2013-09-05 | Sears Brands, Llc | Methods and systems for providing personal shopping services |
US9503535B2 (en) | 2012-03-06 | 2016-11-22 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for automatically following entities in an online social network |
US20130254296A1 (en) | 2012-03-23 | 2013-09-26 | Salesforce.Com, Inc. | Social network communities |
US9558277B2 (en) | 2012-04-04 | 2017-01-31 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for identifying topical influence in an online social network |
US9307006B2 (en) | 2012-04-11 | 2016-04-05 | Salesforce.Com, Inc. | System and method for synchronizing data objects in a cloud based social networking environment |
US9753926B2 (en) | 2012-04-30 | 2017-09-05 | Salesforce.Com, Inc. | Extracting a portion of a document, such as a web page |
US9197513B2 (en) | 2012-05-03 | 2015-11-24 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for representing a portion of a user interface as a network address |
US8973106B2 (en) | 2012-05-03 | 2015-03-03 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing permissions to users in an on-demand service environment |
US9252976B2 (en) | 2012-05-09 | 2016-02-02 | Salesforce.Com, Inc. | Method and system for social media cooperation protocol |
US9094359B2 (en) | 2012-05-09 | 2015-07-28 | Salesforce.Com, Inc. | Method and system for inter-social network communications |
WO2013172310A1 (en) * | 2012-05-14 | 2013-11-21 | 日本電気株式会社 | Rule discovery system, method, device, and program |
US9177007B2 (en) | 2012-05-14 | 2015-11-03 | Salesforce.Com, Inc. | Computer implemented methods and apparatus to interact with records using a publisher of an information feed of an online social network |
US9916592B2 (en) | 2012-05-18 | 2018-03-13 | Oracle International Corporation | Method and system for implementing implicit follow and automatic unfollow |
US10049131B2 (en) | 2012-07-02 | 2018-08-14 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for determining user access to custom metadata |
US9715879B2 (en) | 2012-07-02 | 2017-07-25 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for selectively interacting with a server to build a local database for speech recognition at a device |
US9628493B2 (en) | 2012-07-03 | 2017-04-18 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for managing permission sets and validating user assignments |
US9241017B2 (en) | 2012-07-03 | 2016-01-19 | Salesforce.Com, Inc. | Systems and methods for cross domain service component interaction |
US9075766B2 (en) | 2012-07-12 | 2015-07-07 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for determining whether to continue relationships in an online social network |
US9367626B2 (en) | 2012-07-23 | 2016-06-14 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for implementing a topical-based highlights filter |
US9984126B2 (en) | 2012-07-23 | 2018-05-29 | Salesforce.Com, Inc. | Identifying relevant feed items to display in a feed of an enterprise social networking system |
US9569060B2 (en) | 2012-07-25 | 2017-02-14 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for composing and batch publishing feed items in a feed-based interaction context |
US9432320B2 (en) | 2012-07-30 | 2016-08-30 | Salesforce.Com, Inc. | System and method for providing an information-centric application |
US8990958B2 (en) | 2012-08-31 | 2015-03-24 | Salesforce.Com, Inc. | Systems and methods for content management in an on demand environment |
US9990426B2 (en) | 2012-08-31 | 2018-06-05 | Salesforce.Com, Inc. | Systems and methods for content management in an on-demand environment |
US9747388B2 (en) | 2012-08-31 | 2017-08-29 | Salesforce.Com, Inc. | Systems and methods for providing access to external content objects |
US9292589B2 (en) | 2012-09-04 | 2016-03-22 | Salesforce.Com, Inc. | Identifying a topic for text using a database system |
US9774555B2 (en) | 2012-09-14 | 2017-09-26 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for managing objectives in an organization in a social network environment |
US9253283B2 (en) | 2012-09-14 | 2016-02-02 | Salesforce.Com, Inc. | Systems and methods for ghosting and providing proxies in a network feed |
US9495557B2 (en) | 2012-09-18 | 2016-11-15 | Salesforce.Com, Inc. | Methods and systems for managing access to data in an on-demand system |
US9626637B2 (en) | 2012-09-18 | 2017-04-18 | Salesforce.Com, Inc. | Method and system for managing business deals |
US9489415B2 (en) | 2012-09-27 | 2016-11-08 | Salesforce.Com, Inc. | System and method for updating infographics based on multiple online social networks |
US9246959B2 (en) | 2012-10-10 | 2016-01-26 | Salesforce.Com, Inc. | System and method for location-based social network feeds |
US9264391B2 (en) | 2012-11-01 | 2016-02-16 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing near real-time predicted engagement level feedback to a user composing a social media message |
US9703815B2 (en) | 2012-12-17 | 2017-07-11 | Salesforce.Com, Inc. | Third party files in an on-demand database service |
US9390195B2 (en) | 2013-01-02 | 2016-07-12 | Research Now Group, Inc. | Using a graph database to match entities by evaluating boolean expressions |
US10013481B2 (en) | 2013-01-02 | 2018-07-03 | Research Now Group, Inc. | Using a graph database to match entities by evaluating boolean expressions |
US10077988B2 (en) * | 2013-01-08 | 2018-09-18 | Excalibur Ip, Llc | Systems and methods relating to ad/content targeting for map route options based on personalization and user data |
US10025360B2 (en) | 2013-01-09 | 2018-07-17 | Google Llc | Thermal adjustment in a computing device using distributed sensors |
US9495079B2 (en) | 2013-01-10 | 2016-11-15 | Salesforce.Com, Inc. | Persistent feeder component for displaying feed items received from information feeds of online social networks |
US9778820B2 (en) | 2013-01-18 | 2017-10-03 | Salesforce.Com, Inc. | Managing applications on a computing device |
US9672527B2 (en) * | 2013-01-21 | 2017-06-06 | Tejas Networks Limited | Associating and consolidating MME bearer management functions |
US10175873B2 (en) | 2013-01-21 | 2019-01-08 | Salesforce.Com, Inc. | System and method for retrieving data based on scrolling velocity |
US9607090B2 (en) | 2013-01-21 | 2017-03-28 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for recommending events |
US9465828B2 (en) | 2013-01-22 | 2016-10-11 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for identifying similar labels using collaborative filtering |
US9253262B2 (en) | 2013-01-24 | 2016-02-02 | Rovi Guides, Inc. | Systems and methods for connecting media devices through web sockets |
US10600011B2 (en) | 2013-03-05 | 2020-03-24 | Gartner, Inc. | Methods and systems for improving engagement with a recommendation engine that recommends items, peers, and services |
US20140279629A1 (en) | 2013-03-12 | 2014-09-18 | Salesforce.Com, Inc. | System and method for generating an organization profile based on skill information |
US9823813B2 (en) | 2013-03-15 | 2017-11-21 | Salesforce.Com, Inc. | Apparatus and methods for performing an action on a database record |
US20140280329A1 (en) | 2013-03-15 | 2014-09-18 | Salesforce.Com, Inc. | Systems and methods for cross-referencing feed items |
US9594790B2 (en) | 2013-03-21 | 2017-03-14 | Salesforce.Com, Inc. | System and method for evaluating claims to update a record from conflicting data sources |
US9483526B2 (en) | 2013-03-21 | 2016-11-01 | Salesforce.Com, Inc. | Automatically subscribing users of an enterprise network to a record |
US9400840B2 (en) | 2013-03-25 | 2016-07-26 | Salesforce.Com, Inc. | Combining topic suggestions from different topic sources to assign to textual data items |
US9672575B2 (en) | 2013-04-03 | 2017-06-06 | Salesforce.Com, Inc. | Capturing information regarding an interaction to a database |
US9953301B2 (en) | 2013-04-03 | 2018-04-24 | Salesforce.Com, Inc. | Searchable screen sharing sessions |
US9398156B2 (en) | 2013-04-12 | 2016-07-19 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for managing agent workload in a customer service environment |
US10684752B2 (en) | 2013-04-12 | 2020-06-16 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for responding to actionable text patterns in a feed item |
US10114873B2 (en) | 2013-04-17 | 2018-10-30 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for retrieving content related to a feed item of an online social network |
US9542472B2 (en) | 2013-04-19 | 2017-01-10 | Salesforce.Com, Inc. | Facilitating collaboration on a record among a group of users of a feed-based enterprise network |
US9460474B2 (en) | 2013-05-03 | 2016-10-04 | Salesforce.Com, Inc. | Providing access to a private resource in an enterprise social networking system |
US9647922B2 (en) | 2013-05-15 | 2017-05-09 | Salesforce, Inc. | Computer implemented methods and apparatus for trials onboarding |
US9529917B2 (en) | 2013-05-21 | 2016-12-27 | Saleforce.com, inc. | System and method for generating information feed based on contextual data |
US11461795B2 (en) * | 2013-06-13 | 2022-10-04 | Flytxt B.V. | Method and system for automated detection, classification and prediction of multi-scale, multidimensional trends |
US9384221B2 (en) * | 2013-06-25 | 2016-07-05 | Google Inc. | Unlimited retroactive data element dimension widening |
US9892177B2 (en) | 2013-07-11 | 2018-02-13 | Salesforce.Com, Inc. | Systems and methods for interacting with external content objects |
US9467434B2 (en) | 2013-07-15 | 2016-10-11 | Salesforce.Com, Inc. | Document rendering service |
US9600155B2 (en) | 2013-07-15 | 2017-03-21 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for customizing a data interface in an on-demand service environment |
US10147054B2 (en) | 2013-07-26 | 2018-12-04 | Salesforce.Com, Inc. | Displaying content of an enterprise social network feed on a mobile device |
US9426249B2 (en) | 2013-08-05 | 2016-08-23 | Salesforce.Com, Inc. | Providing an improved web user interface framework for building web applications |
US9524157B2 (en) | 2013-08-06 | 2016-12-20 | Salesforce.Com, Inc. | Providing an improved web user interface framework for building web applications |
US9921724B2 (en) | 2013-08-15 | 2018-03-20 | Salesforce.Com, Inc. | Presenting data on a mobile device in communication with an on-demand database system |
US9973550B2 (en) | 2013-09-11 | 2018-05-15 | Salesforce.Com, Inc. | Systems and methods for applying intelligence and prioritization to calendared events |
US9972015B2 (en) | 2013-09-13 | 2018-05-15 | Salesforce.Com, Inc. | Methods and systems for facilitating customer support using a social post case feed and publisher |
US10579682B1 (en) | 2013-09-17 | 2020-03-03 | Google Llc | Machine-learned disambiguation of user action data |
US11714923B2 (en) | 2013-09-26 | 2023-08-01 | Salesforce, Inc. | Methods and systems for protecting data integrity |
US10423907B2 (en) | 2013-10-18 | 2019-09-24 | Salesforce.Com, Inc. | Geolocation based work data on a mobile device using a database system |
US9590943B2 (en) | 2013-10-25 | 2017-03-07 | Salesforce.Com, Inc. | Offline prompts of online social network mentions |
US9665261B2 (en) | 2013-10-28 | 2017-05-30 | Salesforce.Com, Inc. | Providing a user interface for customizing state transitions of panes in a bounding window |
US10332129B2 (en) | 2013-11-01 | 2019-06-25 | Salesforce.Com, Inc. | Methods and systems for processing a log file |
US9893905B2 (en) | 2013-11-13 | 2018-02-13 | Salesforce.Com, Inc. | Collaborative platform for teams with messaging and learning across groups |
US10367649B2 (en) | 2013-11-13 | 2019-07-30 | Salesforce.Com, Inc. | Smart scheduling and reporting for teams |
US10146597B2 (en) | 2013-11-14 | 2018-12-04 | Salesforce.Com, Inc. | Delegating handling of computing events of a mobile device application |
US20150149390A1 (en) * | 2013-11-25 | 2015-05-28 | Palo Alto Research Center Incorporated | Method and system for creating an intelligent digital self representation |
GB2521406A (en) | 2013-12-18 | 2015-06-24 | Ibm | Transforming rules into generalised rules in a rule management system |
US9798764B2 (en) | 2013-12-20 | 2017-10-24 | Salesforce.Com, Inc. | Identifying recurring sequences of user interactions with an application |
US10346882B2 (en) | 2014-01-02 | 2019-07-09 | Salesforce.Com, Inc. | System and method for aggregating web clipping data |
US10013483B2 (en) * | 2014-01-30 | 2018-07-03 | Microsoft Technology Licensing, Llc | System and method for identifying trending topics in a social network |
US9753703B2 (en) | 2014-02-04 | 2017-09-05 | Salesforce.Com, Inc. | Generating identifiers for user interface elements of a web page of a web application |
US9577835B2 (en) | 2014-02-07 | 2017-02-21 | Salesforce.Com, Inc. | Online chats without displaying confidential information |
US10324922B2 (en) | 2014-02-13 | 2019-06-18 | Salesforce.Com, Inc. | Providing a timeline of events regarding a database record |
NL2012358B1 (en) * | 2014-03-04 | 2015-12-03 | Dijkstra Mathijs | Method for generating web pages with a server and a software program that implements the method. |
US9788079B2 (en) * | 2014-03-05 | 2017-10-10 | Ricoh Co., Ltd. | Generating enhanced advertisements based on user activity |
US9983943B2 (en) | 2014-03-27 | 2018-05-29 | Salesforce.Com, Inc. | Reversing object manipulations in association with a walkthrough for an application or online service |
US9244748B2 (en) | 2014-06-04 | 2016-01-26 | International Business Machines Corporation | Operating system user activity profiles |
US10339126B2 (en) | 2014-08-11 | 2019-07-02 | Salesforce.Com, Inc. | Processing log files using a database system |
US9509715B2 (en) | 2014-08-21 | 2016-11-29 | Salesforce.Com, Inc. | Phishing and threat detection and prevention |
US9538377B2 (en) | 2014-08-22 | 2017-01-03 | Salesforce.Com, Inc. | Switching between restricted-access websites on mobile user devices |
US9774603B2 (en) | 2014-08-22 | 2017-09-26 | Salesforce.Com, Inc. | Managing user permissions in relation to system events occurring in a database system |
US9632852B2 (en) | 2014-08-25 | 2017-04-25 | Salesforce.Com, Inc. | Detecting and managing flooding of multi-tenant message queues |
US10296753B2 (en) | 2014-08-26 | 2019-05-21 | Salesforce.Com, Inc. | Permission comparator |
US10223367B2 (en) | 2014-08-27 | 2019-03-05 | Salesforce.Com, Inc. | Distributed sorting of event log files |
US9754208B2 (en) | 2014-09-02 | 2017-09-05 | Wal-Mart Stores, Inc. | Automatic rule coaching |
US9805051B2 (en) | 2014-09-10 | 2017-10-31 | Salesforce.Com, Inc. | Synchronization and strategic storage of multiple versions of a file |
US20160078120A1 (en) | 2014-09-11 | 2016-03-17 | Salesforce.Com, Inc. | Extracting and processing metrics from system generated events |
US9619655B2 (en) | 2014-09-12 | 2017-04-11 | Salesforce.Com, Inc. | Cloud-based security profiling, threat analysis and intelligence |
US10095797B2 (en) | 2014-10-03 | 2018-10-09 | Salesforce.Com, Inc. | Suggesting actions for evaluating user performance in an enterprise social network |
US9710127B2 (en) | 2014-10-09 | 2017-07-18 | Salesforce.Com, Inc. | User-customizable permissions in a computing environment |
US9544307B2 (en) | 2014-10-29 | 2017-01-10 | Salesforce.Com, Inc. | Providing a security mechanism on a mobile device |
US9646064B2 (en) | 2014-12-10 | 2017-05-09 | Salesforce.Com, Inc. | Template based software container |
CN104598521B (en) * | 2014-12-12 | 2017-03-15 | 北京京东尚科信息技术有限公司 | The method and apparatus for processing user behavior data |
US10552464B2 (en) | 2014-12-18 | 2020-02-04 | Salesforce.Com, Inc. | Identifying relevant material for cases |
US9965541B2 (en) | 2015-02-24 | 2018-05-08 | Salesforce.Com, Inc. | Interest groups based on network feed items |
US10175999B2 (en) | 2015-02-25 | 2019-01-08 | Salesforce.Com, Inc. | Converting video into a walkthrough for an application or an online service |
US10374987B2 (en) | 2015-03-11 | 2019-08-06 | Salesforce.Com, Inc. | Electronic notifications of users concurrently interacting with the same feed item of a social network feed |
US10742627B2 (en) * | 2015-04-22 | 2020-08-11 | DatingSphere Inc. | System and method for dynamic network data validation |
US10296717B2 (en) | 2015-05-14 | 2019-05-21 | Salesforce.Com, Inc. | Automated prescription workflow for device management |
US10083236B2 (en) | 2015-05-29 | 2018-09-25 | Salesforce.Com, Inc. | Database searching using a graph of nodes and edges formed using log node pairs |
US10210218B2 (en) | 2015-06-16 | 2019-02-19 | Salesforce.Com, Inc. | Processing a file to generate a recommendation using a database system |
US9979689B2 (en) | 2015-06-29 | 2018-05-22 | Salesforce.Com, Inc. | Authoring tool for creating new electronic posts |
US10152489B2 (en) | 2015-07-24 | 2018-12-11 | Salesforce.Com, Inc. | Synchronize collaboration entity files |
US9948743B2 (en) | 2015-07-28 | 2018-04-17 | Salesforce.Com, Inc. | Managing memory usage in server systems |
US9811444B2 (en) | 2015-08-04 | 2017-11-07 | Salesforce.Com, Inc. | Testing software enhancements in database applications |
US10157196B2 (en) | 2015-08-12 | 2018-12-18 | Salesforce.Com, Inc. | Intra-platform data migration |
US10049337B2 (en) | 2015-08-31 | 2018-08-14 | Salesforce.Com, Inc. | Quantitative metrics for assessing status of a platform architecture for cloud computing |
US9767040B2 (en) | 2015-08-31 | 2017-09-19 | Salesforce.Com, Inc. | System and method for generating and storing real-time analytics metric data using an in memory buffer service consumer framework |
US10372421B2 (en) | 2015-08-31 | 2019-08-06 | Salesforce.Com, Inc. | Platform provider architecture creation utilizing platform architecture type unit definitions |
US10198484B2 (en) | 2015-09-10 | 2019-02-05 | Salesforce.Com, Inc. | Displaying reduced and detailed visual representations of calendar items based on mouse cursor movement |
US10430765B2 (en) | 2015-09-11 | 2019-10-01 | Salesforce.Com, Inc. | Processing keyboard input to perform events in relation to calendar items using a web browser-based application or online service |
US10296661B2 (en) | 2015-09-11 | 2019-05-21 | Salesforce.Com, Inc. | Processing log files using a database system |
US10387439B2 (en) | 2015-09-11 | 2019-08-20 | Salesforce.Com, Inc. | Configuring service consoles based on service feature templates using a database system |
US10592474B2 (en) | 2015-09-11 | 2020-03-17 | Salesforce.Com, Inc. | Processing log files using a database system |
US10146915B2 (en) | 2015-09-14 | 2018-12-04 | Salesforce.Com, Inc. | Publication of collaborative file to library |
US9632849B2 (en) | 2015-09-15 | 2017-04-25 | Salesforce.Com, Inc. | System having in-memory buffer service, temporary events file storage system and events file uploader service |
CN105302879B (en) * | 2015-10-12 | 2019-03-08 | 百度在线网络技术(北京)有限公司 | For determining the method and apparatus of user demand |
US10915299B2 (en) | 2015-10-16 | 2021-02-09 | Salesforce.Com, Inc. | Automatically matching start criteria and completion criteria of a walkthrough for an application or online service |
US10187403B2 (en) | 2015-12-02 | 2019-01-22 | Salesforce.Com, Inc. | False positive detection reduction system for network-based attacks |
US10402367B2 (en) | 2016-01-13 | 2019-09-03 | Salesforce.Com, Inc. | Batch job processing using a database system |
US9965634B2 (en) | 2016-01-15 | 2018-05-08 | Salesforce.Com, Inc. | Space-efficient storage of encrypted data |
US10678757B2 (en) | 2016-04-08 | 2020-06-09 | Salesforce.Com, Inc. | Reliable generation of a unique key in a distributed system |
US10057206B2 (en) | 2016-04-18 | 2018-08-21 | Salesforce.Com, Inc. | Combining updates of a social network feed |
US10567311B2 (en) | 2016-04-29 | 2020-02-18 | Salesforce.Com, Inc. | Publisher and share action integration in a user interface for automated messaging |
US10135847B2 (en) | 2016-05-18 | 2018-11-20 | Salesforce.Com, Inc. | Reverse shell network intrusion detection |
US10346451B2 (en) | 2016-05-27 | 2019-07-09 | Salesforce.Com, Inc. | Identifying conversations in unstructured media |
US10140456B2 (en) | 2016-06-08 | 2018-11-27 | Salesforce.Com, Inc. | Runtime analysis of software security vulnerabilities |
US10380347B2 (en) | 2016-06-08 | 2019-08-13 | Salesforce.Com., Inc. | Hierarchical runtime analysis framework for defining vulnerabilities |
US11429906B2 (en) | 2016-06-16 | 2022-08-30 | Conduent Business Services, Llc | Profiling of users' behavior and communication in business processes |
US10204345B2 (en) | 2016-06-28 | 2019-02-12 | Salesforce.Com, Inc. | Driving customer service interactions on social media |
US10685004B2 (en) | 2016-07-11 | 2020-06-16 | Salesforce.Com, Inc. | Multiple feature hash map to enable feature selection and efficient memory usage |
US10372934B2 (en) | 2016-07-21 | 2019-08-06 | Salesforce.Com, Inc. | Access controlled queries against user data in a datastore |
US10693922B2 (en) | 2016-07-25 | 2020-06-23 | Salesforce.Com, Inc. | Multi-channel customer engagement platform |
US10410107B2 (en) | 2016-07-26 | 2019-09-10 | Salesforce.Com, Inc. | Natural language platform for database system |
US10241890B2 (en) | 2016-07-28 | 2019-03-26 | Salesforce.Com, Inc. | Hybrid code modification in intermediate language for software application |
US10409816B2 (en) | 2016-08-23 | 2019-09-10 | Salesforce.Com, Inc. | Accessing and displaying shared data |
US10346370B2 (en) | 2016-08-30 | 2019-07-09 | Salesforce.Com, Inc. | Rate limiting in a moderation framework of a database system |
US10417210B2 (en) | 2016-08-30 | 2019-09-17 | Salesforce.Com, Inc. | Multi-token matching scheme |
US10942903B2 (en) | 2016-08-30 | 2021-03-09 | Salesforce.Com, Inc. | Rate limiting in a moderation framework of a database system |
US10482141B2 (en) | 2016-08-30 | 2019-11-19 | Salesforce.Com, Inc. | Extensible moderation framework |
US10896192B2 (en) | 2016-09-08 | 2021-01-19 | Salesforce.Com, Inc. | Allowing in-line edit to data table of linked data of a data store |
US10915519B2 (en) | 2016-09-09 | 2021-02-09 | Salesforce.Com, Inc. | Processing offline updates to records of a database system |
US11232223B2 (en) | 2016-09-13 | 2022-01-25 | Salesforce.Com, Inc. | Providing web application components within remote systems |
US10635659B2 (en) | 2016-09-19 | 2020-04-28 | Salesforce.Com, Inc. | Mobile application bundled with metadata database |
US10671626B2 (en) | 2016-09-27 | 2020-06-02 | Salesforce.Com, Inc. | Identity consolidation in heterogeneous data environment |
US10642474B2 (en) | 2016-09-28 | 2020-05-05 | Salesforce.Com, Inc. | Processing keyboard input to cause movement of items in a user interface of a web browser-based application |
US10572031B2 (en) | 2016-09-28 | 2020-02-25 | Salesforce.Com, Inc. | Processing keyboard input to cause re-sizing of items in a user interface of a web browser-based application |
US10223136B2 (en) | 2016-09-30 | 2019-03-05 | Salesforce.Com, Inc. | Generating content objects using an integrated development environment |
US10984665B2 (en) | 2016-09-30 | 2021-04-20 | Salesforce.Com, Inc. | Customizing sequences of content objects |
US10275281B2 (en) | 2016-09-30 | 2019-04-30 | Salesforce.Com, Inc. | Scheduling jobs for processing log files using a database system |
US10613709B2 (en) | 2016-09-30 | 2020-04-07 | Salesforce.Com, Inc. | Leveraging and managing assessment environments in an assessment hub |
US10713604B2 (en) | 2016-09-30 | 2020-07-14 | Salesforce.Com, Inc. | Bi-directional notification framework |
US10380094B2 (en) | 2016-09-30 | 2019-08-13 | Salesforce.Com, Inc. | Custom multi-tenant non-relational platform objects |
US10212189B2 (en) | 2016-10-11 | 2019-02-19 | Salesforce.Com, Inc. | Authentication of client devices using modified images |
US10778559B2 (en) | 2016-10-17 | 2020-09-15 | Salesforce.Com, Inc. | Facilitating simulation of network conditions in a hybrid application environment |
WO2018075561A1 (en) | 2016-10-18 | 2018-04-26 | Autoalert, Llc | Visual discovery tool for automotive manufacturers with network encryption, data conditioning, and prediction engine |
US10642872B2 (en) | 2016-10-21 | 2020-05-05 | Salesforce.Com, Inc. | System for optimizing content queries |
US10824620B2 (en) | 2016-10-21 | 2020-11-03 | Salesforce.Com, Inc. | Compiling a relational datastore query from a user input |
US10447672B2 (en) | 2016-11-01 | 2019-10-15 | Salesforce.Com, Inc. | Facilitating encrypted persistent storage in browsers |
US10666722B2 (en) | 2016-11-22 | 2020-05-26 | Salesforce.Com, Inc. | Message delivery in a distributed server environment |
US10726039B2 (en) | 2016-11-29 | 2020-07-28 | Salesforce.Com, Inc. | Systems and methods for updating database indexes |
US10116660B2 (en) | 2016-11-30 | 2018-10-30 | Salesforce.Com, Inc. | Security modes for a component-based web security model |
US10129258B2 (en) | 2016-11-30 | 2018-11-13 | Salesforce.Com, Inc. | Secure component-based web applications |
US10891263B2 (en) | 2016-12-09 | 2021-01-12 | Salesforce.Com, Inc. | Systems and methods for providing database updates for data visualization |
US10540369B2 (en) | 2016-12-19 | 2020-01-21 | Salesforce.Com, Inc. | Org sync suspend and resume data sync |
US10496673B2 (en) | 2016-12-27 | 2019-12-03 | Salesforce.Com, Inc. | Org sync async subscribe emails |
US10146581B2 (en) | 2017-01-13 | 2018-12-04 | Salesforce.Com, Inc. | Dynamically configuring a process based on environmental characteristics monitored by a mobile device |
US10637658B2 (en) | 2017-01-25 | 2020-04-28 | Salesforce.Com, Inc. | Secure internal user authentication leveraging public key cryptography and key splitting |
US10545962B2 (en) | 2017-01-25 | 2020-01-28 | Salesforce.Com, Inc. | Relational database instruction validation |
US11190344B2 (en) | 2017-01-25 | 2021-11-30 | Salesforce.Com, Inc. | Secure user authentication based on multiple asymmetric cryptography key pairs |
US10356088B1 (en) | 2017-01-25 | 2019-07-16 | Salesforce.Com, Inc. | User authentication based on multiple asymmetric cryptography key pairs |
US10411907B2 (en) | 2017-01-25 | 2019-09-10 | Salesforce.Com, Inc. | Secure remote user authentication leveraging public key cryptography and key splitting |
US10650028B2 (en) | 2017-01-25 | 2020-05-12 | Salesforce.Com, Inc. | Relational database instruction validation |
US11436223B2 (en) | 2017-01-30 | 2022-09-06 | Salesforce, Inc. | Query pin planner |
US10783188B2 (en) | 2017-02-17 | 2020-09-22 | Salesforce.Com, Inc. | Intelligent embedded self-help service |
US10469438B2 (en) | 2017-02-27 | 2019-11-05 | Salesforce.Com, Inc. | Facilitating integration of collaborative communication platform and document collaboration tool |
US10579368B2 (en) | 2017-03-10 | 2020-03-03 | Salesforce.Com, Inc. | Blockchain version control systems |
US10810230B2 (en) | 2017-03-21 | 2020-10-20 | Salesforce.Com, Inc. | Thread record provider |
US10803080B2 (en) | 2017-03-21 | 2020-10-13 | Salesforce.Com, Inc. | Thread record provider |
US10860377B2 (en) | 2017-03-22 | 2020-12-08 | Salesforce.Com, Inc. | Technologies for identifying thread memory allocation |
US10587401B2 (en) | 2017-04-03 | 2020-03-10 | Salesforce.Com, Inc. | Secure handling of customer-supplied encryption secrets |
US10645138B2 (en) | 2017-05-02 | 2020-05-05 | Salesforce.Com, Inc | Event stream processing system using a coordinating spout instance |
US11663205B2 (en) | 2017-05-04 | 2023-05-30 | Salesforce, Inc. | Technologies for asynchronous querying |
US10536439B2 (en) | 2017-05-08 | 2020-01-14 | Salesforce.Com, Inc. | Client fingerprinting for information system security |
US11054971B2 (en) | 2017-05-23 | 2021-07-06 | Salesforce.Com., Inc. | Modular runtime environment |
US10852926B2 (en) | 2017-05-23 | 2020-12-01 | Salesforce.Com., Inc. | Filter of data presentations via user-generated links |
US10360136B2 (en) | 2017-05-23 | 2019-07-23 | Salesforce.Com., Inc. | Dashboard execution engine |
US10713223B2 (en) | 2017-06-01 | 2020-07-14 | Salesforce.Com, Inc. | Opportunistic gossip-type dissemination of node metrics in server clusters |
US10693951B2 (en) | 2017-06-01 | 2020-06-23 | Salesforce.Com, Inc. | Decentralized, resource aware load distribution in a distributed system |
US10489170B2 (en) | 2017-06-19 | 2019-11-26 | Salesforce.Com, Inc. | Application warmup engine |
US10416952B2 (en) | 2017-06-27 | 2019-09-17 | Salesforce.Com, Inc. | Identifying a viewport within a browser window |
US9961519B1 (en) | 2017-08-01 | 2018-05-01 | Salesforce.Com, Inc. | Facilitating mobile device interaction with an enterprise database system |
US10579641B2 (en) | 2017-08-01 | 2020-03-03 | Salesforce.Com, Inc. | Facilitating mobile device interaction with an enterprise database system |
US10664244B2 (en) | 2017-08-22 | 2020-05-26 | Salesforce.Com, Inc. | Dynamic page previewer for a web application builder |
US10402174B2 (en) | 2017-08-25 | 2019-09-03 | Salesforce.Com, Inc. | Overriding component attributes in a web application builder |
US10775969B2 (en) | 2017-08-25 | 2020-09-15 | Salesforce.Com, Inc. | System and method for notifying a softphone of navigation change events |
US10068284B1 (en) | 2017-08-29 | 2018-09-04 | Snowfall Technologies Llc | Graphical user interface having scrollable, visual representation of historical product searches and direct shopping cart links |
US10509633B2 (en) | 2017-08-30 | 2019-12-17 | Salesforce.Com, Inc. | Base editor component in a web application builder framework |
US10540149B2 (en) | 2017-08-30 | 2020-01-21 | Salesforce.Com, Inc. | Property editor component in a web application builder framework |
US10846068B2 (en) | 2017-08-30 | 2020-11-24 | Salesforce.Com, Inc. | Interactions layer in a web application builder framework |
US10514896B2 (en) | 2017-08-30 | 2019-12-24 | Salesforce.Com, Inc. | Web application builder framework |
US10909070B2 (en) | 2017-08-31 | 2021-02-02 | Salesforce.Com, Inc. | Memory efficient policy-based file deletion system |
US10509546B2 (en) | 2017-08-31 | 2019-12-17 | Salesforce.Com, Inc. | History component for single page application |
US11036357B2 (en) | 2017-09-27 | 2021-06-15 | Salesforce.Com, Inc. | Generating or updating cross-community streams |
US11714811B2 (en) | 2017-09-27 | 2023-08-01 | Salesforce, Inc. | Run-time querying of multi-tenant non-relational platform objects |
US10579692B2 (en) | 2017-09-27 | 2020-03-03 | Salesforce.Com, Inc. | Composite keys for multi-tenant non-relational platform objects |
US10579691B2 (en) | 2017-09-27 | 2020-03-03 | Salesforce.Com, Inc. | Application programming interface representation of multi-tenant non-relational platform objects |
US10984070B2 (en) | 2017-10-18 | 2021-04-20 | Salesforce.Com, Inc. | Dynamic content placeholders for microblogging posts |
US10693952B2 (en) | 2017-10-23 | 2020-06-23 | Salesforce.Com, Inc. | Technologies for low latency messaging |
US10387041B2 (en) | 2017-11-02 | 2019-08-20 | Salesforce.Com, Inc. | Data migration system |
FR3073998B1 (en) * | 2017-11-23 | 2019-11-01 | In Webo Technologies | DIGITAL METHOD FOR CONTROLLING ACCESS TO AN OBJECT, A RESOURCE OR SERVICE BY A USER |
US10528816B2 (en) | 2017-11-30 | 2020-01-07 | Salesforce.Com, Inc. | System and method for retrieving and displaying supplemental information and pertinent data using augmented reality |
US11088925B2 (en) | 2017-12-04 | 2021-08-10 | Salesforce.Com, Inc. | Technologies for capacity remediation in multi-tenant cloud environments |
US10904197B2 (en) | 2017-12-19 | 2021-01-26 | Salesforce.Com, Inc. | Management of members of social network conversations |
US10887281B2 (en) | 2017-12-19 | 2021-01-05 | Salesforce.Com, Inc. | Automated host-based firewall configuration management |
US10739991B2 (en) | 2018-01-16 | 2020-08-11 | Salesforce.Com, Inc. | System and method of providing an overlay user interface for a touchscreen display |
US10642468B2 (en) | 2018-01-16 | 2020-05-05 | Salesforce.Com, Inc. | Accessibility lock and accessibility pause |
US11048684B2 (en) | 2018-01-16 | 2021-06-29 | Salesforce.Com, Inc. | Lazy tracking of user system web cache |
US10671739B2 (en) | 2018-01-17 | 2020-06-02 | Salesforce.Com, Inc. | Managing the sharing of common library packages with subscribers |
US10761904B2 (en) | 2018-01-17 | 2020-09-01 | Salesforce.Com, Inc. | Method and system for synchronizing and joining multiple calls to the same asynchronous code segment |
US10567505B2 (en) | 2018-01-18 | 2020-02-18 | Salesforce.Com, Inc. | Methods and systems for session synchronization and sharing of applications between different user systems of a user |
US11170381B2 (en) | 2018-01-18 | 2021-11-09 | Salesforce.Com, Inc. | Method and system for generating insights regarding a party in response to a call |
US10671248B2 (en) | 2018-01-18 | 2020-06-02 | Salesforce.Com, Inc. | Live agent chat console |
US10693883B2 (en) | 2018-01-22 | 2020-06-23 | Salesforce.Com, Inc. | Technologies for integrating and sandboxing web resources |
US10713070B2 (en) | 2018-01-22 | 2020-07-14 | Salesforce.Com, Inc. | Systems and methods for capturing and visualizing user interactions across devices |
US10650337B2 (en) | 2018-01-29 | 2020-05-12 | Salesforce.Com, Inc. | Technical field service inventory management |
US10560349B2 (en) | 2018-01-31 | 2020-02-11 | Salesforce.Com, Inc. | Data consistency of policy enforcement for distributed applications |
US10680958B2 (en) | 2018-01-31 | 2020-06-09 | Salesforce.Com, Inc. | Policy enforcement as a service for third party platforms |
US10936477B2 (en) | 2018-01-31 | 2021-03-02 | Salesforce.Com, Inc. | End-to-end user interface component testing |
US10771353B2 (en) | 2018-01-31 | 2020-09-08 | Salesforce.Com, Inc. | Policy enforcement as a service for third party platforms with asynchronous user tracking mechanisms |
US11416116B2 (en) | 2018-01-31 | 2022-08-16 | Salesforce.Com, Inc. | Generation of mobile device notifications |
US10778543B2 (en) | 2018-01-31 | 2020-09-15 | Salesforce.Com, Inc. | Opaque interface for enclosed/wrapped asynchronous pushing and/or pulling data between policy enforcement as a service (PEaaS) components |
US11206273B2 (en) | 2018-01-31 | 2021-12-21 | Salesforce.Com, Inc. | Content management system connect |
US10853334B2 (en) | 2018-03-02 | 2020-12-01 | Salesforce.Com, Inc. | Technologies for providing service isolation, scalability, and proactive tenant migration in multi-tenant ecosystems |
US10664192B2 (en) | 2018-04-26 | 2020-05-26 | Salesforce.Com, Inc. | In-memory service with plural buffer type assignment |
US10936308B2 (en) | 2018-04-30 | 2021-03-02 | Salesforce.Com, Inc. | Multi-tenant collaborative learning |
US10958431B2 (en) | 2018-05-30 | 2021-03-23 | Salesforce.Com, Inc. | Authenticating computing system requests across tenants of a multi-tenant database system |
US11252119B2 (en) | 2018-06-04 | 2022-02-15 | Salesforce.Com, Inc. | Message logging using two-stage message logging mechanisms |
US10878218B2 (en) | 2018-06-18 | 2020-12-29 | Salesforce.Com, Inc. | Device fingerprinting, tracking, and management |
US11218461B2 (en) | 2018-06-29 | 2022-01-04 | Salesforce.Com, Inc. | Authenticating computing system requests with an unknown destination across tenants of a multi-tenant system |
US11423063B2 (en) | 2018-07-31 | 2022-08-23 | Salesforce, Inc. | Flattening hierarchical database records using inverted indexing |
WO2020033410A1 (en) * | 2018-08-06 | 2020-02-13 | Walmart Apollo, Llc | Artificial intelligence system and method for generating a hierarchical data structure |
US10664266B2 (en) | 2018-09-04 | 2020-05-26 | Salesforce.Com, Inc. | Maintaining client version affinity during a server cluster upgrade |
US10671236B2 (en) | 2018-09-20 | 2020-06-02 | Salesforce.Com, Inc. | Stateful, contextual, and draggable embedded widget |
US10866959B2 (en) | 2018-09-20 | 2020-12-15 | Salesforce.Com, Inc. | Debug tracing of next best action strategy engine |
US11308067B2 (en) | 2018-09-21 | 2022-04-19 | Salesforce.Com, Inc. | Associating flows in different states to a database record |
US20200097463A1 (en) | 2018-09-24 | 2020-03-26 | Salesforce.Com, Inc. | Driving application experience via search-based navigation interface |
US11055162B2 (en) | 2018-10-31 | 2021-07-06 | Salesforce.Com, Inc. | Database system performance degradation detection |
US11190420B2 (en) | 2018-10-31 | 2021-11-30 | Salesforce.Com, Inc. | Generating events from host based logging for consumption by a network logging host |
US10853046B2 (en) | 2018-12-13 | 2020-12-01 | Salesforce.Com, Inc. | Deployment of software applications on server clusters |
US10802944B2 (en) | 2019-01-23 | 2020-10-13 | Salesforce.Com, Inc. | Dynamically maintaining alarm thresholds for software application performance management |
US10747551B2 (en) | 2019-01-23 | 2020-08-18 | Salesforce.Com, Inc. | Software application optimization |
US11194591B2 (en) | 2019-01-23 | 2021-12-07 | Salesforce.Com, Inc. | Scalable software resource loader |
US11216444B2 (en) | 2019-01-31 | 2022-01-04 | Salesforce.Com, Inc. | Scalable event sourcing datastore |
US11042434B2 (en) | 2019-01-31 | 2021-06-22 | Salesforce.Com, Inc. | Database ingestion across internal and external data sources using error rate handling |
US11526539B2 (en) | 2019-01-31 | 2022-12-13 | Salesforce, Inc. | Temporary reservations in non-relational datastores |
US11263178B2 (en) | 2019-01-31 | 2022-03-01 | Salesforce.Com, Inc. | Intelligent prediction of future generation of types of data objects based on past growth |
US10540700B1 (en) * | 2019-04-11 | 2020-01-21 | RoboSystems, Inc. | Personal shopping assistant |
US10922095B2 (en) | 2019-04-15 | 2021-02-16 | Salesforce.Com, Inc. | Software application performance regression analysis |
US10922062B2 (en) | 2019-04-15 | 2021-02-16 | Salesforce.Com, Inc. | Software application optimization |
US11113302B2 (en) | 2019-04-23 | 2021-09-07 | Salesforce.Com, Inc. | Updating one or more databases based on dataflow events |
US10917302B2 (en) | 2019-06-11 | 2021-02-09 | Cisco Technology, Inc. | Learning robust and accurate rules for device classification from clusters of devices |
US11245729B2 (en) | 2019-07-09 | 2022-02-08 | Salesforce.Com, Inc. | Group optimization for network communications |
US20210034945A1 (en) * | 2019-07-31 | 2021-02-04 | Walmart Apollo, Llc | Personalized complimentary item recommendations using sequential and triplet neural architecture |
US11321406B2 (en) | 2019-07-31 | 2022-05-03 | Walmart Apollo, Llc | Personalized ranking using deep attribute extraction and attentive user interest embeddings |
US11170322B2 (en) | 2019-08-13 | 2021-11-09 | Salesforce.Com, Inc. | Using a client-side machine learning model dynamically in a mobile enterprise application on a mobile device |
US11379266B2 (en) | 2019-09-10 | 2022-07-05 | Salesforce.Com, Inc. | Automatically identifying and right sizing instances |
US11403280B2 (en) | 2019-09-25 | 2022-08-02 | Salesforce.Com, Inc. | Master data management technologies |
US11514008B2 (en) | 2019-10-02 | 2022-11-29 | Salesforce, Inc. | Dynamically controlling data migration |
US11403265B2 (en) | 2019-10-02 | 2022-08-02 | Salesforce, Inc. | Dynamically controlling data migration |
US11637831B2 (en) | 2019-10-09 | 2023-04-25 | Salesforce, Inc. | Application programmer interface platform with direct data center access |
US11431663B2 (en) | 2019-10-24 | 2022-08-30 | Salesforce, Inc. | Technologies for predicting personalized message send times |
US11381540B2 (en) | 2019-10-31 | 2022-07-05 | Salesforce, Inc. | Tracking premature events in electronic message processing |
US11431481B2 (en) | 2019-11-07 | 2022-08-30 | Salesforce, Inc. | System for securing memory dumps |
US11507617B2 (en) | 2019-11-15 | 2022-11-22 | Salesforce, Inc. | Unsupervised dialogue topic extraction |
US20210150483A1 (en) | 2019-11-18 | 2021-05-20 | Salesforce.Com, Inc. | System and method for automatically creating personalized courses and trackable achievements |
US11431500B2 (en) | 2019-11-26 | 2022-08-30 | Salesforce, Inc. | Authorization code management for published static applications |
US11120702B2 (en) | 2019-12-01 | 2021-09-14 | Salesforce.Com, Inc. | Systems and methods for validating localized assessments in an external system |
US11354726B2 (en) | 2019-12-20 | 2022-06-07 | Salesforce.Com, Inc. | Change order application programming interfaces |
US11177973B2 (en) | 2020-01-10 | 2021-11-16 | Salesforce.Com, Inc. | Distributed audience computation software service |
US11397736B2 (en) | 2020-01-27 | 2022-07-26 | Salesforce, Inc. | Large scale data ingestion |
US11755720B2 (en) | 2020-01-31 | 2023-09-12 | Salesforce, Inc. | Secure membranes and cross namespace communication |
US11711330B2 (en) | 2020-01-31 | 2023-07-25 | Salesforce, Inc. | Out of office message configuration |
US11233787B2 (en) | 2020-01-31 | 2022-01-25 | Salesforce.Com, Inc. | Automated on call and ad hoc access to restricted resources |
US11297501B2 (en) | 2020-01-31 | 2022-04-05 | Salesforce.Com, Inc. | Firewall discovery and management |
US11588840B2 (en) | 2020-01-31 | 2023-02-21 | Salesforce, Inc. | Automated encryption degradation detection, reporting and remediation |
US11475049B2 (en) | 2020-01-31 | 2022-10-18 | Salesforce, Inc. | Methods and systems for organization extensibility and cluster scalability |
US11488065B2 (en) * | 2020-04-09 | 2022-11-01 | Visa International Service Association | System, method, and computer program product for iteratively refining a training data set |
US11915834B2 (en) | 2020-04-09 | 2024-02-27 | Salesforce, Inc. | Efficient volume matching of patients and providers |
US11526551B2 (en) | 2020-04-10 | 2022-12-13 | Salesforce, Inc. | Search query generation based on audio processing |
US11539652B2 (en) | 2020-04-13 | 2022-12-27 | Salesforce, Inc. | Rate limiting actions with a message queue |
US11509608B2 (en) | 2020-04-13 | 2022-11-22 | Salesforce, Inc. | Methods and systems for configuring an email engine |
US11916918B2 (en) | 2020-04-14 | 2024-02-27 | Salesforce, Inc. | System mode override during flow execution |
US11552802B2 (en) | 2020-04-15 | 2023-01-10 | Salesforce, Inc. | Stateless mutual authentication between services |
US11294648B2 (en) | 2020-05-22 | 2022-04-05 | Salesforce.Com, Inc. | Application development architecture for mobile applications |
US11474793B2 (en) | 2020-05-22 | 2022-10-18 | Salesforce.Com, Inc. | Polymorphic application architecture |
US11113459B1 (en) | 2020-05-22 | 2021-09-07 | Salesforce.Com, Inc. | Dynamic guidance engine for software customization systems |
US11762656B2 (en) | 2020-07-13 | 2023-09-19 | Salesforce, Inc. | Service fabrication tool |
US11460975B2 (en) | 2020-09-18 | 2022-10-04 | Salesforce, Inc. | Metric presentation within a flow builder |
US11907385B2 (en) | 2020-09-18 | 2024-02-20 | Salesforce, Inc. | Process flow granular control and execution |
US11687523B2 (en) | 2020-11-25 | 2023-06-27 | Salesforce, Inc. | System and method for efficiently transferring data for offline use |
US11675800B2 (en) | 2020-11-30 | 2023-06-13 | Salesforce, Inc. | Version control and execution on a mobile device |
US11741119B2 (en) | 2021-01-26 | 2023-08-29 | Salesforce, Inc. | Canonical data model for distributed data catalog and metadata exchange |
US11429257B1 (en) | 2021-04-15 | 2022-08-30 | Salesforce.Com, Inc. | Dynamically generated help based on derived hierarchical context |
US11748243B2 (en) | 2021-04-27 | 2023-09-05 | Salesforce, Inc. | Intelligent generation of page objects for user interface testing |
US11636025B2 (en) | 2021-04-27 | 2023-04-25 | Salesforce, Inc. | Intelligent generation of automated user interface testing methods |
US20220358100A1 (en) * | 2021-05-04 | 2022-11-10 | Microsoft Technology Licensing, Llc | Profile data extensions |
US11507729B1 (en) | 2021-05-13 | 2022-11-22 | Salesforce, Inc. | Scoped containers using CSS custom properties and color pairs |
US11681522B2 (en) | 2021-10-21 | 2023-06-20 | Salesforce, Inc. | Self-healing build pipelines for an application build process across distributed computer platforms |
US11442754B1 (en) | 2021-10-27 | 2022-09-13 | Salesforce, Inc. | Targeting system for web page components |
US11755400B2 (en) | 2021-11-30 | 2023-09-12 | Salesforce, Inc. | Error detection and mitigation for software pull requests |
WO2023144690A1 (en) * | 2022-01-25 | 2023-08-03 | [24]7.ai, Inc. | Method and system for facilitating user conversations with agents using online promotions |
US11734265B1 (en) | 2022-03-08 | 2023-08-22 | Salesforce, Inc. | Automatic GraphQL data source field change handler |
US11893377B2 (en) | 2022-04-27 | 2024-02-06 | Salesforce, Inc. | Dependency-aware rules engine for delivering managed package upgrades |
US11874797B1 (en) | 2022-06-23 | 2024-01-16 | Salesforce, Inc. | Smart privilege escalation in a cloud platform |
US11750460B1 (en) | 2022-10-06 | 2023-09-05 | Salesforce, Inc. | Identifying duplicate entries in views of same and other network management interfaces |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4775935A (en) | 1986-09-22 | 1988-10-04 | Westinghouse Electric Corp. | Video merchandising system with variable and adoptive product sequence presentation order |
US5305196A (en) * | 1989-05-01 | 1994-04-19 | Credit Verification Corporation | Check transaction processing, database building and marketing method and system utilizing automatic check reading |
US5649114A (en) * | 1989-05-01 | 1997-07-15 | Credit Verification Corporation | Method and system for selective incentive point-of-sale marketing in response to customer shopping histories |
US5446891A (en) * | 1992-02-26 | 1995-08-29 | International Business Machines Corporation | System for adjusting hypertext links with weighed user goals and activities |
US5353218A (en) * | 1992-09-17 | 1994-10-04 | Ad Response Micromarketing Corporation | Focused coupon system |
JPH06131188A (en) * | 1992-10-22 | 1994-05-13 | Hitachi Ltd | Fuzzy rule acquisition method and fuzzy inference system |
DE4238772C1 (en) * | 1992-11-12 | 1993-12-09 | Daimler Benz Ag | Procedure for evaluating a set of linguistic rules |
NZ250926A (en) * | 1993-02-23 | 1996-11-26 | Moore Business Forms Inc | Relational database: product, consumer and transactional data for retail shopping targeting |
JP3022053B2 (en) * | 1993-05-28 | 2000-03-15 | 富士通株式会社 | POS terminal device |
US5450317A (en) * | 1993-11-24 | 1995-09-12 | U S West Advanced Technologies, Inc. | Method and system for optimized logistics planning |
CA2131667A1 (en) * | 1993-12-29 | 1995-06-30 | John Burnie Ostrander | System for automatic compilation of customer information database from bank check data |
US5692107A (en) * | 1994-03-15 | 1997-11-25 | Lockheed Missiles & Space Company, Inc. | Method for generating predictive models in a computer system |
US5636346A (en) * | 1994-05-09 | 1997-06-03 | The Electronic Address, Inc. | Method and system for selectively targeting advertisements and programming |
US5459306A (en) * | 1994-06-15 | 1995-10-17 | Blockbuster Entertainment Corporation | Method and system for delivering on demand, individually targeted promotions |
US5717923A (en) * | 1994-11-03 | 1998-02-10 | Intel Corporation | Method and apparatus for dynamically customizing electronic information to individual end users |
US5724521A (en) * | 1994-11-03 | 1998-03-03 | Intel Corporation | Method and apparatus for providing electronic advertisements to end users in a consumer best-fit pricing manner |
US5758257A (en) * | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
US5592585A (en) | 1995-01-26 | 1997-01-07 | Lernout & Hauspie Speech Products N.C. | Method for electronically generating a spoken message |
US5710884A (en) * | 1995-03-29 | 1998-01-20 | Intel Corporation | System for automatically updating personal profile server with updates to additional user information gathered from monitoring user's electronic consuming habits generated on computer during use |
US5749081A (en) | 1995-04-06 | 1998-05-05 | Firefly Network, Inc. | System and method for recommending items to a user |
US6112186A (en) | 1995-06-30 | 2000-08-29 | Microsoft Corporation | Distributed system for facilitating exchange of user information and opinion using automated collaborative filtering |
US6092049A (en) | 1995-06-30 | 2000-07-18 | Microsoft Corporation | Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering |
US6049777A (en) * | 1995-06-30 | 2000-04-11 | Microsoft Corporation | Computer-implemented collaborative filtering based method for recommending an item to a user |
US6041311A (en) | 1995-06-30 | 2000-03-21 | Microsoft Corporation | Method and apparatus for item recommendation using automated collaborative filtering |
US5966695A (en) * | 1995-10-17 | 1999-10-12 | Citibank, N.A. | Sales and marketing support system using a graphical query prospect database |
WO1997015023A2 (en) * | 1995-10-17 | 1997-04-24 | Citibank, N.A. | Sales process support system and method |
US5727199A (en) | 1995-11-13 | 1998-03-10 | International Business Machines Corporation | Database mining using multi-predicate classifiers |
US5794210A (en) * | 1995-12-11 | 1998-08-11 | Cybergold, Inc. | Attention brokerage |
US5724573A (en) * | 1995-12-22 | 1998-03-03 | International Business Machines Corporation | Method and system for mining quantitative association rules in large relational tables |
US5970482A (en) * | 1996-02-12 | 1999-10-19 | Datamind Corporation | System for data mining using neuroagents |
US5867799A (en) | 1996-04-04 | 1999-02-02 | Lang; Andrew K. | Information system and method for filtering a massive flow of information entities to meet user information classification needs |
US5848396A (en) * | 1996-04-26 | 1998-12-08 | Freedom Of Information, Inc. | Method and apparatus for determining behavioral profile of a computer user |
US6014638A (en) | 1996-05-29 | 2000-01-11 | America Online, Inc. | System for customizing computer displays in accordance with user preferences |
US5727129A (en) | 1996-06-04 | 1998-03-10 | International Business Machines Corporation | Network system for profiling and actively facilitating user activities |
CA2261058A1 (en) * | 1996-07-15 | 1998-01-22 | David A. Post | A method and apparatus for expertly matching products, services, and consumers |
US5790645A (en) * | 1996-08-01 | 1998-08-04 | Nynex Science & Technology, Inc. | Automatic design of fraud detection systems |
US5784539A (en) * | 1996-11-26 | 1998-07-21 | Client-Server-Networking Solutions, Inc. | Quality driven expert system |
GB2321363A (en) * | 1997-01-21 | 1998-07-22 | Northern Telecom Ltd | Telecommunications |
US6012051A (en) * | 1997-02-06 | 2000-01-04 | America Online, Inc. | Consumer profiling system with analytic decision processor |
US5943667A (en) * | 1997-06-03 | 1999-08-24 | International Business Machines Corporation | Eliminating redundancy in generation of association rules for on-line mining |
US6292797B1 (en) * | 1997-08-07 | 2001-09-18 | New York University | Method for determining actionable patterns in a database |
US6026370A (en) * | 1997-08-28 | 2000-02-15 | Catalina Marketing International, Inc. | Method and apparatus for generating purchase incentive mailing based on prior purchase history |
US6996572B1 (en) * | 1997-10-08 | 2006-02-07 | International Business Machines Corporation | Method and system for filtering of information entities |
US6003020A (en) * | 1997-10-30 | 1999-12-14 | Sapient Health Network | Intelligent profiling system |
US6236978B1 (en) | 1997-11-14 | 2001-05-22 | New York University | System and method for dynamic profiling of users in one-to-one applications |
US6134532A (en) * | 1997-11-14 | 2000-10-17 | Aptex Software, Inc. | System and method for optimal adaptive matching of users to most relevant entity and information in real-time |
US6078928A (en) * | 1997-12-12 | 2000-06-20 | Missouri Botanical Garden | Site-specific interest profiling system |
US7865546B1 (en) * | 1998-01-26 | 2011-01-04 | New York University | Method and appartus for monitor and notification in a network |
US6356879B2 (en) * | 1998-10-09 | 2002-03-12 | International Business Machines Corporation | Content based method for product-peer filtering |
US6741976B1 (en) * | 1999-07-01 | 2004-05-25 | Alexander Tuzhilin | Method and system for the creation, application and processing of logical rules in connection with biological, medical or biochemical data |
WO2002065327A1 (en) * | 2001-02-12 | 2002-08-22 | New York University | System, process and software arrangement for providing multidimensional recommendation/suggestions |
WO2012167191A1 (en) * | 2011-06-01 | 2012-12-06 | Al Gharabally Faisal | Promotional content provided privately via client devices |
-
1997
- 1997-11-14 US US08/970,359 patent/US6236978B1/en not_active Expired - Lifetime
-
1998
- 1998-11-13 JP JP2000521469A patent/JP2002517027A/en active Pending
- 1998-11-13 WO PCT/US1998/024339 patent/WO1999026180A1/en active Application Filing
- 1998-11-13 US US09/554,383 patent/US6871186B1/en not_active Expired - Lifetime
- 1998-11-13 IL IL136103A patent/IL136103A/en not_active IP Right Cessation
- 1998-11-13 EP EP98957968A patent/EP1029304A4/en not_active Ceased
- 1998-11-13 CA CA002309940A patent/CA2309940A1/en not_active Abandoned
-
2005
- 2005-03-07 US US11/074,157 patent/US7603331B2/en not_active Expired - Lifetime
-
2009
- 2009-09-03 US US12/553,522 patent/US8103611B2/en not_active Expired - Fee Related
-
2011
- 2011-12-27 US US13/337,468 patent/US20120265789A1/en not_active Abandoned
-
2012
- 2012-09-05 US US13/604,377 patent/US20120330779A1/en not_active Abandoned
-
2014
- 2014-04-08 US US14/248,240 patent/US9483778B2/en not_active Expired - Lifetime
-
2015
- 2015-01-16 US US14/599,263 patent/US20150154648A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
IL136103A0 (en) | 2001-05-20 |
EP1029304A4 (en) | 2002-06-19 |
US6236978B1 (en) | 2001-05-22 |
IL136103A (en) | 2007-03-08 |
US20120265789A1 (en) | 2012-10-18 |
US20090327197A1 (en) | 2009-12-31 |
US20120330779A1 (en) | 2012-12-27 |
US6871186B1 (en) | 2005-03-22 |
US20050149460A1 (en) | 2005-07-07 |
US9483778B2 (en) | 2016-11-01 |
EP1029304A1 (en) | 2000-08-23 |
US20140222505A1 (en) | 2014-08-07 |
JP2002517027A (en) | 2002-06-11 |
US20150154648A1 (en) | 2015-06-04 |
WO1999026180A9 (en) | 1999-08-26 |
US8103611B2 (en) | 2012-01-24 |
US7603331B2 (en) | 2009-10-13 |
WO1999026180A1 (en) | 1999-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9483778B2 (en) | Generating a user profile | |
Cho et al. | A personalized recommender system based on web usage mining and decision tree induction | |
Palmisano et al. | Using context to improve predictive modeling of customers in personalization applications | |
US5884305A (en) | System and method for data mining from relational data by sieving through iterated relational reinforcement | |
US6078892A (en) | Method for customer lead selection and optimization | |
US20070233586A1 (en) | Method and apparatus for identifying cross-selling opportunities based on profitability analysis | |
CN116433339B (en) | Order data processing method, device, equipment and storage medium | |
Kalaivani et al. | Factor based prediction model for customer behavior analysis | |
US20020161561A1 (en) | System and method for association of object sets | |
Anusha et al. | Segmentation of retail mobile market using HMS algorithm | |
Senvar et al. | Customer oriented intelligent DSS based on two-phased clustering and integrated interval type-2 fuzzy AHP and hesitant fuzzy TOPSIS | |
Chou et al. | A Manager's Guide to Data Mining. | |
Mohammadnezhad et al. | An effective model for improving the quality of recommender systems in mobile e-tourism | |
Cho et al. | Towards using knowledge discovery techniques in database marketing for the tourism industry | |
Granov | Customer loyalty, return and churn prediction through machine learning methods: for a Swedish fashion and e-commerce company | |
CN116308687B (en) | Commodity information recommendation method based on knowledge graph, electronic equipment and storage medium | |
US11922476B2 (en) | Generating recommendations based on descriptors in a multi-dimensional search space | |
US11869063B2 (en) | Optimize shopping route using purchase embeddings | |
Jadhav et al. | Customer Segmentation and Buyer Targeting Approach | |
Joshi | Market basket analysis using apriori algorithm in data mining | |
Giha et al. | Customer profiling and segmentation based on association rule mining technique | |
Zaim et al. | Recommender System Using Machine Learning and BLE Beacons | |
Sen | An overview of data mining and marketing | |
CN112508074A (en) | Visualization display method and system and readable storage medium | |
Ewe | CUSTOMER PROFILING AND SEGMENTATION BASED ON ASSOCIATION RULE MINING TECHNIQUE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
FZDE | Discontinued |