Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Personalised Recommendations
Search
Edward Tsech
August 09, 2014
Programming
1
64
Personalised Recommendations
Edward Tsech
August 09, 2014
Tweet
Share
More Decks by Edward Tsech
See All by Edward Tsech
Clojure, Web and Luminus
edtsech
1
210
Other Decks in Programming
See All in Programming
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
1.1k
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
1.2k
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
650
DevTools extensions で 独自の DevTool を開発する | FlutterKaigi 2024
kokiyoshida
0
110
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Micro Frontends Unmasked Opportunities, Challenges, Alternatives
manfredsteyer
PRO
0
110
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
310
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
ヤプリ新卒SREの オンボーディング
masaki12
0
130
WebフロントエンドにおけるGraphQL(あるいはバックエンドのAPI)との向き合い方 / #241106_plk_frontend
izumin5210
4
1.4k
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
200
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
45
6.8k
How GitHub (no longer) Works
holman
310
140k
Become a Pro
speakerdeck
PRO
25
5k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Facilitating Awesome Meetings
lara
50
6.1k
The Cult of Friendly URLs
andyhume
78
6k
KATA
mclloyd
29
14k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Transcript
Personalised Recommendations Saturday 9 August 14
About me • Ed Tsech • Clojure, JavaScript developer •
@edtsech on twitter, github Saturday 9 August 14
Content • Collaborative filtering • User based • Item based
• Content based / knowledge based recommendations • Mahout • Movie Recommender Example Saturday 9 August 14
Collaborative Filtering • “Collaborative filtering is a method of making
automatic predictions (filtering) about the interests of a user by collecting preferences or taste information from many users (collaborating).” Saturday 9 August 14
Collaborative Filtering • Last.fm, Twitter, Amazon • Pros • Relatively
precise, ability to recommend items from different categories • Cons • Cold start problem Saturday 9 August 14
User-based Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Item-based Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Saturday 9 August 14
Algorithms • Euclidean distance • Pearson Correlation • Tanimoto Coefficient
• ... Saturday 9 August 14
Euclidean distance Saturday 9 August 14
Pearson Correlation Saturday 9 August 14
Pearson vs Euclidean Saturday 9 August 14
Tanimoto Coefficient Saturday 9 August 14
Other Algorithms • Log-likelihood • Slope one • Singular value
decomposition • K nearest neighbors • Cluster-based Saturday 9 August 14
Content Based • Prismatic • Pros • No cold start
problem, ability to recommender new items • Cons • Harder to implement, not so precise, sometimes stupid. Saturday 9 August 14
Hybrid Systems • Netflix • Mix collaborative filtering & content-based
recommendations • Knowledge-based • Add domain information Saturday 9 August 14
Mahout • Scalable machine learning library • User based recommenders
• Item based recommenders • Various algorithms • Evaluation & rescoring features • Hadoop integration Saturday 9 August 14
Reca • Thin Clojure wrapper for Mahout’s single- machine recommendation
algorithms • https://github.com/edtsech/reca Saturday 9 August 14
Movie App Demo • 8400000 ratings • 1.7 Gb database
• 162 037 users • 82 715 movies Saturday 9 August 14
Rescoring • Add application logic to the recommender • Add
domain specific information • Helps to make a hybrid recommender Saturday 9 August 14
Evaluation Evaluation of user based algorithm based on 3% of
whole ratings (y axis - average difference) Saturday 9 August 14
Evaluation Evaluation of item based algorithm based on 33% of
whole ratings (y axis - average difference) Saturday 9 August 14
Performance • 1.5Gb of memory • 250 msecs for user
based recommender • 60-90 secs for item based recommender • 0.1 msecs after caching Saturday 9 August 14
Links • Mahout in Action [book] • Collective intelligence [book]
• http://mahout.apache.org/ • http://blog.comsysto.com/2013/04/03/ background-of-collaborative-filtering-with- mahout/ Saturday 9 August 14