新闻个性化推荐算法
1. 推荐系统的几种常用算法总结
推荐系统旨在通过数据分析和用户行为理解,提供个性化内容或商品推荐。在信息爆炸的时代,这类系统能够帮助用户筛选出符合需求的信息,同时帮助信息提供者有效展示其内容,提升用户体验和业务价值。接下来,本文将详细总结几种常用的推荐系统算法。
### 一、推荐系统定义
推荐系统是一种技术手段,旨在通过分析用户的兴趣、行为习惯等数据,提供个性化的内容或商品推荐。这类系统广泛应用于电子商务、社交媒体、新闻推送等领域,帮助用户在海量信息中找到感兴趣的内容,同时也帮助信息提供者将内容精准推荐给潜在受众。
### 二、推荐系统解决的问题
推荐系统主要解决以下几个问题:
帮助用户发现感兴趣的商品或内容,如书籍、电影、产品等。
减少信息过载现象,使用户更容易找到所需信息。
提高站点点击率和转化率,增强用户参与度和满意度。
深入了解用户需求,提供定制化服务。
### 三、推荐系统的发展趋势与常用算法
推荐系统的发展趋势包括基于传统服务、社交网络服务和即将到来的物联网等领域。常用的推荐算法包括:
**基于流行度推荐**:根据浏览量、分享率等指标排序推荐。
**基于协同过滤**:包括用户CF和物品CF,通过分析用户间的相似度进行推荐。
**基于内容的推荐**:考虑物品的属性特征,通过相似度计算推荐。
**基于模型的推荐**:利用机器学习模型,如逻辑回归、朴素贝叶斯等进行推荐。
**混合式推荐**:结合多种算法,根据业务需求优化推荐效果。
### 四、算法细节与改进
以**基于流行度的推荐算法**为例,虽然简单直接,但无法提供个性化推荐。改进方案包括用户分群流行度排序、针对特定兴趣群体优化推荐内容。
对于**基于用户的协同过滤推荐算法**,优点在于推荐内容与用户兴趣一致,适合物品比用户多、物品时效性强的场景。改进方向包括增强相似度计算、优化推荐效率和个性化程度。
**基于物品的协同过滤推荐算法**侧重于推荐与用户偏好相似的物品,优点在于推荐结果个性化、稳定和广泛适用。改进措施涉及优化相似度计算、解决物品冷启动问题和提升推荐多样性。
**基于内容的推荐算法**通过分析物品属性进行推荐,优点在于直观、解决冷启动问题,但可能受限于内容描述的详细程度和主题集中度。改进方向包括优化内容描述、提高推荐多样性。
**基于模型的推荐算法**利用机器学习模型进行推荐,适用于实时性强的场景。改进策略可能涉及特征工程的优化和在线模型更新。
**混合式推荐算法**综合多种算法优势,定制化适应不同业务需求。改进主要关注如何优化算法组合,以提升推荐效果。
### 结论
推荐系统通过一系列算法和技术,为用户提供个性化的内容或商品推荐,显着提升用户体验和业务效率。不同场景下,应选择或组合适用的算法,不断优化推荐效果,满足用户需求和业务目标。
2. 今日头条是怎样做到精准算法推荐
今日头条借助个性化推荐提高用户浏览新闻的时长,个性化推荐中最常用的算法就是协同过滤算法,包括基于物品的协同过滤和基于用户的协同过滤。说成人话就是,与你同类的人喜欢什么,就给你推什么新闻,看了A新闻的人也浏览了B新闻,那么就给你推荐B新闻。
同时,根据用户的浏览轨迹和偏好,不断更新迭代用户的标签(用户画像),提升推荐的准确率。
个性化推荐中比较难的就是冷启动阶段,无法判断用户的偏好,因为难以推荐能吸引用户眼球的新闻。达观数据采用的是多种策略来改善冷启动用户的推荐质量,最重要的一点就是需要秒级生成用户画像,快速完成冷热转换,确保用户留存率。
3. 个性化推荐是怎么做的
各种推荐算法不能仅仅是研发涉猎领域,作为PM,也要深入到算法内部,了解算法的设计,以及结合内容对算法不断“调教”,才能让产品的推荐算法不断完善,才能符合用户的口味。
目前比较流行的个性化推荐算法有以下几种:
基于内容的推荐:根据内容本身的属性(特征向量)所作的推荐。
基于关联规则的推荐:“啤酒与尿布”的方式,是一种动态的推荐,能够实时对用户的行为作出推荐。是基于物品之间的特征关联性所做的推荐,在某种情况下会退化为物品协同过滤推荐。
协同过滤推荐:与基于关联规则的推荐相比是一种静态方式的推荐,是根据用户已有的历史行为作分析的基础上做的推荐。可分为物品协同过滤、用户协同过滤、基于模型的协同过滤。其中,基于模型的协同又可以分为以下几种类型:基于距离的协同过滤;基于矩阵分解的协同过滤,即Latent
Factor Model(SVD)或者ALS;基于图模型协同,即Graph,也叫社会网络图模型。
1、产品冷启动通过热度算法进行内容推荐
产品发展初期,由于一方面没有用户行为、用户喜好、用户画像,另外也没有大量的内容样本基础,是很难开展个性化推荐的。所以在产品初期,一般采取“热度算法”,顾名思义就是把热点的内容优先推荐给用户。虽然无法做到基于兴趣和习惯为每一个用户做到精准化的推荐,但能覆盖到大部分的内容需求,而且启动成本比个性化推荐算法低太多。
热度算法基本原理:
新闻热度分 = 初始热度分 + 用户交互产生的热度分 – 随时间衰减的热度分
Score = S0 + S(Users) – S(Time)
1)以新闻或视频较有时效性的内容举例,热度随内容陈旧而分值衰减。
2)初始热度分不要一视同仁。
按照新闻类别给予新闻不同的初始热度,让用户关注度高的类别获得更高的初始热度分,从而获得更多的曝光。军事>娱乐>体育>财经....
对于重大事件的报道,如何让它入库时就有更高的热度,我们采用的是热词匹配的方式。
即对大型新闻站点的头条,Twitter热点,竞品的头条做监控和扒取,并将这批新闻的关键词维护到热词库并保持更新;每条新闻入库的时候,让新闻的关键词去匹配热词库,匹配度越高,就有越高的初始热度分。这样处理后,重大事件发生时,Twitter和门户网站的争相报道会导致热词集中化,所有匹配到这些热词的新闻,即报道同样事件的新闻,会获得很高的初始热度分。
3)用户交互的热度分值比重不一。首先明确用户的的哪些行为会提高新闻的热度值,然后对这些行为赋予一定的得分规则。
例如对于单条新闻,用户可以点击阅读(click),收藏(favor),分享(share),评论(comment)这四种行为,我们为不同的行为赋予分数,就能得到新闻的实时用户行为分为:
S(Users) = 1*click + 5*favor + 10*comment + 20*share
这里对不同行为赋予的分数为1,5,10,20,但这个值不能是一成不变的;当用户规模小的时候,各项事件都小,此时需要提高每个事件的行为分来提升用户行为的影响力;当用户规模变大时,行为分也应该慢慢降低,因此做内容运营时,应该对行为分不断调整。
当然也有偷懒的办法,那就是把用户规模考虑进去,算固定用户数的行为分,即:
S(Users) = (1*click + 5*favor + 10*comment + 20*share)/ DAU * N(固定数)
这样就保证了在不同用户规模下,用户行为产生的行为分基本稳定。
2、基于内容特征与用户特征进行个性化推荐
对于此种推荐,有两个实体:内容和用户,因此需要有一个联系这两者的东西,即为标签。内容转换为标签即为内容特征化,用户则称为用户特征化。对于此种推荐,主要分为以下几个关键部分:
标签库
内容特征化
用户特征化
隐语义推荐
综合上面讲述的各个部分即可实现一个基于内容和用户画像的个性化推荐系统。
标签库
标签是联系用户与物品、内容以及物品、内容之间的纽带,也是反应用户兴趣的重要数据源。标签库的最终用途在于对用户进行行为、属性标记。是将其他实体转换为计算机可以理解的语言关键的一步。
标签库则是对标签进行聚合的系统,包括对标签的管理、更新等。
一般来说,标签是以层级的形式组织的。可以有一级维度、二级维度等。
标签的来源主要有:
已有内容的标签
网络抓取流行标签
对运营的内容进行关键词提取
对于内容的关键词提取,使用结巴分词+TFIDF即可。此外,也可以使用TextRank来提取内容关键词。
这里需要注意的一点是对于关联标签的处理,比如用户的标签是足球,而内容的标签是德甲、英超,那么用户和内容是无法联系在一起的。最简单的方式是人工设置关联标签,此外也可以使用word2vec一类工具对标签做聚类处理,构建主题模型,将德甲、英超聚类到足球下面。
内容特征化
内容特征化即给内容打标签。目前有两种方式:
人工打标签
机器自动打标签
针对机器自动打标签,需要采取机器学习的相关算法来实现,即针对一系列给定的标签,给内容选取其中匹配度最高的几个标签。这不同于通常的分类和聚类算法。可以采取使用分词 +Word2Vec来实现,过程如下:
将文本语料进行分词,以空格,tab隔开都可以,使用结巴分词。
使用word2vec训练词的相似度模型。
使用tfidf提取内容的关键词A,B,C。
遍历每一个标签,计算关键词与此标签的相似度之和。
取出TopN相似度最高的标签即为此内容的标签。
此外,可以使用文本主题挖掘相关技术,对内容进行特征化。这也分为两种情况:
通用情况下,只是为了效果优化的特征提取,那么可以使用非监督学习的主题模型算法。如LSA、PLSI和GaP模型或者LDA模型。
在和业务强相关时,需要在业务特定的标签体系下给内容打上适合的标签。这时候需要使用的是监督学习的主题模型。如sLDA、HSLDA等。
用户特征化
用户特征化即为用户打标签。通过用户的行为日志和一定的模型算法得到用户的每个标签的权重。
用户对内容的行为:点赞、不感兴趣、点击、浏览。对用户的反馈行为如点赞赋予权值1,不感兴趣赋予-1;对于用户的浏览行为,则可使用点击/浏览作为权值。
对内容发生的行为可以认为对此内容所带的标签的行为。
用户的兴趣是时间衰减的,即离当前时间越远的兴趣比重越低。时间衰减函数使用1/[log(t)+1], t为事件发生的时间距离当前时间的大小。
要考虑到热门内容会干预用户的标签,需要对热门内容进行降权。使用click/pv作为用户浏览行为权值即可达到此目的。
此外,还需要考虑噪声的干扰,如标题党等。
另,在非业务强相关的情况下,还可以考虑使用LSA主题模型等矩阵分解的方式对用户进行标签化。
隐语义推荐
有了内容特征和用户特征,可以使用隐语义模型进行推荐。这里可以使用其简化形式,以达到实时计算的目的。
用户对于某一个内容的兴趣度(可以认为是CTR):
其中i=1…N是内容c具有的标签,m(ci)指的内容c和标签i的关联度(可以简单认为是1),n(ui)指的是用户u的标签i的权重值,当用户不具有此标签时n(ui)=0,q©指的是内容c的质量,可以使用点击率(click/pv)表示。
3、其他运用
除了个性化推荐,基于内容的相关性算法能精准地给出一篇新闻的相关推荐列表,对相关阅读的实现非常有意义。此外,标签系统对新闻分类的实现和提升准确性,也有重要的意义。
4、优缺点
基于内容的推荐算法有几个明显优点:
对用户数量没有要求,无论日活几千或是几百万,均可以采用;因此个性化推荐早期一般采用这种方式。
每个用户的特征都是由自己的行为来决定的,是独立存在的,不会有互相干扰,因此恶意刷阅读等新闻不会影响到推荐算法。
而最主要的缺点就是确定性太强了,所有推荐的内容都是由用户的阅读历史决定,所以没办法挖掘用户的潜在兴趣;也就是由于这一点,基于内容的推荐一般与其他推荐算法同时存在。
基于用户的协同推荐
终于,经过团队的努力,你的产品已经有了大量活跃用户了,这时候你开始不满足于现有的算法。虽然基于内容的推荐已经很精准了,但总是少了那么一点性感。因为你所有给用户的内容都是基于他们的阅读习惯推荐的,没能给用户“不期而遇”的感觉。
于是,你就开始做基于用户的协同过滤了。
基于用户的协同过滤推荐算法,简单来讲就是依据用户A的阅读喜好,为A找到与他兴趣最接近的群体,所谓“人以群分”,然后把这个群体里其他人喜欢的,但是A没有阅读过的内容推荐给A。
举例我是一个足球迷,系统找到与我类似的用户都是足球的重度阅读者,但与此同时,这些“足球群体”中有一部分人有看NBA新闻的习惯,系统就可能会给我推荐NBA内容,很可能我也对NBA也感兴趣,这样我在后台的兴趣图谱就更完善了。
1、用户群体划分
做基于用户的协同过滤,首先就要做用户的划分,可以从三方面着手:
(1)外部数据的借用
这里使用社交平台数据的居多,现在产品的登录体系一般都借用第三方社媒的登录体系,如国外的Facebook、Twitter,国内的微信、微博,借用第三方账户的好处多多,例如降低门槛,方便传播等,还能对个性化推荐起到重要作用。
因为第三方账户都是授权获取部分用户信息的,往往包括性别,年龄,工作甚至社交关系等,这些信息对用户群划分很有意义。
此外还有其他的一些数据也能借用,例如IP地址,手机语种等。
使用这些数据,你很容易就能得到一个用户是北京的还是上海的,是大学生还是创业者,并依据这些属性做准确的大类划分。
比如一篇行业投资分析出来后,“上海创业圈”这个群体80%的用户都看过,那就可以推荐给剩下的20%。
(2)产品内主动询问
常见在产品首次启动的时候,弹框询问用户是男是女,职业等,这样能对内容推荐的冷启动提供一些帮助。但总体来说,性价比偏低,只能询问两三个问题并对用户的推荐内容做非常粗略的划分,同时要避免打扰到用户;这种做法算是基于用户个性化的雏形。
(3)对比用户特征
新闻的特征加用户的阅读数据能得到用户的特征,那就可以通过用户特征的相似性来划分群体。
最后总结,没有一款完美的个性化推荐算法,毕竟用户的心里你别猜别猜别猜,但是产品经理还是要结合自身产品不断打磨算法。
4. 个性化推荐算法有哪些
个性化推荐算法主要有以下几种:
1. 协同过滤算法
协同过滤是推荐系统中最常见的一类算法。它基于用户的行为数据,如购买记录、浏览记录等,找出具有相似兴趣的用户群体,然后将相似用户群体喜欢的物品推荐给当前用户。这种算法可以分为基于用户的协同过滤和基于物品的协同过滤。
2. 内容推荐算法
内容推荐主要基于物品的内容特征进行推荐。它通过分析物品的特征,如文本、图片、音频等,提取物品的内容信息,然后计算物品之间的相似度,将相似的物品推荐给用户。这种算法要求物品有明确的特征描述。
3. 深度学习推荐算法
深度学习在推荐系统中也发挥了重要作用。利用深度学习的模型,如神经网络,可以处理大量的用户行为数据,并提取出深层次的用户兴趣特征。常见的深度学习推荐算法包括基于神经网络的协同过滤、基于序列的推荐等。
4. 混合式推荐算法
混合式推荐算法是结合多种推荐技术的一种推荐方法。它将不同的推荐算法进行组合,如结合协同过滤和深度学习等方法,以提高推荐的准确性。混合式推荐算法可以根据不同的场景和需求进行灵活调整。
以上便是主要的个性化推荐算法。随着技术的不断发展,还会有更多的新算法涌现,以更好地满足用户的个性化需求。
5. 3分钟轻松了解个性化推荐算法
推荐这种体验除了电商网站,还有新闻推荐、电台音乐推荐、搜索相关内容及广告推荐,基于数据的个性化推荐也越来越普遍了。今天就针对场景来说说这些不同的个性化推荐算法吧。
说个性化之前,先提一下非个性化。 非个性化的推荐也是很常见的,毕竟人嘛都有从众心理,总想知道大家都在看什么。非个性化推荐的方式主要就是以比较单一的维度加上半衰期去看全局排名,比如,30天内点击排名,一周热门排名。
但是只靠非个性化推荐有个弊端,就是马太效应,点的人越多的,经过推荐点得人有更多。。。强者越强,弱者机会越少就越弱,可能导致两级分化严重,一些比较优质素材就被埋没了。
所以,为了解决一部分马太效应的问题,也主要是顺应数据化和自动化的模式,就需要增加个性化的推荐(可算说到正题了。。。)个性化的优点是不仅体验好,而且也大大增加了效率,让你更快找到你感兴趣的东西。YouTube也曾做过实验测试个性化和非个性化的效果,最终结果显示个性化推荐的点击率是同期热门视频的两倍。
1.新闻、视频、资讯和电台(基于内容推荐)
一般来说,如果是推荐资讯类的都会采用基于内容的推荐,甚至早期的邮件过滤也采用这种方式。
基于内容的推荐方法就是根据用户过去的行为记录来向用户推荐相似额推荐品。简单来说就是你常常浏览科技新闻,那就更多的给你推荐科技类的新闻。
复杂来说,根据行为设计权重,根据不同维度属性区分推荐品都是麻烦的事,常用的判断用户可能会喜欢推荐品程度的余弦向量公式长这样,我就不解释了(已经勾起了我关于高数不好的回忆)。。。
但是,这种算法缺点是由于内容高度匹配,导致推荐结果的惊喜度较差,而且有冷启动的问题,对新用户不能提供可靠的推荐结果。并且,只有维度增加才能增加推荐的精度,但是维度一旦增加计算量也成指数型增长。如果是非实体的推荐品,定义风格也不是一件容易的事,同一个作者的文风和曲风也会发生改变。
2.电商零售类(协同过滤推荐和关联规则推荐)
说电商推荐那不可能不讲到亚马逊,传言亚马逊有三成的销售额都来自个性化的商品推荐系统。实际上,我自己也常常在这里找到喜欢的书,也愿意主动的去看他到底给我推荐了什么。
一般,电商主流推荐算法是基于一个这样的假设,“跟你喜好相似的人喜欢的东西你也很有可能喜欢。”即协同过滤过滤算法。主要的任务就是找出和你品味最相近的用户,从而根据最近他的喜好预测你也可能喜欢什么。
这种方法可以推荐一些内容上差异较大但是又是用户感兴趣的物品,很好的支持用户发现潜在的兴趣偏好。也不需要领域知识,并且随着时间推移性能提高。但是也存在无法向新用户推荐的问题,系统刚刚开始时推荐质可能较量差。
电商行业也常常会使用到基于关联规则的推荐。即以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。比如,你购买了羽毛球拍,那我相应的会向你推荐羽毛球周边用品。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。
3.广告行业(基于知识推荐)
自从可以浏览器读取cookies,甚至获得年龄属性等信息,广告的个性化投放就也可以根据不同场景使用了。
当用户的行为数据较少时,基于知识的推荐可以帮助我们解决这类问题。用户必须指定需求,然后系统设法给出解决方式。假设,你的广告需要指定某地区某年龄段的投放,系统就根据这条规则进行计算。基于知识的推荐在某种程度是可以看成是一种推理技术。这种方法不需要用户行为数据就能推荐,所以不存在冷启动问题。推荐结果主要依赖两种形式,基于约束推荐和基于实例推荐。
4.组合推荐
由于各种推荐方法都有优缺点,所以在实际中,并不像上文讲的那样采用单一的方法进行建模和推荐(我真的只是为了解释清楚算法)。。。
在组合方式上,也有多种思路:加权、变换、混合、特征组合、层叠、特征扩充、元级别。 并且,为了解决冷启动的问题,还会相应的增加补足策略,比如根据用户模型的数据,结合挖掘的各种榜单进行补足,如全局热门、分类热门等。 还有一些开放性的问题,比如,需不需要帮助用户有品味的提升,引导人去更好的生活。
最后,我总想,最好的推荐效果是像一个了解你的朋友一样跟你推荐,因为他知道你喜欢什么,最近对什么感兴趣,也总能发现一些有趣的新东西。这让我想到有一些朋友总会兴致勃勃的过来说,嘿,给你推荐个东西,你肯定喜欢,光是听到这句话我好像就开心起来,也许这就是我喜欢这个功能的原因。