推荐算法
一、定义
所谓推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西。
二、分类
(1)基于内容
它是建立在项目的内容信息上做出推荐的,而不需要依据用户对项目的评价意见,更多地用机器学习的方法从关于内容的特征描述(关键词)的事例中得到用户的兴趣资料。简单来说,根据你感兴趣的内容再将类似的产品推荐给你。
优点:基于内容推荐,符合用户兴趣。个性化,推荐结果直观
缺点:1.在缺乏用户数据时,无法计算。
2.需要对数据进行分类汇总,比如lol属于电竞,lgd属于lol,但也属于dota2
3.复杂属性不好处理。
(2)基于协同过滤
它一般采用最近邻技术,利用用户的历史喜好信息(评价、浏览记录、商品购买记录等)计算用户之间的距离,然后把与目标用户最近的邻居用户喜好的产品推荐给目标用户。简单来说就是,和你有类似爱好的人感兴趣的东西,你也可能感兴趣。
优点:1.能过滤难以进行机器自动内容分析的信息,如艺术品、音乐等。(未来可能机器也能间接分析)
2.共享其他人的经验,避免了内容分析的不完全和不精确,并且能够基于一些复杂的,难以表述的 概念(如信息质量、个人品位)进行过滤。
3.有推荐新信息的能力,可以发现用户潜在的但自己尚未发现的兴趣偏好。
4.能够有效地使用其他相似用户的反馈信息,减少用户的反馈量,加快个性化学习的速度。
缺点:1.无法向用户推荐他感兴趣但还未发行的产品,如我是周杰伦的粉丝,对周杰伦的新歌必然感兴 趣,但基于该算法,没有类似用户浏览记录等信息来推荐。
2.在缺乏用户数据时,无法计算。
(3)基于关联规则
基于关联规则的推荐。规则举例:在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同时购买了商品集y,其直观的意义就是用户在购买某些商品的时候有多大倾向去购买另外一些商品。
优点:能发现新兴趣点;不要领域知识
缺点:规则抽取难、耗时;个性化程度低;
(4)基于效用
(5)基于知识
(6)混合算法
现实应用中,其实很少有直接用某种算法来做推荐的系统,往往融合了数种算法一同完成推荐。我们可以通过给不同算法的结果加权重来综合结果,或者是在不同的计算环节中运用不同的算法来混合,达到更贴合自己业务的目的。
(7)基于流行度
根据PV、UV、日均PV或分享率等数据来按某种热度(综合考虑)排序来推荐给用户。简单粗暴,例如微博热榜等按热度排名的榜单。
优点:这种算法比较简单。因为人有从众心理,高热度意味着高关注,数条信息中可能就有用户感兴趣或想要了解的。所以该方法适合大部分人群,适合新用户。
缺点:信息定位不明显,不个性化。
(8)基于模型
举例:
列出影响用户行为的各种特征属性,如用户年龄段、性别、地域、物品的价格、类别等等,为x1-xn。以用户对于该物品的喜好程度为y,可以是购买记录、浏览、收藏等等。回归拟合出一个函数,计算出x1~xn对应的系数,这即是各特征属性对应的权重,权重值越大则表明该属性对于用户选择商品越重要。
优点:快速、准确,,适用于实时性比较高的业务如新闻、广告等。
缺点:需要反复更新数学模型。
三、推荐算法冷启动的解决方案
(1)提供非个性化推荐,如热门推荐,等收集到一定的用户数据后再切换成个性推荐。
(2)从用户人口统计学信息(年龄、性别、职业、学历、居住地等)出发,推荐类似用户喜欢的内容。
(3)在用户注册账号后,给用户几个关键词,让用户初步决定自己的兴趣爱好和使用产品的目的。
(4)从其他产品(网站)导入用户站外行为的。
(5)新增内容推荐,看有哪些用户浏览过类似的内容,推荐给他。
截图自云栖社区傲海博客文章四、今日头条算法
(1)系统概述
今日头条算法推荐系统,主要输入三个维度的变量——人的特征(兴趣、职业、年龄、机型、居住地等)、环境特征(地理位置、时间、天气等)、内容特征(兴趣标签、主题、时效性、作者等)。
PS:移动互联网时代,用户随时随地移动,在工作场合、通勤、旅游等不同的场景,信息偏好有所偏移。
(2)如何引入无法直接衡量的目标?
推荐模型中,点击率、阅读时间、点赞、评论、转发包括点赞都是可以量化的目标,能够用模型直接拟合做预估,但一个大体量的推荐系统,服务用户众多,不能完全由指标评估,引入数据指标以外的要素也很重要。
比如广告和特型内容频控。像问答卡片就是比较特殊的内容形式,其推荐的目标不完全是让用户浏览,还要考虑吸引用户回答为社区贡献内容。这些内容和普通内容如何混排,怎样控制频控都需要考虑。
此外,平台出于内容生态和社会责任的考量,像低俗内容的打压,标题党、低质内容的打压,重要新闻的置顶、加权、强插,低级别账号内容降权都是算法本身无法完成,需要进一步对内容进行干预。
PS:即要使用协同过滤、机器学习等推荐算法。
(3)典型推荐特征
第一类是相关性特征,就是评估内容的属性和与用户是否匹配。显性的匹配包括关键词匹配、分类匹配、来源匹配、主题匹配等。像FM模型中也有一些隐性匹配,从用户向量与内容向量的距离可以得出。
第二类是环境特征,包括地理位置、时间。
第三类是热度特征。包括全局热度、分类热度,主题热度,以及关键词热度等。
第四类是协同特征,它可以在部分程度上帮助解决所谓算法越推越窄的问题。协同特征并非考虑用户已有历史。而是通过用户行为分析不同用户间相似性,比如点击相似、兴趣分类相似、主题相似、兴趣词相似,甚至向量相似,从而扩展模型的探索能力。
(4)内容分析
文本分析在推荐系统中一个很重要的作用是用户兴趣建模。没有内容及文本标签,无法得到用户兴趣标签。举例:我们要给喜欢“小米”的用户打上“小米”标签。
另外文本相似度特征也非常重要。在头条,曾经用户反馈最大的问题之一就是为什么总推荐重复的内容。这个问题的难点在于,每个人对重复的定义不一样。举例:有人觉得这篇讲皇马和巴萨的文章,昨天已经看过类似内容,今天还说这两个队那就是重复。但对于一个重度球迷而言,尤其是巴萨的球迷,恨不得所有报道都看一遍。
解决这一问题需要根据判断相似文章的主题、行文、主体等内容,根据这些特征做线上策略。还需观察用户一定时间段内对某类相似主题文章的反应,如点击率、阅读时间等,综合判断用户是否对某类内容推荐产生疲劳,针对性的做策略。