• 推荐系统(1)


    推荐系统(1)

    1 基于内容的推荐Content-based

    主要思想:向顾客 (x) 推荐与之前被 (x) 高度评价的商品相似的商品

    步骤

    1. Item Presentation

      为每个item抽取出一些特征来表示此item(item profile)

      文本挖掘常用启发式方法: (TF-IDF)

    2. Profile Learning(典型的监督分类问题)

      利用一个用户过去喜欢 / 不喜欢的item的特征数据,来学习出此用户的喜好特征(user profile)

    3. Recommendation Generation

      通过比较user profile和item profile,为此用户推荐一组相关性最大的item

    (TF-IDF) (Term Frequency * Inverse Doc Frequency)词频-逆文档频率

    主要思想:一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能代表该文章。

    [TF-IDF score: w_{ij} = TF_{ij} imes IDF_i ]

    (i) :feature;(j) :item;(N) :total number of docs

    主要思想:一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能代表该文章。

    词频TF:某一个给定的词在该文章中出现的次数(归一化:除以文章总词数,以防止偏向长文章)

    [TF_{ij} = frac{f_{ij}}{max_kf_{kj}} ]

    逆文档频率IDF:总文件数 / (包含该给定词的文档化数+1),再取对数(IDF越大,表明词条类别区分能力好)

    [IDF_i = log{frac{N}{n_i}} ]

    TF-IDF和余弦相似度应用:自动提取关键字;找出相似文章;自动摘要

    profile的可能性

    • 加权平均值
    • 变种:不采用均值,而是给与不同的权重

    预测

    profile (x) 和item特征集合 (i) 的相关度:(u(x, i) = cos(x, i) = frac{x·i}{||x||·||i||})

    Pros vs. Cons

    优点:

    • 不需要其他用户的数据
    • 能够向用户推荐独特的口味
    • 能够推荐新的和不受欢迎的item
    • 能够提供解释

    缺点:

    • 找到合适的特征很难
    • 很难向新用户推荐(user profile构建困难)
    • 无法挖掘出用户的潜在兴趣:从不推荐用户user profile以外的内容;人们可能有多种兴趣;不能利用其它用户的质量判断

    2 协同过滤Collaborative

    主要思想:对于用户 (x),找到(N)个与 (x) 有相似评价的用户,基于这(N)个用户的评价估计 (x) 的评价

    找相似用户

    对于用户 (x),其评价向量为 (r_x)

    • Jaccard相似度:忽略了评价的值(适用于处理无打分的偏好数据,即0/1)

      (w_{u, v} = frac{|N(u) cap N(v)|}{|N(u) cup N(v)|})

    • 余弦相似度:对于没有评价的值,看作negative的(解决方法:减去行均值,即去中心化,让均值为0)

      (sim(x, y) = cos(r_x, r_y) = frac{r_x·r_y}{||r_x||·||r_y||})

    • 皮尔逊相关系数(S_{xy}),被 (x)(y) 共同评价的item(输出范围[-1, 1])

      [sim(x, y) = frac{sum_{sin{S_{xy}}}(r_{xs}-overline{r_x})(r_{ys}-overline{r_y})}{sqrt{sum_{sin{S_{xy}}}(r_{xs}-overline{r_x})^2}sqrt{sum_{sin{S_{xy}}}(r_{ys}-overline{r_y})^2}} ]

    从相似度到推荐

    (r_x) :用户(x)的评价;(N)(k)个评价过item (i)的最相似用户;(S_{xy} = sim(x, y))(x)(y)的相似度

    (r_{xi} = frac{1}{k}sum_{y in N}r_{yi})(x)(i)的评价,即(y)个用户对(i)评价的均值

    (r_{xi} = frac{sum_{y in N}S_{xy}·r_{yi}}{sum_{y in N}S_{xy}}) ,即(y)(x)的相似度越高,其评价权重越大

    (cdots),还有很多种其他的预测选择。

    item-item 协同过滤

    对于item (i),找到其他相似的item,基于其他相似item的评分估算user (x) 对item (i)的评分

    [r_{xi} = frac{sum_{j in N(i;x)}S_{ij}·r_{xj}}{sum_{j in N(i;x)}S_{ij}} ]

    其中(N)是与(i)相似的被(x)评价过的item集合。

    在实践中,对偏差进行建模,得到更好的估计:

    [r_{xi} = b_{xi} + frac{sum_{j in N(i;x)}S_{ij}·(r_{xj}-b_{xj})}{sum_{j in N(i;x)}S_{ij}} ]

    其中(b_{xi} = mu + b_x + b_i),即baseline estimate for (r_{xi})(mu)为所有评分平均值,(b_x)为user评分偏差,(b_i)为item评分偏差。

    user-user 系统过滤

    同上

    在实际中,item-item比user-user表现更好,因为item的简单的,user有不同的口味

    Pros vs. Cons

    优点:

    • 对于各种item都适合,不需要选择item特征

    缺点:

    • 冷启动:需要足够的用户来做推荐

    • 稀疏矩阵:找到评论过相同item的用户很困难

    • 第一个评价者:不能根据以前没有被评价过的item进行推荐(新item,内行的item)

    • 流行偏向:不能根据某人独特口味推荐;趋向于推荐流行的

    混合方法

    • 实现多种推荐系统,结合预测(可能使用线性模型)
    • CF主,CB辅(对于新item,新user都可以解决)

    问题讨论

    评价

    用ground truth作为test data set,看恢复精度如何

    • 均方根误差RMSE (sqrt{sum_{xi}(r_{xi}-{r_{xi}^*})^2})
    • 精确度在前10的
    • 排序相关性

    0/1模型

    • 覆盖率:系统可以做出预测的item/user数量
    • 精确度:预测精确度
    • 接收者操作特征ROC:判断错误的取舍曲线(AUC[Area under Curve]:ROC曲线下的面积,介于0.1和1之间。AUC作为数值可以直观的评价分类器的好坏,值越大越好。)

    预测错误

    没有关注到的点:

    • 预测多样性
    • 预测上下文
    • 预测顺序

    实际上,我们只关心评价高的。

    复杂度 / 性能

    找到最相似的k个用户花费巨大:(O|X|)(可以预先计算)

    处理手段:

    • LSH:用于海量高维数据的近似最近邻快速查找技术——局部敏感哈希
    • 聚类
    • 降维

    提示

    • 很多时候,简单的算法也有好的效果
    • 引入外部的知识数据
    • 更多的数据优于算法

    3 基于潜因子的推荐Latent factor based

    下节讲

  • 相关阅读:
    机器学习数学笔记|Taylor展开式与拟牛顿
    机器学习数学笔记|微积分梯度jensen不等式
    [DeeplearningAI笔记]第三章2.9-2.10端到端学习
    [DeeplearningAI笔记]第三章2.7-2.8多任务学习/迁移学习
    [DeeplearningAI笔记]第三章2.4-2.6不匹配的训练和开发/测试数据
    [DeeplearningAI笔记]第三章2.1-2.3误差分析
    [DeeplearningAI笔记]第三章1.8-1.12可避免误差与模型改善
    [DeeplearningAI笔记]第三章1.4-1.7开发集测试集划分与满足与优化指标
    [DeeplearningAI笔记]第三章1.1-1.3查准率/查全率/F1分数
    [DeeplearningAI笔记]第二章3.8-3.9分类与softmax
  • 原文地址:https://www.cnblogs.com/angelica-duhurica/p/10882264.html
Copyright © 2020-2023  润新知