SlideShare a Scribd company logo
An	introduction	to
COLLABORATIVE	FILTERING	IN
PYTHON
and	an	overview	of	Surprise
1
WHAT	SHOULD	I
READ?
2
WHAT	SHOULD	I
SEE?
3
WHERE	SHOULD	I
EAT?
4
TAXONOMY
Content-based
Leverage	information	about	the	items	content	
Based	on	item	profiles	(metadata).
Collaborative	filtering
Leverage	social	information	(user-item	interactions)
E.g.:	recommend	items	liked	by	my	peers.	Usually	yields	better	results.
Knowledge-based
Leverage	users	requirements	
Used	for	cars,	loans,	real	estate...	Very	task-specific.
5
Collaborative	filtering
Leverage	social	information	(user-item	interactions)
E.g.:	recommend	items	liked	by	my	peers.	Usually	yields	better	results.
5
RATING	PREDICTION
Rows	are	users,	columns	are	items
~	99%	of	the	entries	are	missing
Your	mission:	predict	the	
6
ABOUT	ME
Nicolas	Hug
PhD	Student	(University	of	Toulouse	III)
Needed	a	Python	library	for	RS	research...	Did	it.
7
OUTLINE
1.	 THE	NEIGHBORHOOD	METHOD	(K-NN)
8
OUTLINE
1.	 THE	NEIGHBORHOOD	METHOD	(K-NN)
2.	 OVERVIEW	OF	
( )
SURPRISE
http://surpriselib.com
8
OUTLINE
1.	 THE	NEIGHBORHOOD	METHOD	(K-NN)
2.	 OVERVIEW	OF	
( )
SURPRISE
http://surpriselib.com
3.	 MATRIX	FACTORIZATION
8
1.	 THE	NEIGHBORHOOD	METHOD	(K-NN)
8
NEIGHBORHOOD
METHODS
9
NEIGHBORHOOD	METHOD
We	have	a	history	of	past	ratings
We	need	to	predict	Alice's	rating	for	Titanic
1.	 Find	the	users	that	have	the	same	tastes	as	Alice
(using	the	rating	history)
2.	 Average	their	ratings	for	Titanic
That's	it
10
1.	 Find	the	users	that	have	the	same	tastes	as	Alice
(using	the	rating	history)
10
WE	NEED	A	SIMILARITY	MEASURE
11
WE	NEED	A	SIMILARITY	MEASURE
	number	of	common	rated	items
11
WE	NEED	A	SIMILARITY	MEASURE
	number	of	common	rated	items
	average	absolute	difference	between	ratings	(it's	actually	a
distance)
11
WE	NEED	A	SIMILARITY	MEASURE
	number	of	common	rated	items
	average	absolute	difference	between	ratings	(it's	actually	a
distance)
	cosine	angle	between	 	and	
11
WE	NEED	A	SIMILARITY	MEASURE
	number	of	common	rated	items
	average	absolute	difference	between	ratings	(it's	actually	a
distance)
	cosine	angle	between	 	and	
	Pearson	correlation	coefficient	between	 	and	
11
WE	NEED	A	SIMILARITY	MEASURE
	number	of	common	rated	items
	average	absolute	difference	between	ratings	(it's	actually	a
distance)
	cosine	angle	between	 	and	
	Pearson	correlation	coefficient	between	 	and	
About	3	millions	other	measures
11
NEIGHBORHOOD	METHOD
We	have	a	history	of	past	ratings
We	need	to	predict	Alice's	rating	for	Titanic
1.	 Find	the	users	that	have	the	same	tastes	as	Alice
(using	the	rating	history)
2.	 Average	their	ratings	for	Titanic
That's	it
12
2.	 Average	their	ratings	for	Titanic
12
AGGREGATING	THE	NEIGHBORS'
RATINGS
Alice	is	close	to	Bob.	Her	rating	for	Titanic	is
probably	close	to	Bob's	(1).	So	
13
AGGREGATING	THE	NEIGHBORS'
RATINGS
Alice	is	close	to	Bob.	Her	rating	for	Titanic	is
probably	close	to	Bob's	(1).	So	
But	we	should	of	course	look	at	more	than	one
neighbor!
13
LET'S	CODE!
												
def	predict_rating(u,	i):
				'''Return	estimated	rating	of	user	u	for	item	i.
							rating_hist	is	a	list	of	tuples	(user,	item,	rating)'''
				#	Retrieve	users	having	rated	i
				neighbors	=	[(sim[u,	v],	r_vj)
																	for	(v,	j,	r_vj)	in	rating_hist	if	(i	==	j)]
				#	Sort	them	by	similarity	with	u
				neighbors.sort(key=lambda	tple:	tple[0],	reversed=True)
				#	Compute	weighted	average	of	the	k-NN's	ratings
				num	=	sum(sim_uv	*	r_vi	for	(sim_uv,	r_vi)	in	neighbors[:k])
				denum	=	sum(sim_uv	for	(sim_uv,	_)	in	neighbors[:k])
				return	num	/	denum
												
14
LET'S	CODE!
												
def	predict_rating(u,	i):
				'''Return	estimated	rating	of	user	u	for	item	i.
							rating_hist	is	a	list	of	tuples	(user,	item,	rating)'''
				#	Retrieve	users	having	rated	i
				neighbors	=	[(sim[u,	v],	r_vj)
																	for	(v,	j,	r_vj)	in	rating_hist	if	(i	==	j)]
				#	Sort	them	by	similarity	with	u
				neighbors.sort(key=lambda	tple:	tple[0],	reversed=True)
				#	Compute	weighted	average	of	the	k-NN's	ratings
				num	=	sum(sim_uv	*	r_vi	for	(sim_uv,	r_vi)	in	neighbors[:k])
				denum	=	sum(sim_uv	for	(sim_uv,	_)	in	neighbors[:k])
				return	num	/	denum
												
14
NEIGHBORHOOD	METHOD
We	have	a	history	of	past	ratings
We	need	to	predict	Alice's	rating	for	Titanic	
1.	 Find	the	users	that	have	the	same	tastes	as	Alice
(using	the	rating	history)
2.	 Average	their	ratings	for	Titanic
That's	it...	 	
15
NEIGHBORHOOD	METHOD
We	have	a	history	of	past	ratings
We	need	to	predict	Alice's	rating	for	Titanic	
1.	 Find	the	users	that	have	the	same	tastes	as	Alice
(using	the	rating	history)
2.	 Average	their	ratings	for	Titanic
That's	it...	?	
15
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
16
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
Remove	bias	(some	users	are	mean)
16
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
Remove	bias	(some	users	are	mean)
Use	a	fancier	aggregation
16
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
Remove	bias	(some	users	are	mean)
Use	a	fancier	aggregation
Discount	similarities	(give	them	more	or	less
confidence)
16
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
Remove	bias	(some	users	are	mean)
Use	a	fancier	aggregation
Discount	similarities	(give	them	more	or	less
confidence)
Use	item-item	similarity	instead
16
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
Remove	bias	(some	users	are	mean)
Use	a	fancier	aggregation
Discount	similarities	(give	them	more	or	less
confidence)
Use	item-item	similarity	instead
Or	use	both	kinds	of	similarities!
16
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
Remove	bias	(some	users	are	mean)
Use	a	fancier	aggregation
Discount	similarities	(give	them	more	or	less
confidence)
Use	item-item	similarity	instead
Or	use	both	kinds	of	similarities!
Cluster	users	and/or	items
16
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
Remove	bias	(some	users	are	mean)
Use	a	fancier	aggregation
Discount	similarities	(give	them	more	or	less
confidence)
Use	item-item	similarity	instead
Or	use	both	kinds	of	similarities!
Cluster	users	and/or	items
Learn	the	similarities
16
THERE	ARE	(APPROXIMATELY)	HALF	A	BILLION
VARIANTS
Normalize	the	ratings
Remove	bias	(some	users	are	mean)
Use	a	fancier	aggregation
Discount	similarities	(give	them	more	or	less
confidence)
Use	item-item	similarity	instead
Or	use	both	kinds	of	similarities!
Cluster	users	and/or	items
Learn	the	similarities
Blah	blah	blah...
16
OUTLINE
1.	 THE	NEIGHBORHOOD	METHOD	(K-NN)
2.	 OVERVIEW	OF	
( )
3.	 MATRIX	FACTORIZATION
SURPRISE
http://surpriselib.com
17
2.	 OVERVIEW	OF	
( )
SURPRISE
http://surpriselib.com
17
SURPRISE
A	Python	library	for	recommender	systems	
(Or	rather:	a	Python	library	for	rating	prediction	algorithms)
18
WHY?
Needed	a	Python	lib	for	quick	and	easy	prototyping
Needed	to	control	my	experiments
19
SO	WHY	NOT	SCIKIT-LEARN?
20
SO	WHY	NOT	SCIKIT-LEARN?
Rating	prediction	≠	regression	or	classification	
20
YES	:)
NO	:(
												
clf	=	MyClassifier()
clf.fit(X_train,	y_train)
clf.predict(X_test)
										
												
rec	=	MyRecommender()
rec.fit(X_train,	y_train)
rec.predict(X_test)
										
21
BASIC	USAGE
												
from	surprise	import	KNNBasic
from	surprise	import	Dataset
data	=	Dataset.load_builtin('ml-100k')		#	download	dataset
trainset	=	data.build_full_trainset()		#	build	trainset
algo	=	KNNBasic()		#	use	built-in	prediction	algorithm
algo.train(trainset)		#	fit	data
algo.predict('Alice',	'Titanic')
algo.predict('Bob',	'Toy	Story')
#	...
										
22
MAIN	FEATURES
Easy	dataset	handling
23
DATASET	HANDLING
												
#	Built-in	datasets	(movielens,	Jester)
data	=	Dataset.load_builtin('ml-100k')
#	Custom	datasets	(from	file)
file_path	=	os.path.expanduser('./my_data')
reader	=	Reader(line_format='user	item	rating	timestamp',
																sep='t')
data	=	Dataset.load_from_file(file_path,	reader=reader)
#	Custom	datasets	(from	pandas	dataframe)
reader	=	Reader(rating_scale=(1,	5))
data	=	Dataset.load_from_df(df[['uid',	'iid',	'r_ui']],
																												reader)
										
24
MAIN	FEATURES
Built-in	prediction	algorithms	(SVD,	k-NN,	many
others)
Built-in	similarity	measures	(Cosine,	Pearson...)
25
BUILT-IN	ALGORITHMS	AND
SIMILARITIES
SVD,	SVD++,	NMF,	 -NN	(with	variants),	Slope	One,
some	baselines...
Cosine,	Pearson,	MSD	(between	users	or	items)
												
sim_options	=	{'name':	'cosine',
															'user_based':	False,
															'min_support':	10
															}
algo	=	KNNBasic(sim_options=sim_options)
										
26
MAIN	FEATURES
Custom	algorithms	are	easy	to	implement
27
CUSTOM	PREDICTION	ALGORITHM
												
class	MyRatingPredictor(AlgoBase):
				def	estimate(self,	u,	i):
								return	3
algo	=	MyRatingPredictor()
algo.train(trainset)
pred	=	algo.predict('Alice',	'Titanic')		#	will	call	estimate
										
28
CUSTOM	PREDICTION	ALGORITHM
												
class	MyRatingPredictor(AlgoBase):
				def	train(self,	trainset):
								'''Fit	your	data	here.'''
								self.mean	=	np.mean([r_ui	for	(u,	i,	r_ui)
																													in	trainset.all_ratings()])
				def	estimate(self,	u,	i):
								return	self.mean
										
29
CUSTOM	PREDICTION	ALGORITHM
												
class	MyRatingPredictor(AlgoBase):
				def	train(self,	trainset):
								'''Fit	your	data	here.'''
								self.mean	=	np.mean([r_ui	for	(u,	i,	r_ui)
																													in	trainset.all_ratings()])
				def	estimate(self,	u,	i):
								return	self.mean
										
trainset	object:
Iterators	over	the	rating	history	(user-wise,	item-wise,	or	unordered)
Iterators	over	users	and	items	ids
Other	useful	methods/attributes
29
class	MyKNN(AlgoBase):
				def	train(self,	trainset):
								self.trainset	=	trainset
								self.sim	=	...		#	Compute	similarity	matrix
				def	estimate(self,	u,	i):
								neighbors	=	[(self.sim[u,	v],	r_vi)	for	(v,	r_vj)
																						in	self.trainset.ur[u]]
								neighbors	=	sorted(neighbors,
																											key=lambda	tple:	tple[0],
																											reverse=True)
								sum_sim	=	sum_ratings	=	0
								for	(sim_uv,	r_vi)	in	neighbors[:self.k]:
												sum_sim	+=	sim
												sum_ratings	+=	sim	*	r
								return	sum_ratings	/	sum_sim
										
30
MAIN	FEATURES
Cross-validation,	grid-search
31
TYPICAL	EVALUATION	PROTOCOL
Hide	some	of	the	 	(they	become	 )	
Use	the	remaining	 	to	predict	the	
32
TYPICAL	EVALUATION	PROTOCOL
Hide	some	of	the	 	(they	become	 )	
Use	the	remaining	 	to	predict	the	
RMSE	=	 	
The	average	error,	where	big	errors	are	heavily	penalized	(squared)	
32
TYPICAL	EVALUATION	PROTOCOL
Hide	some	of	the	 	(they	become	 )	
Use	the	remaining	 	to	predict	the	
RMSE	=	 	
The	average	error,	where	big	errors	are	heavily	penalized	(squared)	
Do	that	many	times	with	different	subsets:	this	is	cross-validation
32
CROSS	VALIDATION
												
data	=	Dataset.load_builtin('ml-100k')		#	download	dataset
data.split(n_folds=3)		#	3-folds	cross	validation
algo	=	SVD()
for	trainset,	testset	in	data.folds():
				algo.train(trainset)		#	fit	data
				predictions	=	algo.test(testset)		#	predict	ratings
				accuracy.rmse(predictions,	verbose=True)		#	print	RMSE
										
33
GRID-SEARCH
												
param_grid	=	{'n_epochs':	[5,	10],	'lr_all':	[0.002,	0.005],
														'reg_all':	[0.4,	0.6]}
grid_search	=	GridSearch(SVD,	param_grid,
																									measures=['RMSE',	'FCP'])
data	=	Dataset.load_builtin('ml-100k')
data.split(n_folds=3)
grid_search.evaluate(data)		#	will	evaluate	each	combination
print(grid_search.best_score['RMSE'])
print(grid_search.best_params['RMSE'])
algo	=	grid_search.best_estimator['RMSE'])
										
34
MAIN	FEATURES
Built-in	evaluation	measures	(RMSE,	MAE...)
35
EVALUATION	TOOLS
Can	also	compute	Recall,	Precision	and	top-N	related
measures	easily
												
for	trainset,	testset	in	data.folds():
				algo.train(trainset)		#	fit	data
				predictions	=	algo.test(testset)		#	predict	ratings
				accuracy.rmse(predictions)
				accuracy.mae(predictions)
				accuracy.fcp(predictions)
										
36
MAIN	FEATURES
Model	persistence
37
MODEL	PERSISTENCE
Can	also	dump	the	predictions	to	analyze	and
carefully	compare	algorithms	with	pandas
												
#	...	grid	search
algo	=	grid_search.best_estimator['RMSE'])
#	dump	algorithm
file_name	=	os.path.expanduser('~/dump_file')
dump.dump(file_name,	algo=algo)
#	...
#	Close	Python,	go	to	bed
#	...
#	Wake	up,	reload	algorithm,	profit
_,	algo	=	dump.load(file_name)
										
38
OUTLINE
1.	 THE	NEIGHBORHOOD	METHOD	(K-NN)
2.	 OVERVIEW	OF	
( )
3.	 MATRIX	FACTORIZATION
SURPRISE
http://surpriselib.com
39
3.	 MATRIX	FACTORIZATION
39
MATRIX
FACTORIZATION
40
MATRIX	FACTORIZATION
A	lot	of	hype	during	the	Netflix	Prize	
(2006-2009:	improve	our	system,	get	rich)
Model	the	ratings	in	an	insightful	way
Takes	its	root	in	dimensional	reduction	and	SVD
41
BEFORE	SVD:	PCA
Here	are	400	greyscale	images	(64	x	64):
	 	 	 	 	 	 	 	 	
Put	them	in	a	400	x	4096	matrix	 :
42
PCA	also	gives	you	the	 .	
In	advance:	you	don't	need	all	the	400	guys
	
BEFORE	SVD:	PCA
PCA	will	reveal	400	of	those	creepy	typical	guys:	
	 	 	 	 	 	 	 	 	 	
These	guys	can	build	back	all	of	the	original	faces	
43
PCA	ON	A	RATING	MATRIX?	SURE!
Assume	all	ratings	are	known	
	
Exact	same	thing!	We	just	have	ratings	instead	of	pixels.	
PCA	will	reveal	typical	users.
44
PCA	ON	A	RATING	MATRIX?	SURE!
Assume	all	ratings	are	known	
	
Exact	same	thing!	We	just	have	ratings	instead	of	pixels.	
PCA	will	reveal	typical	users.
	 	 	 	 	 	 	 	
44
PCA	ON	A	RATING	MATRIX?	SURE!
Assume	all	ratings	are	known.	Transpose	the	matrix	
	
Exact	same	thing!	PCA	will	reveal	typical	movies.
45
PCA	ON	A	RATING	MATRIX?	SURE!
Assume	all	ratings	are	known.	Transpose	the	matrix	
	
Exact	same	thing!	PCA	will	reveal	typical	movies.
	 	 	 	 	 	 	 	
Note:	in	practice,	the	factors	semantic	is	not	clearly	defined.
45
SVD	IS	PCA2
PCA	on	 	gives	you	the	typical	users	
PCA	on	 	gives	you	the	typical	movies	
SVD	gives	you	both	in	one	shot! 	
46
SVD	IS	PCA2
PCA	on	 	gives	you	the	typical	users	
PCA	on	 	gives	you	the	typical	movies	
SVD	gives	you	both	in	one	shot! 	
	is	diagonal,	it's	just	a	scaler.
This	is	our	matrix	factorization!
46
THE	MODEL	OF	SVD
47
THE	MODEL	OF	SVD
47
THE	MODEL	OF	SVD
47
THE	MODEL	OF	SVD
Rating(Alice,	Titanic)	will	be	high
Rating(Bob,	Titanic)	will	be	low
47
SO	HOW	TO	COMPUTE	 	AND	 ?
Columns	of	 	are	the	eigenvectors	of	
Columns	of	 	are	the	eigenvectors	of	
Associated	eigenvalues	make	up	the	diagonal	of	
There	are	very	efficient	algorithms	in	the	wild
	
48
SO	HOW	TO	COMPUTE	 	AND	 ?
Columns	of	 	are	the	eigenvectors	of	
Columns	of	 	are	the	eigenvectors	of	
Associated	eigenvalues	make	up	the	diagonal	of	
There	are	very	efficient	algorithms	in	the	wild
	
Alternate	option:	find	the	 s	and	the	 s	that	minimize	the	reconstruction	error
(With	some	orthogonality	constraints).	There	are	also	very	efficient	algorithms	in	the	wild
48
SO	HOW	TO	COMPUTE	 	AND	 ?
Columns	of	 	are	the	eigenvectors	of	
Columns	of	 	are	the	eigenvectors	of	
Associated	eigenvalues	make	up	the	diagonal	of	
There	are	very	efficient	algorithms	in	the	wild
	
Alternate	option:	find	the	 s	and	the	 s	that	minimize	the	reconstruction	error
(With	some	orthogonality	constraints).	There	are	also	very	efficient	algorithms	in	the	wild
So,	piece	of	cake	right?
48
OOPS!
49
WE	ASSUMED	THAT	 	WAS	DENSE
But	it's	not!	99%	are	missing
	and	 	are	not	even	defined
So	 	and	 	are	not	defined	either
There	is	no	SVD	
50
WE	ASSUMED	THAT	 	WAS	DENSE
But	it's	not!	99%	are	missing
	and	 	are	not	even	defined
So	 	and	 	are	not	defined	either
There	is	no	SVD	
Two	options:
Fill	the	missing	entries	with	a	simple	heuristic
"	Let's	just	not	give	a	damn	"	--	Simon	Funk	(ended-
up	top-3	of	the	Netflix	Prize	for	some	time)
50
Dense	case:	find	the	 s
and	the	 s	that	minimize
the	total	reconstruction
error	
(With	orthogonality
constraints)
Sparse	case:	find	the	 s
and	the	 s	that	minimize
the	partial	reconstruction
error	
(Forget	about
orthogonality)
APPROXIMATION
51
Dense	case:	find	the	 s
and	the	 s	that	minimize
the	total	reconstruction
error	
(With	orthogonality
constraints)
Sparse	case:	find	the	 s
and	the	 s	that	minimize
the	partial	reconstruction
error	
(Forget	about
orthogonality)
APPROXIMATION
Basically	the	same,	except	we	don't	have	all	the
ratings	(and	we	don't	care)
51
We	want	the	value	 	such	that	
is	minimal:
Compute	
Randomly	initialize	
	(do	this
until	you're	fed	up)
MINIMIZATION	BY	GRADIENT	DESCENT
52
MINIMIZATION	BY	(STOCHASTIC)	GRADIENT	DESCENT
Our	parameter	 	is	 	for	all	 	and	 .	The	function	 	to	be	minimized	is:
												
def	compute_SVD():
				'''Fit	pu	and	qi	to	known	ratings	by	SGD'''
				p	=	np.random.normal(size=F)
				q	=	np.random.normal(size=F)
				for	iter	in	range(n_max_iter):
								for	u,	i,	r_ui	in	rating_hist:
												err	=	r_ui	-	np.dot(p[u],	q[i])
												p[u]	=	p[u]	+	learning_rate	*	err	*	q[i]
												q[i]	=	q[i]	+	learning_rate	*	err	*	p[u]
def	estimate_rating(u,	i):
				return	np.dot(p[u],	q[i])
										
53
SOME	LAST	DETAILS
Unbias	the	ratings,	add	regularization:	you	get	"SVD":	
54
SOME	LAST	DETAILS
Unbias	the	ratings,	add	regularization:	you	get	"SVD":	
Good	ol'	fashioned	ML	paradigm:
Assume	a	model	for	your	data	( )
Fit	your	model	parameters	to	the	observed	data
Praise	the	Lord	and	hope	for	the	best
54
A	FEW	REMARKS
	is	mostly	a	tool	for	algorithms	that	predict
ratings.	RS	do	much	more	than	that.
Focus	on	explicit	ratings	(implicit	ratings	algorithms
will	come,	hopefully)
Not	aimed	to	be	a	complete	tool	for	building	RS
from	A	to	Z	(check	out	 )
Not	aimed	to	be	the	most	efficient	implementation
(check	out	 )
Surprise
Mangaki
LightFM
55
SOME	REFERENCES
Can't	recommend	enough	(pun	intended)
Aggarwal's	Recommender	Systems	-	The	Textbook
Jeremy	Kun's	 	(great	insights	on	 	and	 )blog PCA SVD
56
THANKS!
57

More Related Content

PDF
I.INFORMED SEARCH IN ARTIFICIAL INTELLIGENCE II. HEURISTIC FUNCTION IN AI III...
PDF
Deep Learning for Recommender Systems
PDF
Building Recommender Systems for Fashion
PPTX
AI - Local Search - Hill Climbing
PDF
Recommender Systems
PDF
Tutorial on Deep Learning in Recommender System, Lars summer school 2019
PPTX
Bio-inspired computing Algorithms.pptx
PDF
PR-132: SSD: Single Shot MultiBox Detector
I.INFORMED SEARCH IN ARTIFICIAL INTELLIGENCE II. HEURISTIC FUNCTION IN AI III...
Deep Learning for Recommender Systems
Building Recommender Systems for Fashion
AI - Local Search - Hill Climbing
Recommender Systems
Tutorial on Deep Learning in Recommender System, Lars summer school 2019
Bio-inspired computing Algorithms.pptx
PR-132: SSD: Single Shot MultiBox Detector

What's hot (20)

PPTX
Recommendation system
KEY
Recommender Engines
PPTX
Recommendation Systems
PDF
Recommendation engines
PDF
Entity2rec recsys
PDF
Informed search
PPTX
Few shot learning/ one shot learning/ machine learning
PPTX
1.1 What are Agent and Environment.pptx
PPTX
Statistical learning
PDF
Matrix Factorization In Recommender Systems
PPTX
Unit 2 ai
PPT
Searching methodologies
PDF
Achieving Algorithmic Transparency with Shapley Additive Explanations (H2O Lo...
PPTX
Optimization in Deep Learning
PPT
Recommendation system
PPTX
Uninformed Search technique
PPTX
cnn ppt.pptx
PDF
An introduction to Recommender Systems
PPT
3.6 constraint based cluster analysis
PPTX
AI_Session 3 Problem Solving Agent and searching for solutions.pptx
Recommendation system
Recommender Engines
Recommendation Systems
Recommendation engines
Entity2rec recsys
Informed search
Few shot learning/ one shot learning/ machine learning
1.1 What are Agent and Environment.pptx
Statistical learning
Matrix Factorization In Recommender Systems
Unit 2 ai
Searching methodologies
Achieving Algorithmic Transparency with Shapley Additive Explanations (H2O Lo...
Optimization in Deep Learning
Recommendation system
Uninformed Search technique
cnn ppt.pptx
An introduction to Recommender Systems
3.6 constraint based cluster analysis
AI_Session 3 Problem Solving Agent and searching for solutions.pptx
Ad

Viewers also liked (8)

PDF
PyParis 2017 / Un mooc python, by thierry parmentelat
PDF
Rekomendujemy - Szybkie wprowadzenie do systemów rekomendacji oraz trochę wie...
PPT
How To Implement a CMS
PPTX
Content based filtering
PPTX
How to Build Recommender System with Content based Filtering
PPTX
How to build a Recommender System
PDF
Systemy rekomendacji
PPTX
Collaborative Filtering using KNN
PyParis 2017 / Un mooc python, by thierry parmentelat
Rekomendujemy - Szybkie wprowadzenie do systemów rekomendacji oraz trochę wie...
How To Implement a CMS
Content based filtering
How to Build Recommender System with Content based Filtering
How to build a Recommender System
Systemy rekomendacji
Collaborative Filtering using KNN
Ad

Similar to Collaborative filtering for recommendation systems in Python, Nicolas Hug (20)

PPTX
Recommendation_Systems_Beginners_ppt.pptx
PPTX
Lecture Notes on Recommender System Introduction
PDF
Tutorial 14 (collaborative filtering)
PPT
Digital Trails Dave King 1 5 10 Part 2 D3
PPTX
collaborativefiltering-150228122057-conversion-gate02.pptx
PDF
Recommendation System Explained
PDF
A recommendation engine for your php application
PPT
Filtering content bbased crs
PPTX
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
PPT
Personalizing the web building effective recommender systems
PDF
[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...
PDF
A recommendation engine for your applications - M.Orselli - Codemotion Rome 17
PPT
Collab filtering-tutorial
PDF
Introduction to Recommender Systems
PDF
Summary of a Recommender Systems Survey paper
PDF
Notes on Recommender Systems pdf 2nd module
PDF
Survey of Recommendation Systems
PPT
Recommenders.ppt
PPT
Recommenders.ppt
PDF
[系列活動] 人工智慧與機器學習在推薦系統上的應用
Recommendation_Systems_Beginners_ppt.pptx
Lecture Notes on Recommender System Introduction
Tutorial 14 (collaborative filtering)
Digital Trails Dave King 1 5 10 Part 2 D3
collaborativefiltering-150228122057-conversion-gate02.pptx
Recommendation System Explained
A recommendation engine for your php application
Filtering content bbased crs
HABIB FIGA GUYE {BULE HORA UNIVERSITY}(habibifiga@gmail.com
Personalizing the web building effective recommender systems
[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...
A recommendation engine for your applications - M.Orselli - Codemotion Rome 17
Collab filtering-tutorial
Introduction to Recommender Systems
Summary of a Recommender Systems Survey paper
Notes on Recommender Systems pdf 2nd module
Survey of Recommendation Systems
Recommenders.ppt
Recommenders.ppt
[系列活動] 人工智慧與機器學習在推薦系統上的應用

More from Pôle Systematic Paris-Region (20)

PDF
OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
PDF
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
PDF
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
PDF
OSIS19_Cloud : Performance and power management in virtualized data centers, ...
PDF
OSIS19_Cloud : Des objets dans le cloud, et qui y restent -- L'expérience du ...
PDF
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
PDF
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...
PDF
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick Moy
PDF
Osis18_Cloud : Pas de commun sans communauté ?
PDF
Osis18_Cloud : Projet Wolphin
PDF
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
PDF
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
PDF
Osis18_Cloud : Software-heritage
PDF
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
PDF
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
PDF
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
PDF
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
PDF
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
PDF
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
PDF
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
OSIS19_IoT :Transparent remote connectivity to short-range IoT devices, by Na...
OSIS19_Cloud : SAFC: Scheduling and Allocation Framework for Containers in a ...
OSIS19_Cloud : Qu’apporte l’observabilité à la gestion de configuration? par ...
OSIS19_Cloud : Performance and power management in virtualized data centers, ...
OSIS19_Cloud : Des objets dans le cloud, et qui y restent -- L'expérience du ...
OSIS19_Cloud : Attribution automatique de ressources pour micro-services, Alt...
OSIS19_IoT : State of the art in security for embedded systems and IoT, by Pi...
Osis19_IoT: Proof of Pointer Programs with Ownership in SPARK, by Yannick Moy
Osis18_Cloud : Pas de commun sans communauté ?
Osis18_Cloud : Projet Wolphin
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
Osis18_Cloud : Software-heritage
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
KodekX | Application Modernization Development
PPT
Teaching material agriculture food technology
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Machine learning based COVID-19 study performance prediction
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Understanding_Digital_Forensics_Presentation.pptx
sap open course for s4hana steps from ECC to s4
Network Security Unit 5.pdf for BCA BBA.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KodekX | Application Modernization Development
Teaching material agriculture food technology
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Review of recent advances in non-invasive hemoglobin estimation
Spectral efficient network and resource selection model in 5G networks
20250228 LYD VKU AI Blended-Learning.pptx
Chapter 3 Spatial Domain Image Processing.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Machine learning based COVID-19 study performance prediction
The Rise and Fall of 3GPP – Time for a Sabbatical?
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Encapsulation_ Review paper, used for researhc scholars
Mobile App Security Testing_ A Comprehensive Guide.pdf

Collaborative filtering for recommendation systems in Python, Nicolas Hug