基于协同过滤的推荐引擎

(一)推荐引擎用例

  • 京东、淘宝根据客户的购买历史来推荐;
  • 爱奇艺、乐视根据向用户推荐电影;

(二)推荐算法

  • 基于关系规则推荐:用户A经常同时购买了哪些商品,分析这些商品的关联规则,则用户B购买其中某一商品,可推荐其它商品;
  • 基于内容推荐:用户喜欢A电影,B电影和A属于同一类型,比如爱情片,则该用户还可能喜欢B电影;
  • 基于人口统计学推荐:将用户A的属性或特征一一罗列,如年龄、性别、职业等,如果用户B和A具有相似的属性,则用户B和用户A可能有相似购物喜好。
  • 基于协同过滤推荐:
    • 基于用户:将一个用户对同所有item或content的偏好作为一个向量,计算用户之间的相似度;比如用户A购买了商品1和商品2,用户B也购买了商品1和商品2,则用户A购买了商品3时,可推荐用户B商品3。
    • 基于物品:将所有用户对某一item或content的偏好作为一个向量,计算item或content的相似度;比如用户A、用户B、用户C都购买了商品1,同时这些用户也都购买了商品2, 则用户D购买商品1时可推荐其购买商品2。

(三)协同过滤推荐

  • 计算相似度
    • 欧氏距离:将向量组成矩阵,纵向计算两列值的欧氏距离:,相似度=1/(1+d)。
    •  皮尔逊相似度(pearson correlation):度量两个向量之间的相似度,对量级不敏感,比如用户A对某电影差评为1,用户B对该电影好评为5,但皮尔逊系统会认为这两个向量是相等的。皮尔逊系数值一般为-1 至 1, 通过0.5 + 0.5 * 皮尔逊系数值归化为0到1之间。

    • 余弦相似度(cosine similarity):计算两个向量夹角之间的余弦值,余弦值为0,相似度为1。余弦值在-1和1之间,可归化为0到1之间;计算公式:,如向量a,b坐标a(x1,y1), b(x2,y2), 则:,推广向量A=(x1,x2,x3...xn), B=(y1,y2,y3...yn),则:
  • 基于物品还是用户相似度?

    •  

      假设用户对物品的偏好向量组成一个矩阵,纵向为物品,横向为用户;

    • 用户和物品的数量级决定性能,所有用户数量远大于物品数量时,一般使用基于物品相似度的计算方法。
  •  

posted @ 2018-08-09 23:15  岩文01  阅读(370)  评论(0编辑  收藏  举报