推荐系统算法 - Matrix Factorization

在class 1,記得老師在case題Q7提到matrix factorization是處理missing value的方法之一,課件上case題Q10說可以用matrix factorization來做ads recommendation

這兩部分是同樣的概念嗎? matrix factorization是如何處理missing value和如何做recommendation的?

是相同的概念。Matrix Factorization的常用做法是NMF (Non-negative matrix factorization) or SVD (Singular Value Decomposition)。它的基本思路是:对于一个有missing value的matrix, 通过一些数学方法,把它拆成多个小矩阵相乘的形式。之后,我们把这些小矩阵相乘的结果计算出来,就相当于把原矩阵中缺失的数据补齐了。而推荐系统问题,本身可以被建模成user-item matrix的missing value补齐问题,即一个user对一些商品表现过兴趣(买过,经常看),而另一些商品没看过,就相当于对这些商品的喜爱值missing。我们可以用Matrix Factorization去解决这个问题。当然也有其他的方法。

謝謝老師回答,我大致可以了解matrix factorization是個missing value補齊的方法,用這樣的補法跟其他方法比起來有什麼優缺點? 什麼時候適合選擇這個方法?

當這個方法用在推薦系統,只是用來補user-item matrix的missing value? 還是說也能用來做推薦? 具體是怎麼做推薦的?

推荐系统在模型层面,大致来说常用的方法有两种,一种是collaborative filtering, 一种是content-based filtering. Collaborative filtering方法中,细致区分的话,有4个分支方法: user-based method, item-based method, matrix factorization, Neural Network Models. 这4种算法各有优劣,可以从推荐精确性,实时计算延时,算法可解释性等方面去讨论。这部分内容内容比较多,无法在论坛上细致说明,未来我们会在爱思数据课程中增加这部分内容。简单来说,matrix factorization比user-based or item-based算法考虑的信息更加全面,但是复杂度更高。而Neural Network Model可以被看做是 a generalized method of matrix factorization。

当使用matrix factorization之后,我们就对某一个用户针对所有商品有一个打分了,我们可以把这些打分做倒序排列,然后取top K作为推荐。当然,在具体实现的时候,还会考虑计算复杂度的问题,比如实际情况下我们不可能对所有的商品全部做打分。