推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。
——摘自百度百科
协同过滤技术是推荐系统中最经典、常用的算法之一。其核心思想在于根据某对象的历史喜好,找到与其喜好相似的对象,来给该对象推荐商品。经典的MF(矩阵分解)算法就是基于协同过滤思想的算法。另外,目前一些基于Graph的算法也是基于协同过滤思想的。
在线性代数中,一个矩阵A的列秩是A的线性独立的纵列的极大数目。类似地,行秩是A的线性无关的横行的极大数目。
在协同过滤中,低秩体现在相似行为的用户对于商品有着相似的评分。
item1 | item2 | item3 | |
---|---|---|---|
user1 | 2 | 4 | 3 |
user2 | 3 | 5 | 5 |
user3 | 2 | 4 | 3 |
我们可以看到use1和user3的行为相同,那么user1和user3这两行可能是线性相关的,此时该
3
×
3
3\times 3
3×3的评分矩阵的秩是2,换句话说用户被我们分成了2类。那么如果user1中对于item2的评分是未知的,那么我们就可以通过user3的行为推断该评分。
最坏情况下,user1、user2和user3的行为是完全不同的,如下表,此时评分矩阵为满秩,即三个用户分为三类,每个用户的行为差异很大,那么此时我们就难以通过某个用户的其他相似用户的行为来预测该用户的未知评分。
item1 | item2 | item3 | |
---|---|---|---|
user1 | 2 | 6 | 2 |
user2 | 3 | 5 | 5 |
user3 | 5 | 4 | 1 |
因此在协同过滤的算法中,默认的假设便是评分矩阵的低秩性。