尊敬的 微信汇率:1円 ≈ 0.046078 元 支付宝汇率:1円 ≈ 0.046168元 [退出登录]
SlideShare a Scribd company logo
Recommender
Systems
João Paulo L. F. Dias da Silva
Oct 2014
Background
(5 min)
Implementation
(5 min)
Demonstration
(5 min)
Agenda
Background 1. Machine Learning Application
• Unsupervised Learning (No
right answers provided)
• Linear Regression
• Gradient Descent Algorithm
2. Content-based Filtering
• Known product features
3. Collaborative Filtering
• Unknown product features
• Features will be “identified”
by the application
Linear Regression
It's a method that allows us to obtain a function that models the
relationship between a scalar dependent variable h and its
explanatory variables X.
Given a dataset {h, x1
, x2
, …, xn
} of statistical units, a linear
regression model assumes that there's a linear relationship
between each variable hi
and its independent variables xi1
, xi2
, …,
xin.
The goal of the linear regression is to obtain a parameter Ɵ so
that the model function h(X) = c + ƟX fits the input dataset as
close as possible.
0 2 4 6 8 10 12 14 16 18
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
Linear Regression - Intuition
Linear Regression – Model function
hi
= Ɵ1
xi1
+ … + Ɵm
xim
Stacking all examples we can rewrite the above as:
hi
= xi
T
Ɵ
Where X is a nx1 vector with each element being xi
T
and n is the
number of examples of our dataset.
T denotes the transpose operation.
Let h be a function that represents a model for the ith
example of
our dataset:
h = XƟ
Let Ɵ and xi
be mx1 vectors where m is the number of variables
of our model, so hi
becomes:
Linear Regression – Error function
Let h(X) be our hypothesis function (model).
J = (h(X) - Y)2
Let Y be the target values for each example in our dataset.
The squared error function J will be:
Another way of writing the error function is to take into account
the index of each example in our dataset, so that:
m
J = ∑(h(x(i)
) – Y(i)
)2
i=1
The objective of the linear regression is to minimize the error
function J with respect to Ɵ. One way of achieving it is through an
algorithm called Gradient Descent.
Gradient Descent Algorithm
Objective:
Find the minimum values for Ɵ1
,...,Ɵn
that minimize the error
function J(Ɵ1
,...,Ɵn
).
Overview:
• Initialize Ɵ1
,...,Ɵn
with some random values.
• Keep changing Ɵ1
,...,Ɵn
to reduce J(Ɵ1
,...,Ɵn
) until we find a
minimum.
Implementation:
Ɵj
:= Ɵj
– α – ∂ J(Ɵ1
,...,Ɵn
)
∂Ɵj
Gradient Descent
The partial derivative:
m
Ɵj
:= Ɵj
– α 1 – ∑(h(x(i)
) – y(i)
)x(i)
m i=1 j
An example for Ɵ ∈ ℝ3
:
m
Ɵ0
:= Ɵ0
– α 1 – ∑(h(x(i)
) – y(i)
)x(i)
m i=1 0
m
Ɵ1
:= Ɵ1
– α 1 – ∑(h(x(i)
) – y(i)
)x(i)
m i=1 1
m
Ɵ2
:= Ɵ2
– α 1 – ∑(h(x(i)
) – y(i)
)x(i)
m i=2 2
Gradient Descent - Intuition
Recommender Systems – Prog. Skills
Skills Ana Beto Carla Daniel
Ruby 5 5 0 0
CSS3 5 ? ? 0
JS ? 4 0 ?
Android 0 0 5 4
iOS 0 0 5 ?
How to predict the values for the unknown skills?
Content-based Filtering
Skills
Ana
Ɵ¹
Beto
Ɵ2 ...
X1
(Web)
X2
(Mobile)
Ruby (X1
) 5 5 ... 0.9 0
CSS3 (X2
) 5 ? ... 1.0 0.01
JS (X3
) ? 4 ... 0.99 0
Android (X4
) 0 0 ... 0.1 1.0
iOS (X5
) 0 0 ... 0 0.9
The skills features are known. Just need to solve one Linear Regression per user.
Content-based Filtering - Predicting
Skills
Ana
Ɵ¹ = [5, 0]
...
X1
(Web)
X2
(Mobile)
Ruby (X1
) 5 ... 0.9 0
CSS3 (X2
) 5 ... 1.0 0.01
JS (X3
) 5 ... 0.99 0
Android (X4
) 0 ... 0.1 1.0
iOS (X5
) 0 ... 0 0.9
Ana(JS) => Ɵ¹ * X3
=> [5, 0] * [0.99, 0] = (5 * 0.99) + (0 * 0) = 5
Collaborative Filtering
Skills
Ana
Ɵ¹
Beto
Ɵ2 ...
X1
(?)
X2
(?)
Ruby (X1
) 5 5 ... ? ?
CSS3 (X2
) 5 ? ... ? ?
JS (X3
) ? 4 ... ? ?
Android (X4
) 0 0 ... ? ?
iOS (X5
) 0 0 ... ? ?
How to predict the values for the unknown skills and features?
Collaborative Filtering – Feature
Learning
We can't find the Ɵ parameters because we don't have the values
for the features vectors.
So we initialize the Ɵ parameters to random values.
Then we can use the Ɵ parameters to apply linear regression in
order to find the features vectors for each skill.
Then we can use the features vectors to apply linear regression to
improve our Ɵ parameters for each user.
We keep doing that until we reach the optimal values for Ɵ and
the features vectors.
Collaborative Filtering – Intuition
Collaborative Filtering - Predicting
Skills
Ana
Ɵ¹ = [5, 0]
... X1 X2
Ruby (X1
) 5 ... 0.9 0
CSS3 (X2
) 5 ... 1.0 0.01
JS (X3
) 5 ... 0.99 0
Android (X4
) 0 ... 0.1 1.0
iOS (X5
) 0 ... 0 0.9
Ana(JS) => Ɵ¹ * X3
=> [5, 0] * [0.99, 0] = (5 * 0.99) + (0 * 0) = 5
Implementa
tion
Python for data scraping
Octave for LR/GD matrix calculations
Missing UI
Hardcoded input
Demo
Programming
Skills
QA & Next Steps

More Related Content

What's hot

PCA and LDA in machine learning
PCA and LDA in machine learningPCA and LDA in machine learning
PCA and LDA in machine learning
Akhilesh Joshi
 
Lines and planes in space
Lines and planes in spaceLines and planes in space
Lines and planes in space
Faizan Shabbir
 
Variables in matlab
Variables in matlabVariables in matlab
Variables in matlab
TUOS-Sam
 
Machine learning pt.1: Artificial Neural Networks ® All Rights Reserved
Machine learning pt.1: Artificial Neural Networks ® All Rights ReservedMachine learning pt.1: Artificial Neural Networks ® All Rights Reserved
Machine learning pt.1: Artificial Neural Networks ® All Rights Reserved
Jonathan Mitchell
 
Numerical tour in the Python eco-system: Python, NumPy, scikit-learn
Numerical tour in the Python eco-system: Python, NumPy, scikit-learnNumerical tour in the Python eco-system: Python, NumPy, scikit-learn
Numerical tour in the Python eco-system: Python, NumPy, scikit-learn
Arnaud Joly
 
Image processing
Image processingImage processing
Image processing
Pooya Sagharchiha
 
Image Processing using Matlab ( using a built in Matlab function(Histogram eq...
Image Processing using Matlab ( using a built in Matlab function(Histogram eq...Image Processing using Matlab ( using a built in Matlab function(Histogram eq...
Image Processing using Matlab ( using a built in Matlab function(Histogram eq...
Majd Khaleel
 
Piecewise Functions in Matlab
Piecewise Functions in MatlabPiecewise Functions in Matlab
Piecewise Functions in Matlab
Jorge Jasso
 
Intro matlab and convolution islam
Intro matlab and convolution islamIntro matlab and convolution islam
Intro matlab and convolution islam
Islam Alabbasy
 
Solution of matlab chapter 3
Solution of matlab chapter 3Solution of matlab chapter 3
Solution of matlab chapter 3
AhsanIrshad8
 
Data preprocessing for Machine Learning with R and Python
Data preprocessing for Machine Learning with R and PythonData preprocessing for Machine Learning with R and Python
Data preprocessing for Machine Learning with R and Python
Akhilesh Joshi
 
Mat lab
Mat labMat lab
Tomato Classification using Computer Vision
Tomato Classification using Computer VisionTomato Classification using Computer Vision
Tomato Classification using Computer Vision
Raman Pandey
 
Array operations
Array operationsArray operations
Array operations
ZAFAR444
 
Matlab introduction
Matlab introductionMatlab introduction
Matlab introduction
ssuser2797e4
 
Mechanical Engineering Homework Help
Mechanical Engineering Homework HelpMechanical Engineering Homework Help
Mechanical Engineering Homework Help
Matlab Assignment Experts
 
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Brendan Eich
 
Curve fitting
Curve fittingCurve fitting
Curve fitting
dusan4rs
 
Operators
OperatorsOperators
Operators
loidasacueza
 
Arrays
ArraysArrays

What's hot (20)

PCA and LDA in machine learning
PCA and LDA in machine learningPCA and LDA in machine learning
PCA and LDA in machine learning
 
Lines and planes in space
Lines and planes in spaceLines and planes in space
Lines and planes in space
 
Variables in matlab
Variables in matlabVariables in matlab
Variables in matlab
 
Machine learning pt.1: Artificial Neural Networks ® All Rights Reserved
Machine learning pt.1: Artificial Neural Networks ® All Rights ReservedMachine learning pt.1: Artificial Neural Networks ® All Rights Reserved
Machine learning pt.1: Artificial Neural Networks ® All Rights Reserved
 
Numerical tour in the Python eco-system: Python, NumPy, scikit-learn
Numerical tour in the Python eco-system: Python, NumPy, scikit-learnNumerical tour in the Python eco-system: Python, NumPy, scikit-learn
Numerical tour in the Python eco-system: Python, NumPy, scikit-learn
 
Image processing
Image processingImage processing
Image processing
 
Image Processing using Matlab ( using a built in Matlab function(Histogram eq...
Image Processing using Matlab ( using a built in Matlab function(Histogram eq...Image Processing using Matlab ( using a built in Matlab function(Histogram eq...
Image Processing using Matlab ( using a built in Matlab function(Histogram eq...
 
Piecewise Functions in Matlab
Piecewise Functions in MatlabPiecewise Functions in Matlab
Piecewise Functions in Matlab
 
Intro matlab and convolution islam
Intro matlab and convolution islamIntro matlab and convolution islam
Intro matlab and convolution islam
 
Solution of matlab chapter 3
Solution of matlab chapter 3Solution of matlab chapter 3
Solution of matlab chapter 3
 
Data preprocessing for Machine Learning with R and Python
Data preprocessing for Machine Learning with R and PythonData preprocessing for Machine Learning with R and Python
Data preprocessing for Machine Learning with R and Python
 
Mat lab
Mat labMat lab
Mat lab
 
Tomato Classification using Computer Vision
Tomato Classification using Computer VisionTomato Classification using Computer Vision
Tomato Classification using Computer Vision
 
Array operations
Array operationsArray operations
Array operations
 
Matlab introduction
Matlab introductionMatlab introduction
Matlab introduction
 
Mechanical Engineering Homework Help
Mechanical Engineering Homework HelpMechanical Engineering Homework Help
Mechanical Engineering Homework Help
 
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
 
Curve fitting
Curve fittingCurve fitting
Curve fitting
 
Operators
OperatorsOperators
Operators
 
Arrays
ArraysArrays
Arrays
 

Viewers also liked

WPPA 2014 Re-Visioning Strengths and Virtues
WPPA 2014 Re-Visioning Strengths and VirtuesWPPA 2014 Re-Visioning Strengths and Virtues
WPPA 2014 Re-Visioning Strengths and Virtues
Shelly Harrell
 
Topical issues of modern jurisprudence april 30, 2015
Topical issues of modern jurisprudence april 30, 2015Topical issues of modern jurisprudence april 30, 2015
Topical issues of modern jurisprudence april 30, 2015
Moscow Center for Legal Research
 
Johnson Counter
Johnson CounterJohnson Counter
Johnson Counter
Jatinder Kumar Chaurasia
 
Leadership Lessons from Disney Princesses
Leadership Lessons from Disney PrincessesLeadership Lessons from Disney Princesses
Leadership Lessons from Disney Princesses
Maria Alejandra Jaen
 
Group4
Group4Group4
Group4
Phuong Thuy
 
Safety@Work
Safety@WorkSafety@Work
Safety@Work
Renato Leone
 
Awards
AwardsAwards
Edwin cusin TAREA ELABORACIÖN DE PREGUNTAS
Edwin cusin TAREA ELABORACIÖN DE PREGUNTASEdwin cusin TAREA ELABORACIÖN DE PREGUNTAS
Edwin cusin TAREA ELABORACIÖN DE PREGUNTAS
Edwincsn Egca
 
Abonera
AboneraAbonera
Abonera
Elisa Depaoli
 
Khutbah jumat
Khutbah jumatKhutbah jumat
Khutbah jumat
Azwir Azwir
 
presentacion informatica
presentacion informaticapresentacion informatica
presentacion informatica
stephaniiiiii05
 
Top 10 cat videos
Top 10 cat videosTop 10 cat videos
Top 10 cat videos
johnaladin44
 
OpenCL Heterogeneous Parallel Computing
OpenCL Heterogeneous Parallel ComputingOpenCL Heterogeneous Parallel Computing
OpenCL Heterogeneous Parallel Computing
João Paulo Leonidas Fernandes Dias da Silva
 
Geometria 7aa
Geometria 7aaGeometria 7aa
Geometria 7aa
gabjor
 
Om innovative asgnmnt
Om innovative asgnmntOm innovative asgnmnt
Om innovative asgnmnt
Divya Rajput
 
Apply for hrm kampot cement
Apply for hrm kampot cementApply for hrm kampot cement
Apply for hrm kampot cement
veasna kann
 

Viewers also liked (16)

WPPA 2014 Re-Visioning Strengths and Virtues
WPPA 2014 Re-Visioning Strengths and VirtuesWPPA 2014 Re-Visioning Strengths and Virtues
WPPA 2014 Re-Visioning Strengths and Virtues
 
Topical issues of modern jurisprudence april 30, 2015
Topical issues of modern jurisprudence april 30, 2015Topical issues of modern jurisprudence april 30, 2015
Topical issues of modern jurisprudence april 30, 2015
 
Johnson Counter
Johnson CounterJohnson Counter
Johnson Counter
 
Leadership Lessons from Disney Princesses
Leadership Lessons from Disney PrincessesLeadership Lessons from Disney Princesses
Leadership Lessons from Disney Princesses
 
Group4
Group4Group4
Group4
 
Safety@Work
Safety@WorkSafety@Work
Safety@Work
 
Awards
AwardsAwards
Awards
 
Edwin cusin TAREA ELABORACIÖN DE PREGUNTAS
Edwin cusin TAREA ELABORACIÖN DE PREGUNTASEdwin cusin TAREA ELABORACIÖN DE PREGUNTAS
Edwin cusin TAREA ELABORACIÖN DE PREGUNTAS
 
Abonera
AboneraAbonera
Abonera
 
Khutbah jumat
Khutbah jumatKhutbah jumat
Khutbah jumat
 
presentacion informatica
presentacion informaticapresentacion informatica
presentacion informatica
 
Top 10 cat videos
Top 10 cat videosTop 10 cat videos
Top 10 cat videos
 
OpenCL Heterogeneous Parallel Computing
OpenCL Heterogeneous Parallel ComputingOpenCL Heterogeneous Parallel Computing
OpenCL Heterogeneous Parallel Computing
 
Geometria 7aa
Geometria 7aaGeometria 7aa
Geometria 7aa
 
Om innovative asgnmnt
Om innovative asgnmntOm innovative asgnmnt
Om innovative asgnmnt
 
Apply for hrm kampot cement
Apply for hrm kampot cementApply for hrm kampot cement
Apply for hrm kampot cement
 

Similar to Recommender Systems

Linear regression
Linear regression Linear regression
Linear regression
mohamed Naas
 
ppt - Deep Learning From Scratch.pdf
ppt - Deep Learning From Scratch.pdfppt - Deep Learning From Scratch.pdf
ppt - Deep Learning From Scratch.pdf
surefooted
 
Machine Learning: Make Your Ruby Code Smarter
Machine Learning: Make Your Ruby Code SmarterMachine Learning: Make Your Ruby Code Smarter
Machine Learning: Make Your Ruby Code Smarter
Astrails
 
Regression
RegressionRegression
Regression
Ncib Lotfi
 
Machine Learning lecture2(linear regression)
Machine Learning lecture2(linear regression)Machine Learning lecture2(linear regression)
Machine Learning lecture2(linear regression)
cairo university
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
Big_Data_Ukraine
 
3ml.pdf
3ml.pdf3ml.pdf
3ml.pdf
MianAdnan27
 
Feature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive modelsFeature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive models
Gabriel Moreira
 
ECCV2010: feature learning for image classification, part 2
ECCV2010: feature learning for image classification, part 2ECCV2010: feature learning for image classification, part 2
ECCV2010: feature learning for image classification, part 2
zukun
 
Functional Programming With Scala
Functional Programming With ScalaFunctional Programming With Scala
Functional Programming With Scala
Knoldus Inc.
 
ML - Multiple Linear Regression
ML - Multiple Linear RegressionML - Multiple Linear Regression
ML - Multiple Linear Regression
Andrew Ferlitsch
 
C3.2.2
C3.2.2C3.2.2
C3.2.2
Daniel LIAO
 
Presentation on machine learning
Presentation on machine learningPresentation on machine learning
Matlab solved problems
Matlab solved problemsMatlab solved problems
Matlab solved problems
Make Mannan
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Gabriel Moreira
 
Ai_Project_report
Ai_Project_reportAi_Project_report
Ai_Project_report
Ravi Gupta
 
Neural networks with python
Neural networks with pythonNeural networks with python
Neural networks with python
Simone Piunno
 
机器学习Adaboost
机器学习Adaboost机器学习Adaboost
机器学习Adaboost
Shocky1
 
ML Workshop at SACON 2018
ML Workshop at SACON 2018ML Workshop at SACON 2018
ML Workshop at SACON 2018
Subrat Panda, PhD
 
Session 4 .pdf
Session 4 .pdfSession 4 .pdf
Session 4 .pdf
ssuser8cda84
 

Similar to Recommender Systems (20)

Linear regression
Linear regression Linear regression
Linear regression
 
ppt - Deep Learning From Scratch.pdf
ppt - Deep Learning From Scratch.pdfppt - Deep Learning From Scratch.pdf
ppt - Deep Learning From Scratch.pdf
 
Machine Learning: Make Your Ruby Code Smarter
Machine Learning: Make Your Ruby Code SmarterMachine Learning: Make Your Ruby Code Smarter
Machine Learning: Make Your Ruby Code Smarter
 
Regression
RegressionRegression
Regression
 
Machine Learning lecture2(linear regression)
Machine Learning lecture2(linear regression)Machine Learning lecture2(linear regression)
Machine Learning lecture2(linear regression)
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
 
3ml.pdf
3ml.pdf3ml.pdf
3ml.pdf
 
Feature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive modelsFeature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive models
 
ECCV2010: feature learning for image classification, part 2
ECCV2010: feature learning for image classification, part 2ECCV2010: feature learning for image classification, part 2
ECCV2010: feature learning for image classification, part 2
 
Functional Programming With Scala
Functional Programming With ScalaFunctional Programming With Scala
Functional Programming With Scala
 
ML - Multiple Linear Regression
ML - Multiple Linear RegressionML - Multiple Linear Regression
ML - Multiple Linear Regression
 
C3.2.2
C3.2.2C3.2.2
C3.2.2
 
Presentation on machine learning
Presentation on machine learningPresentation on machine learning
Presentation on machine learning
 
Matlab solved problems
Matlab solved problemsMatlab solved problems
Matlab solved problems
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
 
Ai_Project_report
Ai_Project_reportAi_Project_report
Ai_Project_report
 
Neural networks with python
Neural networks with pythonNeural networks with python
Neural networks with python
 
机器学习Adaboost
机器学习Adaboost机器学习Adaboost
机器学习Adaboost
 
ML Workshop at SACON 2018
ML Workshop at SACON 2018ML Workshop at SACON 2018
ML Workshop at SACON 2018
 
Session 4 .pdf
Session 4 .pdfSession 4 .pdf
Session 4 .pdf
 

More from João Paulo Leonidas Fernandes Dias da Silva

Apache spark intro
Apache spark introApache spark intro
Kafka basics
Kafka basicsKafka basics
Query driven development
Query driven developmentQuery driven development
Apache Storm Basics
Apache Storm BasicsApache Storm Basics
Unit testing basics
Unit testing basicsUnit testing basics
Qcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes WorkshopQcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes Workshop
João Paulo Leonidas Fernandes Dias da Silva
 

More from João Paulo Leonidas Fernandes Dias da Silva (6)

Apache spark intro
Apache spark introApache spark intro
Apache spark intro
 
Kafka basics
Kafka basicsKafka basics
Kafka basics
 
Query driven development
Query driven developmentQuery driven development
Query driven development
 
Apache Storm Basics
Apache Storm BasicsApache Storm Basics
Apache Storm Basics
 
Unit testing basics
Unit testing basicsUnit testing basics
Unit testing basics
 
Qcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes WorkshopQcon Rio 2015 - Data Lakes Workshop
Qcon Rio 2015 - Data Lakes Workshop
 

Recently uploaded

Call Girls Solapur ☎️ +91-7426014248 😍 Solapur Call Girl Beauty Girls Solapur...
Call Girls Solapur ☎️ +91-7426014248 😍 Solapur Call Girl Beauty Girls Solapur...Call Girls Solapur ☎️ +91-7426014248 😍 Solapur Call Girl Beauty Girls Solapur...
Call Girls Solapur ☎️ +91-7426014248 😍 Solapur Call Girl Beauty Girls Solapur...
anshsharma8761
 
Top 5 Ways To Use Instagram API in 2024 for your business
Top 5 Ways To Use Instagram API in 2024 for your businessTop 5 Ways To Use Instagram API in 2024 for your business
Top 5 Ways To Use Instagram API in 2024 for your business
Yara Milbes
 
NLJUG speaker academy 2024 - session 1, June 2024
NLJUG speaker academy 2024 - session 1, June 2024NLJUG speaker academy 2024 - session 1, June 2024
NLJUG speaker academy 2024 - session 1, June 2024
Bert Jan Schrijver
 
European Standard S1000D, an Unnecessary Expense to OEM.pptx
European Standard S1000D, an Unnecessary Expense to OEM.pptxEuropean Standard S1000D, an Unnecessary Expense to OEM.pptx
European Standard S1000D, an Unnecessary Expense to OEM.pptx
Digital Teacher
 
119321250-History-of-Computer-Programming.ppt
119321250-History-of-Computer-Programming.ppt119321250-History-of-Computer-Programming.ppt
119321250-History-of-Computer-Programming.ppt
lavesingh522
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 
CBDebugger : Debug your Box apps with ease!
CBDebugger : Debug your Box apps with ease!CBDebugger : Debug your Box apps with ease!
CBDebugger : Debug your Box apps with ease!
Ortus Solutions, Corp
 
🔥 Chennai Call Girls  👉 6350257716 👫 High Profile Call Girls Whatsapp Number ...
🔥 Chennai Call Girls  👉 6350257716 👫 High Profile Call Girls Whatsapp Number ...🔥 Chennai Call Girls  👉 6350257716 👫 High Profile Call Girls Whatsapp Number ...
🔥 Chennai Call Girls  👉 6350257716 👫 High Profile Call Girls Whatsapp Number ...
tinakumariji156
 
Folding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a seriesFolding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a series
Philip Schwarz
 
Accelerate your Sitecore development with GenAI
Accelerate your Sitecore development with GenAIAccelerate your Sitecore development with GenAI
Accelerate your Sitecore development with GenAI
Ahmed Okour
 
Solar Panel Service Provider annual maintenance contract.pdf
Solar Panel Service Provider annual maintenance contract.pdfSolar Panel Service Provider annual maintenance contract.pdf
Solar Panel Service Provider annual maintenance contract.pdf
SERVE WELL CRM NASHIK
 
Trailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptxTrailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptx
ImtiazBinMohiuddin
 
Lightning Talk - Ephemeral Containers on Kubernetes in 10 MInutes.pdf
Lightning Talk -  Ephemeral Containers on Kubernetes in 10 MInutes.pdfLightning Talk -  Ephemeral Containers on Kubernetes in 10 MInutes.pdf
Lightning Talk - Ephemeral Containers on Kubernetes in 10 MInutes.pdf
Natan Yellin
 
Call Girls in Rajkot (7426014248) call me [🔝Rajkot🔝] Escort In Rajkot service...
Call Girls in Rajkot (7426014248) call me [🔝Rajkot🔝] Escort In Rajkot service...Call Girls in Rajkot (7426014248) call me [🔝Rajkot🔝] Escort In Rajkot service...
Call Girls in Rajkot (7426014248) call me [🔝Rajkot🔝] Escort In Rajkot service...
vickythakur209464
 
Premium Call Girls In Ahmedabad 💯Call Us 🔝 7426014248 🔝Independent Ahmedabad ...
Premium Call Girls In Ahmedabad 💯Call Us 🔝 7426014248 🔝Independent Ahmedabad ...Premium Call Girls In Ahmedabad 💯Call Us 🔝 7426014248 🔝Independent Ahmedabad ...
Premium Call Girls In Ahmedabad 💯Call Us 🔝 7426014248 🔝Independent Ahmedabad ...
Anita pandey
 
Happy Birthday Kubernetes, 10th Birthday edition of Kubernetes Birthday in Au...
Happy Birthday Kubernetes, 10th Birthday edition of Kubernetes Birthday in Au...Happy Birthday Kubernetes, 10th Birthday edition of Kubernetes Birthday in Au...
Happy Birthday Kubernetes, 10th Birthday edition of Kubernetes Birthday in Au...
Chad Crowell
 
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Ortus Solutions, Corp
 
1 Million Orange Stickies later - Devoxx Poland 2024
1 Million Orange Stickies later - Devoxx Poland 20241 Million Orange Stickies later - Devoxx Poland 2024
1 Million Orange Stickies later - Devoxx Poland 2024
Alberto Brandolini
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
Ortus Solutions, Corp
 

Recently uploaded (20)

Call Girls Solapur ☎️ +91-7426014248 😍 Solapur Call Girl Beauty Girls Solapur...
Call Girls Solapur ☎️ +91-7426014248 😍 Solapur Call Girl Beauty Girls Solapur...Call Girls Solapur ☎️ +91-7426014248 😍 Solapur Call Girl Beauty Girls Solapur...
Call Girls Solapur ☎️ +91-7426014248 😍 Solapur Call Girl Beauty Girls Solapur...
 
Top 5 Ways To Use Instagram API in 2024 for your business
Top 5 Ways To Use Instagram API in 2024 for your businessTop 5 Ways To Use Instagram API in 2024 for your business
Top 5 Ways To Use Instagram API in 2024 for your business
 
NLJUG speaker academy 2024 - session 1, June 2024
NLJUG speaker academy 2024 - session 1, June 2024NLJUG speaker academy 2024 - session 1, June 2024
NLJUG speaker academy 2024 - session 1, June 2024
 
European Standard S1000D, an Unnecessary Expense to OEM.pptx
European Standard S1000D, an Unnecessary Expense to OEM.pptxEuropean Standard S1000D, an Unnecessary Expense to OEM.pptx
European Standard S1000D, an Unnecessary Expense to OEM.pptx
 
119321250-History-of-Computer-Programming.ppt
119321250-History-of-Computer-Programming.ppt119321250-History-of-Computer-Programming.ppt
119321250-History-of-Computer-Programming.ppt
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
 
CBDebugger : Debug your Box apps with ease!
CBDebugger : Debug your Box apps with ease!CBDebugger : Debug your Box apps with ease!
CBDebugger : Debug your Box apps with ease!
 
🔥 Chennai Call Girls  👉 6350257716 👫 High Profile Call Girls Whatsapp Number ...
🔥 Chennai Call Girls  👉 6350257716 👫 High Profile Call Girls Whatsapp Number ...🔥 Chennai Call Girls  👉 6350257716 👫 High Profile Call Girls Whatsapp Number ...
🔥 Chennai Call Girls  👉 6350257716 👫 High Profile Call Girls Whatsapp Number ...
 
Folding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a seriesFolding Cheat Sheet #5 - fifth in a series
Folding Cheat Sheet #5 - fifth in a series
 
Accelerate your Sitecore development with GenAI
Accelerate your Sitecore development with GenAIAccelerate your Sitecore development with GenAI
Accelerate your Sitecore development with GenAI
 
Solar Panel Service Provider annual maintenance contract.pdf
Solar Panel Service Provider annual maintenance contract.pdfSolar Panel Service Provider annual maintenance contract.pdf
Solar Panel Service Provider annual maintenance contract.pdf
 
Trailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptxTrailhead Talks_ Journey of an All-Star Ranger .pptx
Trailhead Talks_ Journey of an All-Star Ranger .pptx
 
Lightning Talk - Ephemeral Containers on Kubernetes in 10 MInutes.pdf
Lightning Talk -  Ephemeral Containers on Kubernetes in 10 MInutes.pdfLightning Talk -  Ephemeral Containers on Kubernetes in 10 MInutes.pdf
Lightning Talk - Ephemeral Containers on Kubernetes in 10 MInutes.pdf
 
Call Girls in Rajkot (7426014248) call me [🔝Rajkot🔝] Escort In Rajkot service...
Call Girls in Rajkot (7426014248) call me [🔝Rajkot🔝] Escort In Rajkot service...Call Girls in Rajkot (7426014248) call me [🔝Rajkot🔝] Escort In Rajkot service...
Call Girls in Rajkot (7426014248) call me [🔝Rajkot🔝] Escort In Rajkot service...
 
Premium Call Girls In Ahmedabad 💯Call Us 🔝 7426014248 🔝Independent Ahmedabad ...
Premium Call Girls In Ahmedabad 💯Call Us 🔝 7426014248 🔝Independent Ahmedabad ...Premium Call Girls In Ahmedabad 💯Call Us 🔝 7426014248 🔝Independent Ahmedabad ...
Premium Call Girls In Ahmedabad 💯Call Us 🔝 7426014248 🔝Independent Ahmedabad ...
 
Happy Birthday Kubernetes, 10th Birthday edition of Kubernetes Birthday in Au...
Happy Birthday Kubernetes, 10th Birthday edition of Kubernetes Birthday in Au...Happy Birthday Kubernetes, 10th Birthday edition of Kubernetes Birthday in Au...
Happy Birthday Kubernetes, 10th Birthday edition of Kubernetes Birthday in Au...
 
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...
 
1 Million Orange Stickies later - Devoxx Poland 2024
1 Million Orange Stickies later - Devoxx Poland 20241 Million Orange Stickies later - Devoxx Poland 2024
1 Million Orange Stickies later - Devoxx Poland 2024
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
 

Recommender Systems

  • 1. Recommender Systems João Paulo L. F. Dias da Silva Oct 2014
  • 3. Background 1. Machine Learning Application • Unsupervised Learning (No right answers provided) • Linear Regression • Gradient Descent Algorithm 2. Content-based Filtering • Known product features 3. Collaborative Filtering • Unknown product features • Features will be “identified” by the application
  • 4. Linear Regression It's a method that allows us to obtain a function that models the relationship between a scalar dependent variable h and its explanatory variables X. Given a dataset {h, x1 , x2 , …, xn } of statistical units, a linear regression model assumes that there's a linear relationship between each variable hi and its independent variables xi1 , xi2 , …, xin. The goal of the linear regression is to obtain a parameter Ɵ so that the model function h(X) = c + ƟX fits the input dataset as close as possible. 0 2 4 6 8 10 12 14 16 18 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
  • 6. Linear Regression – Model function hi = Ɵ1 xi1 + … + Ɵm xim Stacking all examples we can rewrite the above as: hi = xi T Ɵ Where X is a nx1 vector with each element being xi T and n is the number of examples of our dataset. T denotes the transpose operation. Let h be a function that represents a model for the ith example of our dataset: h = XƟ Let Ɵ and xi be mx1 vectors where m is the number of variables of our model, so hi becomes:
  • 7. Linear Regression – Error function Let h(X) be our hypothesis function (model). J = (h(X) - Y)2 Let Y be the target values for each example in our dataset. The squared error function J will be: Another way of writing the error function is to take into account the index of each example in our dataset, so that: m J = ∑(h(x(i) ) – Y(i) )2 i=1 The objective of the linear regression is to minimize the error function J with respect to Ɵ. One way of achieving it is through an algorithm called Gradient Descent.
  • 8. Gradient Descent Algorithm Objective: Find the minimum values for Ɵ1 ,...,Ɵn that minimize the error function J(Ɵ1 ,...,Ɵn ). Overview: • Initialize Ɵ1 ,...,Ɵn with some random values. • Keep changing Ɵ1 ,...,Ɵn to reduce J(Ɵ1 ,...,Ɵn ) until we find a minimum. Implementation: Ɵj := Ɵj – α – ∂ J(Ɵ1 ,...,Ɵn ) ∂Ɵj
  • 9. Gradient Descent The partial derivative: m Ɵj := Ɵj – α 1 – ∑(h(x(i) ) – y(i) )x(i) m i=1 j An example for Ɵ ∈ ℝ3 : m Ɵ0 := Ɵ0 – α 1 – ∑(h(x(i) ) – y(i) )x(i) m i=1 0 m Ɵ1 := Ɵ1 – α 1 – ∑(h(x(i) ) – y(i) )x(i) m i=1 1 m Ɵ2 := Ɵ2 – α 1 – ∑(h(x(i) ) – y(i) )x(i) m i=2 2
  • 10. Gradient Descent - Intuition
  • 11. Recommender Systems – Prog. Skills Skills Ana Beto Carla Daniel Ruby 5 5 0 0 CSS3 5 ? ? 0 JS ? 4 0 ? Android 0 0 5 4 iOS 0 0 5 ? How to predict the values for the unknown skills?
  • 12. Content-based Filtering Skills Ana Ɵ¹ Beto Ɵ2 ... X1 (Web) X2 (Mobile) Ruby (X1 ) 5 5 ... 0.9 0 CSS3 (X2 ) 5 ? ... 1.0 0.01 JS (X3 ) ? 4 ... 0.99 0 Android (X4 ) 0 0 ... 0.1 1.0 iOS (X5 ) 0 0 ... 0 0.9 The skills features are known. Just need to solve one Linear Regression per user.
  • 13. Content-based Filtering - Predicting Skills Ana Ɵ¹ = [5, 0] ... X1 (Web) X2 (Mobile) Ruby (X1 ) 5 ... 0.9 0 CSS3 (X2 ) 5 ... 1.0 0.01 JS (X3 ) 5 ... 0.99 0 Android (X4 ) 0 ... 0.1 1.0 iOS (X5 ) 0 ... 0 0.9 Ana(JS) => Ɵ¹ * X3 => [5, 0] * [0.99, 0] = (5 * 0.99) + (0 * 0) = 5
  • 14. Collaborative Filtering Skills Ana Ɵ¹ Beto Ɵ2 ... X1 (?) X2 (?) Ruby (X1 ) 5 5 ... ? ? CSS3 (X2 ) 5 ? ... ? ? JS (X3 ) ? 4 ... ? ? Android (X4 ) 0 0 ... ? ? iOS (X5 ) 0 0 ... ? ? How to predict the values for the unknown skills and features?
  • 15. Collaborative Filtering – Feature Learning We can't find the Ɵ parameters because we don't have the values for the features vectors. So we initialize the Ɵ parameters to random values. Then we can use the Ɵ parameters to apply linear regression in order to find the features vectors for each skill. Then we can use the features vectors to apply linear regression to improve our Ɵ parameters for each user. We keep doing that until we reach the optimal values for Ɵ and the features vectors.
  • 17. Collaborative Filtering - Predicting Skills Ana Ɵ¹ = [5, 0] ... X1 X2 Ruby (X1 ) 5 ... 0.9 0 CSS3 (X2 ) 5 ... 1.0 0.01 JS (X3 ) 5 ... 0.99 0 Android (X4 ) 0 ... 0.1 1.0 iOS (X5 ) 0 ... 0 0.9 Ana(JS) => Ɵ¹ * X3 => [5, 0] * [0.99, 0] = (5 * 0.99) + (0 * 0) = 5
  • 18. Implementa tion Python for data scraping Octave for LR/GD matrix calculations Missing UI Hardcoded input
  • 20. QA & Next Steps
  翻译: