210 likes | 419 Views
Towards a framework that allows using a cognitive architecture to personalize recommendations in e- commerce. Jordi Sabater-Mir, Joan Cuadros and Pere Garcia. IIIA – Artificial Intelligence Research Institute CSIC – Spanish National Research Council. Motivation.
E N D
Towards a frameworkthatallowsusing acognitivearchitecturetopersonalizerecommendations in e-commerce Jordi Sabater-Mir, Joan Cuadros and Pere Garcia IIIA – Artificial IntelligenceResearchInstitute CSIC – SpanishNationalResearchCouncil
Motivation • Asingle recommendertechniquecannot be enoughtocoverallthe real necessities of thedierentusersthatare lookingfor a recommendation. • Thesolutiontothisproblem: let'stake a full “palette” of recommendertechniques and, like a painter, use at run time theright“color”foreachsituation (properlyfine tunedto recapture thenuances of thecontext).
Motivation • What are welookingforisanautomateddecisionmakerthat can decide: • whichisthebestrecommendationtechnique (ortechniques) to use, howto combine them, • howtoadapttheresultstothespecicneeds of a givenuser and • howtoproperlyshow theresultstothatuser. • Ourproposalisto use a cognitivearchitectureas sucha decisionmaker.
Motivation • Taketothenextlevelthenotionof “personalization” in recommendation.
Theframework Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge
Theframework Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter • Knowsabouttheuserneeds and his/herdesires, goals, restrictions, beliefs, etc. • Knowsabouttherecommendersthat are available, theirstrengths and weaknesses. • Tries tostisfytheuserneeds. • Advancedcapabilities: justification and argumentation Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining • Forcertaintasksitis crucial thatthebehavior of the machine be similar tothat of a human. • Trust has to be buildon top of the mutual understanding. • Toachievethiswethinkthemost natural wayisto use cognitivearchitectures. Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge
Theframework Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile • Representtheinformation in terms of thecognitivearchitecture. • Qualitativehighlevelconcepts-> “Thisuseris a verygoodclient” Cleaning, parsing, normalizing… raw data. Statisticalmeasurestoadvanced data miningalgorithms. Domain Ontology General Knowledge
Theframework Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge
Theframework Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge
Cognitivearchitecture Basic functionality: It has to be ableto… • Receivea noticationfromtheuserexpressingthewillingnesstoobtaina recommendationof a certainkind. • Analyzeifthatrequestiscoherentwithwhatitknowsabouttheuser and decide whatisthebestactiontoperform. • Queryoneorseveralrecommendersthat, giventheknowledgethecognitivearchitecturehas aboutthem, can provideananswerthatwillsatisfytheuser'srequest. • Adapt, combine, modifytherecommendationsreceivedfromtherecommenderstopersonalizethenalanswertotheuser. • Show theprocessedanswertotheuser in a personalizedway.
Cognitivearchitecture Advancedfunctionality: …and also… • Establisha dialogwiththeuser. Forexample, iftherequestfromtheuserisnotcoherentwithwhatthecognitivearchitectureknowsabouthim/her, establisha dialogwiththeusertoexpresstheproblem and be abletoadapttheinternalknowledgebasedonwhattheuserexplicitlystatesduringthatdialog. • Justifytherecommendations. Thejustificationhas to be adaptedtoeachkindof user. Someusersprefer simple and short justicationswhileotherswantallthedetails. • Participatein anargumentationprocesswiththeuserwhereboth, theuser and thecognitivearchitecture can expressarguments and counterargumentstoachieve a consensusabout a recommendation. • Incorporateautomatically new recommenderstothepalette of recommenders and be ableto use themwithoutexternalintervention. Thisambitiouscapabilityrequiresthedescription of eachrecommender in terms of itsstrengths and weaknesses.
Theframework Data analysis Cognitive architecture Static vs Dynamic BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge
Proof of concept Python Java BDI-Engine: Jason Data analysis Cognitive architecture HTML 5, CSS3, javascript PhoneGap Jquery Mobile BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires Java CF: Mahout Expert system: Drools Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Web service RESTful Domain Ontology General Knowledge OWL
Scenario • Mary alwaysbuysthesame yogurts. Sheis a little bit tired of eatingthesameyogurt onedayafteranother and todayshewantsto try somethingnew. • Shegoestothesupermarket and once in thedairyproductsaisle, takesthesmartphone and scansthebarcode of herfavorite yogurt. • Sheaskstothesystemforanalternative. • Thesystemprocessesherrequestand suggestsanalternativethatcouldsatisfyherrequirements.
Proof of concept Raw data and Pre-processing: Set of text files comingdirectlyfrompoints of sale terminals (POS) fromtheAlimerkasupermarketchain. More than 900000 files comingfrom 176 supermarketscovering a period of 18 months. The files are groupedbysupermarket(onefile per supermarket per day) and containpurchases, promotions, coupons, loyaltypoints, etc. Actions: Clean data Selectonlyrelevantfields Organisepurchasesbyclientinstead of bysupermarket In our use-case wehaverestrictedto 500 thenumber of clientsand thetime periodto 12 months. Data processing: Prepare theuserfiles for a recommenderbasedoncollaborativefiltering. Because Mary islookingforanalternativeto a product, in orderto prepare the data fortherecommenderwehaveto use onlythoselinesthatrefertoproductsthat are in thesamesubtree in theontologythatthereferenceproduct. Ourrecommenderwill compare Mary withtheother 499 users, willestablisha similarityamongthemand will use whatthemost similar clientshaveboughtthat Mary has notas a recommendation. Theprocess of filteringtheclientfiles has to be done at runtime. Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge
Proof of concept Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Technologies: Phonegap Jquerymobile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge
(c) (d) (b) (a) Mary logsintothesystem Selectswhichkind of recommendationwants Scansthereferenceproduct bar code Receivestherecommendation
Proof of concept Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge
get_alternative(id, productSel). +get_alternative(ID, X) : true <- ask_collaborative_filtering(ID, X). Recommenders possible_rec(id, list_of_products). Set of Recommenders +possible_rec(ID, Y) : get_alternative(ID, X) <- -possible_rec(ID, Y); +rec(ID, Y). +rec(ID, [Head|Tail]) <- send_rec(Head).
Proof of concept Data analysis Cognitive architecture BDI-Engine Text files Text files Agent speak xml User Interface A tipicalcollaborativefilteringrecommender. Mahoutlibrary. Plans library Desires UI Interpreter Processed Data Raw Data User Profile User Cognitive Profile Statistical analysis Data Mining Recommenders Intentions Beliefs Experts/Deducers Pre-pocessing Set of Recommenders User profile Domain Ontology General Knowledge