US2013246332A1PendingUtilityA1

Methods and systems for implementing a compositional recommender framework

60
Assignee: SALESFORCE COM INCPriority: May 12, 2010Filed: Apr 29, 2013Published: Sep 19, 2013
Est. expiryMay 12, 2030(~3.8 yrs left)· nominal 20-yr term from priority
Inventors:Jari Koister
G06Q 30/02G06F 16/9535G06N 5/02
60
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A compositional recommender framework using modular recommendation functions is described. Each modular recommendation function can use a discrete technology, such as using clustering, a database lookup, or other means. A first recommendation function can recommend to a user items, such as books to check out, automobiles to purchase, people to date, etc. Another modular recommendation function can be daisy chained with the first to recommend items that are similar or related to the first recommended items, such as users who have also checked out the same recommended book, trailers that can be towed by the recommended automobiles, or vacations booked by people that were recommended as people to date. The modular recommendation functions can be used to build customized recommendation engines for different industries.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method of building a recommendation engine using a compositional recommender framework, the method comprising:
 selecting a first modular recommendation function, the first recommendation function configured to accept a first input object and output at least one first recommended object based on the first input object;   selecting a second modular recommendation function, the second recommendation function configured to accept a second input object and output at least one second recommended object based on the second input object, wherein an output object from either modular function is compatible as an input object to another modular recommendation function; and   configuring, using a processor operatively coupled with a memory, the modular functions so that one of the at least one first recommended objects from the first modular recommendation function is an input object to the second modular recommendation function, the configuring to build a recommendation engine such that a recommendation from the recommendation engine is based on an output from the second modular function, which is based on an output from the first modular function.   
     
     
         2 . The method of  claim 1  wherein the first input object represents a document. 
     
     
         3 . The method of  claim 2  wherein the at least one first recommended object represents at east one document. 
     
     
         4 . The method of  claim 2  wherein the at one first recommended object represents a east one user. 
     
     
         5 . The method of  claim 1  wherein the first input object represents a user. 
     
     
         6 . The method of  claim 5  wherein the at least one first recommended object represents a east one document. 
     
     
         7 . The method of  claim 5  wherein the at least one first recommended object represents at least one user. 
     
     
         8 . The method of  claim 1  further comprising: mapping multiple first recommended objects from the first modular recommendation function to input one at a time as second input objects into the second modular recommendation function. 
     
     
         9 . The method of  claim 1  wherein the first recommendation function includes a clustering function, the method further comprising:
 clustering the first input object to determine similar objects and outputting at least one of the similar objects as the at least one first recommended object. 
 
     
     
         10 . The method of  claim 1  wherein the first recommendation function includes a database lookup function, the method further comprising:
 looking up objects in a database based on the first input object to determine related objects and outputting at least one of the related objects as the at least one first recommended object. 
 
     
     
         11 . The method of  claim 1  further comprising: inputting an object into the recommendation engine; and executing the recommendation engine to generate recommended objects. 
     
     
         12 . The method of  claim 1  further comprising:
 reconfiguring the modular function so that one of the at least one second recommended objects from the second modular recommendation function is an input object to the second modular recommendation function, the reconfiguring to build a reconfigured recommendation engine such that a recommendation from the reconfigured recommendation engine is based on an output from the first modular function, which is based on an output from the second modular function. 
 
     
     
         13 . The method of  claim 1  wherein a recommended object from either modular recommendation function is compatible as an input to the other modular recommendation function. 
     
     
         14 . The method of  claim 1  further comprising:
 selecting a third modular recommendation function, the third modular recommendation function configured to accept a third input object and output at least one third recommended object based on the third input object, wherein an output object from the third modular recommendation function is compatible as an input object to another modular recommendation function; and 
 reconfiguring the modular functions so that one of the at least one second recommended objects from the second modular recommendation function is an input object to the third modular recommendation function. 
 
     
     
         15 . The method of  claim 1  wherein the operations are performed in the order as shown. 
     
     
         16 . The method of  claim 1  wherein each operation is performed by the computer processor operatively coupled to the memory. 
     
     
         17 . A computer program product embodied on a non-transitory computer readable medium, comprising:
 computer code for selecting a first modular recommendation function, the first recommendation function configured to accept a first input object and output at least one first recommended object based on the first input object;   computer code for selecting a second modular recommendation function, the second recommendation function configured to accept a second input object and output at least one second recommended object based on the second input object, wherein an output object from either modular function is compatible as an input object to another modular recommendation function; and   computer code for configuring, using a processor operatively coupled with a memory, the modular functions so that one of the at least one first recommended objects from the first modular recommendation function is an input object to the second modular recommendation function, the configuring to build a recommendation engine such that a recommendation from the recommendation engine is based on an output from the second modular function, which is based on an output from the first modular function.   
     
     
         18 . A system, comprising:
 at least one processor for:
 selecting a first modular recommendation function, the first recommendation function configured to accept a first input object and output at least one first recommended object based on the first input object; 
 selecting a second modular recommendation function, the second recommendation function configured to accept a second input object and output at least one second recommended object based on the second input object, wherein an output object from either modular function is compatible as an input object to another modular recommendation function; and 
 configuring, using a processor operatively coupled with a memory, the modular functions so that one of the at least one first recommended objects from the first modular recommendation function is an input object to the second modular recommendation function, the configuring to build a recommendation engine such that a recommendation from the recommendation engine is based on an output from the second modular function, which is based on an output from the first modular function.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.