首页 > 编程知识 正文

内容管理系统的推荐算法,基于内容的推荐系统算法

时间:2023-05-03 06:21:53 阅读:19949 作者:1308

来自3:http://big data.51cto.com/art/201609/518316.htm

一、推荐系统概述和常用评价指标

1.1 推荐系统的特点

据我所知,我试着搜索了推荐系统,结果还是很少,有点小。 而且,对推荐系统的一般见解如下。

)重要的UI数据算法是指在推荐系统中只追求先进算法是一种误解。 通常,论文研究类的一些推荐方法有很多假设限制,也有很少的工程实现问题。 推荐系统需要大量的数据整理和转换,同时必须考虑公司的业务特性和与现有系统的集成,才能形成推荐系统与业务的良性循环。

)2)推荐系统离线测试好,上线后无严格测试结果只靠感觉,或实际效果差。 主要是因为离线测试比较理想,但在线AB冠军测试对前端和后端的要求都很高,需要有足够的研发实力才能实现。

)3)推荐系统干扰因素特别多(季节、流行因素等),整个系统必须不断反复更新,无需费力。

1.2 推荐系统的评价指标

由于推荐系统复杂,相关评价指标也很多。 当然,用户满意度最有效,这本来是推荐系统的最终目标,但资源有限,成本过高,推荐系统依赖于其他客观评价指标。

(1)推荐精度)该参数可以离线计算,客观,是各研究论文算法最重要的参考指标。

一般来说,由于推荐系统有两个任务:“预测”和“推荐”,因此推荐系统的精度评估包括

评分预测:学习用户的评价模型,用于预测用户对没有接触的东西的评分。 实际上可以看作回归模型,一般用均方根误差或绝对误差来测量;

TopN推荐:为用户提供个性化推荐列表。 这一般用正确性、召回率等指标来评价。 在此,n也是可变参数,通过根据不同的n画出对应算法的ROC曲线,可以进一步评价推荐效果

)2)覆盖率)体现了挖掘算法对长尾商品挖掘的能力。 最简单的定义是,排列所有用户推荐的产品,查看这个排列的产品占总产品数的比例。 虽然这种方式比较粗线条,但由于推荐系统中马太效应频繁出现,好的推荐算法应该所有商品都很少被推荐,可以分别找到合适的用户,所以实际上考虑信息熵、基尼系数等指标。

(3)多样性)其原理可以表达为不吊在一棵树上。 由于涉及整个推荐系统的因素太多,如果只推荐用户的一个类别的相似品,失败风险很大,也很难实现整个推荐的利益最大化。

)4)新颖性)原理是,用户从未接触过、从未操作过的商品,以及流行度低的商品,对用户来说都是新鲜的,往往有意想不到的效果。 我个人觉得这个指标有点扯~~。

)5)可靠度)该指标比较的主观是,推荐系统进行推荐是有根据的,以及让用户信任推荐系统内部是如何工作的。 例如,亚马逊的商品推荐会给出推荐理由。 我觉得作为用户的我很亲切。 否则,我认为用户会被商家的利益所驱使而产生抵触情绪。

(6)鲁棒性)例如,商户对相关推荐算法恶意下单提高产品推荐频率,水军恶意评论等。

二、静态数据推荐

基本上,大多数算法都利用用户-产品交互数据动态生成个性化建议。 静态数据是指尚未生成用户交互数据时,这在系统冷启动时尤为常见。 常用的静态数据如下:

(1)用户注册时性别、年龄、地域、学历、兴趣等人口统计学信息;

)2)授权社交网络账户好友信息

这种推荐方法简单,可以针对每种用户预先设定推送内容,也可以在同类用户之间推送,但这种方法推荐粒度大,涉及个人喜好个性强的商品参考价值有限,同时隐私意识强第二个社交网络好友信息是有效的,但需要适当的平台允许访问。

这里介绍新加入用户和新加入商品的冷启动问题。

新增用户:推送热门商品选择上述人口统计信息进行粗粒度推送; 如果能获取合作伙伴数据,获取其朋友信息,选择相近的朋友进行UserCF推荐,则向用户展示一些商品(热人群常见、有代表性和区分性、物品必须多样),并从用户那里获取菲

新产品: UserCF对新产品的冷启动不太敏感。 因为用户一旦发现这个新商品,这个新商品就会慢慢传播。 对于ItemCF来说很严重,例如,可以开始使用基于内容的推荐,并且当数据累积一定量时切换到协作过滤推荐。

三、基于内容的推荐

它主要基于用户以前的喜好,推荐相似的东西。 该系统由用户的固有属性(例如人口统计信息)、用户过去的商品的相互作用信息(例如评价看了电影,得到该用户对电影爱好的属性描述)的用户属性和产品属性两者构成,后者是商品本身的属性描述同时,也可以感觉维度对同一类型的东西相似。 这个计算

法会工作的比较好,对于电商千奇百怪的商品,可能工作效果一般。

这个方法核心要解决的问题是推荐是否具有扩张性,如果根据用户之前的爱好只不断推荐同类的产品,显然整个推荐系统的价值就十分有限,但是如果能准确推荐其他不同类别的商品就会很好了。

Pandora的音乐推荐就是个典型的基于内容的推荐系统,他们把音乐使用各种维度的属性进行描述,然后根据用户之前的兴趣爱好推荐相似属性风格的音乐。

四、协同过滤算法

协同过滤算法算是推荐系统中最经典的算法了,也称为基于领域的算法。协同过滤牵涉到用户和商品的交互信息,也就是用户行为,而一般用户对于商品的行为反馈有:

显性反馈行为——用户明确表现出对某项产品和的喜好,比如用户对商品的打分、评论等信息。

隐性反馈行为——不能明确代表用户对产品喜好的行为,比如页面浏览行为等,这类数据量的比较多,常常伴有大量的噪音,需要经过处理和转化才可能有实际的用途。

4.1 基于用户的协同过滤算法(UserCF)

其基于的假设是——喜欢类似物品的用户可能有相同或者相似的口味和偏好。UserCF实现的步骤包括:

(1)找到与目标用户兴趣相似的用户群;

假设用户u和v的正反馈的商品集合为N(u),N(v),那么两者兴趣相似度可以记为

 

(2)找到这个集合中用户喜欢的,而目标用户没有听说过得商品推荐之;

UserCF提供的一个参数K表示要考虑目标用户兴趣最相似的人的个数,在保证精度的同时,K不宜过大,否则推荐结果会趋向于热门商品,流行度指标和覆盖度指标都会降低。

4.2 基于内容的协同过滤算法(ItemCF)

目前用的最广泛的推荐算法,不是通过商品本身,而是通过用户对商品的行为来计算商品之间的相似度,其假设能够引起用户兴趣的商品,必定与其之前评分高的商品相似。ItemCF的操作步骤包括:

(1)计算商品之间的相似度。

物品相似度可以表示为(其实跟前面的支持度比较像)

 

第二个式子比第一个式子好在可以惩罚过热产品j。

(2)根据商品的相似度和用户的历史行为,给用户生成推荐列表。

4.3 基于模型的协同过滤算法

User-CF和Item-CF合称为memory-based CF,而model-based CF使用一般机器学习的方式,其基于样本的用户喜好信息,训练出一个推荐模型,然后根据实时的用户喜好的信息进行预测和计算推荐。

常用的模型包括LSI、贝叶斯网络等。

4.4 UserCF和ItemCF之间的比较

在现实的情况中,往往物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,可以离线完成工作量最大的相似性计算步骤,从而大大降低了在线计算量,基于用户的实时性更好一些。但是具体使用的场景,还需要根据具体的业务类型来区分,User-CF偏重于反应用户小群体热点,更具社会化,而Item-CF在于维持用户的历史兴趣,比如:

对于新闻、阅读类的推荐,新闻阅读类的信息是实时更新的,所以ItemCF在这种情况下需要不断更新,而用户对新闻的个性化推荐不是特别的强烈情况,用户有新行为不会导致相似用户的剧烈运动。

对于电子商务类别的,由于用户消费代价比较高,所以对个性化的精确程度要求也比较高,而一段用户有新的行为,也会导致推荐内容的实时变化

协同过滤的算法缺点也很明显,除了上面的冷启动之外,往往商家的用户数量和产品数量都很多,所以矩阵的计算量会非常的大,但某个具体的用户往往买的东西又有限,所以数据同时也是高度稀疏的。

五、基于标签的推荐方法

基于标签的推荐算法也是十分常见的,比如豆瓣网、京东的商品评论等。标签信息一般分为专家、学者类打的标签;一类为普通用户给商品打的标签(UGC, User Generated Content)。而标签的内容一般要么描述商品本身的,比如名字、类别、产地等,也或者用户对商品的观点评价,比如便宜、好用、性能强等,三元组(用户、物品、标签)通过标签将用户和物品进行联系。

基于标签推荐最简单的例子比如:统计一个用户最常用的标签,统计每个物品最常被打的标签,然后两者通过一定的关系推荐起来;当然也可以展现标签云,让用户点击自己感兴趣的标签,然后依此个性化推荐。

国内的京东、淘宝、豆瓣都大量使用标签信息。

 

由于标签的评价用户主观性比较强,所以一方面同样意思用户的用语差异性比较大,规范化可以考虑:用户评价的时候提供常用标签,让用户点击可以减少输入差异,而推荐的标签包括该物品描述性较好的标签,以及用户自己常用的标签(用户一致性);人为或者通过自然语言处理技术对标签进行整理,对于用户积极和消极的评价进行区分;标签也有长尾分布效应,所以除了热门标签外怎么提取那些差异化的有用标签进行更精确的推荐也是应当研究的课题(卡方分布/SVD)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。