Machine Learning I 80-629A Apprentissage Automatique I...

91
Recommender Systems — Week #11 Machine Learning I 80-629A Apprentissage Automatique I 80-629

Transcript of Machine Learning I 80-629A Apprentissage Automatique I...

Page 1: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Recommender Systems— Week #11

Machine Learning I 80-629A

Apprentissage Automatique I 80-629

Page 2: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Introduction

• Recommendation task:

• Suggest items of interest to users

• Items: movies, books, articles, humans

• Users: humans

2

Page 3: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Is it worth our attention?

• Recommendation is the next search

• Search finds items (given a query)

• Recommendation finds items of interest

3

Page 4: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Is it worth our attention?

• Recommendation is the next search

• Search finds items (given a query)

• Recommendation finds items of interest

3

newnext

Page 5: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629 4

Page 6: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629 5

Page 7: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629 6

Page 8: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

• They are responsible for 4% of US marriages (from 2005 to 2012)

• And lower divorce rates

7 [Cacioppo’13]

Page 9: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Machine Learning for Recommender Systems

• Task: Suggest items of interest to users

• From data how do you determine what denotes interest?

• Item-specific signal (supervised learning)

1. Score: rating, bid

2. Consumption: click, buy, watch, bookmark

8

Page 10: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

ML PredictionsData

• Imagine • The data are user ratings • Task: Recommend items the user will like

• How do we set it up as a machine learning problem?

9

Page 11: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

ML PredictionsData

• Imagine • The data are user ratings • Task: Recommend items the user will like

• How do we set it up as a machine learning problem?

•Task: What do we learn? What do we predict? What is the model? •Performance measure: How do we evaluate the results? •Experience: How does our model interact with data?

9

Page 12: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Framework for recommendation problems

10

Data

• User preferences

• User/Item features

Representation of user preferences Recommendations

• Model • E.g. Top-N recommendations

Page 13: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

• Task:

• How we we set it up?

1. Regression (Classification)

2. Ranking

RecommendationsRepresentation of user preferences

11

Page 14: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Ranking vs. RegressionA. Ranking models

• Computationally more expensive

• E.g., Have to consider a group of items (listwise)

B. Score models

• For each user:

1. Predict scores of all unseen items

2. Rank items (show top-K)

12

K : (Z, N�, N�, . . . , NR)! "# $ZXJW ZèX ZSXJJS NYJRX

! (W�, W�, . . . , WR)! "# $WFSP TK JFHM NYJR

K : (Z, N) ! R

Recommendations

Page 15: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Framework for recommendation problems

Data

• User preferences

• User/Item features

Representation of user preferences

PredictMissing Ratings

• Model

13

Page 16: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Score Prediction as regression

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

ZXJWX!NYJRX

K!!!"

!

"""#

� � · · · �� � · · · ����

� � � · · ·� � · · · �

$

%%%&

Train: Black Test : Red

³Ȓ<latexit sha1_base64="Gg1RJjRNZgtFRv8wzPNc3AMiHAk=">AAADZnicfVJdaxNBFJ1m/ahRa6uID74MpoUKMWziQ/tYaosFrVZq2kISy+zsTTpkPpaZuzFh2d/gq/40/4E/w9kklm5SvLBwOWfOnTNnb5RI4TAMf69Ugjt3791ffVB9+Ojx2pP1jadnzqSWQ5sbaexFxBxIoaGNAiVcJBaYiiScR8N3BX8+AuuE0V9xkkBPsYEWfcEZeqi9efrNbF6u18JGOC263DTnTY3M6+Ryo/KhGxueKtDIJXOu0wwT7GXMouAS8mo3dZAwPmQD6PhWMwWul03d5nTLIzHtG+s/jXSKVrduSDLlcQfWMsw7DpSIjIx7N4dmTDk3UZEfphheuUWuAG/jOin2d3uZ0EmKoPnMSz+VFA0t0qGxsMBRTnzDuBX+OZRfMcs4+gxLt0TGDJFFrs68z0ldpRKFNd9Lb8+mBhLgZXScasFNDAuoxDFaVg4vHonEzeMbz/LzUTlAxYQu4suOQI7A+2T0E6Rwzfp7C3r7QAwEuvpH/7t1/b0FGL5ekpTmHV9n/+bUR7/vo/934n8zb5VVuwfg98PCsdd+TsCzxmbdwzzrFtOiKDvM86pfv+bisi03Z61G822j9aVV29ufL+IqeUlekW3SJDtkjxyRE9ImnAjyg/wkvyp/grXgefBidrSyMtc8I6UK6F891B8U</latexit>

³ɖ<latexit sha1_base64="93swktouq51RxMys0UZ18PRJnIY=">AAADeXicfVLLbhMxFHUTHiW8UpDYsBlIKwUUoiRdwLIqragEhaKStlImRB7PTWrFj5F9JyQy8zNs4Yf4FjZ40lB1kgpLlq7O8T33+uhEieAWW63fa6XyjZu3bq/fqdy9d//Bw+rGoxOrU8Ogy7TQ5iyiFgRX0EWOAs4SA1RGAk6j8ducP52AsVyrLzhLoC/pSPEhZxQ9NKg+2QwRpjgXcgbizB1/TbPNQbXWarbmJ1gt2ouiRhbnaLBReh/GmqUSFDJBre21Wwn2HTXImYCsEqYWEsrGdAQ9XyoqwfbdfG4WbHkkDoba+KswmKOVrSstTnrcgjEUs54FySMt4v5VUUeltTMZeTFJ8dwuczl4HddLcfim77hKUgTFLnYZpiJAHeSGBTE3wFDMfEGZ4f47ATunhjL0thamRFqPkUa2Qf2es4ZMBXKjvxX+7uYLJMCK6DRVnOkYllCBUzS0aF484Yld2De98M9bZQEl5Sq3zx2AmIDfkwYfIYVL1s/N6foeH3G0jQ8+AarxzgCMX6y0FPQOL71/deyt3/XW/3vxP81r2yrhHvh8GDj0vZ8S8KwPXrifuTBXiyK3n2UVH7/2cthWi5NOs73d7Hzu1HZ2F0FcJ0/Jc1InbfKa7JADckS6hJHv5Af5SX6V/pSflevllxdPS2uLnsekcMrbfwERSydg</latexit>

14

Page 17: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Modelling?

• How do we set this up as a learning problem?

15

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

ZXJWX!NYJRX

K!!!"

!

"""#

� � · · · �� � · · · ����

� � � · · ·� � · · · �

$

%%%&

³ɖ = ǔ(³Ȓ)<latexit sha1_base64="gMe7379gCkvEiwYtKcfsq5qelWk=">AAADb3icfVJdaxNBFJ0mftT41eqDD4IMpoUU0pDEB30RijZY0Golpi3ko8zO3qRD5mOZuRsTlv0fvuq/8mf4D5xNYukmxQsLl3Pm3Dlz9gaRFA7r9d8bheKt23fubt4r3X/w8NHjre0np87ElkOHG2nsecAcSKGhgwIlnEcWmAoknAXj9xl/NgHrhNHfcBZBX7GRFkPBGXposNMexPQtHVbaA7O3c7FVrtfq86LrTWPZlMmyTi62Cx97oeGxAo1cMue6jXqE/YRZFFxCWurFDiLGx2wEXd9qpsD1k7ntlO56JKRDY/2nkc7R0u41SaI87sBahmnXgRKBkWH/+tCEKedmKvDDFMNLt8pl4E1cN8bhm34idBQjaL7wMowlRUOzmGgoLHCUM98wboV/DuWXzDKOPszcLYExY2SBqzLvc1ZVsURhzffc25O5gQh4Hp3GWnATwgoqcYqW5cMLJyJyy/imi/x8VA5QMaGz+JIjkBPwPhn9DDFcsf7ejK4cipFAV/3k/7uufrAA4701SW7e8VX2+20f/Tsf/b8T/5t5o6zUOwS/HxaOvfZLBJ41Num10qSXTQuCpJWmJb9+jdVlW29Om7XGq1rza7N80Fou4iZ5Tl6SCmmQ1+SAHJET0iGcWPKD/CS/Cn+Kz4ovinRxtLCx1DwluSru/QW4fiHL</latexit>

Page 18: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Collaborative Filtering (CF)

• Assumption:

• Users with past similar preferences will have similar future preferences

• Work horse used in many recommender systems

16

Page 19: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

CF- Neighbourhood approaches

1. For each user, find other users with similar past preferences

2. Predict that user’s missing preferences as the weighted combination of its neighbours’ preferences

17

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

ZXJWX!NYJRX

Page 20: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

CF- Neighbourhood

1. Find similarity between every

pair of users (or items)

2. Predict missing scores using a

user’s neighbours

18

8TZ!

8TZ

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&³ǣȅ٢ɖɖ٣ټ = ³)ɖ)

>³Ȓɖ0k³Ȓɖkk³Ȓɖ0k

<latexit sha1_base64="gBYx7pW858B8SAww6ncm0MKl4oo=">AAAD13icfVJNbxMxEHUaPtrwlcKRi0VaNZFClYQDXJAqaEUlKBSFpkXZJPI6k8SKd72yxyWRteKGuPLz4NfgTUPVTStGsjR6b2Y8fn5hIoXBRuN3Ya146/adu+sbpXv3Hzx8VN583DHKag4nXEmlz0JmQIoYTlCghLNEA4tCCafh9G3Gn56DNkLFX3CeQC9i41iMBGfooUEZtwKEGbq2iKq2bndqKX1Ng5Fm3FXb/cbA1voBqoS2+2rg7E6aukDCCAPZAY0L1NJAi/EEA72AVumsKV+Rbg3KlcZuYxH0etJcJhWyjOPB5tr7YKi4jSBGLpkx3WYjwZ5jGgWXkJYCayBhfMrG0PVpzCIwPbeQJ6XbHhnSkdL+xEgXaGn7SouLPG5Aa4Zp10AkQiWHvatDHYuMmUehHxYxnJhVLgNv4roWR696TsSJRYj5xS4jKykqmn0HHQoNHOXcJ4xr4Z9D+YR5+dF/Wu6WUKkpstDUmd9zXo+sRKHVt9zb3WKBBHgendlYcDWEFVTiDDXLizc8F4lZyje70M9LZQAjJuJMPncI8hz8nox+BAuXrL83o6v7YizQ1D94f8X1dxpgWrvWkpt3dKn987aX/o2X/l/F/2be2FYK9sH7Q8OR7/2UgGeVdsGBd202LQzdQZqWvP2aq2a7nnRau80Xu63Prcre4dKI6+QpeUaqpElekj1ySI7JCeHkT4EUNgql4tfi9+KP4s+L0rXCsucJyUXx11+hHUh5</latexit>

³ɖǴ =X

ɖ0

³ǣȅ(ɖ,ɖ0)³Ȓɖ0Ǵ,

8ɖ0ɎǝƏɎ ǝƏɮƺ ȸƏɎƺƳ Ǵ<latexit sha1_base64="e4WrTVv/01kbexGAgz0hIhc8G0w=">AAADwHicfVLbbhMxEHUbLiXcWnjkxaLqTQpRUpDgBakqragEhaLSi5QNkdc7adzY68Ueh4TVfh1fwSfwCj/AbBqqpq0YaaXxOTPH47MTZ1p5bDR+zsxWbty8dXvuTvXuvfsPHs4vPDr0NjgJB9Jq645j4UGrFA5QoYbjzIEwsYajuP+m5I8G4Lyy6WccZdA24iRVXSUFEtSZb0c9gfl+0cnDacFfL/PIB0OHlYJHCEOilClWQy2srPH9L7ZkTotaFPHqctS1TmjNw8qkFEmK98QAuBMICT8tOvOLjXpjHPxq0pwki2wSe52F2XdRYmUwkKLUwvtWs5FhOxcOldRQVKPgIROyL06gRWkqDPh2Pvah4EuEJJzGoi9FPkarSxdackO4B0fzFS0PRsVWJ+2Lorkw3o9MTGJGYM9f5krwOq4VsPuqnas0CwipPJulGzRHy0vfeaIcSNQjSoR0ip7DZU84IZH+ztQtsbV9FLGvCZpzVDNBo3L229Tb8/EAGchpdBhSJW0Cl1CNQ3Ri2rxkoDI/sW945h9Z5QGNUGlpX74DegA0p+AfIMA5S/eW9OqWOlHoa+9pkdLaWwfQX7vSMqW3e+79s32yfpOs/1fxP81r26rRFtB+ONil3o8ZEGtdHm0XeVSqxXG+XRRVWr/m5WW7mhyu15vP6+ufXixu7EwWcY49YU/ZKmuyl2yD7bA9dsAk+8F+sd/sT2Wz0qvYytez0tmZSc9jNhWV738BC4VBeA==</latexit>

Page 21: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

CF- Neighbourhood approaches

• Non-parametric approach

• A user is represented by a weighted combination of its neighbours

• New users can change one’s recommendations

• Different distance functions to capture different effects

• Ratings vs. clicks

• Could consider additional information

19

• Works well empirically

• Building similarity matrix can be slow (offline)

• Not probabilistic

Page 22: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

CF - Matrix factorization

! !

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&"

!

""#

$

%%&

' (P

ZXJ

WXNYJRX

ZXJ

WX

P

• Assumption: the observation matrix is low-rank

• Estimates user and item representations

• k is a hyperparameter4GOJHYN[J�!

Z

!N(8ZN ! 8ZN)

2TIJQ� 8ZN := !!Z "N

P << RNS(|:XJWX|, |.YJRX|)

5FWFRJYJWX� !Z !Z,"N !N

[Salakhutdinov, Mnih, ’08]

Page 23: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

CF - Matrix factorization. Alternative view.

2TIJQ� 8ZN := !!Z "N

XȅƏǕǣȇƺ ɎǝƏɎ ✓ɖټɀ Əȸƺ ǔƺƏɎɖȸƺɀ Ȓǔ ɖɀƺȸɀ<latexit sha1_base64="zZAe0hS+VI4CtG2ZoLRBOiOF9xM=">AAADmXicfVJtbxJBEN4WXyq+lOrHftlIG2uCBDBRP1YtEV+qNZW2CUfI3jIHG/ZuL7tzCLncP/HX+FX/gP/GOcCmQOMkm0yeZ+eZmSfjx1o5rNX+bGwWbty8dXvrTvHuvfsPtks7D8+cSayEtjTa2AtfONAqgjYq1HARWxChr+HcH73N+fMxWKdM9A2nMXRDMYhUoKRAgnqlFx7CBNP3BJMCx6FAvufhEFD0kr0njgsLPACBiQXHTcATR2pZr1SuVWuz4OtJfZGU2SJOejubH72+kUkIEUotnOvUazF2U2FRSQ1Z0SPhWMiRGECH0kiE4LrpbMGM7xPS54Gx9CLkM7S4f6UkDQmnyazArOMgVL7R/e5V0VSEzk1Dn8RCgUO3yuXgdVwnweBVN1VRnCBEcj5LkGiOhueG8r6yIFFPKRHSKlqHy6GwQiIZtdTFN2aEwncVQXNOK2GiUVnzfWn3dDZADHIZnSSRkqYPK6jGCVqxbF5/rGK3sG8y94+scoChUFFuX9oCPQaaU/DPkMAlS31z+uBIDRS6yie6kKjyzgKMnq6VLOkdX3r/7JSsf0PW//vxP81ry4reEdB9WDim2i8xEGts6jWz1MvVfD9tZlmRzq++emzryVmjWn9ebXxtlA+bi0PcYrvsMTtgdfaSHbIWO2FtJtkP9pP9Yr8Lu4XXhVbhw/zr5sai5hFbisLpX/qMMtU=</latexit>

The model is then a linear regression for each item:

8ZN = ��Z �N

=�

P

�ZP�NP

=�

P

�Z��N� + �Z��N� + . . . + �ZU�NU

³ǣȇƬƺ Ɏǝƺ ȅȒƳƺǼ ǣɀ ɀɵȅȅƺɎȸǣƬ ǣȇ ✓ ƏȇƳ �<latexit sha1_base64="ovWllM9T6yJ8Ho0Z3bPA8YOvcL8=">AAADnHicfVJdbxJBFJ12/aj4RfXRxEykTWqCBPBBfWsUYpOK1lRoE5aQ2dkLTJiPzcxdhGz4Lf4aX/XZf+MsYFOg8SabnDln7p17z94okcJhtfpnZze4dfvO3b17hfsPHj56XNx/0nEmtRza3EhjLyPmQAoNbRQo4TKxwFQk4SIaf8j1iwlYJ4z+hrMEeooNtRgIztBT/eK7c6E5UBwBVSYGSYWjbqYUoBWcCk0PQq8hO6BMx/4Q5bhMw7DQL5aqleoi6DaorUCJrOKsv797GsaGpwo0csmc69aqCfYyZlFwCfNCmDpIGB+zIXQ91EyB62WLGef00DMxHRjrP410wRYOr6VkyvMOrGU47zpQIjIy7l0vmjHl/GyRL6YYjtymlpM3ad0UB297mdBJiqD5spdBKikamntKY2GBo5x5wLgVfhzKR8wyjt75tVciY8bIIldmvs9ZWaUShTXf12bPFg0kwNfZaaoF979og5U4RcvWzYsnInEr+6ZL/7xVDlAxoXP7shOQE/B9MvoZUrhS/bu5fNQQQ4Gu/MkviS5/tADjl1spa/VaV96/OvfWv/fW/7vxv5o3phXCBvj9sNDyuV8S8KqxWdicZ2FeLYqy5nyer19tc9m2Qadeqb2u1L/WS8fN1SLukWfkBTkiNfKGHJMTckbahJMf5Cf5RX4Hz4NGcBq0lld3d1Y5T8laBJ2/oo4x+A==</latexit>

�ǣټɀ ƬƏȇ ƫƺ ɀƺƺȇ Əɀ ǔƺƏɎɖȸƺɀ Ȓǔ ǣɎƺȅɀ<latexit sha1_base64="7D815S2dDysALB6XaydF+EiPRdk=">AAADj3icfVLbbhMxEHWzXEq4JfDIi0VaUaQQJeGhPKEIGlEEhSJIWykbRV7vbGrFa6/s2ZBotT/B1/AKf8Hf4E1C1U0rRrI0OsdzZuZogkQKi+32n62Kd+Pmrdvbd6p3791/8LBWf3RidWo4DLiW2pwFzIIUCgYoUMJZYoDFgYTTYPq24E9nYKzQ6hsuEhjFbKJEJDhDB41rzR0/AGRjsfPMUs4UDYBaAEWZpREwTA1YqiMqEGI7rjXarfYy6NWks04aZB3H43rlgx9qnsagkEtm7bDTTnCUMYOCS8irfmohYXzKJjB0qWIx2FG2XCunuw4JaaSNewrpEq3uXirJYodbMIZhPrQQi0DLcHRZNGOxtYs4cGIxw3O7yRXgddwwxejVKBMqSREUX80SpZKipoWNNBQGOMqFSxg3wq1D+TkzjKMzu9Ql0HqKLLBN5uZcNONUojD6e2n3bDlAAryMzlMluA5hA5U4R8PK5oUzkdi1ffOVf84qCxgzoQr7skOQM3BzMvoJUrhgXd+C3jsQE4G2+dHdhWq+MwDT51dKSnpHF96/+Oqsf+Os//fjf5rXllX9A3D3YeDI1X5OwLHaZH4/z/xCLQiyfp5X3fl1No/tanLSbXVetrpfuo1ef32I2+QJeUr2SIfskx45JMdkQDj5QX6SX+S3V/f2vddeb/W1srWueUxK4b3/C3hNLbc=</latexit>

Page 24: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Model fitting

22

4GOJHYN[J�!

Z

!N(8ZN ! 8ZN)

Page 25: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Model fitting

• Joint parameter optimization

• Gradient descent:

22

4GOJHYN[J�!

Z

!N(8ZN ! 8ZN)

(!!,!")

Page 26: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Model fitting

• Joint parameter optimization

• Gradient descent:

• Alternate optimization

1. Fix , update

2. Fix , update

• Each step is a (regularized) least-squares problem

• This procedure is known as alternating least squares (ALS)

22

4GOJHYN[J�!

Z

!N(8ZN ! 8ZN)

(!!,!")

!

!

!

!

Page 27: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629 [Gopalan et al.’15]

³Ȓ<latexit sha1_base64="tLCIkkDdXQZhailHdnxP8x9V8rA=">AAADZnicfVJdaxNBFJ1m/ahRa6uID74spoUKadjEB30s2mBBq5WatpDEMjN7kw6Zj2XmbkxY9jf4qj/Nf+DPcDaJpZsULyxczplz58zZyxIpHEbR77VKcOv2nbvr96r3HzzceLS59fjUmdRy6HAjjT1n1IEUGjooUMJ5YoEqJuGMjd4V/NkYrBNGf8VpAn1Fh1oMBKfooc72yTezfbFZixrRrMLVprloamRRxxdblQ+92PBUgUYuqXPdZpRgP6MWBZeQV3upg4TyER1C17eaKnD9bOY2D3c8EocDY/2nMZyh1Z1rkkx53IG1FPOuAyWYkXH/+tCMKuemivlhiuKlW+YK8Caum+LgTT8TOkkRNJ97GaQyRBMW6YSxsMBRTn1DuRX+OSG/pJZy9BmWbmHGjJAyV6fe57SuUonCmu+lt2czAwnwMjpJteAmhiVU4gQtLYcXj0XiFvFN5vn5qBygokIX8WWHIMfgfdLwE6Rwxfp7C3r3QAwFuvpH/7t1/b0FGL1ckZTmHV1lv3fio3/ro/934n8zb5RVewfg98PCkdd+TsCzxma9dp71immMZe08r/r1ay4v22pz2mo0XzVaX1q1/fZiEdfJc/KC7JImeU32ySE5Jh3CiSA/yE/yq/In2AieBs/mRytrC80TUqog/As+ux8X</latexit>

³ɖ<latexit sha1_base64="IZFAM7vjEKeqHbfGZVgI+/YNh2U=">AAADZnicfVJdaxNBFJ1m/ahRa6uID74spoUKadjEB30s2mBBq5WatpDEMjN7kw6Zj2XmbkxY9jf4qj/Nf+DPcDaJpZsULyxczplz58zZyxIpHEbR77VKcOv2nbvr96r3HzzceLS59fjUmdRy6HAjjT1n1IEUGjooUMJ5YoEqJuGMjd4V/NkYrBNGf8VpAn1Fh1oMBKfooc72ybd0+2KzFjWiWYWrTXPR1Miiji+2Kh96seGpAo1cUue6zSjBfkYtCi4hr/ZSBwnlIzqErm81VeD62cxtHu54JA4HxvpPYzhDqzvXJJnyuANrKeZdB0owI+P+9aEZVc5NFfPDFMVLt8wV4E1cN8XBm34mdJIiaD73MkhliCYs0gljYYGjnPqGciv8c0J+SS3l6DMs3cKMGSFlrk69z2ldpRKFNd9Lb89mBhLgZXSSasFNDEuoxAlaWg4vHovELeKbzPPzUTlARYUu4ssOQY7B+6ThJ0jhivX3FvTugRgKdPWP/nfr+nsLMHq5IinNO7rKfu/ER//WR//vxP9m3iir9g7A74eFI6/9nIBnjc167TzrFdMYy9p5XvXr11xettXmtNVovmq0vrRq++3FIq6T5+QF2SVN8prsk0NyTDqEE0F+kJ/kV+VPsBE8DZ7Nj1bWFponpFRB+BdQtR8d</latexit>

xƏɎȸǣɴ IƏƬɎȒȸǣɿƏɎǣȒȇ<latexit sha1_base64="FWAP6zysTFlDPb6Ah05ED37ZePs=">AAADgHicfZLbbtNAEIa3MYcSTilcIiSLtFKQQhqHCxBXFTRQCQpFkLZSbEXr9SRZZe21dschYeUrnoZbeBrehnUSqjqpWMnS6P93Zmc+T5gKrrHd/rNVca5dv3Fz+1b19p279+7Xdh6capkpBj0mhVTnIdUgeAI95CjgPFVA41DAWTh5U/hnU1Cay+QrzlMIYjpK+JAzilYa1B7v+ggzNMcUFZ+5bylDqfj3hZvvDmr1dqu9OO5m4K2COlmdk8FO5b0fSZbFkCATVOu+104xMFQhZwLyqp9pSCmb0BH0bZjQGHRgFnPk7p5VIncolf0SdBdqde9SiomtrkEpinlfQ8xDKaLgclFDY63ncWiLxRTHet0rxKu8fobDl4HhSZohJGzZyzATLkq34OZGXAFDMbcBZYrbcVw2psrysnRLr4RSTpCGukltn/NmnAnkSn4rzW4WDaTAyuosSziTEaypAmeoaBleNOWpXuGbLflZVBowpjwp8JkjEFOwfVL3I2Rw4dp3C7txyEccdfOD/dVJ850CmDzdSCnVO75g/+yLRf/aov934381r0yr+odg90OB3bvxpxSsK5Xxu7nxi2phaLp5XrXr560v22Zw2ml5z1udz536QXe1iNvkEXlCGsQjL8gBOSInpEcY+UF+kl/kt1NxGs6+4y2vVrZWOQ9J6Tiv/gKjzCkk</latexit>

Page 28: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629 [Gopalan et al.’15]

6K Users 4K Movies 1M Ratings

480K Users 17.7K Movies

100M Ratings

80K Users 260K Sci. articles

100M Ratings

ƏȸǕɀȒȸɎǣ �ǣǸ<latexit sha1_base64="rco/y38TxGTkpZ2YhzGwwgcHLNM=">AAADj3icfVJdaxNBFJ1m/ajxK9FHXxbTQoUYkvhQoVCCNljRakXTFrIhzM7epENmZ5aZuzFh2D/hr/FV/4X/xtkklm5SvLDs5Zw59+Nww0Rwg83mn62Sd+v2nbvb98r3Hzx89LhSfXJmVKoZ9JgSSl+E1IDgEnrIUcBFooHGoYDzcPI258+noA1X8hvOExjEdCz5iDOKDhpW6jsBwgwt1WOjNGZD7gcHQahEZOax+9kgBKTZ0PJJtjOs1JqN5iL8zaS1SmpkFafDaulDECmWxiCRCWpMv9VMcOC6IWcCsnKQGkgom9Ax9F0qaQxmYBdrZf6uQyJ/pLT7JPoLtLx7TWJjhxvQmmLWNxDzfO7B9aKWxiZfxBWLKV6adS4Hb+L6KY5eDyyXSYog2XKWUSp8VH5uox9xDQzF3CWUae7W8dkl1ZShM7vQJVRqgjQ0dermnNfjVCDX6nthd7sYIAFWRGep5ExFsIYKnKGmRfOiKU/Myr7Z0j9nlQGMKZe5ffYYxBTcnNT/BClcsa5vTu8d8TFHU//o7kLW32mAyYsNSaHeyZX3L78669846/+9+F/NG2Xl4AjcfWg4cdrPCThWaRt0Mxvk1cLQdrOs7M6vtX5sm8lZu9F61Wh/adc63dUhbpNn5DnZIy2yTzrkmJySHmHkB/lJfpHfXtXb9w69zvJpaWuleUoK4b3/C3AqL/c=</latexit>

Model Exporation

Page 29: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Probabilistic matrix factorization

25

Gaussian Matrix

Factorization[Gopalan et al. ’15]

[wikipedia] [wikipedia]

[Salakhutdinov et al. ’08]

Poisson Matrix

Factorization

(Sui � Sui)2

�u � N (a, b)

�i � N (c, d)

Sui � N (��u �i, �)

�u � Gamma(a, b)

�i � Gamma(c, d)

Sui � Poisson(��u �i)

Minimizing mean

squared error is

equivalent to

maximizing likelihood

under Gaussian noise

��u�2

��i�2

• Poisson factorization is correct • Gaussian factorization is incorrect

• In practice MF typically gives better performance than PF

Matrix Factorization

Page 30: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Towards CF with deep learning

26

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

Page 31: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Towards CF with deep learning

26

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

(User 1, Item 1, 3) (User 1, Item 2, 0) (User 2 Item 2, 0) (User n, Item 1, 2)

Page 32: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Towards CF with deep learning

26

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

(User 1, Item 1, 3) (User 1, Item 2, 0) (User 2 Item 2, 0) (User n, Item 1, 2)

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

Page 33: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Towards CF with deep learning

26

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

(User 1, Item 1, 3) (User 1, Item 2, 0) (User 2 Item 2, 0) (User n, Item 1, 2)

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

{z}|(3 ,0 … 0 1 ,0 … 0 1)ɵ

<latexit sha1_base64="eytSmRVTQsOvlXTTtjFsn2ENd/A=">AAADdXicfZLbbhMxEIbdhEMJp7RcIqQVSVGRQtgNF3BZQSMqQaEI0lbKRpHtnaRWfFjZ3pDI2lfhFl6JJ+EWbxKqblIx0kqj//eMx98OSTkzNgx/b1WqN27eur19p3b33v0HD+s7u6dGZZpCjyqu9DnBBjiT0LPMcjhPNWBBOJyRybvCP5uCNkzJb3aewkDgsWQjRrH10rC+24wzmYAmGlNwUT6cN4f1RtgOFxFsJtEqaaBVnAx3Kh/iRNFMgLSUY2P6UZjagcPaMsohr8WZgRTTCR5D36cSCzADtxg+D/a8kgQjpf0nbbBQa3tXSpzwugGtsc37BgQjiieDq00dFsbMBfHNBLYXZt0rxOu8fmZHbwaOyTSzIOlyllHGA6uCAlaQMA3U8rlPMNXMPyegF9ijsh5p6Rai1MRiYlrYzzlviYxbptX30tvdYoAUaFmdZZJRlcCayu3MalyGl0xZalb4Zkt+HpUBKzCTBT53BHwKfk4cfIIMLl1/b2HvH7Ixs6b10f992XqvASbPN0pK/Y4v2b/46tG/9ej/nfhfz2vLavEh+P3QcOxrP6fgXaVd3M1dXHQjxHXzvObXL1pfts3ktNOOXrU7XzqNg+5qEbfRY/QU7aMIvUYH6AidoB6iaIZ+oJ/oV+VP9Um1WX22PFrZWtU8QqWovvwLDZklIg==</latexit>

| {z }ɴ

<latexit sha1_base64="ZOqxQI7sPyEbcoXSfVRl3yMMeFc=">AAADoHicjZJdaxNBFIanWT9q/Giql94sTQsVYkjihYIIRRsMaG2Lpi1mQ5iZPUmHzMcyMxsThv01/hpv9cp/42wSSzcp4iwLh/edc+ach0MSzoxtNH5vlIJbt+/c3bxXvv/g4aOtyvbjM6NSTaFLFVf6gmADnEnoWmY5XCQasCAczsn4Xe6fT0AbpuQXO0ugL/BIsiGj2HppUHmzG6UyBk00puCi1///ZYPp7qBSbdQb8xOuB81lUEXLczLYLn2IYkVTAdJSjo3pNRuJ7TusLaMcsnKUGkgwHeMR9HwosQDTd/M5s3DPK3E4VNr/0oZztbx3LcUJrxvQGtusZ0Awonjcv17UYWHMTBBfTGB7aVa9XLzJ66V2+KrvmExSC5IuehmmPLQqzLmGMdNALZ/5AFPN/DghvcSeqvX0C68QpcYWE1PDvs9ZTaTcMq2+FWZ38wYSoEV1mkpGVQwrKrdTq3ERXjxhiVnimy74eVQGrMBM5vhcB/gEfJ84/AQpXLn+3dzeP2QjZk3to18UWXuvAcbP1lIK9Y6u2D//7NG/9ej/3vhXzRvTytEh+P3QcORzjxPwrtIuamcuyqsR4tpZVvbr11xdtvXgrFVvvqi3TlvVg/ZyETfRU7SD9lETvUQHqINOUBdR9B39QD/Rr2An6ATHweniamljmfMEFU7w9Q/R5TKZ</latexit>

Page 34: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Towards CF with deep learning

26

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

(User 1, Item 1, 3) (User 1, Item 2, 0) (User 2 Item 2, 0) (User n, Item 1, 2)

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

{z}|(3 ,0 … 0 1 ,0 … 0 1)ɵ

<latexit sha1_base64="eytSmRVTQsOvlXTTtjFsn2ENd/A=">AAADdXicfZLbbhMxEIbdhEMJp7RcIqQVSVGRQtgNF3BZQSMqQaEI0lbKRpHtnaRWfFjZ3pDI2lfhFl6JJ+EWbxKqblIx0kqj//eMx98OSTkzNgx/b1WqN27eur19p3b33v0HD+s7u6dGZZpCjyqu9DnBBjiT0LPMcjhPNWBBOJyRybvCP5uCNkzJb3aewkDgsWQjRrH10rC+24wzmYAmGlNwUT6cN4f1RtgOFxFsJtEqaaBVnAx3Kh/iRNFMgLSUY2P6UZjagcPaMsohr8WZgRTTCR5D36cSCzADtxg+D/a8kgQjpf0nbbBQa3tXSpzwugGtsc37BgQjiieDq00dFsbMBfHNBLYXZt0rxOu8fmZHbwaOyTSzIOlyllHGA6uCAlaQMA3U8rlPMNXMPyegF9ijsh5p6Rai1MRiYlrYzzlviYxbptX30tvdYoAUaFmdZZJRlcCayu3MalyGl0xZalb4Zkt+HpUBKzCTBT53BHwKfk4cfIIMLl1/b2HvH7Ixs6b10f992XqvASbPN0pK/Y4v2b/46tG/9ej/nfhfz2vLavEh+P3QcOxrP6fgXaVd3M1dXHQjxHXzvObXL1pfts3ktNOOXrU7XzqNg+5qEbfRY/QU7aMIvUYH6AidoB6iaIZ+oJ/oV+VP9Um1WX22PFrZWtU8QqWovvwLDZklIg==</latexit>

| {z }ɴ

<latexit sha1_base64="ZOqxQI7sPyEbcoXSfVRl3yMMeFc=">AAADoHicjZJdaxNBFIanWT9q/Giql94sTQsVYkjihYIIRRsMaG2Lpi1mQ5iZPUmHzMcyMxsThv01/hpv9cp/42wSSzcp4iwLh/edc+ach0MSzoxtNH5vlIJbt+/c3bxXvv/g4aOtyvbjM6NSTaFLFVf6gmADnEnoWmY5XCQasCAczsn4Xe6fT0AbpuQXO0ugL/BIsiGj2HppUHmzG6UyBk00puCi1///ZYPp7qBSbdQb8xOuB81lUEXLczLYLn2IYkVTAdJSjo3pNRuJ7TusLaMcsnKUGkgwHeMR9HwosQDTd/M5s3DPK3E4VNr/0oZztbx3LcUJrxvQGtusZ0Awonjcv17UYWHMTBBfTGB7aVa9XLzJ66V2+KrvmExSC5IuehmmPLQqzLmGMdNALZ/5AFPN/DghvcSeqvX0C68QpcYWE1PDvs9ZTaTcMq2+FWZ38wYSoEV1mkpGVQwrKrdTq3ERXjxhiVnimy74eVQGrMBM5vhcB/gEfJ84/AQpXLn+3dzeP2QjZk3to18UWXuvAcbP1lIK9Y6u2D//7NG/9ej/3vhXzRvTytEh+P3QcORzjxPwrtIuamcuyqsR4tpZVvbr11xdtvXgrFVvvqi3TlvVg/ZyETfRU7SD9lETvUQHqINOUBdR9B39QD/Rr2An6ATHweniamljmfMEFU7w9Q/R5TKZ</latexit> | {z }ɴ

<latexit sha1_base64="nvO9pmCjsWFg+thOlpupZW+g2VQ=">AAADjXicfZLtahNBFIanWbU1fjTVn/5ZTAtVYshGREGRog0taLWiaQvZJczOnqRD5mOZmY0Jw96DV+NfvQ3vxtkklm4SnGXh8L5zzpzzcOKUUW1arT8bFe/GzVubW7erd+7eu79d23lwpmWmCHSJZFJdxFgDowK6hhoGF6kCzGMG5/HofeGfj0FpKsU3M00h4ngo6IASbJzUrz3dDTORgIoVJmDD1+u+vG8nQb7br9Vbzdbs+KtBsAjqaHFO+zuVD2EiScZBGMKw1r2glZrIYmUoYZBXw0xDiskID6HnQoE56MjOhsr9Pack/kAq9wvjz9Tq3rUUy52uQSls8p4GTmPJkuh6UYu51lMeu2Icm0u97BXiOq+XmcGryFKRZgYEmfcyyJhvpF9A9BOqgBg2dQEmirpxfHKJHULjUJdeiaUcGRzrBnZ9Ths8Y4Yq+b00u501kAIpq5NMUCITWFKZmRiFy/CSMU31At9kzs+h0mA4pqLAZ4+BjcH1if1PkMGV694t7P1DOqRGNz66rRCNIwUwerKSUqp3csX+2VeH/p1D/+/G/2quTauGh+D2Q8GJy/2cgnOlsmEnt2FRLY5tJ8+rbv2C5WVbDc7azeB5s/2lXT/oLBZxCz1Cj9E+CtBLdICO0SnqIoJ+oJ/oF/rtbXsvvDfe2/nVysYi5yEqHe/oL8hKLIc=</latexit>

| {z }ɴא<latexit sha1_base64="2QOxxUqThtSwyPHKCNdvHc8ZGrI=">AAADjXicfZLtahNBFIanWbU1fjTVn/5ZTAtVYkgioqBI0YYWtFrRtIVsCDOzJ+mQ+VhmZmPCsPfg1fhXb8O7cTaJpZsEZ1k4vO+cM+c8HJJwZmyj8WejFNy4eWtz63b5zt1797crOw/OjEo1hQ5VXOkLgg1wJqFjmeVwkWjAgnA4J6P3uX8+Bm2Ykt/sNIGewEPJBoxi66V+5elulMoYNNGYgoter/uyvpu0st1+pdqoN2YnXA2ai6CKFue0v1P6EMWKpgKkpRwb0202EttzWFtGOWTlKDWQYDrCQ+j6UGIBpudmQ2XhnlficKC0/6UNZ2p571qKE143oDW2WdeAYETxuHe9qMPCmKkgvpjA9tIse7m4zuumdvCq55hMUguSznsZpDy0KswhhjHTQC2f+gBTzfw4Ib3EHqH1qAuvEKVGFhNTw77PaU2k3DKtvhdmd7MGEqBFdZJKRlUMSyq3E6txEV48ZolZ4JvM+XlUBqzATOb43DHwMfg+cfgJUrhy/bu5vX/Ihsya2ke/FbJ2pAFGT1ZSCvVOrtg/++rRv/Po/934X821aeXoEPx+aDjxuZ8T8K7SLmpnLsqrEeLaWVb269dcXrbV4KxVbz6vt760qgftxSJuoUfoMdpHTfQSHaBjdIo6iKIf6Cf6hX4H28GL4E3wdn61tLHIeYgKJzj6C8tKLIg=</latexit>

Page 35: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Towards CF with deep learning

26

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

(User 1, Item 1, 3) (User 1, Item 2, 0) (User 2 Item 2, 0) (User n, Item 1, 2)

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

{z}|(3 ,0 … 0 1 ,0 … 0 1)ɵ

<latexit sha1_base64="eytSmRVTQsOvlXTTtjFsn2ENd/A=">AAADdXicfZLbbhMxEIbdhEMJp7RcIqQVSVGRQtgNF3BZQSMqQaEI0lbKRpHtnaRWfFjZ3pDI2lfhFl6JJ+EWbxKqblIx0kqj//eMx98OSTkzNgx/b1WqN27eur19p3b33v0HD+s7u6dGZZpCjyqu9DnBBjiT0LPMcjhPNWBBOJyRybvCP5uCNkzJb3aewkDgsWQjRrH10rC+24wzmYAmGlNwUT6cN4f1RtgOFxFsJtEqaaBVnAx3Kh/iRNFMgLSUY2P6UZjagcPaMsohr8WZgRTTCR5D36cSCzADtxg+D/a8kgQjpf0nbbBQa3tXSpzwugGtsc37BgQjiieDq00dFsbMBfHNBLYXZt0rxOu8fmZHbwaOyTSzIOlyllHGA6uCAlaQMA3U8rlPMNXMPyegF9ijsh5p6Rai1MRiYlrYzzlviYxbptX30tvdYoAUaFmdZZJRlcCayu3MalyGl0xZalb4Zkt+HpUBKzCTBT53BHwKfk4cfIIMLl1/b2HvH7Ixs6b10f992XqvASbPN0pK/Y4v2b/46tG/9ej/nfhfz2vLavEh+P3QcOxrP6fgXaVd3M1dXHQjxHXzvObXL1pfts3ktNOOXrU7XzqNg+5qEbfRY/QU7aMIvUYH6AidoB6iaIZ+oJ/oV+VP9Um1WX22PFrZWtU8QqWovvwLDZklIg==</latexit>

| {z }ɴ

<latexit sha1_base64="ZOqxQI7sPyEbcoXSfVRl3yMMeFc=">AAADoHicjZJdaxNBFIanWT9q/Giql94sTQsVYkjihYIIRRsMaG2Lpi1mQ5iZPUmHzMcyMxsThv01/hpv9cp/42wSSzcp4iwLh/edc+ach0MSzoxtNH5vlIJbt+/c3bxXvv/g4aOtyvbjM6NSTaFLFVf6gmADnEnoWmY5XCQasCAczsn4Xe6fT0AbpuQXO0ugL/BIsiGj2HppUHmzG6UyBk00puCi1///ZYPp7qBSbdQb8xOuB81lUEXLczLYLn2IYkVTAdJSjo3pNRuJ7TusLaMcsnKUGkgwHeMR9HwosQDTd/M5s3DPK3E4VNr/0oZztbx3LcUJrxvQGtusZ0Awonjcv17UYWHMTBBfTGB7aVa9XLzJ66V2+KrvmExSC5IuehmmPLQqzLmGMdNALZ/5AFPN/DghvcSeqvX0C68QpcYWE1PDvs9ZTaTcMq2+FWZ38wYSoEV1mkpGVQwrKrdTq3ERXjxhiVnimy74eVQGrMBM5vhcB/gEfJ84/AQpXLn+3dzeP2QjZk3to18UWXuvAcbP1lIK9Y6u2D//7NG/9ej/3vhXzRvTytEh+P3QcORzjxPwrtIuamcuyqsR4tpZVvbr11xdtvXgrFVvvqi3TlvVg/ZyETfRU7SD9lETvUQHqINOUBdR9B39QD/Rr2An6ATHweniamljmfMEFU7w9Q/R5TKZ</latexit> | {z }ɴ

<latexit sha1_base64="nvO9pmCjsWFg+thOlpupZW+g2VQ=">AAADjXicfZLtahNBFIanWbU1fjTVn/5ZTAtVYshGREGRog0taLWiaQvZJczOnqRD5mOZmY0Jw96DV+NfvQ3vxtkklm4SnGXh8L5zzpzzcOKUUW1arT8bFe/GzVubW7erd+7eu79d23lwpmWmCHSJZFJdxFgDowK6hhoGF6kCzGMG5/HofeGfj0FpKsU3M00h4ngo6IASbJzUrz3dDTORgIoVJmDD1+u+vG8nQb7br9Vbzdbs+KtBsAjqaHFO+zuVD2EiScZBGMKw1r2glZrIYmUoYZBXw0xDiskID6HnQoE56MjOhsr9Pack/kAq9wvjz9Tq3rUUy52uQSls8p4GTmPJkuh6UYu51lMeu2Icm0u97BXiOq+XmcGryFKRZgYEmfcyyJhvpF9A9BOqgBg2dQEmirpxfHKJHULjUJdeiaUcGRzrBnZ9Ths8Y4Yq+b00u501kAIpq5NMUCITWFKZmRiFy/CSMU31At9kzs+h0mA4pqLAZ4+BjcH1if1PkMGV694t7P1DOqRGNz66rRCNIwUwerKSUqp3csX+2VeH/p1D/+/G/2quTauGh+D2Q8GJy/2cgnOlsmEnt2FRLY5tJ8+rbv2C5WVbDc7azeB5s/2lXT/oLBZxCz1Cj9E+CtBLdICO0SnqIoJ+oJ/oF/rtbXsvvDfe2/nVysYi5yEqHe/oL8hKLIc=</latexit>

| {z }ɴא<latexit sha1_base64="2QOxxUqThtSwyPHKCNdvHc8ZGrI=">AAADjXicfZLtahNBFIanWbU1fjTVn/5ZTAtVYkgioqBI0YYWtFrRtIVsCDOzJ+mQ+VhmZmPCsPfg1fhXb8O7cTaJpZsEZ1k4vO+cM+c8HJJwZmyj8WejFNy4eWtz63b5zt1797crOw/OjEo1hQ5VXOkLgg1wJqFjmeVwkWjAgnA4J6P3uX8+Bm2Ykt/sNIGewEPJBoxi66V+5elulMoYNNGYgoter/uyvpu0st1+pdqoN2YnXA2ai6CKFue0v1P6EMWKpgKkpRwb0202EttzWFtGOWTlKDWQYDrCQ+j6UGIBpudmQ2XhnlficKC0/6UNZ2p571qKE143oDW2WdeAYETxuHe9qMPCmKkgvpjA9tIse7m4zuumdvCq55hMUguSznsZpDy0KswhhjHTQC2f+gBTzfw4Ib3EHqH1qAuvEKVGFhNTw77PaU2k3DKtvhdmd7MGEqBFdZJKRlUMSyq3E6txEV48ZolZ4JvM+XlUBqzATOb43DHwMfg+cfgJUrhy/bu5vX/Ihsya2ke/FbJ2pAFGT1ZSCvVOrtg/++rRv/Po/934X821aeXoEPx+aDjxuZ8T8K7SLmpnLsqrEeLaWVb269dcXrbV4KxVbz6vt760qgftxSJuoUfoMdpHTfQSHaBjdIo6iKIf6Cf6hX4H28GL4E3wdn61tLHIeYgKJzj6C8tKLIg=</latexit>

ɵ = (ɴ! !)!(ɴ!א ")<latexit sha1_base64="3K5phW/+wjdiVFJoCRCL2yinxlM=">AAADkHicfVJNbxMxEHWzfJTwlZYjF4tSKZHSKBsO9IIo0IgKaCmCtJWyIXi9k8SKd72yZ0OiVX4Fv4Yr/AruXPgRCLxJqLpJxUiWxu/5jWeexo+lMFiv/1grOFeuXru+fqN489btO3dLG5snRiWaQ4srqfSZzwxIEUELBUo4izWw0Jdw6g9fZPzpCLQRKvqAkxg6IetHoic4Qwt1SzsT+oSW6bjrfvRQxdTDASCjlfmtPO42Frhv4Uq3tFWv1WdBVxN3kWztPfzz+9Ovo5/H3Y3Cay9QPAkhQi6ZMW23HmMnZRoFlzAteomBmPEh60PbphELwXTS2VxTum2RgPaUtidCOkOL2xckaWhxA1oznLYNhMJXMuhcLJqy0JhJ6NtiIcOBWeYy8DKunWBvt5OKKE4QIj7vpZdIiopmPtJAaOAoJzZhXAs7DuUDphlH63buF1+pITLfVJntc1INE4lCq8+52dNZAzHwPDpOIsFVAEuoxDFqljcvGInYLOwbz/2zVhnAkIkosy89ADkC2yejR5DAOWv/zejyvugLNNU3djGi6ksNMKysSHL1Ds+933lvrX9urf/34n81L5UVvX2w+6Hh0GrfxmBZpVOvOU29rJrvp83ptGjXz11ettXkpFFzH9Ua7+weNsk81sl98oCUiUsekz1yQI5Ji3DyhXwl38h3Z9PZdZ46z+ZPC2sLzT2SC+fVX+8XMiQ=</latexit>

Page 36: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Towards CF with deep learning

26

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

(User 1, Item 1, 3) (User 1, Item 2, 0) (User 2 Item 2, 0) (User n, Item 1, 2)

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

{z}|(3 ,0 … 0 1 ,0 … 0 1)ɵ

<latexit sha1_base64="eytSmRVTQsOvlXTTtjFsn2ENd/A=">AAADdXicfZLbbhMxEIbdhEMJp7RcIqQVSVGRQtgNF3BZQSMqQaEI0lbKRpHtnaRWfFjZ3pDI2lfhFl6JJ+EWbxKqblIx0kqj//eMx98OSTkzNgx/b1WqN27eur19p3b33v0HD+s7u6dGZZpCjyqu9DnBBjiT0LPMcjhPNWBBOJyRybvCP5uCNkzJb3aewkDgsWQjRrH10rC+24wzmYAmGlNwUT6cN4f1RtgOFxFsJtEqaaBVnAx3Kh/iRNFMgLSUY2P6UZjagcPaMsohr8WZgRTTCR5D36cSCzADtxg+D/a8kgQjpf0nbbBQa3tXSpzwugGtsc37BgQjiieDq00dFsbMBfHNBLYXZt0rxOu8fmZHbwaOyTSzIOlyllHGA6uCAlaQMA3U8rlPMNXMPyegF9ijsh5p6Rai1MRiYlrYzzlviYxbptX30tvdYoAUaFmdZZJRlcCayu3MalyGl0xZalb4Zkt+HpUBKzCTBT53BHwKfk4cfIIMLl1/b2HvH7Ixs6b10f992XqvASbPN0pK/Y4v2b/46tG/9ej/nfhfz2vLavEh+P3QcOxrP6fgXaVd3M1dXHQjxHXzvObXL1pfts3ktNOOXrU7XzqNg+5qEbfRY/QU7aMIvUYH6AidoB6iaIZ+oJ/oV+VP9Um1WX22PFrZWtU8QqWovvwLDZklIg==</latexit>

| {z }ɴ

<latexit sha1_base64="ZOqxQI7sPyEbcoXSfVRl3yMMeFc=">AAADoHicjZJdaxNBFIanWT9q/Giql94sTQsVYkjihYIIRRsMaG2Lpi1mQ5iZPUmHzMcyMxsThv01/hpv9cp/42wSSzcp4iwLh/edc+ach0MSzoxtNH5vlIJbt+/c3bxXvv/g4aOtyvbjM6NSTaFLFVf6gmADnEnoWmY5XCQasCAczsn4Xe6fT0AbpuQXO0ugL/BIsiGj2HppUHmzG6UyBk00puCi1///ZYPp7qBSbdQb8xOuB81lUEXLczLYLn2IYkVTAdJSjo3pNRuJ7TusLaMcsnKUGkgwHeMR9HwosQDTd/M5s3DPK3E4VNr/0oZztbx3LcUJrxvQGtusZ0Awonjcv17UYWHMTBBfTGB7aVa9XLzJ66V2+KrvmExSC5IuehmmPLQqzLmGMdNALZ/5AFPN/DghvcSeqvX0C68QpcYWE1PDvs9ZTaTcMq2+FWZ38wYSoEV1mkpGVQwrKrdTq3ERXjxhiVnimy74eVQGrMBM5vhcB/gEfJ84/AQpXLn+3dzeP2QjZk3to18UWXuvAcbP1lIK9Y6u2D//7NG/9ej/3vhXzRvTytEh+P3QcORzjxPwrtIuamcuyqsR4tpZVvbr11xdtvXgrFVvvqi3TlvVg/ZyETfRU7SD9lETvUQHqINOUBdR9B39QD/Rr2An6ATHweniamljmfMEFU7w9Q/R5TKZ</latexit> | {z }ɴ

<latexit sha1_base64="nvO9pmCjsWFg+thOlpupZW+g2VQ=">AAADjXicfZLtahNBFIanWbU1fjTVn/5ZTAtVYshGREGRog0taLWiaQvZJczOnqRD5mOZmY0Jw96DV+NfvQ3vxtkklm4SnGXh8L5zzpzzcOKUUW1arT8bFe/GzVubW7erd+7eu79d23lwpmWmCHSJZFJdxFgDowK6hhoGF6kCzGMG5/HofeGfj0FpKsU3M00h4ngo6IASbJzUrz3dDTORgIoVJmDD1+u+vG8nQb7br9Vbzdbs+KtBsAjqaHFO+zuVD2EiScZBGMKw1r2glZrIYmUoYZBXw0xDiskID6HnQoE56MjOhsr9Pack/kAq9wvjz9Tq3rUUy52uQSls8p4GTmPJkuh6UYu51lMeu2Icm0u97BXiOq+XmcGryFKRZgYEmfcyyJhvpF9A9BOqgBg2dQEmirpxfHKJHULjUJdeiaUcGRzrBnZ9Ths8Y4Yq+b00u501kAIpq5NMUCITWFKZmRiFy/CSMU31At9kzs+h0mA4pqLAZ4+BjcH1if1PkMGV694t7P1DOqRGNz66rRCNIwUwerKSUqp3csX+2VeH/p1D/+/G/2quTauGh+D2Q8GJy/2cgnOlsmEnt2FRLY5tJ8+rbv2C5WVbDc7azeB5s/2lXT/oLBZxCz1Cj9E+CtBLdICO0SnqIoJ+oJ/oF/rtbXsvvDfe2/nVysYi5yEqHe/oL8hKLIc=</latexit>

| {z }ɴא<latexit sha1_base64="2QOxxUqThtSwyPHKCNdvHc8ZGrI=">AAADjXicfZLtahNBFIanWbU1fjTVn/5ZTAtVYkgioqBI0YYWtFrRtIVsCDOzJ+mQ+VhmZmPCsPfg1fhXb8O7cTaJpZsEZ1k4vO+cM+c8HJJwZmyj8WejFNy4eWtz63b5zt1797crOw/OjEo1hQ5VXOkLgg1wJqFjmeVwkWjAgnA4J6P3uX8+Bm2Ykt/sNIGewEPJBoxi66V+5elulMoYNNGYgoter/uyvpu0st1+pdqoN2YnXA2ai6CKFue0v1P6EMWKpgKkpRwb0202EttzWFtGOWTlKDWQYDrCQ+j6UGIBpudmQ2XhnlficKC0/6UNZ2p571qKE143oDW2WdeAYETxuHe9qMPCmKkgvpjA9tIse7m4zuumdvCq55hMUguSznsZpDy0KswhhjHTQC2f+gBTzfw4Ib3EHqH1qAuvEKVGFhNTw77PaU2k3DKtvhdmd7MGEqBFdZJKRlUMSyq3E6txEV48ZolZ4JvM+XlUBqzATOb43DHwMfg+cfgJUrhy/bu5vX/Ihsya2ke/FbJ2pAFGT1ZSCvVOrtg/++rRv/Po/934X821aeXoEPx+aDjxuZ8T8K7SLmpnLsqrEeLaWVb269dcXrbV4KxVbz6vt760qgftxSJuoUfoMdpHTfQSHaBjdIo6iKIf6Cf6hX4H28GL4E3wdn61tLHIeYgKJzj6C8tKLIg=</latexit>

ɵ = (ɴ! !)!(ɴ!א ")<latexit sha1_base64="3K5phW/+wjdiVFJoCRCL2yinxlM=">AAADkHicfVJNbxMxEHWzfJTwlZYjF4tSKZHSKBsO9IIo0IgKaCmCtJWyIXi9k8SKd72yZ0OiVX4Fv4Yr/AruXPgRCLxJqLpJxUiWxu/5jWeexo+lMFiv/1grOFeuXru+fqN489btO3dLG5snRiWaQ4srqfSZzwxIEUELBUo4izWw0Jdw6g9fZPzpCLQRKvqAkxg6IetHoic4Qwt1SzsT+oSW6bjrfvRQxdTDASCjlfmtPO42Frhv4Uq3tFWv1WdBVxN3kWztPfzz+9Ovo5/H3Y3Cay9QPAkhQi6ZMW23HmMnZRoFlzAteomBmPEh60PbphELwXTS2VxTum2RgPaUtidCOkOL2xckaWhxA1oznLYNhMJXMuhcLJqy0JhJ6NtiIcOBWeYy8DKunWBvt5OKKE4QIj7vpZdIiopmPtJAaOAoJzZhXAs7DuUDphlH63buF1+pITLfVJntc1INE4lCq8+52dNZAzHwPDpOIsFVAEuoxDFqljcvGInYLOwbz/2zVhnAkIkosy89ADkC2yejR5DAOWv/zejyvugLNNU3djGi6ksNMKysSHL1Ds+933lvrX9urf/34n81L5UVvX2w+6Hh0GrfxmBZpVOvOU29rJrvp83ptGjXz11ettXkpFFzH9Ua7+weNsk81sl98oCUiUsekz1yQI5Ji3DyhXwl38h3Z9PZdZ46z+ZPC2sLzT2SC+fVX+8XMiQ=</latexit>

ɴ<latexit sha1_base64="MG0VZ2Oe4CpNUikbkd9HjXMr+EY=">AAADZHicfVJdaxNBFJ1m/ahr1dbigwiyWAoV0rDbPuhj0QYLWq3UtIUkhNnZm3TIfCwzd2PCsj/BN9Hf1j/g73A2iaWbFC8sXM6Zc+fM2RunglsMw6uVmnfn7r37qw/8h2uPHj9Z33h6ZnVmGLSYFtpcxNSC4ApayFHARWqAyljAeTx8X/LnIzCWa/UNJyl0JR0o3ueMooNOx72ot74VNsJpBctNNG+2Dp7vB1c/2+Kkt1H72Ek0yyQoZIJa247CFLs5NciZgMLvZBZSyoZ0AG3XKirBdvOp1yLYdkgS9LVxn8JgivrbNyS5dLgFYygWbQuSx1ok3ZtDcyqtncjYDZMUL+0iV4K3ce0M+2+7OVdphqDYzEs/EwHqoMwmSLgBhmLiGsoMd88J2CU1lKFLsHJLrPUQaWzr1Pmc1GUmkBv9vfL2fGogBVZFx5niTCewgAoco6HV8JIRT+08vvEsPxeVBZSUqzK+/AjECJxPGnyGDK5Zd29J7xzyAUdb/+R+tqp/MADD10uSyrzj6+x3T13071z0/078b+atMr9zCG4/DBw77ZcUHKtN3mkWeaecFsd5syh8t37R4rItN2d7jWi/sffV7WGTzGqVvCCvyA6JyBtyQI7ICWkRRgbkB/lFftf+eGvepvdsdrS2Mtdskkp5L/8C7A0hgQ==</latexit>

ɴא<latexit sha1_base64="84JVzhXCyxG3fMbPDp19rCkLOvg=">AAADZHicfVJdaxNBFJ0mftRYtbX4IIIslkKFNCTpgz4WbbCg1UpNW0hCmZ29SYfMxzJzNyYs+xN8E/1t/QP+Du8msXST4oWFyzlz7pw5e8NYSY/1+tVKqXzn7r37qw8qD9cePX6yvvH01NvECWgLq6w7D7kHJQ20UaKC89gB16GCs3D4PufPRuC8tOYbTmLoaT4wsi8FR4JOxhfNi/Wteq0+rWC5acybrf3ne8HVz446vtgofexGViQaDArFve806jH2Uu5QCgVZpZt4iLkY8gF0qDVcg++lU69ZsE1IFPSto89gMEUr2zckqSbcg3Mcs44HLUOrot7NoSnX3k90SMM0x0u/yOXgbVwnwf7bXipNnCAYMfPST1SANsizCSLpQKCaUMOFk/ScQFxyxwVSgoVbQmuHyENf5eRzUtWJQuns98Lb06mBGEQRHSdGChvBAqpwjI4Xw4tGMvbz+Maz/CgqD6i5NHl86SGoEZBPHnyGBK5Zujendw7kQKKvfqKfbaofHMDw9ZKkMO/oOvvdE4r+HUX/78T/Zt4qq3QPgPbDwRFpv8RArHVpt5Wl3XxaGKatLKvQ+jUWl225OW3WGnu15lfawxab1Sp7wV6xHdZgb9g+O2THrM0EG7Af7Bf7XfpTXitvlp/NjpZW5ppNVqjyy7/vCyGC</latexit>

!<latexit sha1_base64="eMAlq4stfNYgF9A1WRnTrdEJ6LU=">AAADZ3icfVJdaxNBFJ0mftT1o62CCL6shkKFNOzWB30s2mBBqxVNWsiGMjt7k4yZj2XmbkxY9j/4qv/Mn+C/cDaJpZsULyxczplz58zZG6eCWwyC3xu1+o2bt25v3vHu3rv/YGt752HX6sww6DAttDmPqQXBFXSQo4Dz1ACVsYCzePy25M8mYCzX6ivOUuhLOlR8wBlFB3UjHAHSi+1G0Arm5a834bJpkGWdXuzU3keJZpkEhUxQa3thkGI/pwY5E1B4UWYhpWxMh9BzraISbD+f2y38XYck/kAb9yn056i3e0WSS4dbMIZi0bMgeaxF0r86NKfS2pmM3TBJcWRXuRK8jutlOHjdz7lKMwTFFl4GmfBR+2U8fsINMBQz11BmuHuOz0bUUIYuxMotsdZjpLFtUudz1pSZQG7098rb87mBFFgVnWaKM53ACipwioZWw0smPLXL+KaL/FxUFlBSrsr48mMQE3A+qf8RMrhk3b0lvXfEhxxt84P736r5zgCMX6xJKvNOLrPf/+Kif+Oi/3fifzOvlXnREbj9MHDitJ9ScKw2edQu8qicFsd5uyg8t37h6rKtN92DVviydfA5aBy2l4u4SZ6S52SPhOQVOSTH5JR0CCPfyA/yk/yq/alv1R/XnyyO1jaWmkekUvVnfwGD+CAp</latexit>

!<latexit sha1_base64="eM4whDFMhcl8FpHZqS8ggZR30Nk=">AAADZnicfVJdaxNBFJ0mftSotVXEB18GS6FCTJP6oI9FGyxotUXTFrKhzMzepEPmY5m5GxOW/QeCr/rHBP+BP8PZJJZuUrywcDlnzp0zZy9PlPTYbP5eqVRv3Lx1e/VO7e69+2sP1jcennibOgEdYZV1Z5x5UNJAByUqOEscMM0VnPLh24I/HYHz0povOEmgp9nAyL4UDAPUiTggO1/fbDaa06LLTWvebO7RzvGvb3Ln6Hyj8j6KrUg1GBSKed9tNRPsZcyhFAryWpR6SJgYsgF0Q2uYBt/Lpm5zuhWQmPatC59BOkVrW1ckmQ64B+cY5l0PWnKr4t7VoRnT3k80D8M0wwu/yBXgdVw3xf7rXiZNkiIYMfPSTxVFS4t0aCwdCFST0DDhZHgOFRfMMYEhw9It3NohMu7rLPic1HWqUDr7tfT2bGogAVFGx6mRwsawgCoco2Pl8OKRTPw8vvEsvxCVB9RMmiK+7ADUCIJPRj9CCpdsuLegt/flQKKvfwi/29TfOYDh8yVJad7hZfYvPofo34To/53438xrZbVoH8J+ODgM2k8JBNa6LGrnWVRM4zxr53ktrF9rcdmWm5PdRutlY/c47GGbzGqVPCXPyDZpkVdkjxyQI9IhgkjynfwgPyt/qmvVx9Uns6OVlbnmESlVlf4FZSEipQ==</latexit>

ɵ = (ɴ! !)!(ɴ!א ")<latexit sha1_base64="3K5phW/+wjdiVFJoCRCL2yinxlM=">AAADkHicfVJNbxMxEHWzfJTwlZYjF4tSKZHSKBsO9IIo0IgKaCmCtJWyIXi9k8SKd72yZ0OiVX4Fv4Yr/AruXPgRCLxJqLpJxUiWxu/5jWeexo+lMFiv/1grOFeuXru+fqN489btO3dLG5snRiWaQ4srqfSZzwxIEUELBUo4izWw0Jdw6g9fZPzpCLQRKvqAkxg6IetHoic4Qwt1SzsT+oSW6bjrfvRQxdTDASCjlfmtPO42Frhv4Uq3tFWv1WdBVxN3kWztPfzz+9Ovo5/H3Y3Cay9QPAkhQi6ZMW23HmMnZRoFlzAteomBmPEh60PbphELwXTS2VxTum2RgPaUtidCOkOL2xckaWhxA1oznLYNhMJXMuhcLJqy0JhJ6NtiIcOBWeYy8DKunWBvt5OKKE4QIj7vpZdIiopmPtJAaOAoJzZhXAs7DuUDphlH63buF1+pITLfVJntc1INE4lCq8+52dNZAzHwPDpOIsFVAEuoxDFqljcvGInYLOwbz/2zVhnAkIkosy89ADkC2yejR5DAOWv/zejyvugLNNU3djGi6ksNMKysSHL1Ds+933lvrX9urf/34n81L5UVvX2w+6Hh0GrfxmBZpVOvOU29rJrvp83ptGjXz11ettXkpFFzH9Ua7+weNsk81sl98oCUiUsekz1yQI5Ji3DyhXwl38h3Z9PZdZ46z+ZPC2sLzT2SC+fVX+8XMiQ=</latexit>*

Page 37: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Towards CF with deep learning

26

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

(User 1, Item 1, 3) (User 1, Item 2, 0) (User 2 Item 2, 0) (User n, Item 1, 2)

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

{z}|(3 ,0 … 0 1 ,0 … 0 1)ɵ

<latexit sha1_base64="eytSmRVTQsOvlXTTtjFsn2ENd/A=">AAADdXicfZLbbhMxEIbdhEMJp7RcIqQVSVGRQtgNF3BZQSMqQaEI0lbKRpHtnaRWfFjZ3pDI2lfhFl6JJ+EWbxKqblIx0kqj//eMx98OSTkzNgx/b1WqN27eur19p3b33v0HD+s7u6dGZZpCjyqu9DnBBjiT0LPMcjhPNWBBOJyRybvCP5uCNkzJb3aewkDgsWQjRrH10rC+24wzmYAmGlNwUT6cN4f1RtgOFxFsJtEqaaBVnAx3Kh/iRNFMgLSUY2P6UZjagcPaMsohr8WZgRTTCR5D36cSCzADtxg+D/a8kgQjpf0nbbBQa3tXSpzwugGtsc37BgQjiieDq00dFsbMBfHNBLYXZt0rxOu8fmZHbwaOyTSzIOlyllHGA6uCAlaQMA3U8rlPMNXMPyegF9ijsh5p6Rai1MRiYlrYzzlviYxbptX30tvdYoAUaFmdZZJRlcCayu3MalyGl0xZalb4Zkt+HpUBKzCTBT53BHwKfk4cfIIMLl1/b2HvH7Ixs6b10f992XqvASbPN0pK/Y4v2b/46tG/9ej/nfhfz2vLavEh+P3QcOxrP6fgXaVd3M1dXHQjxHXzvObXL1pfts3ktNOOXrU7XzqNg+5qEbfRY/QU7aMIvUYH6AidoB6iaIZ+oJ/oV+VP9Um1WX22PFrZWtU8QqWovvwLDZklIg==</latexit>

| {z }ɴ

<latexit sha1_base64="ZOqxQI7sPyEbcoXSfVRl3yMMeFc=">AAADoHicjZJdaxNBFIanWT9q/Giql94sTQsVYkjihYIIRRsMaG2Lpi1mQ5iZPUmHzMcyMxsThv01/hpv9cp/42wSSzcp4iwLh/edc+ach0MSzoxtNH5vlIJbt+/c3bxXvv/g4aOtyvbjM6NSTaFLFVf6gmADnEnoWmY5XCQasCAczsn4Xe6fT0AbpuQXO0ugL/BIsiGj2HppUHmzG6UyBk00puCi1///ZYPp7qBSbdQb8xOuB81lUEXLczLYLn2IYkVTAdJSjo3pNRuJ7TusLaMcsnKUGkgwHeMR9HwosQDTd/M5s3DPK3E4VNr/0oZztbx3LcUJrxvQGtusZ0Awonjcv17UYWHMTBBfTGB7aVa9XLzJ66V2+KrvmExSC5IuehmmPLQqzLmGMdNALZ/5AFPN/DghvcSeqvX0C68QpcYWE1PDvs9ZTaTcMq2+FWZ38wYSoEV1mkpGVQwrKrdTq3ERXjxhiVnimy74eVQGrMBM5vhcB/gEfJ84/AQpXLn+3dzeP2QjZk3to18UWXuvAcbP1lIK9Y6u2D//7NG/9ej/3vhXzRvTytEh+P3QcORzjxPwrtIuamcuyqsR4tpZVvbr11xdtvXgrFVvvqi3TlvVg/ZyETfRU7SD9lETvUQHqINOUBdR9B39QD/Rr2An6ATHweniamljmfMEFU7w9Q/R5TKZ</latexit> | {z }ɴ

<latexit sha1_base64="nvO9pmCjsWFg+thOlpupZW+g2VQ=">AAADjXicfZLtahNBFIanWbU1fjTVn/5ZTAtVYshGREGRog0taLWiaQvZJczOnqRD5mOZmY0Jw96DV+NfvQ3vxtkklm4SnGXh8L5zzpzzcOKUUW1arT8bFe/GzVubW7erd+7eu79d23lwpmWmCHSJZFJdxFgDowK6hhoGF6kCzGMG5/HofeGfj0FpKsU3M00h4ngo6IASbJzUrz3dDTORgIoVJmDD1+u+vG8nQb7br9Vbzdbs+KtBsAjqaHFO+zuVD2EiScZBGMKw1r2glZrIYmUoYZBXw0xDiskID6HnQoE56MjOhsr9Pack/kAq9wvjz9Tq3rUUy52uQSls8p4GTmPJkuh6UYu51lMeu2Icm0u97BXiOq+XmcGryFKRZgYEmfcyyJhvpF9A9BOqgBg2dQEmirpxfHKJHULjUJdeiaUcGRzrBnZ9Ths8Y4Yq+b00u501kAIpq5NMUCITWFKZmRiFy/CSMU31At9kzs+h0mA4pqLAZ4+BjcH1if1PkMGV694t7P1DOqRGNz66rRCNIwUwerKSUqp3csX+2VeH/p1D/+/G/2quTauGh+D2Q8GJy/2cgnOlsmEnt2FRLY5tJ8+rbv2C5WVbDc7azeB5s/2lXT/oLBZxCz1Cj9E+CtBLdICO0SnqIoJ+oJ/oF/rtbXsvvDfe2/nVysYi5yEqHe/oL8hKLIc=</latexit>

| {z }ɴא<latexit sha1_base64="2QOxxUqThtSwyPHKCNdvHc8ZGrI=">AAADjXicfZLtahNBFIanWbU1fjTVn/5ZTAtVYkgioqBI0YYWtFrRtIVsCDOzJ+mQ+VhmZmPCsPfg1fhXb8O7cTaJpZsEZ1k4vO+cM+c8HJJwZmyj8WejFNy4eWtz63b5zt1797crOw/OjEo1hQ5VXOkLgg1wJqFjmeVwkWjAgnA4J6P3uX8+Bm2Ykt/sNIGewEPJBoxi66V+5elulMoYNNGYgoter/uyvpu0st1+pdqoN2YnXA2ai6CKFue0v1P6EMWKpgKkpRwb0202EttzWFtGOWTlKDWQYDrCQ+j6UGIBpudmQ2XhnlficKC0/6UNZ2p571qKE143oDW2WdeAYETxuHe9qMPCmKkgvpjA9tIse7m4zuumdvCq55hMUguSznsZpDy0KswhhjHTQC2f+gBTzfw4Ib3EHqH1qAuvEKVGFhNTw77PaU2k3DKtvhdmd7MGEqBFdZJKRlUMSyq3E6txEV48ZolZ4JvM+XlUBqzATOb43DHwMfg+cfgJUrhy/bu5vX/Ihsya2ke/FbJ2pAFGT1ZSCvVOrtg/++rRv/Po/934X821aeXoEPx+aDjxuZ8T8K7SLmpnLsqrEeLaWVb269dcXrbV4KxVbz6vt760qgftxSJuoUfoMdpHTfQSHaBjdIo6iKIf6Cf6hX4H28GL4E3wdn61tLHIeYgKJzj6C8tKLIg=</latexit>

ɵ = (ɴ! !)!(ɴ!א ")<latexit sha1_base64="3K5phW/+wjdiVFJoCRCL2yinxlM=">AAADkHicfVJNbxMxEHWzfJTwlZYjF4tSKZHSKBsO9IIo0IgKaCmCtJWyIXi9k8SKd72yZ0OiVX4Fv4Yr/AruXPgRCLxJqLpJxUiWxu/5jWeexo+lMFiv/1grOFeuXru+fqN489btO3dLG5snRiWaQ4srqfSZzwxIEUELBUo4izWw0Jdw6g9fZPzpCLQRKvqAkxg6IetHoic4Qwt1SzsT+oSW6bjrfvRQxdTDASCjlfmtPO42Frhv4Uq3tFWv1WdBVxN3kWztPfzz+9Ovo5/H3Y3Cay9QPAkhQi6ZMW23HmMnZRoFlzAteomBmPEh60PbphELwXTS2VxTum2RgPaUtidCOkOL2xckaWhxA1oznLYNhMJXMuhcLJqy0JhJ6NtiIcOBWeYy8DKunWBvt5OKKE4QIj7vpZdIiopmPtJAaOAoJzZhXAs7DuUDphlH63buF1+pITLfVJntc1INE4lCq8+52dNZAzHwPDpOIsFVAEuoxDFqljcvGInYLOwbz/2zVhnAkIkosy89ADkC2yejR5DAOWv/zejyvugLNNU3djGi6ksNMKysSHL1Ds+933lvrX9urf/34n81L5UVvX2w+6Hh0GrfxmBZpVOvOU29rJrvp83ptGjXz11ettXkpFFzH9Ua7+weNsk81sl98oCUiUsekz1yQI5Ji3DyhXwl38h3Z9PZdZ46z+ZPC2sLzT2SC+fVX+8XMiQ=</latexit>

ɴ<latexit sha1_base64="MG0VZ2Oe4CpNUikbkd9HjXMr+EY=">AAADZHicfVJdaxNBFJ1m/ahr1dbigwiyWAoV0rDbPuhj0QYLWq3UtIUkhNnZm3TIfCwzd2PCsj/BN9Hf1j/g73A2iaWbFC8sXM6Zc+fM2RunglsMw6uVmnfn7r37qw/8h2uPHj9Z33h6ZnVmGLSYFtpcxNSC4ApayFHARWqAyljAeTx8X/LnIzCWa/UNJyl0JR0o3ueMooNOx72ot74VNsJpBctNNG+2Dp7vB1c/2+Kkt1H72Ek0yyQoZIJa247CFLs5NciZgMLvZBZSyoZ0AG3XKirBdvOp1yLYdkgS9LVxn8JgivrbNyS5dLgFYygWbQuSx1ok3ZtDcyqtncjYDZMUL+0iV4K3ce0M+2+7OVdphqDYzEs/EwHqoMwmSLgBhmLiGsoMd88J2CU1lKFLsHJLrPUQaWzr1Pmc1GUmkBv9vfL2fGogBVZFx5niTCewgAoco6HV8JIRT+08vvEsPxeVBZSUqzK+/AjECJxPGnyGDK5Zd29J7xzyAUdb/+R+tqp/MADD10uSyrzj6+x3T13071z0/078b+atMr9zCG4/DBw77ZcUHKtN3mkWeaecFsd5syh8t37R4rItN2d7jWi/sffV7WGTzGqVvCCvyA6JyBtyQI7ICWkRRgbkB/lFftf+eGvepvdsdrS2Mtdskkp5L/8C7A0hgQ==</latexit>

ɴא<latexit sha1_base64="84JVzhXCyxG3fMbPDp19rCkLOvg=">AAADZHicfVJdaxNBFJ0mftRYtbX4IIIslkKFNCTpgz4WbbCg1UpNW0hCmZ29SYfMxzJzNyYs+xN8E/1t/QP+Du8msXST4oWFyzlz7pw5e8NYSY/1+tVKqXzn7r37qw8qD9cePX6yvvH01NvECWgLq6w7D7kHJQ20UaKC89gB16GCs3D4PufPRuC8tOYbTmLoaT4wsi8FR4JOxhfNi/Wteq0+rWC5acybrf3ne8HVz446vtgofexGViQaDArFve806jH2Uu5QCgVZpZt4iLkY8gF0qDVcg++lU69ZsE1IFPSto89gMEUr2zckqSbcg3Mcs44HLUOrot7NoSnX3k90SMM0x0u/yOXgbVwnwf7bXipNnCAYMfPST1SANsizCSLpQKCaUMOFk/ScQFxyxwVSgoVbQmuHyENf5eRzUtWJQuns98Lb06mBGEQRHSdGChvBAqpwjI4Xw4tGMvbz+Maz/CgqD6i5NHl86SGoEZBPHnyGBK5Zujendw7kQKKvfqKfbaofHMDw9ZKkMO/oOvvdE4r+HUX/78T/Zt4qq3QPgPbDwRFpv8RArHVpt5Wl3XxaGKatLKvQ+jUWl225OW3WGnu15lfawxab1Sp7wV6xHdZgb9g+O2THrM0EG7Af7Bf7XfpTXitvlp/NjpZW5ppNVqjyy7/vCyGC</latexit>

!<latexit sha1_base64="eMAlq4stfNYgF9A1WRnTrdEJ6LU=">AAADZ3icfVJdaxNBFJ0mftT1o62CCL6shkKFNOzWB30s2mBBqxVNWsiGMjt7k4yZj2XmbkxY9j/4qv/Mn+C/cDaJpZsULyxczplz58zZG6eCWwyC3xu1+o2bt25v3vHu3rv/YGt752HX6sww6DAttDmPqQXBFXSQo4Dz1ACVsYCzePy25M8mYCzX6ivOUuhLOlR8wBlFB3UjHAHSi+1G0Arm5a834bJpkGWdXuzU3keJZpkEhUxQa3thkGI/pwY5E1B4UWYhpWxMh9BzraISbD+f2y38XYck/kAb9yn056i3e0WSS4dbMIZi0bMgeaxF0r86NKfS2pmM3TBJcWRXuRK8jutlOHjdz7lKMwTFFl4GmfBR+2U8fsINMBQz11BmuHuOz0bUUIYuxMotsdZjpLFtUudz1pSZQG7098rb87mBFFgVnWaKM53ACipwioZWw0smPLXL+KaL/FxUFlBSrsr48mMQE3A+qf8RMrhk3b0lvXfEhxxt84P736r5zgCMX6xJKvNOLrPf/+Kif+Oi/3fifzOvlXnREbj9MHDitJ9ScKw2edQu8qicFsd5uyg8t37h6rKtN92DVviydfA5aBy2l4u4SZ6S52SPhOQVOSTH5JR0CCPfyA/yk/yq/alv1R/XnyyO1jaWmkekUvVnfwGD+CAp</latexit>

!<latexit sha1_base64="eM4whDFMhcl8FpHZqS8ggZR30Nk=">AAADZnicfVJdaxNBFJ0mftSotVXEB18GS6FCTJP6oI9FGyxotUXTFrKhzMzepEPmY5m5GxOW/QeCr/rHBP+BP8PZJJZuUrywcDlnzp0zZy9PlPTYbP5eqVRv3Lx1e/VO7e69+2sP1jcennibOgEdYZV1Z5x5UNJAByUqOEscMM0VnPLh24I/HYHz0povOEmgp9nAyL4UDAPUiTggO1/fbDaa06LLTWvebO7RzvGvb3Ln6Hyj8j6KrUg1GBSKed9tNRPsZcyhFAryWpR6SJgYsgF0Q2uYBt/Lpm5zuhWQmPatC59BOkVrW1ckmQ64B+cY5l0PWnKr4t7VoRnT3k80D8M0wwu/yBXgdVw3xf7rXiZNkiIYMfPSTxVFS4t0aCwdCFST0DDhZHgOFRfMMYEhw9It3NohMu7rLPic1HWqUDr7tfT2bGogAVFGx6mRwsawgCoco2Pl8OKRTPw8vvEsvxCVB9RMmiK+7ADUCIJPRj9CCpdsuLegt/flQKKvfwi/29TfOYDh8yVJad7hZfYvPofo34To/53438xrZbVoH8J+ODgM2k8JBNa6LGrnWVRM4zxr53ktrF9rcdmWm5PdRutlY/c47GGbzGqVPCXPyDZpkVdkjxyQI9IhgkjynfwgPyt/qmvVx9Uns6OVlbnmESlVlf4FZSEipQ==</latexit>

ɵ = (ɴ! !)!(ɴ!א ")<latexit sha1_base64="3K5phW/+wjdiVFJoCRCL2yinxlM=">AAADkHicfVJNbxMxEHWzfJTwlZYjF4tSKZHSKBsO9IIo0IgKaCmCtJWyIXi9k8SKd72yZ0OiVX4Fv4Yr/AruXPgRCLxJqLpJxUiWxu/5jWeexo+lMFiv/1grOFeuXru+fqN489btO3dLG5snRiWaQ4srqfSZzwxIEUELBUo4izWw0Jdw6g9fZPzpCLQRKvqAkxg6IetHoic4Qwt1SzsT+oSW6bjrfvRQxdTDASCjlfmtPO42Frhv4Uq3tFWv1WdBVxN3kWztPfzz+9Ovo5/H3Y3Cay9QPAkhQi6ZMW23HmMnZRoFlzAteomBmPEh60PbphELwXTS2VxTum2RgPaUtidCOkOL2xckaWhxA1oznLYNhMJXMuhcLJqy0JhJ6NtiIcOBWeYy8DKunWBvt5OKKE4QIj7vpZdIiopmPtJAaOAoJzZhXAs7DuUDphlH63buF1+pITLfVJntc1INE4lCq8+52dNZAzHwPDpOIsFVAEuoxDFqljcvGInYLOwbz/2zVhnAkIkosy89ADkC2yejR5DAOWv/zejyvugLNNU3djGi6ksNMKysSHL1Ds+933lvrX9urf/34n81L5UVvX2w+6Hh0GrfxmBZpVOvOU29rJrvp83ptGjXz11ettXkpFFzH9Ua7+weNsk81sl98oCUiUsekz1yQI5Ji3DyhXwl38h3Z9PZdZ46z+ZPC2sLzT2SC+fVX+8XMiQ=</latexit>

Embedding Layer

*

Page 38: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

A version of Deep Matrix Factorization

• Can do more complicated user and item combinations (beyond dot product)

27

ɴ<latexit sha1_base64="MG0VZ2Oe4CpNUikbkd9HjXMr+EY=">AAADZHicfVJdaxNBFJ1m/ahr1dbigwiyWAoV0rDbPuhj0QYLWq3UtIUkhNnZm3TIfCwzd2PCsj/BN9Hf1j/g73A2iaWbFC8sXM6Zc+fM2RunglsMw6uVmnfn7r37qw/8h2uPHj9Z33h6ZnVmGLSYFtpcxNSC4ApayFHARWqAyljAeTx8X/LnIzCWa/UNJyl0JR0o3ueMooNOx72ot74VNsJpBctNNG+2Dp7vB1c/2+Kkt1H72Ek0yyQoZIJa247CFLs5NciZgMLvZBZSyoZ0AG3XKirBdvOp1yLYdkgS9LVxn8JgivrbNyS5dLgFYygWbQuSx1ok3ZtDcyqtncjYDZMUL+0iV4K3ce0M+2+7OVdphqDYzEs/EwHqoMwmSLgBhmLiGsoMd88J2CU1lKFLsHJLrPUQaWzr1Pmc1GUmkBv9vfL2fGogBVZFx5niTCewgAoco6HV8JIRT+08vvEsPxeVBZSUqzK+/AjECJxPGnyGDK5Zd29J7xzyAUdb/+R+tqp/MADD10uSyrzj6+x3T13071z0/078b+atMr9zCG4/DBw77ZcUHKtN3mkWeaecFsd5syh8t37R4rItN2d7jWi/sffV7WGTzGqVvCCvyA6JyBtyQI7ICWkRRgbkB/lFftf+eGvepvdsdrS2Mtdskkp5L/8C7A0hgQ==</latexit>

ɴא<latexit sha1_base64="84JVzhXCyxG3fMbPDp19rCkLOvg=">AAADZHicfVJdaxNBFJ0mftRYtbX4IIIslkKFNCTpgz4WbbCg1UpNW0hCmZ29SYfMxzJzNyYs+xN8E/1t/QP+Du8msXST4oWFyzlz7pw5e8NYSY/1+tVKqXzn7r37qw8qD9cePX6yvvH01NvECWgLq6w7D7kHJQ20UaKC89gB16GCs3D4PufPRuC8tOYbTmLoaT4wsi8FR4JOxhfNi/Wteq0+rWC5acybrf3ne8HVz446vtgofexGViQaDArFve806jH2Uu5QCgVZpZt4iLkY8gF0qDVcg++lU69ZsE1IFPSto89gMEUr2zckqSbcg3Mcs44HLUOrot7NoSnX3k90SMM0x0u/yOXgbVwnwf7bXipNnCAYMfPST1SANsizCSLpQKCaUMOFk/ScQFxyxwVSgoVbQmuHyENf5eRzUtWJQuns98Lb06mBGEQRHSdGChvBAqpwjI4Xw4tGMvbz+Maz/CgqD6i5NHl86SGoEZBPHnyGBK5Zujendw7kQKKvfqKfbaofHMDw9ZKkMO/oOvvdE4r+HUX/78T/Zt4qq3QPgPbDwRFpv8RArHVpt5Wl3XxaGKatLKvQ+jUWl225OW3WGnu15lfawxab1Sp7wV6xHdZgb9g+O2THrM0EG7Af7Bf7XfpTXitvlp/NjpZW5ppNVqjyy7/vCyGC</latexit>

!<latexit sha1_base64="eMAlq4stfNYgF9A1WRnTrdEJ6LU=">AAADZ3icfVJdaxNBFJ0mftT1o62CCL6shkKFNOzWB30s2mBBqxVNWsiGMjt7k4yZj2XmbkxY9j/4qv/Mn+C/cDaJpZsULyxczplz58zZG6eCWwyC3xu1+o2bt25v3vHu3rv/YGt752HX6sww6DAttDmPqQXBFXSQo4Dz1ACVsYCzePy25M8mYCzX6ivOUuhLOlR8wBlFB3UjHAHSi+1G0Arm5a834bJpkGWdXuzU3keJZpkEhUxQa3thkGI/pwY5E1B4UWYhpWxMh9BzraISbD+f2y38XYck/kAb9yn056i3e0WSS4dbMIZi0bMgeaxF0r86NKfS2pmM3TBJcWRXuRK8jutlOHjdz7lKMwTFFl4GmfBR+2U8fsINMBQz11BmuHuOz0bUUIYuxMotsdZjpLFtUudz1pSZQG7098rb87mBFFgVnWaKM53ACipwioZWw0smPLXL+KaL/FxUFlBSrsr48mMQE3A+qf8RMrhk3b0lvXfEhxxt84P736r5zgCMX6xJKvNOLrPf/+Kif+Oi/3fifzOvlXnREbj9MHDitJ9ScKw2edQu8qicFsd5uyg8t37h6rKtN92DVviydfA5aBy2l4u4SZ6S52SPhOQVOSTH5JR0CCPfyA/yk/yq/alv1R/XnyyO1jaWmkekUvVnfwGD+CAp</latexit>

!<latexit sha1_base64="eM4whDFMhcl8FpHZqS8ggZR30Nk=">AAADZnicfVJdaxNBFJ0mftSotVXEB18GS6FCTJP6oI9FGyxotUXTFrKhzMzepEPmY5m5GxOW/QeCr/rHBP+BP8PZJJZuUrywcDlnzp0zZy9PlPTYbP5eqVRv3Lx1e/VO7e69+2sP1jcennibOgEdYZV1Z5x5UNJAByUqOEscMM0VnPLh24I/HYHz0povOEmgp9nAyL4UDAPUiTggO1/fbDaa06LLTWvebO7RzvGvb3Ln6Hyj8j6KrUg1GBSKed9tNRPsZcyhFAryWpR6SJgYsgF0Q2uYBt/Lpm5zuhWQmPatC59BOkVrW1ckmQ64B+cY5l0PWnKr4t7VoRnT3k80D8M0wwu/yBXgdVw3xf7rXiZNkiIYMfPSTxVFS4t0aCwdCFST0DDhZHgOFRfMMYEhw9It3NohMu7rLPic1HWqUDr7tfT2bGogAVFGx6mRwsawgCoco2Pl8OKRTPw8vvEsvxCVB9RMmiK+7ADUCIJPRj9CCpdsuLegt/flQKKvfwi/29TfOYDh8yVJad7hZfYvPofo34To/53438xrZbVoH8J+ODgM2k8JBNa6LGrnWVRM4zxr53ktrF9rcdmWm5PdRutlY/c47GGbzGqVPCXPyDZpkVdkjxyQI9IhgkjynfwgPyt/qmvVx9Uns6OVlbnmESlVlf4FZSEipQ==</latexit>

ɵ = (ɴ! !)!(ɴ!א ")<latexit sha1_base64="3K5phW/+wjdiVFJoCRCL2yinxlM=">AAADkHicfVJNbxMxEHWzfJTwlZYjF4tSKZHSKBsO9IIo0IgKaCmCtJWyIXi9k8SKd72yZ0OiVX4Fv4Yr/AruXPgRCLxJqLpJxUiWxu/5jWeexo+lMFiv/1grOFeuXru+fqN489btO3dLG5snRiWaQ4srqfSZzwxIEUELBUo4izWw0Jdw6g9fZPzpCLQRKvqAkxg6IetHoic4Qwt1SzsT+oSW6bjrfvRQxdTDASCjlfmtPO42Frhv4Uq3tFWv1WdBVxN3kWztPfzz+9Ovo5/H3Y3Cay9QPAkhQi6ZMW23HmMnZRoFlzAteomBmPEh60PbphELwXTS2VxTum2RgPaUtidCOkOL2xckaWhxA1oznLYNhMJXMuhcLJqy0JhJ6NtiIcOBWeYy8DKunWBvt5OKKE4QIj7vpZdIiopmPtJAaOAoJzZhXAs7DuUDphlH63buF1+pITLfVJntc1INE4lCq8+52dNZAzHwPDpOIsFVAEuoxDFqljcvGInYLOwbz/2zVhnAkIkosy89ADkC2yejR5DAOWv/zejyvugLNNU3djGi6ksNMKysSHL1Ds+933lvrX9urf/34n81L5UVvX2w+6Hh0GrfxmBZpVOvOU29rJrvp83ptGjXz11ettXkpFFzH9Ua7+weNsk81sl98oCUiUsekz1yQI5Ji3DyhXwl38h3Z9PZdZ46z+ZPC2sLzT2SC+fVX+8XMiQ=</latexit>

[Xue et al.’17]

Page 39: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Autoencoders• Popular neural-network model often used in

unsupervised learning (e.g., dim reduction)

28

dim(h) <

Page 40: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Autoencoders• Popular neural-network model often used in

unsupervised learning (e.g., dim reduction)

• Non-linear PCA

28

dim(h) <

Page 41: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Autoencoders• Popular neural-network model often used in

unsupervised learning (e.g., dim reduction)

• Non-linear PCA

• Intuition: let’s learn to copy the data

28

dim(h) <

ɴ! = ǔ(ɴ)<latexit sha1_base64="ZS8Gvufk79zF7aiG0nJXCjEZCBE=">AAADanicfVJdaxNBFJ0mftT41dYn6ctgLKYQw0Yf9EUotsVCrVY0bSVZyuzsTTpkPpaZuzFh2V/hq/4w/4M/orNJLN2keGHhcs7cO2fOniiRwmEQ/FmpVG/dvnN39V7t/oOHjx6vrW+cOJNaDh1upLFnEXMghYYOCpRwllhgKpJwGg13C/50BNYJo7/hJIFQsYEWfcEZeuj7+AV9R/uN8fb5Wj1oBdOiy0173tR36mRax+frlcNebHiqQCOXzLluO0gwzJhFwSXktV7qIGF8yAbQ9a1mClyYTRXndMsjMe0b6z+NdIrWtq6NZMrjDqxlmHcdKBEZGYfXl2ZMOTdRkV+mGF64Ra4Ab+K6KfbfhpnQSYqg+UxLP5UUDS0corGwwFFOfMO4Ff45lF8wyzh6H0u3RMYMkUWuybzOSVOlEoU1P0pvz6YCEuBldJxqwU0MC6jEMVpWNi8eicTN7RvP/PNWOUDFhC7syw5AjsDrZPQTpHDF+nsLurEnBgJd86P/5br5wQIMt5dGSvuOrrx/+dVb/95b/+/E/3beOFbr7YHPh4UjP/s5Ac8am/X286xXbIuibD/Paz5+7cWwLTcnr1rt163gi8/h7iyHZJVskmekQdrkDdkhB+SYdAgnivwkv8jvyt/qRvVpdXN2tLIyn3lCSlV9fgmdHiB/</latexit>

Page 42: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Autoencoders• Popular neural-network model often used in

unsupervised learning (e.g., dim reduction)

• Non-linear PCA

• Intuition: let’s learn to copy the data

• We force a “bottleneck”

28

dim(h) <

ɴ! = ǔ(ɴ)<latexit sha1_base64="ZS8Gvufk79zF7aiG0nJXCjEZCBE=">AAADanicfVJdaxNBFJ0mftT41dYn6ctgLKYQw0Yf9EUotsVCrVY0bSVZyuzsTTpkPpaZuzFh2V/hq/4w/4M/orNJLN2keGHhcs7cO2fOniiRwmEQ/FmpVG/dvnN39V7t/oOHjx6vrW+cOJNaDh1upLFnEXMghYYOCpRwllhgKpJwGg13C/50BNYJo7/hJIFQsYEWfcEZeuj7+AV9R/uN8fb5Wj1oBdOiy0173tR36mRax+frlcNebHiqQCOXzLluO0gwzJhFwSXktV7qIGF8yAbQ9a1mClyYTRXndMsjMe0b6z+NdIrWtq6NZMrjDqxlmHcdKBEZGYfXl2ZMOTdRkV+mGF64Ra4Ab+K6KfbfhpnQSYqg+UxLP5UUDS0corGwwFFOfMO4Ff45lF8wyzh6H0u3RMYMkUWuybzOSVOlEoU1P0pvz6YCEuBldJxqwU0MC6jEMVpWNi8eicTN7RvP/PNWOUDFhC7syw5AjsDrZPQTpHDF+nsLurEnBgJd86P/5br5wQIMt5dGSvuOrrx/+dVb/95b/+/E/3beOFbr7YHPh4UjP/s5Ac8am/X286xXbIuibD/Paz5+7cWwLTcnr1rt163gi8/h7iyHZJVskmekQdrkDdkhB+SYdAgnivwkv8jvyt/qRvVpdXN2tLIyn3lCSlV9fgmdHiB/</latexit>

ɿ = ǔ(ɴ)ɴ0 = ǔא(ɿ)

Ƴǣȅ(ɿ) < Ƴǣȅ(ɴ)<latexit sha1_base64="yyJR84g2TC5iv2yarr00Uem03bE=">AAADsHicfVJdb9MwFPUaPkb46uCRF4tqo0WlSssDPIA0sU1MgsIQdKvUVJXj3Hamjh3ZTkkX5Vfxa/YKfwSn7aalm7AU6egcn+t7T24Qc6aN551vVJxbt+/c3bzn3n/w8NHj6taTYy0TRaFHJZeqHxANnAnoGWY49GMFJAo4nATTvUI/mYHSTIofZh7DMCITwcaMEmOpUbXrBzBhIiOcTcTL3D3DO+/xeNSupw3s+9hNXyyJTv1sSYQsKuDOO1ygtOH6IMIL+6ha81re4uDroL0CNbQ6R6Otyic/lDSJQBjKidaDthebYUaUYZRD7vqJhpjQKZnAwEJBItDDbDF3jrctE+KxVPYTBi9Yd/uKJYssr0EpYvKBhogFkofDq0UzEmk9jwJbLCLmVK9rBXmTNkjM+O0wYyJODAi67GWccGwkLnK26Sighs8tIFQxOw6mp0QRauzfKL0SSDk1JNBNYvucN6OEG6bkr9Ls2aKBGGiZTRPBqAxhjeUmNYqUwwtnLNar+NJlfjYqDSYiTBTxZYfAZ2D7JPgLJHCp2ncLub7PJszo5me7OKL5UQFMG9cspXrdy+xffbfRf7DRX9z4X80bba6/D3Y/FHSt92sMVpUq8w/yzC+qBUF2kOeuXb/2+rJdB8edVvt1y/vWqe3urRZxEz1Dz1EdtdEbtIsO0RHqIYp+o3P0B/11Ok7fGTlkebWysfI8RaXj/PwHexg2nQ==</latexit>

Page 43: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Autoencoders

29

ɿ = ǔ(ɴ)ɴ0 = ǔא(ɿ)

Ƴǣȅ(ɿ) < Ƴǣȅ(ɴ)<latexit sha1_base64="yyJR84g2TC5iv2yarr00Uem03bE=">AAADsHicfVJdb9MwFPUaPkb46uCRF4tqo0WlSssDPIA0sU1MgsIQdKvUVJXj3Hamjh3ZTkkX5Vfxa/YKfwSn7aalm7AU6egcn+t7T24Qc6aN551vVJxbt+/c3bzn3n/w8NHj6taTYy0TRaFHJZeqHxANnAnoGWY49GMFJAo4nATTvUI/mYHSTIofZh7DMCITwcaMEmOpUbXrBzBhIiOcTcTL3D3DO+/xeNSupw3s+9hNXyyJTv1sSYQsKuDOO1ygtOH6IMIL+6ha81re4uDroL0CNbQ6R6Otyic/lDSJQBjKidaDthebYUaUYZRD7vqJhpjQKZnAwEJBItDDbDF3jrctE+KxVPYTBi9Yd/uKJYssr0EpYvKBhogFkofDq0UzEmk9jwJbLCLmVK9rBXmTNkjM+O0wYyJODAi67GWccGwkLnK26Sighs8tIFQxOw6mp0QRauzfKL0SSDk1JNBNYvucN6OEG6bkr9Ls2aKBGGiZTRPBqAxhjeUmNYqUwwtnLNar+NJlfjYqDSYiTBTxZYfAZ2D7JPgLJHCp2ncLub7PJszo5me7OKL5UQFMG9cspXrdy+xffbfRf7DRX9z4X80bba6/D3Y/FHSt92sMVpUq8w/yzC+qBUF2kOeuXb/2+rJdB8edVvt1y/vWqe3urRZxEz1Dz1EdtdEbtIsO0RHqIYp+o3P0B/11Ok7fGTlkebWysfI8RaXj/PwHexg2nQ==</latexit>

[From wikipedia]

Page 44: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Autoencoders for CF• X: Either a row or a column of the

ratings matrix

• Missing entries:

• Set to 0 in the input

• Not considered in the output

• Many versions using denoising-autoencoders (DAEs), VAEs, different likelihoods (etc.)

30

[From wikipedia]

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

ZXJWX!NYJRX

ɴ<latexit sha1_base64="asaNeWQvVpiBUnmKjRWD0NemgLA=">AAADYnicfVLLbtNAFJ3GPIp5tKFLWFhElYoUIrssYFlBIypBoRWkrZRE1Xh8k44yD2vmOiSy/AVs4ePY8yGME1PVScWVLF2dM+fOmeMbp4JbDMPfGw3vzt179zcf+A8fPX6ytd18emZ1Zhj0mBbaXMTUguAKeshRwEVqgMpYwHk8eV/y51Mwlmv1DecpDCUdKz7ijKKDTmeX262wEy4qWG+iqmmRqk4um42Pg0SzTIJCJqi1/ShMcZhTg5wJKPxBZiGlbELH0HetohLsMF84LYJdhyTBSBv3KQwWqL97Q5JLh1swhmLRtyB5rEUyvDk0p9LauYzdMEnxyq5yJXgb189w9HaYc5VmCIotvYwyEaAOymSChBtgKOauocxw95yAXVFDGbr8arfEWk+QxrZNnc95W2YCudHfa2/PFwZSYHV0linOdAIrqMAZGloPL5ny1FbxzZb5uagsoKRclfHlRyCm4HzS4DNkcM26e0t675CPOdr2J/erVfuDAZi8XJPU5h1fZ//qq4v+nYv+34n/zbxV5g8Owe2HgWOn/ZKCY7XJB90iH5TT4jjvFoXv1i9aXbb15my/E73u7J+GrYNutYib5Bl5QfZIRN6QA3JETkiPMALkB/lJfjX+eL7X9HaWRxsblWaH1Mp7/hfThx39</latexit>

Page 45: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

MF vs. AE for CF

• AE are more “naturally” non-linear

• AE are asymmetric

• must choose whether to model users or items

• Versions of AEs are close to the state-of-the-art today

31

Page 46: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

How to choose the right model?

• Search for papers that compare different models

• Keep a healthy does of scepticism

• I.e., results in papers is not necessarily ground truth

• Try it out on your data

• Compare performance on held-out data

• Can it handle: your data size, service speed, updating schedule, other desiderata (fairness, uncertainty estimates) …

32

Page 47: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Are deep models better? • 2014: No

• 2018: Yes

• 2019: Maybe not … *

• “Embarrassingly Shallow Autoencoders for Sparse Data”, Steck’19

• “On the Difficulty of Evaluating Baselines: A Study on Recommender Systems”, Rendle et al.’19:

• “With a careful setup of a vanilla matrix factorization baseline, we are not only able to improve upon the reported results for this baseline but even outperform the reported results of any newly proposed method.”

(* This is not considering possibly available covariates)

33

Page 48: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Explicit vs. Implicit data

34

Page 49: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Explicit vs. Implicit data• Up to now we assumed ratings

• Ratings are explicit data:

• “Users explicitly provide their preferences”

• A high rating means the user liked the item

• A low rating means the user disliked the item

34

Page 50: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Explicit vs. Implicit data• Up to now we assumed ratings

• Ratings are explicit data:

• “Users explicitly provide their preferences”

• A high rating means the user liked the item

• A low rating means the user disliked the item

• In practice implicit data is much more common:

• click, buy, watch, listen

34

Page 51: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Challenge with Implicit Data

• Consuming an item usually implies a positive preference

• Not Consuming an item may either indicate:

A. A negative preference

B. Something else: e.g., lack of exposure or time

35

Page 52: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Challenge with Implicit Data

• The preference matrix is “full” (as opposed to sparse)

• ‘1’ indicates a consumed item

• ‘0’ indicates an unconsumed item

• You must take both 0s and 1s into account

• In practice many models can be adapted to implicit case

36

2

664

3

775

<latexit sha1_base64="5bvgG+wh+daq1c6Vqy57a5Jj5/A=">AAAD6nicfVLLbhMxFHUyPMrwSukSkCzSoiKFKBMWsKygEZWgUARpK2WiyPbcpFY89sj2hESjWbNnh9jyU3wE/4AnCVEnqbBk6eocn/s4vjQR3NhW63el6l27fuPm1i3/9p279+7Xth+cGpVqBl2mhNLnlBgQXELXcivgPNFAYirgjI7fFPzZBLThSn6xswT6MRlJPuSMWAcNat92QwojLjMaE6v5NPcD/BS3Nm4YYr+I1tlgxWyy65qgpAlBRququ4NavdVszQ/eDIJlUEfLczLYrr4LI8XSGKRlghjTC1qJ7WdEW84E5H6YGkgIG5MR9FwoSQymn80dy/GeQyI8VNpdafEc9fcuSbLY4Qa0JjbvGYg5VSLqX06akdiYWUxdMjfEhVnnCvAqrpfa4at+xmWSWpBs0cswFdgqXPwQjrgGZsXMBYRp7sbB7IJowqz7x1IVqtTYEmoaxPU5a8SpsFyrr6XZs3kDCbAyOk0lZyqCNVTYqdWkbF404YlZ2jdd+OesMmBjwmVhX3YEYgKuT4I/QAor1tUt6P1DPuLWNN67lZONtxpg/GxDUsp3vPL++Wdn/Wtn/b8X/8t5pcwPD8Hth4Zjp/2YgGOVzsJOnoVFNkqzTp77bv2C9WXbDE7bzeBFs/2pXT/oLBdxCz1ET9A+CtBLdICO0AnqIob+VHYqjyqPPeF99354PxdPq5WlZgeVjvfrLypIO6M=</latexit>

Page 53: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Common strategy for implicit data

• Model the 0s as being “less certain” than the 1s

• Weighted Matrix Factorization [Hu et al. ’08]

• Learn the weight of each zero

• Exposure Matrix Factorization [Liang et al.’15]

37

�ƫǴƺƬɎǣɮƺ xIي

|ɖɀƺȸɀ|X

ɖ

X

ǣ

(³ɖǣ � ³ɖǣ)א

�ƫǴƺƬɎǣɮƺ áxIي

|ɖɀƺȸɀ|X

ɖ

X

ǣ

Ƭɖǣ(³ɖǣ)(³ɖǣ � ³ɖǣ)א

Ƭɖǣ() < Ƭɖǣ()<latexit sha1_base64="VUwdq+j6fYIgJvLWnzLV5HnO5A0=">AAAEgniclVNdb9MwFE1GgBE+tsEjErKoNrWom5oNCQR7mMYGk2BsaOxDqkvluLebqRNHtlNaeX7k1/AKP4Z/g9t0U9tNCBwlujrH99zr45s440zpWu23P3MjuHnr9uyd8O69+w/m5hceHimRSwqHVHAhT2KigLMUDjXTHE4yCSSJORzHnTcD/rgLUjGRftb9DBoJOU1Zm1GiHdRc8J9gDT1t9uKvQDXrAtp9+8ou4dfuaUtCTWTNebElV07HnluEVZ408+GXoXJBHtimyZlFywifEW0uwAKtfFlFGKNwutTxf9YqOFqIlg8K7X/tAONwaUxhVIdZW65V0Pr1TFRpzpdqK7XhQleDaBSUvNHaby7MvMctQfMEUk05Uaoe1TLdMERqRjnYELuzZYR2yCnUXZiSBFTDDG/SokWHtFBbSPemGg3RcHEsxSQOd+ZIom1dQcJiwVuNcVFDEqX6SezEEqLP1DQ3AK/j6rluv2wYlma5hpQWvbRzjrRAg8lBLSbdvfG+CwiVzB0H0TPi7k27u5qoEgvR0SRWVeL67FeTnGsmxbeJs5thAxnQSbSXp4yKFkyhXPe0JJPmtbosUyP7eoV/zioFOiEsHdhndoB3wfVJ0EfI4ZJ1dQd0eYudMq2qH9yvkFbfSYBO5UrKhN7upffLB876TWf9xY6/aV6bFuItcPMhYdfl7mXgWCEN3rYGD9Ti2GxbG7rxi6aH7WpwtLoSra2sfnpe2tgcDeKs99h76pW9yHvhbXg73r536FH/u//D/+n/CoLgWRAFa8XWGX+U88ibWMH6H6eni2w=</latexit>

Page 54: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/Item features (I)

• Often additional information exists

38

Page 55: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/Item features (I)

• Often additional information exists

• Users: demographic information, social networks

38

Page 56: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/Item features (I)

• Often additional information exists

• Users: demographic information, social networks

• Items: content (e.g., movie genre/trailer, book text)

• Users & items:

38

Page 57: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/Item features (I)

• Often additional information exists

• Users: demographic information, social networks

• Items: content (e.g., movie genre/trailer, book text)

• Users & items:

• timestamps, session information

38

Page 58: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/item features (II)

• Allow for content-based recommendations

39

Page 59: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/item features (II)

• Allow for content-based recommendations

• Good to combat the cold-start problem

39

Page 60: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/item features (II)

• Allow for content-based recommendations

• Good to combat the cold-start problem

• Assume that features are predictive of preferences

39

Page 61: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/item features (II)

• Allow for content-based recommendations

• Good to combat the cold-start problem

• Assume that features are predictive of preferences

• More difficult in some domains than others (e.g., movies)

39

Page 62: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/item features (II)

• Allow for content-based recommendations

• Good to combat the cold-start problem

• Assume that features are predictive of preferences

• More difficult in some domains than others (e.g., movies)

• A practical approach is to bootstrap with content-based to gather preference data and then switch to CF

39

Page 63: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

User/item features (II)

• Allow for content-based recommendations

• Good to combat the cold-start problem

• Assume that features are predictive of preferences

• More difficult in some domains than others (e.g., movies)

• A practical approach is to bootstrap with content-based to gather preference data and then switch to CF

• In the next slides we explore hybrid models for these data

39

Page 64: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Modelling Strategy

1. Generic models

• Easily extend to many different use cases

2. Tailored modelling for specific features

• This is where neural nets shine (images, text, networks)

40

Page 65: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Factorization Machines (FM) [generic model]

• Model “all” additional information

41

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

[Rendle’10]

Page 66: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Factorization Machines (FM) [generic model]

• Model “all” additional information

41

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

[Rendle’10]

Page 67: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Factorization Machines (FM) [generic model]

• Model “all” additional information

41

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item(1 0 … 0, 1 0 … 0, 25, 3) (1 0 … 0, 0 0 … 1, 22, 0) (0 1 … 0, 0 1 … 1, 55, 0)

(0 0 … 1, 1 0 … 0, 60, 2)

User Item Age

Add features as columns

[Rendle’10]

Page 68: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Factorization Machines (FM) [generic model]

• Model “all” additional information

41

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

xȒƳƺǼ ³ɖǣ := ɯ +ȵX

ǣ

ɯǣɴǣ| {z }

ȵƺȸٮǔƺƏɎɖȸƺ ȸƺǕȸƺɀɀǣȒȇ

++ȵX

Ǵ=

ȵX

Ǵ0=Ǵ+

✓>Ǵ ✓ɴǴɴǴ0

| {z }ȵƺȸٮȵƏǣȸ ȸƺǕȸƺɀɀǣȒȇ

<latexit sha1_base64="t/P1Rd4nufmqy5pWlv0Axa5Q6ms=">AAAEOXicfVJdTxNBFN1SP7B+gT76MhGIGEqzxQeNkYQgRBJFMQiYdMtmdnpbpp3d2czchTaT/WX+DxMffTO++ge8WyphoXGSzd69Z8/9OHOiVEmLvv+jMlO9cfPW7dk7tbv37j94ODf/6NDqzAg4EFpp8zXiFpRM4AAlKviaGuBxpOAoGrwt8KNTMFbq5AuOUmjHvJfIrhQcKRXOfd/VHVANtrgfukzm7PU6Owt9tsKCLOmAiQwX4AKbxaE8TgmSbBjKPHQBwhBdCma1CxwzA8xAz4AtGuU58aeVcP11Pz9OJ/Gz9f5Kkz5ZEGnVsaOYXgGeAPKwfxygngJQ8/6woOalEVIuTan/Yji34Df88WHXg+YkWPAmZy+cn3kfdLTIYkhQKG5tq+mn2HbcoBQK8lqQWUi5GPAetChMeAy27cYXkLMlynRYVxt6EmTjbG3pEsXFlLdgDMe8ZSGWxWbty0Udj22xKhWLOZ7Yq1iRnIa1Muy+ajuZpBlCIs5n6WaKoWbFhbOONCBQjSjgwkhah4kTTpeCZItSl0jrAfLI1jnNOarHmUJp9FlpdzceIAVRzg6zRApy0pWswiEaXhavcypTO5FveK4fSWUBYy6TQj63A+oUaE7OPkIGFyj1LeDlLdmTaOsfyMFJ/Z0BGDy/RinV273QfnWfpN8k6f/98b+aU2m1YAvIHwZ2ifuJzMdRGxds5y4oqkWR287zGtmvedVs14PDtUbzRWPt89rCxubEiLPeE++pt+w1vZfehrfj7XkHnqi8qUSVQUVVv1V/Vn9Vf5//OlOZcB57pVP98xdIBnIX</latexit>

(1 0 … 0, 1 0 … 0, 25, 3) (1 0 … 0, 0 0 … 1, 22, 0) (0 1 … 0, 0 1 … 1, 55, 0)

(0 0 … 1, 1 0 … 0, 60, 2)

User Item Age

Add features as columns

[Rendle’10]

Page 69: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Factorization Machines (FM) [generic model]

• Model “all” additional information

41

!

"""#

� ! · · · �! � · · · !���

� � � · · ·� ! · · · !

$

%%%&

Encode each categorical variable using a series of indicator variables

(1 0 … 0, 1 0 … 0, 3) (1 0 … 0, 0 0 … 1, 0) (0 1 … 0, 0 1 … 1, 0) (0 0 … 1, 1 0 … 0, 2)

User Item

•Features added to the data (extra columns) are “automatically” used in the model

•Modelling extra information implies adding the feature

xȒƳƺǼ ³ɖǣ := ɯ +ȵX

ǣ

ɯǣɴǣ| {z }

ȵƺȸٮǔƺƏɎɖȸƺ ȸƺǕȸƺɀɀǣȒȇ

++ȵX

Ǵ=

ȵX

Ǵ0=Ǵ+

✓>Ǵ ✓ɴǴɴǴ0

| {z }ȵƺȸٮȵƏǣȸ ȸƺǕȸƺɀɀǣȒȇ

<latexit sha1_base64="t/P1Rd4nufmqy5pWlv0Axa5Q6ms=">AAAEOXicfVJdTxNBFN1SP7B+gT76MhGIGEqzxQeNkYQgRBJFMQiYdMtmdnpbpp3d2czchTaT/WX+DxMffTO++ge8WyphoXGSzd69Z8/9OHOiVEmLvv+jMlO9cfPW7dk7tbv37j94ODf/6NDqzAg4EFpp8zXiFpRM4AAlKviaGuBxpOAoGrwt8KNTMFbq5AuOUmjHvJfIrhQcKRXOfd/VHVANtrgfukzm7PU6Owt9tsKCLOmAiQwX4AKbxaE8TgmSbBjKPHQBwhBdCma1CxwzA8xAz4AtGuU58aeVcP11Pz9OJ/Gz9f5Kkz5ZEGnVsaOYXgGeAPKwfxygngJQ8/6woOalEVIuTan/Yji34Df88WHXg+YkWPAmZy+cn3kfdLTIYkhQKG5tq+mn2HbcoBQK8lqQWUi5GPAetChMeAy27cYXkLMlynRYVxt6EmTjbG3pEsXFlLdgDMe8ZSGWxWbty0Udj22xKhWLOZ7Yq1iRnIa1Muy+ajuZpBlCIs5n6WaKoWbFhbOONCBQjSjgwkhah4kTTpeCZItSl0jrAfLI1jnNOarHmUJp9FlpdzceIAVRzg6zRApy0pWswiEaXhavcypTO5FveK4fSWUBYy6TQj63A+oUaE7OPkIGFyj1LeDlLdmTaOsfyMFJ/Z0BGDy/RinV273QfnWfpN8k6f/98b+aU2m1YAvIHwZ2ifuJzMdRGxds5y4oqkWR287zGtmvedVs14PDtUbzRWPt89rCxubEiLPeE++pt+w1vZfehrfj7XkHnqi8qUSVQUVVv1V/Vn9Vf5//OlOZcB57pVP98xdIBnIX</latexit>

(1 0 … 0, 1 0 … 0, 25, 3) (1 0 … 0, 0 0 … 1, 22, 0) (0 1 … 0, 0 1 … 1, 55, 0)

(0 0 … 1, 1 0 … 0, 60, 2)

User Item Age

Add features as columns

[Rendle’10]

Page 70: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

A. Social network

• Data: user ratings and users’ friends

• Assume:

1. Friends influence your preferences

2. Different levels of trusts for different friends

42

2TIJQ� 8ZN := !!Z "N +!

Z!"3 Z� #ZSXZ!N

[Chaney et al. ’15]

Page 71: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

A. Social network

• Data: user ratings and users’ friends

• Assume:

1. Friends influence your preferences

2. Different levels of trusts for different friends

42

2TIJQ� 8ZN := !!Z "N +!

Z!"3 Z� #ZSXZ!N

[Chaney et al. ’15]

Page 72: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

A. Social network

• Data: user ratings and users’ friends

• Assume:

1. Friends influence your preferences

2. Different levels of trusts for different friends

42

2TIJQ� 8ZN := !!Z "N +!

Z!"3 Z� #ZSXZ!N

How much u “trusts” u’

The rating of u’ on item i

[Chaney et al. ’15]

Page 73: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

A. Social network• Recent models use Graph Convolutional Networks (GCNs)

• Powerful model for graph data

43

Page 74: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

A. Social network• Recent models use Graph Convolutional Networks (GCNs)

• Powerful model for graph data

43

Page 75: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

B. Item content

• Data: user ratings and item text/image/…

44

xȒƳƺǼ ³ɖǣ := ✓>ɖ (�ǣ + �ǣ)<latexit sha1_base64="dGWUVCqR2CY1I313ehvxbPFFmoI=">AAADm3icfVJdaxNBFJ1m/ajxK9VHEQbTQoppSOKDRRCKbbBoo5WatpCNYXZykwyZ2Vlm7saEZf+Kv8ZXffffOJvE0iTFCwtnzpl7596zN4iksFit/tnIebdu37m7eS9//8HDR48LW0/OrY4NhxbXUpvLgFmQIoQWCpRwGRlgKpBwEYwOM/1iDMYKHX7FaQQdxQah6AvO0FHdwn5T90BW6PZZN4lFSt+8pT4OAVk3/uajjmiJ+kF2FPQl9QdMqQzu0u1uoVitVGdB10FtAYpkEafdrdxHv6d5rCBELpm17Vo1wk7CDAouIc37sYWI8REbQNvBkCmwnWQ2Ykp3HNOjfW3cFyKdsfmdaymJcrwFYximbQtKBFr2OteLJkxZO1WBK6YYDu2qlpE3ae0Y+/udRIRRjBDyeS/9WFLUNLOU9oQBjnLqAONGuHEoHzLDODrjl14JtB4hC2yZuT6nZRVLFEZ/X5o9mTUQAV9mJ3EouPtXK6zECRq2bF5vLCK7sG8y989ZZQEVE2FmX3IMcgyuT0Y/QQxXqns3k0tHYiDQlk/cjoTl9wZgtLuWslSveeX93pmz/p2z/t+N/9W8MS3vH4HbDwNNl/s5Aqdqk/iNNPGzakGQNNI079avtrps6+C8Xqm9qtS/1IsHjcUibpJn5AUpkRp5TQ7IMTklLcLJD/KT/CK/vefeoffBO5lfzW0scp6SpfBafwHT9DEb</latexit>

[Wang et al. ’14]

Page 76: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

B. Item content

• Data: user ratings and item text/image/…

44

Content features

xȒƳƺǼ ³ɖǣ := ✓>ɖ (�ǣ + �ǣ)<latexit sha1_base64="dGWUVCqR2CY1I313ehvxbPFFmoI=">AAADm3icfVJdaxNBFJ1m/ajxK9VHEQbTQoppSOKDRRCKbbBoo5WatpCNYXZykwyZ2Vlm7saEZf+Kv8ZXffffOJvE0iTFCwtnzpl7596zN4iksFit/tnIebdu37m7eS9//8HDR48LW0/OrY4NhxbXUpvLgFmQIoQWCpRwGRlgKpBwEYwOM/1iDMYKHX7FaQQdxQah6AvO0FHdwn5T90BW6PZZN4lFSt+8pT4OAVk3/uajjmiJ+kF2FPQl9QdMqQzu0u1uoVitVGdB10FtAYpkEafdrdxHv6d5rCBELpm17Vo1wk7CDAouIc37sYWI8REbQNvBkCmwnWQ2Ykp3HNOjfW3cFyKdsfmdaymJcrwFYximbQtKBFr2OteLJkxZO1WBK6YYDu2qlpE3ae0Y+/udRIRRjBDyeS/9WFLUNLOU9oQBjnLqAONGuHEoHzLDODrjl14JtB4hC2yZuT6nZRVLFEZ/X5o9mTUQAV9mJ3EouPtXK6zECRq2bF5vLCK7sG8y989ZZQEVE2FmX3IMcgyuT0Y/QQxXqns3k0tHYiDQlk/cjoTl9wZgtLuWslSveeX93pmz/p2z/t+N/9W8MS3vH4HbDwNNl/s5Aqdqk/iNNPGzakGQNNI079avtrps6+C8Xqm9qtS/1IsHjcUibpJn5AUpkRp5TQ7IMTklLcLJD/KT/CK/vefeoffBO5lfzW0scp6SpfBafwHT9DEb</latexit>

[Wang et al. ’14]

Page 77: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Questions?

Page 78: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

C. Dynamic Modelling• Data: user ratings with timestamps

• Assume:

• User tastes change over time

• Item popularity change over time

46

xȒƳƺǼ ³Ɏɖǣ := ✓Ɏ>

ɖ �Ɏǣ

✓Ɏ = ✓Ɏ� + ✏<latexit sha1_base64="MnamBIDERRYFxZUiESq4HdCmujc=">AAAD+nicfVJdaxNBFJ00ftT40VYffRkMLRWTkFRBsQhFGyxotVLTFjJpmJ3ctENmd5aZuzFh3N/hu2/iq3/GHyM4m8bSTYIXlr2cM+fOvWduECtpsV7/XVgqXrt+4+byrdLtO3fvrayu3T+yOjECWkIrbU4CbkHJCFooUcFJbICHgYLjYPAm44+HYKzU0Wccx9AJ+Vkk+1Jw9FB39RtDGKHb1z1QtZRts+0NeniKXZfIlL58RVmgVc+OQ/9jeA7ITx0y1HHaTXJckFHYlYyVNhaIkC4uVW2k9EmOgdhKlXVWrtfqk6DzSWOalMk0DrprS+9YT4skhAiF4ta2G/UYO44blEJBWmKJhZiLAT+Dtk8jHoLtuImDKV33SI/2tfFfhHSCltavSFzocQvGcEzbFkKZtdy5WtTx0GYz+GIhx3M7y2XgIq6dYP9Fx8koThAicdFLP1EUNc1ejPakAYFq7BMujPTjUHHODRfo3zV3S6D1AHlgK9z3Oa6EiUJp9Jfc7G7SQAwij46SSAq/BDOowhEanjevN5Sxndo3uvDPW2UBQy6jzD63B2oIvk9OP0ACl6y/N6M3d+WZRFt571cwqrw1AIPHc5Jcvf1L76uH3vrX3vp/J/5Xc6GsxHbB74eBfa/9GINntXGsmTqWVQsC10zTkl+/xuyyzSdHW7XG09rWp2flneZ0EZfJQ/KIbJIGeU52yB45IC0iyJ9CuVApVItfi9+LP4o/L44uFaaaByQXxV9/ASCSWMs=</latexit>

Page 79: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

C.1 Session-Based Modelling

• Data: user ratings with timestamps

• Assume: Users consume related items over short periods of time

• Domains: Music playlist, exercises, short videos

• Model. Sequential models like RNNs.

47

Next movie prediction

Page 80: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Session-based + Social Networks

48[Song et al. 2019]

Page 81: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

An example from Youtube

[Covington et al., ‘16]

Page 82: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Evaluation

• Evaluate performance on held-out data (standard)

• Splitting data into train/validation/test:

• Split by user to give equal “weight” to each user

• Ensure that each user has enough data (no cold-start)

50

Page 83: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Evaluation metrics1. Score prediction (explicit data only)

• Mean squared error:

51

|ɖɀƺȸɀ|

!

ɖ

!

ǣ

(³ɖǣ ! ³ɖǣ)א

<latexit sha1_base64="xkg5UpkNSE/jRnw/3N5niM3+ivk=">AAADp3icfVLdThNBFB5af6D+UPTSxEwkJJCUZosXekkqBC5EMAg06dZmdnraTjq7s5k5i22GfQcfwXfwZeRW730GT1tAWown2c3J953vzDlfTpRq5TAILhcKxXv3HzxcXCo9evzk6XJ55dmpM5mVcCKNNrYRCQdaJXCCCjU0UgsijjScRYN3Y/7sHKxTJvmEoxRaseglqqukQILa5YOwa4X0tdxfhAhD9Jmj6vwi56HL4nY2+Su+PiWP87bPVM43edgX6K/BKbrxeatdXg2qwST43aR2laxu7y19e/n7x9ej9kqhHnaMzGJIUGrhXLMWpNjywqKSGvJSSPOkQg5ED5qUJiIG1/KTvXO+RkiHd42lL0E+QUtrtyQ+JpwWsgLzpoNYRUZ3WrebehE7N4ojahYL7Lt5bgz+i2tm2H3b8ipJM4RETmfpZpqj4WOfeUdZkKhHlAhpFa3DZV+Q10j+zrwSGTNAEbmKoDlHlTjTqKz5MrO7nwyQgpxFh1mipOnAHKpxiFbMmtc5V6m7sm849Y+scoCxUMnYPr8P+hxoTsE/QAY3LL07ptd3VE+hq7ynw0kqexZgsHFHMtPv4Mb7zWOyvk7WX1f8r+dfWV4qhTtAZ2HhgCSHKRBorA93cx+Om0SR383zEl1dbf7G7ianW9Xa62rwkc6vzqaxyF6wV2yd1dgbts322RE7YZJ9Z5fsJ/tV3CgeFk+LjWlpYeFK85zNRFH8AfOlPpc=</latexit>

Page 84: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Evaluation metrics1. Score prediction (explicit data only)

• Mean squared error:

2. Information retrieval

• Precision, Recall

• Average rank, Mean average precision

• Normalized Discounted Cumulative Gain (NDCG)

• Compares the ranking of your system with the optimal ranking

• (Exponentially) Discounts items lower ranked items

51

|ɖɀƺȸɀ|

!

ɖ

!

ǣ

(³ɖǣ ! ³ɖǣ)א

<latexit sha1_base64="xkg5UpkNSE/jRnw/3N5niM3+ivk=">AAADp3icfVLdThNBFB5af6D+UPTSxEwkJJCUZosXekkqBC5EMAg06dZmdnraTjq7s5k5i22GfQcfwXfwZeRW730GT1tAWown2c3J953vzDlfTpRq5TAILhcKxXv3HzxcXCo9evzk6XJ55dmpM5mVcCKNNrYRCQdaJXCCCjU0UgsijjScRYN3Y/7sHKxTJvmEoxRaseglqqukQILa5YOwa4X0tdxfhAhD9Jmj6vwi56HL4nY2+Su+PiWP87bPVM43edgX6K/BKbrxeatdXg2qwST43aR2laxu7y19e/n7x9ej9kqhHnaMzGJIUGrhXLMWpNjywqKSGvJSSPOkQg5ED5qUJiIG1/KTvXO+RkiHd42lL0E+QUtrtyQ+JpwWsgLzpoNYRUZ3WrebehE7N4ojahYL7Lt5bgz+i2tm2H3b8ipJM4RETmfpZpqj4WOfeUdZkKhHlAhpFa3DZV+Q10j+zrwSGTNAEbmKoDlHlTjTqKz5MrO7nwyQgpxFh1mipOnAHKpxiFbMmtc5V6m7sm849Y+scoCxUMnYPr8P+hxoTsE/QAY3LL07ptd3VE+hq7ynw0kqexZgsHFHMtPv4Mb7zWOyvk7WX1f8r+dfWV4qhTtAZ2HhgCSHKRBorA93cx+Om0SR383zEl1dbf7G7ianW9Xa62rwkc6vzqaxyF6wV2yd1dgbts322RE7YZJ9Z5fsJ/tV3CgeFk+LjWlpYeFK85zNRFH8AfOlPpc=</latexit>

Page 85: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Precision/Recall

[From wikipedia]

Page 86: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Precision/Recall

[From wikipedia]

• For implicit data recall is more appropriate

«ƺƬƏǼǼ := Á¨Á¨+Iz

<latexit sha1_base64="wacEyPIIyG492w6JieuxaPTc5fw=">AAADiHicfZLdahNBFMenWT/q+pXqpTeDaaBiDJt4URWEUhstaGvUpi1kQ5idPUmHzO4sM2djwrJP4NN4q0/i2zibxNIkxYGBw/8/58w5P06QSGHQ8/5slJwbN2/d3rzj3r13/8HD8tajU6NSzaHDlVT6PGAGpIihgwIlnCcaWBRIOAtG7wr/bAzaCBWf4DSBXsSGsRgIztBK/XJ120eYYPYVOJMyp2/eUn+gGc9O2rm99Dl9f5xv98sVr+7NDl0PGougQhan3d8qffRDxdMIYuSSGdNteAn2MqZRcAm566cGEsZHbAhdG8YsAtPLZvPktGqVkA6UtjdGOlPd6pWULLK6Aa0Z5l0DkQiUDHtXi2YsMmYaBbZYxPDCrHqFeJ3XTXHwqpeJOEkRYj7vZZBKiooW/GgoNHCUUxswroUdh/ILZomhpbz0S6DUCFlgasz2Oa1FqUSh1fel2bNZAwnwZXWSxoKrEFZUiRPUbBleOBaJWeCbzPlZVAYwYiIu8GWHIMdg+2T0GFK4dO2/hb1zIIYCTe2TXYi49kEDjJ6tpSzVO7pk/+KbRb9v0f978b+a16a5/gHY/dBwZHM/J2BdpTO/lWd+US0Islaeu3b9GqvLth6cNuuNl/Xml2Zlr7VYxE3yhDwlO6RBdskeOSRt0iGc/CA/yS/y23Edz9l1Xs+fljYWOY/J0nH2/wL/qyq7</latexit>

Page 87: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Precision/Recall

[From wikipedia]

• Consider only the top items (Recall@K)

• For implicit data recall is more appropriate

«ƺƬƏǼǼ := Á¨Á¨+Iz

<latexit sha1_base64="wacEyPIIyG492w6JieuxaPTc5fw=">AAADiHicfZLdahNBFMenWT/q+pXqpTeDaaBiDJt4URWEUhstaGvUpi1kQ5idPUmHzO4sM2djwrJP4NN4q0/i2zibxNIkxYGBw/8/58w5P06QSGHQ8/5slJwbN2/d3rzj3r13/8HD8tajU6NSzaHDlVT6PGAGpIihgwIlnCcaWBRIOAtG7wr/bAzaCBWf4DSBXsSGsRgIztBK/XJ120eYYPYVOJMyp2/eUn+gGc9O2rm99Dl9f5xv98sVr+7NDl0PGougQhan3d8qffRDxdMIYuSSGdNteAn2MqZRcAm566cGEsZHbAhdG8YsAtPLZvPktGqVkA6UtjdGOlPd6pWULLK6Aa0Z5l0DkQiUDHtXi2YsMmYaBbZYxPDCrHqFeJ3XTXHwqpeJOEkRYj7vZZBKiooW/GgoNHCUUxswroUdh/ILZomhpbz0S6DUCFlgasz2Oa1FqUSh1fel2bNZAwnwZXWSxoKrEFZUiRPUbBleOBaJWeCbzPlZVAYwYiIu8GWHIMdg+2T0GFK4dO2/hb1zIIYCTe2TXYi49kEDjJ6tpSzVO7pk/+KbRb9v0f978b+a16a5/gHY/dBwZHM/J2BdpTO/lWd+US0Islaeu3b9GqvLth6cNuuNl/Xml2Zlr7VYxE3yhDwlO6RBdskeOSRt0iGc/CA/yS/y23Edz9l1Xs+fljYWOY/J0nH2/wL/qyq7</latexit>

Page 88: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Other topics

• Lots of other possible signals

• Search queries, engagement (time spent on page)

• Structured recommendations

• E.g., Recommend a trip, a curriculum of courses

53

Page 89: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Concluding Remarks (I)

• Type of models we have discussed are useful for:

• Domains with large number of items (and users for CF)

• Subjective preferences over attributes (features)

• E.g., movies and not plane tickets

• Items can be consumed relatively fast

• E.g., restaurants/movies and not cars/houses

54

Page 90: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

Concluding Remarks (II)

• CF models “work well” especially in large-data regimes

• Commercial systems are reasonably good

• There is evidence that companies derive value from them

• Much progress remains to be done

• Modelling preferences is a very active research topic

• Good preference models gave rise to other questions

55

Page 91: Machine Learning I 80-629A Apprentissage Automatique I 80-629lcharlin/courses/80-629/slides_recsys.pdf · Laurent Charlin — 80-629 CF- Neighbourhood 1. Find similarity between every

Laurent Charlin — 80-629

References• Marital satisfaction and break-ups differ across on-line and off-line meeting venues, J. Cacioppo et al., PNAS’13

• A Probabilistic Model for Using Social Networks in Personalized Item Recommendation, A. Chaney et al., Recsys’15

• Deep Neural Networks for YouTube Recommendations, P. Covington et al., Recsys’16

• Content-based recommendations with Poisson factorization, P. Gopalan et al., NIPS’14

• Scalable Recommendation with Hierarchical Poisson Factorization., P. Gopalan et al., UAI’15

• Collaborative Filtering for Implicit Feedback Datasets, Hu et al., ICDM’08

• Exposure Matrix Factorization, D. Liang et al., WWW’16

• Factorization Machines, S. Rendle, ICDM ’10

• Probabilistic Matrix Factorization, R. Salakhutdinov and A. Mnih, NIPS’08

• Session-based Social Recommendation via Dynamic Graph Attention Networks, W. Song et al., WSDM’19

• Collaborative Topic Modeling for Recommending Scientific Articles, C. Wang and D. Blei, KDD’11

• Deep matrix factorization models for recommender systems, HJ Xue et al., IJCAI’17

56