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

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

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