推荐系统
一、推荐系统与评估
0.一种数学定义:
(1)设C为全体用户集合
(2)设S为全部商品/推荐内容集合
(3)设u是评判把si推荐给ci好坏判断函数
(4)推荐是对于c<-C,找到s<-S,使得u最大,即:
部分场景是topN推荐
(5)通俗点说,推荐系统需要根据用户的历史行为,社交行为,兴趣点,所处上下文环境等等来判断用户当前的需求/感兴趣的item。
1.推荐系统广泛应用
2.推荐系统需求
3.推荐系统结构与评估
(1)准确度:
(2)覆盖率:
(3)多样性
4.推荐系统结构
二、推荐算法串讲
1.基于内容的推荐(content-based algorithms)
(1)特征:TF-IDF
(2)基于标题内容近似度推荐
计算书名向量的相似度,推荐TopN接近的
2.协同过滤(neighborhood-based algorithms)(所有协同过滤的算法都是基于用户行为的)
基于“近邻”的推荐算法
根据用户在物品上的行为找到物品或者用户的“近邻”
基于用户的协同过滤(user-based CF):求解的是某个用户与某个用户的相似度,求出加权平均然后再空缺位置进行填充
基于用户有共同行为的物品,计算用户相似度
找到“近邻”,对近邻在新物品的评价(打分)加权推荐
基于物品的协同过滤(item-based CF)
对于有相同用户交互的产品,计算物品相似度
找到物品近邻进行推荐
基于用户的协同过滤和基于物品的协同过滤的比较:
协同过滤的优缺点:
优点:
(1)基于用户行为,因此对推荐内容无需先验知识
(2)秩序要用户和商品关联矩阵即可,结构简单
(3)在用户行为丰富的情况下效果好
缺点:
(1)需要大量的显性/隐性用户行为
(2)需要通过完全相同的商品关联,相似的不行
(3)假定用户的兴趣完全取决于之前的行为,而和当前上下文环境无关
(4)在数据稀疏的情况下受影响。可以考虑二度关联
3.矩阵分 解与隐语义模型(LFM,FM)
4.word2vec在推荐系统中的简单应用
5.推荐系统冷启动问题:
对于新用户
(1)所有推荐系统对于新用户都有这个问题
(2)推荐非常热门的商品,收集一些信息
(3)在用户注册的时候收集一些信息
(4)在用户注册完成之后,用一些互动娱乐游戏等确定喜欢与不喜欢
对于新商品
(1)根据本身的属性,求出原来商品的相似度
(2)Item-based协同过滤可以推荐过去
6.隐语义模型
(1)我们有用户评分矩阵,其中部分位置是空的
(2)我们希望尽量正确的填满未打分的项
(3)简单使用SVD不好吗?
SVD的时间复杂度是O(m^3)
原矩阵缺省值比较多,不易用0来填补
三、电商推荐系统选讲
四、推荐系统案例
1.简单CF与LFM实现
2.scikit-Surprise完成推荐