0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于内容推荐(CB)的推荐算法

姚小熊27 来源:网络整理 2018-04-26 10:46 次阅读

基于内容推荐概要

基于内容的信息推荐方法的理论依据主要来自于信息检索和信息过滤,所谓的基于内容的推荐方法就是根据用户过去的浏览记录来向用户推荐用户没有接触过的推荐项。主要是从两个方法来描述基于内容的推荐方法:启发式的方法和基于模型的方法。启发式的方法就是用户凭借经验来定义相关的计算公式,然后再根据公式的计算结果和实际的结果进行验证,然后再不断修改公式以达到最终目的。而对于模型的方法就是根据以往的数据作为数据集,然后根据这个数据集来学习出一个模型。一般的推荐系统中运用到的启发式的方法就是使用tf-idf的方法来计算,跟还有tf-idf的方法计算出这个文档中出现权重比较高的关键字作为描述用户特征,并使用这些关键字作为描述用户特征的向量;然后再根据被推荐项中的权重高的关键字来作为推荐项的属性特征,然后再将这个两个向量最相近的(与用户特征的向量计算得分最高)的项推荐给用户。在计算用户特征向量和被推荐项的特征向量的相似性时,一般使用的是cosine方法,计算两个向量之间夹角的cosine值。

基于内容推荐的步骤

1、对数据内容分析,得到物品的结构化描述

2、分析用户过去的评分或评论过的物品的,作为用户的训练样本

3、生成用户画像

a.可以是统计的结果(后面使用相似度计算)

b.也可以是一个预测模型(后面使用分类预测计算)

4、新的物品到来,分析新物品的物品画像

5、利用用户画像构建的预测模型,预测是否应该推荐给用户U

a.策略1:相似度计算

b.策略2:分类器做预测

6、进一步,预测模型可以计算出用户对新物品的兴趣度,进而排序

7、进一步,用户模型在变化,通过反馈更新用户画像(用户画像在这里就是预测模型)

反馈-学习,构成了用户画像的动态变化

基于内容推荐的层次结构

* 内容分析器

文档的数据处理

得到结构化的数据,存储在物品库中

* 信息学习器

收集有关用户偏好的数据特征,泛华这些数据,构建用户特征信息(机器学习

通过历史数据构建用户兴趣模型(通过分类的方法,提取特征,特征就是组建用户画像的基础)

生成兴趣特征(正样本)和无兴趣特征(负样本)

* 过滤组件

将用户的个人信息和物品匹配

生成二元或连续性的相关判断(原型向量和物品向量的余弦相似度)

基于内容推荐(CB)的推荐算法

就目前看,Collaborative Filtering Recommendations (协同过滤,简称CF) 还是目前最流行的推荐方法,在研究界和工业界得到大量使用。但是,工业界真正使用的系统一般都不会只有CF推荐算法,Content-based Recommendations (基于内容推荐,CB) 基本也会是其中的一部分。

CB根据用户过去喜欢的产品(items),为用户推荐和他过去喜欢的产品相似的产品。例如,一个推荐饭店的系统可以依据某个用户之前喜欢很多的烤肉店而为他推荐烤肉店。 CB最早主要是应用在信息检索系统当中,所以很多信息检索及信息过滤里的方法都能用于CB中。

推荐过程:

CB的推荐过程一般包括下面三步:

Item Representation:即对items做特征工程,通俗来说即对items的属性表达出来,如item = 农夫山泉(品类:矿泉水,价格:1-5,etc);

Profile Learning:利用一个用户(id)过去喜欢(以及不喜欢)的item的特征数据,来学习出此用户的喜好特征(profile),如id=我,喜欢=(农夫山泉,麦当劳),不喜欢=(槟榔,香烟),etc。

Recommendation Generation:通过比较上一步得到的用户profile与候选item的特征,为此用户推荐一组相关性最大的item。

基于内容推荐(CB)的推荐算法

例子:

对于个性化阅读来说,一个item就是一篇文章,第一步我们要提取文章中的关键词组来表示文章的主题,可以采用的方法例如TF-IDF找文章中词的权重,例如在python文章中“python”是主要被提及的字眼,那么该词是关键字,利用这种方法,我们就可以把文章向量化。第二步是找出用户之前喜欢的文章,通过上述TF-IDF方法,将其向量化,然后求平均值,来代表用户大致喜欢的文章。如果用户喜欢python语言,那么该用户的profile中[‘python’]的权重占比较大。第三步就是通过以上二步得到的所有item和该用户的profile进行匹配,计算方式一般用余弦相似度。

详细过程

1.Item Representation

Item一般都会有一些描述它的属性。这些属性通常可以分为两种:结构化(structured)和非结构化(unstructured)属性。所谓结构化属性就是可以被量化,可直接使用的属性,如人有性别、学历、地域等属性。而非结构化属性就是需要再进行二次解析,无法直接利用的属性,如人的购买记录,一篇文章的内容等。像文章这种非结构化数据可以利用TF-IDF和word2vec等算法把文章中的关键词向量化表示出来。

如果用TF-IDF表示文章对应关键词的权重,那么可以得到以下矩阵:

基于内容推荐(CB)的推荐算法

2.Profile Learning

假设用户(id)已经对一些item做出了喜欢的判断,对另一部分item做出了不喜欢的判断,且这些item我们已经有了对应的向量化表示,那么这就是用户的profile,如何简单计算用户的profile呢?公式如下:

基于内容推荐(CB)的推荐算法

其中x是用户喜欢的item,a是喜欢item的总数,y是用户不喜欢的item,b是不喜欢item的总数。这时我们得到另一个用户矩阵:(当然这里不是协同过滤,无需把全部用户列成矩阵项,实际应用单个用户id即可)

基于内容推荐(CB)的推荐算法

3.Recommendation Generation

通过以上二步得到的所有item和所有用户的profile,那么要对一个用户的profile和所有item进行匹配,此时我们计算的方式一般用余弦相似度。余弦相似度的计算方法如下,假设向量a、b的坐标分别为(x1,y1)、(x2,y2) 。则:

基于内容推荐(CB)的推荐算法

余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越接近;越趋近于-1,他们的方向越相反。如上述例子我们可以计算以下结果:

基于内容推荐(CB)的推荐算法

所以最终会把余弦值最大(跟用户最相关的文章)的前N篇推荐给用户。

优缺点

优点:可以使用当前的用户评价来构建用户的个人信息;由于过程简单解释性强,推荐的结果容易被人接受;对于新物品来没有任何用户评分的也可以推荐给用户。

缺点:可分析的内容有限,且新颖度较差,新用户需要用户的偏好信息,无法解决冷启动问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 推荐算法
    +关注

    关注

    0

    文章

    47

    浏览量

    9981
收藏 人收藏

    评论

    相关推荐

    推荐常用算法之——基于内容的推荐

    推荐常用算法之-基于内容的推荐(转自-BreezeDeus博主)
    发表于 04-29 15:12

    LG CB995C CB995D显示器电路图

    LG CB995C CB995D显示器电路图
    发表于 11-24 08:31 36次下载
    LG <b class='flag-5'>CB</b>995C <b class='flag-5'>CB</b>995D显示器电路图

    LG CB995C CB995D显示器电源电路图

    LG CB995C CB995D显示器电源电路图
    发表于 11-24 11:54 21次下载
    LG <b class='flag-5'>CB</b>995C <b class='flag-5'>CB</b>995D显示器电源电路图

    LG CB995C CB995D显示器微处理器电路图

    LG CB995C CB995D显示器微处理器电路图
    发表于 11-24 11:55 45次下载
    LG <b class='flag-5'>CB</b>995C <b class='flag-5'>CB</b>995D显示器微处理器电路图

    基于BitTorrent种子的内容分发算法

    分析当前最流行的P2P 软件——BT 的工作方式,发现其内容分发算法使得文件片段在网络节点中分布不均,影响系统效率。提出基于种子控制的内容分发算法,该
    发表于 03-29 10:57 13次下载

    CB参数对照资料

    CB资料
    发表于 02-14 17:16 1次下载

    基于内容的推荐算法概览

    为推荐系统选择正确的推荐算法非常重要,而可用的算法很多,想要找到最适合所处理问题的算法还是很有难度的。这些算法每种都各有优劣,也各有局限,因此在作出决策前我们应当对其做以衡量。在实践中
    发表于 10-09 18:42 0次下载
    基于<b class='flag-5'>内容</b>的推荐<b class='flag-5'>算法</b>概览

    基于位串内容感知的数据分块算法

    针对基于内容的可变长度的分块CDC算法中数字签名计算需要耗费大量CPU开销的问题,提出了一种基于位串内容感知的数据块分块算法算法利用每一次
    发表于 11-24 15:00 0次下载
    基于位串<b class='flag-5'>内容</b>感知的数据分块<b class='flag-5'>算法</b>

    ASMT-CB00 直角ChipLED

    电子发烧友网为你提供Broadcom(ti)ASMT-CB00相关产品参数、数据手册,更有ASMT-CB00的引脚图、接线图、封装手册、中文资料、英文资料,ASMT-CB00真值表,ASMT-
    发表于 07-04 11:26
    ASMT-<b class='flag-5'>CB</b>00 直角ChipLED

    EVAL-AD7723CB文档

    EVAL-AD7723CB文档
    发表于 05-16 17:03 0次下载
    EVAL-AD7723<b class='flag-5'>CB</b>文档

    ADP5076CB-EVALZ ADP5076CB-EVALZ评估板

    电子发烧友网为你提供ADI(ti)ADP5076CB-EVALZ相关产品参数、数据手册,更有ADP5076CB-EVALZ的引脚图、接线图、封装手册、中文资料、英文资料,ADP5076CB-EVALZ真值表,ADP5076
    发表于 07-10 17:00

    CB7851-000 CB7851-000 接头

    电子发烧友网为你提供TE(ti)CB7851-000相关产品参数、数据手册,更有CB7851-000的引脚图、接线图、封装手册、中文资料、英文资料,CB7851-000真值表,CB78
    发表于 08-11 09:00

    CB7569-000 CB7569-000 接头

    电子发烧友网为你提供TE(ti)CB7569-000相关产品参数、数据手册,更有CB7569-000的引脚图、接线图、封装手册、中文资料、英文资料,CB7569-000真值表,CB75
    发表于 08-10 21:00

    CB3127-000 CB3127-000 接头

    电子发烧友网为你提供TE(ti)CB3127-000相关产品参数、数据手册,更有CB3127-000的引脚图、接线图、封装手册、中文资料、英文资料,CB3127-000真值表,CB31
    发表于 08-14 19:00

    深度识别算法包括哪些内容

    深度识别算法是深度学习领域的一个重要组成部分,它利用深度神经网络模型对输入数据进行高层次的理解和识别。深度识别算法涵盖了多个方面的内容,主要包括以下几种类型: 1. 卷积神经网络(CNN) 概述
    的头像 发表于 09-10 15:28 233次阅读