SlideShare a Scribd company logo
1 of 16
Download to read offline
MyMediaLite
    a lightweight, multi-purpose library of recommender system algorithms


                                                 Zeno Gantner

                                             University of Hildesheim


                                               February 5, 2011




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   1 / 16
Introduction


What are Recommender Systems?




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   2 / 16
Introduction


MyMediaLite: Recommender System Algorithm Library
 functionality
         rating prediction
         item recommendation from implicit feedback
         algorithm testbed

 target groups
                                                                                     why use it?
         recommender system researchers
                                                                                            simple
         educators and students
                                                                                            free
         application developers
                                                                                            scalable
 misc info                                                                                  well-documented
         written in C#, runs on Mono                                                        choice
         GNU General Public License (GPL)
         regular releases (1 or 2 per month)
Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   3 / 16
Using MyMediaLite


Data Flow


     hyperparameters

                                              Recommender

        interaction
               data                                                                          predictions
                                                        Model
          user/item
          attributes


                                                          disk
Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   4 / 16
Using MyMediaLite


Methods Implemented in MyMediaLite
 rating prediction
       averages: global, user, item
       linear baseline method by Koren and Bell
       frequency-weighted Slope One
       k-nearest neighbor (kNN):
               user or item similarities, diff. similarity measures
               collaborative or attribute-/content-based
       (biased) matrix factorization
item prediction from implicit feedback
       random
       most popular item
       linear content-based model optimized for BPR (BPR-Linear)
       support-vector machine using item attributes
       k-nearest neighbor (kNN)
       weighted regularized matrix factorization (WR-MF)
       matrix factorization optimized for BPR (BPR-MF)
Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   5 / 16
Using MyMediaLite


Command-Line Tools



        one for each task: rating prediction, item recommendation
        simple text format: CSV
        pick method and parameters using command-line arguments
        evaluate, store/load models

 http://ismll.de/mymedialite/documentation/command_line.html




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   6 / 16
Using MyMediaLite


Embedding MyMediaLite: C#
 using      System ;
 using      M yM e d ia Lite . Data ;
 using      M yM e d ia Lite . E v a l ;
 using      M yM e d ia Lite . IO ;
 using      M yM e d ia Lite . ItemRecommendation ;

 p u b l i c c l a s s Example
 {
    p u b l i c s t a t i c v o i d Main ( s t r i n g [ ] a r g s )
    {
        // l o a d t h e d a t a
         v a r u s e r m a p p i n g = new E n t i t y M a p p i n g ( ) ;
         v a r i t e m m a p p i n g = new E n t i t y M a p p i n g ( ) ;
         v a r t r a i n i n g d a t a = ItemRecommenderData . Read ( a r g s [ 0 ] , u s e r m a p p i n g , i t e m m a p p i n g ) ;
         var r e l e v a n t i t e m s = item mapping . I n t e r n a l I D s ;
         v a r t e s t d a t a = ItemRecommenderData . Read ( a r g s [ 1 ] , u s e r m a p p i n g , i t e m m a p p i n g ) ;

         // s e t up t h e recommender
         v a r recommender = new M o s t P o p u l a r ( ) ;
         recommender . S e t C o l l a b o r a t i v e D a t a ( t r a i n i n g d a t a ) ;
         recommender . T r a i n ( ) ;

         // m e a s u r e t h e a c c u r a c y on t h e t e s t d a t a s e t
         v a r r e s u l t s = I t e m P r e d i c t i o n E v a l . E v a l u a t e ( recommender , t e s t d a t a , t r a i n i n g d a t a ,
                                                                                       relevant items );
         C o n s o l e . W r i t e L i n e ( " prec@5 ={0} " , r e s u l t s [ " prec5 " ] ) ;

         // make a p r e d i c t i o n f o r a c e r t a i n u s e r and i t e m
         C o n s o l e . W r i t e L i n e ( recommender . P r e d i c t ( u s e r m a p p i n g . T o I n t e r n a l I D ( 1 ) ,
                                                                           item mapping . ToInternalID ( 1 ) ) ) ;
     }
 }
Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite                                       7 / 16
Using MyMediaLite


Embedding MyMediaLite: Python

#! / u s r / b i n / e n v i p y

 import clr
 clr . AddReference ( " MyMediaLite . dll " )
 from MyMediaLite import ∗

# load the data
user_mapping = Data . EntityMapping ( )
item_mapping = Data . EntityMapping ( )
train_data = IO . I t e m R ec o m m e n d e r Da t a . Read ( " u1 . base " , user_mapping , item_mapping )
relev ant_ite ms = item_mapping . InternalIDs
test_data = IO . I t e m R ec o m m e n d e r Da t a . Read ( " u1 . test " , user_mapping , item_mapping )

# s e t up t h e recommender
recommender = I te mR e co m me nd a ti o n . MostPopular ( )
recommender . S e t C o l l a b o r a t i v e D a t a ( train_data ) ;
recommender . Train ( )

# m e a s u r e t h e a c c u r a c y on t h e t e s t d a t a s e t
print Eval . I t e m Pr ed i ct i on Ev a l . Evaluate ( recommender , test_data , train_data , relevant_items )

# make a p r e d i c t i o n f o r a c e r t a i n u s e r and i t e m
print recommender . Predict ( user_mapping . ToInternalID ( 1 ) , item_mapping . ToInternalID ( 1 ) )




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   8 / 16
Using MyMediaLite


Embedding MyMediaLite: Ruby
#! / u s r / b i n / e n v i r

 require ’ MyMediaLite ’

 min_rating = 1
 max_rating = 5

# load the data
user_mapping = MyMediaLite : : Data : : EntityMapping . new ( )
item_mapping = MyMediaLite : : Data : : EntityMapping . new ( )

 train_data = MyMediaLite : : IO : : R a t i n g P r e d i c t i o n D a t a . Read ( " u1 . base " , min_rating , max_rating ,
                                                                                       user_mapping , item_mapping )
 test_data = MyMediaLite : : IO : : R a t i n g P r e d i c t i o n D a t a . Read ( " u1 . test " , min_rating , max_rating ,
                                                                                       user_mapping , item_mapping )

# s e t up t h e recommender
recommender = MyMediaLite : : RatingPrediction : : UserItemBaseline . new ( )
recommender . MinRating = min_rating
recommender . MaxRating = max_rating
recommender . Ratings = train_data
recommender . Train ( )

# m e a s u r e t h e a c c u r a c y on t h e t e s t d a t a s e t
eval_results = MyMediaLite : : Eval : : RatingEval : : Evaluate ( recommender , test_data )
eval_results . each do | entry |
     puts " #{ entry } "
end

# make a p r e d i c t i o n f o r a c e r t a i n u s e r and i t e m
puts recommender . Predict ( user_mapping . ToInternalID ( 1 ) , item_mapping . ToInternalID ( 1 ) )

Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite              9 / 16
Extending MyMediaLite


Roll Your Own Recommendation Method



 It’s easy.

 for basic functionality
        define model data structures
        write Train() method
        write Predict() method

 That’s all!




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   10 / 16
Extending MyMediaLite


Roll Your Own: Define Model Data Structures




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   11 / 16
Extending MyMediaLite


Roll Your Own: Write Train() Method




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   12 / 16
Extending MyMediaLite


Roll Your Own: Write Predict() Method




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   13 / 16
Extending MyMediaLite


Roll Your Own Recommendation Method


 It’s easy.

 You do not need to worry about including the new method to the
 command-line tools, reflection takes care of that.

 advanced functionality
        CanPredict() method
        load/store models
        on-line updates




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   14 / 16
Conclusion


MyMediaLite
 future work
        more methods (contributions welcome . . . )
        additional scenarios: context-aware recommendation, tags, . . .
        distributed/parallel computing

 Methods now shipped with MyMediaLite were
 used in the MyMedia field trials (>50,000 users).

 acknowledgements
        authors: Zeno Gantner, Steffen Rendle, Christoph Freudenthaler
        funding by EC FP7 project “Dynamic Personalization of Multimedia”
        (MyMedia) under grant agreement no. 215006.
        feedback, patches, suggestions: Thorsten Angermann, Fu Changhong,
        Andreas Hoffmann, Artus Krohn-Grimberghe, Christina Lichtenth¨ler,
                                                                     a
        Damir Logar, Thai-Nghe Nguyen
Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   15 / 16
Conclusion


MyMediaLite


homepage: http://ismll.de/mymedialite

fork it: http://gitorious.org/mymedialite

follow us: http://twitter.com/mymedialite

send feedback/patches: mymedialite@ismll.de



             MyMediaLite: simple — free — scalable — well-documented




Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite   16 / 16

More Related Content

What's hot

Apache Mahout
Apache MahoutApache Mahout
Apache MahoutAjit Koti
 
[Eestec] Machine Learning online seminar 1, 12 2016
[Eestec] Machine Learning online seminar 1, 12 2016[Eestec] Machine Learning online seminar 1, 12 2016
[Eestec] Machine Learning online seminar 1, 12 2016Grigoris C
 
Module 9: Natural Language Processing Part 2
Module 9:  Natural Language Processing Part 2Module 9:  Natural Language Processing Part 2
Module 9: Natural Language Processing Part 2Sara Hooker
 
Lexalytics Text Analytics Workshop: Perfect Text Analytics
Lexalytics Text Analytics Workshop: Perfect Text AnalyticsLexalytics Text Analytics Workshop: Perfect Text Analytics
Lexalytics Text Analytics Workshop: Perfect Text AnalyticsLexalytics
 
Sentiment analysis of Twitter Data
Sentiment analysis of Twitter DataSentiment analysis of Twitter Data
Sentiment analysis of Twitter DataNurendra Choudhary
 
Introduction to machine learning
Introduction to machine learningIntroduction to machine learning
Introduction to machine learningGanesh Satpute
 
Unstructured data processing webinar 06272016
Unstructured data processing webinar 06272016Unstructured data processing webinar 06272016
Unstructured data processing webinar 06272016George Roth
 
Predictive Text Analytics
Predictive Text AnalyticsPredictive Text Analytics
Predictive Text AnalyticsSeth Grimes
 
Quality Metrics for Linked Open Data
Quality Metrics for  Linked Open Data Quality Metrics for  Linked Open Data
Quality Metrics for Linked Open Data ebrahim_bagheri
 
Data analytics beyond data processing and how it affects Industry 4.0
Data analytics beyond data processing and how it affects Industry 4.0Data analytics beyond data processing and how it affects Industry 4.0
Data analytics beyond data processing and how it affects Industry 4.0Mathieu d'Aquin
 

What's hot (11)

Apache Mahout
Apache MahoutApache Mahout
Apache Mahout
 
[Eestec] Machine Learning online seminar 1, 12 2016
[Eestec] Machine Learning online seminar 1, 12 2016[Eestec] Machine Learning online seminar 1, 12 2016
[Eestec] Machine Learning online seminar 1, 12 2016
 
Module 9: Natural Language Processing Part 2
Module 9:  Natural Language Processing Part 2Module 9:  Natural Language Processing Part 2
Module 9: Natural Language Processing Part 2
 
mahout introduction
mahout  introductionmahout  introduction
mahout introduction
 
Lexalytics Text Analytics Workshop: Perfect Text Analytics
Lexalytics Text Analytics Workshop: Perfect Text AnalyticsLexalytics Text Analytics Workshop: Perfect Text Analytics
Lexalytics Text Analytics Workshop: Perfect Text Analytics
 
Sentiment analysis of Twitter Data
Sentiment analysis of Twitter DataSentiment analysis of Twitter Data
Sentiment analysis of Twitter Data
 
Introduction to machine learning
Introduction to machine learningIntroduction to machine learning
Introduction to machine learning
 
Unstructured data processing webinar 06272016
Unstructured data processing webinar 06272016Unstructured data processing webinar 06272016
Unstructured data processing webinar 06272016
 
Predictive Text Analytics
Predictive Text AnalyticsPredictive Text Analytics
Predictive Text Analytics
 
Quality Metrics for Linked Open Data
Quality Metrics for  Linked Open Data Quality Metrics for  Linked Open Data
Quality Metrics for Linked Open Data
 
Data analytics beyond data processing and how it affects Industry 4.0
Data analytics beyond data processing and how it affects Industry 4.0Data analytics beyond data processing and how it affects Industry 4.0
Data analytics beyond data processing and how it affects Industry 4.0
 

Viewers also liked

Collaborative Filtering and Recommender Systems By Navisro Analytics
Collaborative Filtering and Recommender Systems By Navisro AnalyticsCollaborative Filtering and Recommender Systems By Navisro Analytics
Collaborative Filtering and Recommender Systems By Navisro AnalyticsNavisro Analytics
 
Collaborative Filtering Recommendation System
Collaborative Filtering Recommendation SystemCollaborative Filtering Recommendation System
Collaborative Filtering Recommendation SystemMilind Gokhale
 
Building a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineBuilding a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineNYC Predictive Analytics
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architectureLiang Xiang
 
Qtp important frameworks
Qtp important frameworksQtp important frameworks
Qtp important frameworksprs0302
 
Supply Chain Management Workshop
Supply Chain Management WorkshopSupply Chain Management Workshop
Supply Chain Management WorkshopTom Sauder, P.Eng.
 
6847575 a-saga-dos-foxworth-4-sementes-do-passado-virginia-c-andrews
6847575 a-saga-dos-foxworth-4-sementes-do-passado-virginia-c-andrews6847575 a-saga-dos-foxworth-4-sementes-do-passado-virginia-c-andrews
6847575 a-saga-dos-foxworth-4-sementes-do-passado-virginia-c-andrewsAlessandra Vidal
 
iNut Limited Leather Beani Tablet Range
iNut Limited Leather Beani Tablet RangeiNut Limited Leather Beani Tablet Range
iNut Limited Leather Beani Tablet Rangeinutltd
 
Mmac power point4-17-15 - copy
Mmac power point4-17-15 - copyMmac power point4-17-15 - copy
Mmac power point4-17-15 - copymmacusa2015
 
key to improving core competitive capacity 4 enterprise
key to improving core competitive capacity 4 enterprisekey to improving core competitive capacity 4 enterprise
key to improving core competitive capacity 4 enterpriseTrung Ngoc
 
The Last Poets-JAZZOETRY & MADE IN AMERIKKKA
The Last Poets-JAZZOETRY & MADE IN AMERIKKKAThe Last Poets-JAZZOETRY & MADE IN AMERIKKKA
The Last Poets-JAZZOETRY & MADE IN AMERIKKKARBG Communiversity
 
Zhao_Work samples
Zhao_Work samplesZhao_Work samples
Zhao_Work samplesYajing Zhao
 
Difrentiation
DifrentiationDifrentiation
Difrentiationlecturer
 

Viewers also liked (20)

Nttuyen Thesis
Nttuyen ThesisNttuyen Thesis
Nttuyen Thesis
 
Collaborative Filtering and Recommender Systems By Navisro Analytics
Collaborative Filtering and Recommender Systems By Navisro AnalyticsCollaborative Filtering and Recommender Systems By Navisro Analytics
Collaborative Filtering and Recommender Systems By Navisro Analytics
 
Collaborative Filtering Recommendation System
Collaborative Filtering Recommendation SystemCollaborative Filtering Recommendation System
Collaborative Filtering Recommendation System
 
Building a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineBuilding a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engine
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architecture
 
Qtp important frameworks
Qtp important frameworksQtp important frameworks
Qtp important frameworks
 
Chinese stone lions
Chinese stone lionsChinese stone lions
Chinese stone lions
 
Supply Chain Management Workshop
Supply Chain Management WorkshopSupply Chain Management Workshop
Supply Chain Management Workshop
 
6847575 a-saga-dos-foxworth-4-sementes-do-passado-virginia-c-andrews
6847575 a-saga-dos-foxworth-4-sementes-do-passado-virginia-c-andrews6847575 a-saga-dos-foxworth-4-sementes-do-passado-virginia-c-andrews
6847575 a-saga-dos-foxworth-4-sementes-do-passado-virginia-c-andrews
 
iNut Limited Leather Beani Tablet Range
iNut Limited Leather Beani Tablet RangeiNut Limited Leather Beani Tablet Range
iNut Limited Leather Beani Tablet Range
 
Mmac power point4-17-15 - copy
Mmac power point4-17-15 - copyMmac power point4-17-15 - copy
Mmac power point4-17-15 - copy
 
key to improving core competitive capacity 4 enterprise
key to improving core competitive capacity 4 enterprisekey to improving core competitive capacity 4 enterprise
key to improving core competitive capacity 4 enterprise
 
Research
ResearchResearch
Research
 
The Last Poets-JAZZOETRY & MADE IN AMERIKKKA
The Last Poets-JAZZOETRY & MADE IN AMERIKKKAThe Last Poets-JAZZOETRY & MADE IN AMERIKKKA
The Last Poets-JAZZOETRY & MADE IN AMERIKKKA
 
Easy but Difficult
Easy but DifficultEasy but Difficult
Easy but Difficult
 
Zhao_Work samples
Zhao_Work samplesZhao_Work samples
Zhao_Work samples
 
Ch1 a
Ch1 aCh1 a
Ch1 a
 
Satz1
Satz1Satz1
Satz1
 
Difrentiation
DifrentiationDifrentiation
Difrentiation
 
XPath
XPathXPath
XPath
 

Similar to MyMediaLite Recommender System Library

Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data AnalyticsOsman Ali
 
Cheminformatics Software Development: Case Studies
Cheminformatics Software Development: Case StudiesCheminformatics Software Development: Case Studies
Cheminformatics Software Development: Case StudiesJeremy Yang
 
Introduction to Collaborative Filtering with Apache Mahout
Introduction to Collaborative Filtering with Apache MahoutIntroduction to Collaborative Filtering with Apache Mahout
Introduction to Collaborative Filtering with Apache Mahoutsscdotopen
 
Data Science.pptx NEW COURICUUMN IN DATA
Data Science.pptx NEW COURICUUMN IN DATAData Science.pptx NEW COURICUUMN IN DATA
Data Science.pptx NEW COURICUUMN IN DATAjaved75
 
Classification with R
Classification with RClassification with R
Classification with RNajima Begum
 
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...Gabriel Moreira
 
Sentiment Analysis on Twitter Data
Sentiment Analysis on Twitter DataSentiment Analysis on Twitter Data
Sentiment Analysis on Twitter DataIRJET Journal
 
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.comHABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.comHABIB FIGA GUYE
 
Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Shrutika Oswal
 
Qualitative Content Analysis
Qualitative Content AnalysisQualitative Content Analysis
Qualitative Content AnalysisRicky Bilakhia
 
Analysis using r
Analysis using rAnalysis using r
Analysis using rPriya Mohan
 
Artificial intelligence and IoT
Artificial intelligence and IoTArtificial intelligence and IoT
Artificial intelligence and IoTVeselin Pizurica
 
Start machine learning in 5 simple steps
Start machine learning in 5 simple stepsStart machine learning in 5 simple steps
Start machine learning in 5 simple stepsRenjith M P
 
Machine Learning Basics
Machine Learning BasicsMachine Learning Basics
Machine Learning BasicsSuresh Arora
 
Data analytics using R programming
Data analytics using R programmingData analytics using R programming
Data analytics using R programmingUmang Singh
 
Machine learning in finance using python
Machine learning in finance using pythonMachine learning in finance using python
Machine learning in finance using pythonEric Tham
 
Vipul divyanshu mahout_documentation
Vipul divyanshu mahout_documentationVipul divyanshu mahout_documentation
Vipul divyanshu mahout_documentationVipul Divyanshu
 
Discovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsDiscovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsGabriel Moreira
 

Similar to MyMediaLite Recommender System Library (20)

Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
Data Science.pptx
Data Science.pptxData Science.pptx
Data Science.pptx
 
Cheminformatics Software Development: Case Studies
Cheminformatics Software Development: Case StudiesCheminformatics Software Development: Case Studies
Cheminformatics Software Development: Case Studies
 
Introduction to Collaborative Filtering with Apache Mahout
Introduction to Collaborative Filtering with Apache MahoutIntroduction to Collaborative Filtering with Apache Mahout
Introduction to Collaborative Filtering with Apache Mahout
 
Data Science.pptx NEW COURICUUMN IN DATA
Data Science.pptx NEW COURICUUMN IN DATAData Science.pptx NEW COURICUUMN IN DATA
Data Science.pptx NEW COURICUUMN IN DATA
 
Classification with R
Classification with RClassification with R
Classification with R
 
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
 
Sentiment Analysis on Twitter Data
Sentiment Analysis on Twitter DataSentiment Analysis on Twitter Data
Sentiment Analysis on Twitter Data
 
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.comHABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
 
Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence Movie Recommender System Using Artificial Intelligence
Movie Recommender System Using Artificial Intelligence
 
Qualitative Content Analysis
Qualitative Content AnalysisQualitative Content Analysis
Qualitative Content Analysis
 
Analysis using r
Analysis using rAnalysis using r
Analysis using r
 
Introduction
IntroductionIntroduction
Introduction
 
Artificial intelligence and IoT
Artificial intelligence and IoTArtificial intelligence and IoT
Artificial intelligence and IoT
 
Start machine learning in 5 simple steps
Start machine learning in 5 simple stepsStart machine learning in 5 simple steps
Start machine learning in 5 simple steps
 
Machine Learning Basics
Machine Learning BasicsMachine Learning Basics
Machine Learning Basics
 
Data analytics using R programming
Data analytics using R programmingData analytics using R programming
Data analytics using R programming
 
Machine learning in finance using python
Machine learning in finance using pythonMachine learning in finance using python
Machine learning in finance using python
 
Vipul divyanshu mahout_documentation
Vipul divyanshu mahout_documentationVipul divyanshu mahout_documentation
Vipul divyanshu mahout_documentation
 
Discovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsDiscovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender Systems
 

Recently uploaded

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Recently uploaded (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

MyMediaLite Recommender System Library

  • 1. MyMediaLite a lightweight, multi-purpose library of recommender system algorithms Zeno Gantner University of Hildesheim February 5, 2011 Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 1 / 16
  • 2. Introduction What are Recommender Systems? Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 2 / 16
  • 3. Introduction MyMediaLite: Recommender System Algorithm Library functionality rating prediction item recommendation from implicit feedback algorithm testbed target groups why use it? recommender system researchers simple educators and students free application developers scalable misc info well-documented written in C#, runs on Mono choice GNU General Public License (GPL) regular releases (1 or 2 per month) Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 3 / 16
  • 4. Using MyMediaLite Data Flow hyperparameters Recommender interaction data predictions Model user/item attributes disk Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 4 / 16
  • 5. Using MyMediaLite Methods Implemented in MyMediaLite rating prediction averages: global, user, item linear baseline method by Koren and Bell frequency-weighted Slope One k-nearest neighbor (kNN): user or item similarities, diff. similarity measures collaborative or attribute-/content-based (biased) matrix factorization item prediction from implicit feedback random most popular item linear content-based model optimized for BPR (BPR-Linear) support-vector machine using item attributes k-nearest neighbor (kNN) weighted regularized matrix factorization (WR-MF) matrix factorization optimized for BPR (BPR-MF) Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 5 / 16
  • 6. Using MyMediaLite Command-Line Tools one for each task: rating prediction, item recommendation simple text format: CSV pick method and parameters using command-line arguments evaluate, store/load models http://ismll.de/mymedialite/documentation/command_line.html Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 6 / 16
  • 7. Using MyMediaLite Embedding MyMediaLite: C# using System ; using M yM e d ia Lite . Data ; using M yM e d ia Lite . E v a l ; using M yM e d ia Lite . IO ; using M yM e d ia Lite . ItemRecommendation ; p u b l i c c l a s s Example { p u b l i c s t a t i c v o i d Main ( s t r i n g [ ] a r g s ) { // l o a d t h e d a t a v a r u s e r m a p p i n g = new E n t i t y M a p p i n g ( ) ; v a r i t e m m a p p i n g = new E n t i t y M a p p i n g ( ) ; v a r t r a i n i n g d a t a = ItemRecommenderData . Read ( a r g s [ 0 ] , u s e r m a p p i n g , i t e m m a p p i n g ) ; var r e l e v a n t i t e m s = item mapping . I n t e r n a l I D s ; v a r t e s t d a t a = ItemRecommenderData . Read ( a r g s [ 1 ] , u s e r m a p p i n g , i t e m m a p p i n g ) ; // s e t up t h e recommender v a r recommender = new M o s t P o p u l a r ( ) ; recommender . S e t C o l l a b o r a t i v e D a t a ( t r a i n i n g d a t a ) ; recommender . T r a i n ( ) ; // m e a s u r e t h e a c c u r a c y on t h e t e s t d a t a s e t v a r r e s u l t s = I t e m P r e d i c t i o n E v a l . E v a l u a t e ( recommender , t e s t d a t a , t r a i n i n g d a t a , relevant items ); C o n s o l e . W r i t e L i n e ( " prec@5 ={0} " , r e s u l t s [ " prec5 " ] ) ; // make a p r e d i c t i o n f o r a c e r t a i n u s e r and i t e m C o n s o l e . W r i t e L i n e ( recommender . P r e d i c t ( u s e r m a p p i n g . T o I n t e r n a l I D ( 1 ) , item mapping . ToInternalID ( 1 ) ) ) ; } } Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 7 / 16
  • 8. Using MyMediaLite Embedding MyMediaLite: Python #! / u s r / b i n / e n v i p y import clr clr . AddReference ( " MyMediaLite . dll " ) from MyMediaLite import ∗ # load the data user_mapping = Data . EntityMapping ( ) item_mapping = Data . EntityMapping ( ) train_data = IO . I t e m R ec o m m e n d e r Da t a . Read ( " u1 . base " , user_mapping , item_mapping ) relev ant_ite ms = item_mapping . InternalIDs test_data = IO . I t e m R ec o m m e n d e r Da t a . Read ( " u1 . test " , user_mapping , item_mapping ) # s e t up t h e recommender recommender = I te mR e co m me nd a ti o n . MostPopular ( ) recommender . S e t C o l l a b o r a t i v e D a t a ( train_data ) ; recommender . Train ( ) # m e a s u r e t h e a c c u r a c y on t h e t e s t d a t a s e t print Eval . I t e m Pr ed i ct i on Ev a l . Evaluate ( recommender , test_data , train_data , relevant_items ) # make a p r e d i c t i o n f o r a c e r t a i n u s e r and i t e m print recommender . Predict ( user_mapping . ToInternalID ( 1 ) , item_mapping . ToInternalID ( 1 ) ) Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 8 / 16
  • 9. Using MyMediaLite Embedding MyMediaLite: Ruby #! / u s r / b i n / e n v i r require ’ MyMediaLite ’ min_rating = 1 max_rating = 5 # load the data user_mapping = MyMediaLite : : Data : : EntityMapping . new ( ) item_mapping = MyMediaLite : : Data : : EntityMapping . new ( ) train_data = MyMediaLite : : IO : : R a t i n g P r e d i c t i o n D a t a . Read ( " u1 . base " , min_rating , max_rating , user_mapping , item_mapping ) test_data = MyMediaLite : : IO : : R a t i n g P r e d i c t i o n D a t a . Read ( " u1 . test " , min_rating , max_rating , user_mapping , item_mapping ) # s e t up t h e recommender recommender = MyMediaLite : : RatingPrediction : : UserItemBaseline . new ( ) recommender . MinRating = min_rating recommender . MaxRating = max_rating recommender . Ratings = train_data recommender . Train ( ) # m e a s u r e t h e a c c u r a c y on t h e t e s t d a t a s e t eval_results = MyMediaLite : : Eval : : RatingEval : : Evaluate ( recommender , test_data ) eval_results . each do | entry | puts " #{ entry } " end # make a p r e d i c t i o n f o r a c e r t a i n u s e r and i t e m puts recommender . Predict ( user_mapping . ToInternalID ( 1 ) , item_mapping . ToInternalID ( 1 ) ) Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 9 / 16
  • 10. Extending MyMediaLite Roll Your Own Recommendation Method It’s easy. for basic functionality define model data structures write Train() method write Predict() method That’s all! Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 10 / 16
  • 11. Extending MyMediaLite Roll Your Own: Define Model Data Structures Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 11 / 16
  • 12. Extending MyMediaLite Roll Your Own: Write Train() Method Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 12 / 16
  • 13. Extending MyMediaLite Roll Your Own: Write Predict() Method Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 13 / 16
  • 14. Extending MyMediaLite Roll Your Own Recommendation Method It’s easy. You do not need to worry about including the new method to the command-line tools, reflection takes care of that. advanced functionality CanPredict() method load/store models on-line updates Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 14 / 16
  • 15. Conclusion MyMediaLite future work more methods (contributions welcome . . . ) additional scenarios: context-aware recommendation, tags, . . . distributed/parallel computing Methods now shipped with MyMediaLite were used in the MyMedia field trials (>50,000 users). acknowledgements authors: Zeno Gantner, Steffen Rendle, Christoph Freudenthaler funding by EC FP7 project “Dynamic Personalization of Multimedia” (MyMedia) under grant agreement no. 215006. feedback, patches, suggestions: Thorsten Angermann, Fu Changhong, Andreas Hoffmann, Artus Krohn-Grimberghe, Christina Lichtenth¨ler, a Damir Logar, Thai-Nghe Nguyen Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 15 / 16
  • 16. Conclusion MyMediaLite homepage: http://ismll.de/mymedialite fork it: http://gitorious.org/mymedialite follow us: http://twitter.com/mymedialite send feedback/patches: mymedialite@ismll.de MyMediaLite: simple — free — scalable — well-documented Zeno Gantner, University of Hildesheim: MyMediaLite Recommender System Library — http://ismll.de/mymedialite 16 / 16