SlideShare a Scribd company logo
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 Mahout
Ajit 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 2016
Grigoris 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 2
Sara 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 Analytics
Lexalytics
 
Sentiment analysis of Twitter Data
Sentiment analysis of Twitter DataSentiment analysis of Twitter Data
Sentiment analysis of Twitter Data
Nurendra Choudhary
 
Introduction to machine learning
Introduction to machine learningIntroduction to machine learning
Introduction to machine learning
Ganesh Satpute
 
Unstructured data processing webinar 06272016
Unstructured data processing webinar 06272016Unstructured data processing webinar 06272016
Unstructured data processing webinar 06272016
George Roth
 
Predictive Text Analytics
Predictive Text AnalyticsPredictive Text Analytics
Predictive Text Analytics
Seth 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.0
Mathieu 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

Nttuyen Thesis
Nttuyen ThesisNttuyen Thesis
Nttuyen Thesis
Nguyễn Tuyến
 
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
Navisro Analytics
 
Collaborative Filtering Recommendation System
Collaborative Filtering Recommendation SystemCollaborative Filtering Recommendation System
Collaborative Filtering Recommendation System
Milind 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 Workshop
Tom 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-andrews
Alessandra 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 - copy
mmacusa2015
 
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
 
Research
ResearchResearch
Research
Kat OngCan
 
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
RBG Communiversity
 
Zhao_Work samples
Zhao_Work samplesZhao_Work samples
Zhao_Work samplesYajing Zhao
 
Difrentiation
DifrentiationDifrentiation
Difrentiationlecturer
 
XPath
XPathXPath
XPath
Raji Ghawi
 

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

Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
Osman Ali
 
Data Science.pptx
Data Science.pptxData Science.pptx
Data Science.pptx
TrainerAnalogicx
 
Cheminformatics Software Development: Case Studies
Cheminformatics Software Development: Case StudiesCheminformatics Software Development: Case Studies
Cheminformatics Software Development: Case Studies
Jeremy 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 DATA
javed75
 
Classification with R
Classification with RClassification with R
Classification with R
Najima 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 Data
IRJET 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.com
HABIB 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 r
Priya Mohan
 
Artificial intelligence and IoT
Artificial intelligence and IoTArtificial intelligence and IoT
Artificial intelligence and IoT
Veselin 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 steps
Renjith M P
 
Machine Learning Basics
Machine Learning BasicsMachine Learning Basics
Machine Learning Basics
Suresh Arora
 
Data analytics using R programming
Data analytics using R programmingData analytics using R programming
Data analytics using R programming
Umang Singh
 
Machine learning in finance using python
Machine learning in finance using pythonMachine learning in finance using python
Machine learning in finance using python
Eric 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 Systems
Gabriel Moreira
 

Similar to MyMediaLite (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

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

MyMediaLite

  • 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