推荐系统

一、推荐系统与评估

  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完成推荐

posted @ 2019-02-26 15:38  stone1234567890  阅读(201)  评论(0编辑  收藏  举报