从零到一搭建推荐系统指南(4)

作者:jcmp      发布时间:2021-04-19      浏览量:0
如今的推荐系统已经做得相当复杂,特别是在

如今的推荐系统已经做得相当复杂,特别是在一些大规模的应用场景中,比如说今日头条的 Feed 流,淘宝的“猜你喜欢”等,都拥有一个非常复杂的推荐系统,这个推荐系统中的各个模块可能会涉及到很多的实验算法,在一个系统中,出现 10 个或者 20 个模型都很常见。那么怎么把这些模型有效地融合成一个真正的系统呢?

一个比较复杂的推荐系统通常分为召回、排序、规则这三个步骤。首先召回用户感兴趣的内容,第二为用户生成一个排序列表,第三用规则解决一些产品、运营方面提出的需求。

1、召回

召回,即从海量的内容中召回每一个用户他可能感兴趣的内容,前提是——拥有海量的内容,因为当内容不足时,也就不需要搭建复杂的推荐系统。所以,当有海量 Item 时,需要用召回的算法从不同类别的内容里为用户生成他可能感兴趣的内容。比如某位用户既喜欢体育内容,也喜欢军事内容,那么在第一步,无论用哪些模型,都希望达到为该用户生成一些体育、军事相关内容的效果。另一个用户可能喜欢美食和游戏,在召回阶段,我们就希望通过模型去为他生成一些美食和游戏相关的内容。

在召回阶段可能会存在许多个模型。而经过召回阶段之后,尽管生成的是该用户可能感兴趣的内容,但这些内容实际并没有融合到一起,是一种乱序的状态。

(1)标签

在各种算法中,大家最容易想到的就是一种基于标签的方法。如图所示,左边是基于人口统计学的推荐,右边是基于内容标签的推荐。标签可以分为两种:一是用户标签;二是内容标签。

A、用户标签

用户标签。假设我们拥有一部分用户标签,知道每一个用户的年龄、性别等信息,当某类年龄和某种性别的用户喜欢过某一个物品时,我们就可以把该物品推荐给具有同样年龄、性别等用户标签的其他用户。

B、内容标签

与用户标签的思路相似,如果用户喜欢过带有内容标签的物品,我们就可以推荐具有同样标签的内容。

运营产生标签的优点:质量较好、符合产品调性;缺点:存在运营人员自己的偏见、人力成本高、效率低。

用户产生标签的优点:数量大、节省成本、能产生意想不到的内容;缺点:需要产品形态支持、质量较差、需要进行审核。

机器自动产生标签的优点:可自动运行;缺点:技术难度大、效果不可控。

将三种标签方式结合后产生标签的方法有时会更有价值。我们看下面这张图,生成的第一个内容标签是“偷拍成功”,第二个是“学霸养成中”,第三个词是“完美侧颜”,这三个标签都是经过运营、用户、机器三者的结合后打的标签,这个标签经过了图像识别,然后由客户选择了运营之前写好的标签,这样能产生更有意思的结果,但是这个确实比较难,需要产品能够支持这种模式。

 内容标签推荐的优缺点

标签推荐的优点是简单易行,可以理解。缺点包括以下几个方面:

第一,受标签质量影响大。如果标签质量太差,标签粒度很粗,那就没有什么价值。

第二,受标签产生者个人偏差大。标签产生者受自身知识体系所限,所设标签和用户真实应用场景不一致。

第三,采用基于规则方法时规则量化不准确。比如优惠券为什么设为 1000 元,而不是 1500 元?这个数据是拍脑袋决定的。

第四,缺乏探索性和扩展性。你只能选择被标签化的内容,比如一部动画片中有很多舞蹈,包括街舞、宅舞等。如果没有“宅舞”这个标签,这类内容你只能将其分到其他标签中,比如“广场舞”标签中,因此内容标签推荐受限于完整的分类体系。

(2)协同过滤

协同过滤是非常有效的推荐方法,最早应用协同过滤系统的设计是解决 Xerox 公司在 Palo Alto 的研究中心资讯过载的问题。协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,考虑的是“共现”,基础是物以类聚、人以群分的思想。

协同过滤在推荐效果上有明显的提升,优点在于:

第一,利用其他人的智慧,能学习出难以表述的概念(如个人品味,文章的质量等)。利用了群体智慧来帮助构建推荐系统,比如用户看完 A 视频后,去看了 B 视频,用户这种潜意识的行为会帮你建立 AB 视频的联系。

例如品位是一个很难量化且无法标签化的东西,但通过协同过滤这种共现的方法,是可以学习到品味这种概念。

第二,不需要预先建立标签体系,不需要花人力来做大量标签的标注。

第三,可以根据数据和反馈自动训练。这个模型是在不断变化的,它会使用最新的数据来去训练模型,而不需要运营人员反复看“我的标签体系是不是要变了,是不是要重新打标签了”。

第四,更好的规则变化,有更大的探索性扩展性。因为所有的值都是机器学习出来的,而不是去拍脑袋“拍”的,会更加客观,并且具有更大的探索和扩展性,很多你不知道的概念会被机器学习到。

同时,缺点也很明显,一是冷启动的问题,因为协同过滤应用的是人和物的关系,如果物是一个新的人或者是一个新的物品,就很难解决;二是稀疏性问题: 系统历史数据过少,系统无法进行训练,难以进行精确的模式查找匹配推荐;三是不具备可解释性。

(3)深度学习

随着技术的不断发展,基本从 2012 年以后,深度学习几乎被整个机器学习界进行反复的讨论和研究。谷歌在 2016 年提出一套基于深度学习的推荐模型,应用于 YouTube 的视频推荐场景。该模型利用深度学习去解决推荐的问题,利用用户的行为数据去构建推荐算法。

A、深度学习的目的之一:向量化

推荐系统其实是在做一个关于“匹配”的事情,把人和物做匹配。看似很难的推荐系统,其实也有简单的思路——做人和物的匹配,把该用户可能感兴趣的物品推荐给他(她)。如果站在数学的角度去思考这个问题,我们如何去计算人和物的相似度匹配呢?

在推荐领域,深度学习的目的之一就是尝试将人和物向量化,即把某个人和某个物品学习成一种统一的表示方式,随后在这个统一的表示方式中计算这个人和物品的相似度,当人和物都映射到同一个可比较的空间中时,就能够基于计算结果去执行相关的内容推荐。

图 11 深度学习目的之一——向量化

把最终的结果映射到这张二维的平面图表里,用户认为相似的内容就会映射在向量上,当拥有内容向量之后,之后再将用户映射进来即可,比如用户到达了上图某个地方,根据其所处的位置,可以向其推送教育、娱乐、科学、地理等内容。

B、深度学习召回新文章

冷启动是算法部分经常遇到的问题,在冷启动阶段,数据比较稀疏,很难利用用户的行为数据实现个性化推荐。冷启动的问题分为两种:新内容的冷启动、新用户的冷启动。我们能使用深度学习的方法为每篇新文章训练得到一个语义向量,从而实现新内容的个性化推荐。

图 12 深度学习召回新文章

这个模型不需要用户行为,只需要分析用户文本,基于内容本身给每一篇文章生成一个向量。我们训练出文章的语义向量,获得文章与文章之间的相似度,将新文章和用户的历史行为中的文章进行相似度计算,从而将新文章个性化的分发给对其感兴趣的用户。

C、基于用户行为的深度学习召回模型

基于用户行为的深度学习召回模型将推荐问题视为一个(包含数百万类的)多分类问题,以某一时刻用户的浏览序列作为模型输入,预测下一刻用户可能会浏览的内容。我们使用深度学习模型解决多分类问题,从数百万的可推荐内容中召回可能感兴趣的内容。

图 13 召回模型的神经网络结构

对比协同过滤,深度学习召回模型更有优势:

第一,更全面的行为表达。在模型中结合点击、收藏、搜索等多种行为,能更全面地表示用户行为偏好,而这在协同过滤中不支持。

第三,考虑用户的行为顺序。比如用户通常的行为顺序是,先买一个手机,然后再买手机壳;先买汽车后再买汽车坐垫。如果推荐顺序是:用户买手机壳后被推荐了一款手机,那么逻辑就错误了。

协同过滤不具备序列关系的学习能力,它将所有的行为都看成一个完全平等的关系,而深度学习模型具备序列关系学习能力,在整体模型的表达的能力和调优方面都非常前沿。

图 14 神策数据某电视推荐场景

以上是神策数据的一个客户做推荐的部分结果,一个用户刚看完《小猪佩奇》第二季第一集,如果基于协同过滤可以推出《小猪佩奇》其他集,但是如果基于深度学习召回模型是可以连续推出《小猪佩奇》第二季第二集、第三集等。

第四,组合复杂特征。神经网络可以进行更复杂的特征组合,挖掘更深层次的关联关系。

2、排序

排序,即将召回的内容做统一排序。排序过程其实就是给每部分内容打分的过程,预测每一个用户对每条内容的感兴趣程度。

(1)GBDT + LR 排序模型

图 15 GBDT + LR 排序模型

GBDT + LR 模型将 GBDT 模型和 LR 模型组合到了一起,可以将 GBDT 看做是对特征做离散化和组合编码的过程,最后的 LR 是最终的预测模型。

GBDT + LR 模型具有较强的学习能力,实施成本较低,对所需训练数据量和机器要求较低,具有较强的可解释性,当客户的训练数据量有限时通常是第一选择。

(2)Wide & Deep 排序模型

图 16 Wide & Deep 排序模型

Wide & Deep 模型包括 Wide 和 Deep 两部分的结构。Wide 部分使用的是 LR 模型,主要负责记忆,学习特征间的相关性,生成的推荐结果是和已经有用户行为的物品直接相关的物品;Deep 部分使用的是深度神经网络结构,主要负责泛化,学习新的特征组合,提高推荐结果的多样性。

Wide & Deep 模型具有很强的学习能力,实施成本较高,需要一定量的特征工程,对所需训练数据量和机器要求较高。当客户具有海量的训练数据时,该方法是一种非常高效的方法。

(3)DeepFM 排序模型

图 17 DeepFM 排序模型

DeepFM 是一个集成了 FM 和 DNN 的神经网络框架,和 Wide&Deep 相似,都包括 Wide 和 deep 两部分,DeepFM 的 Wide 部分则是 FM 模型,Deep 部分是深度神经网络。DeepFM 的 Wide 和 deep 部分共享相同的输入,可以提高训练效率,不需要额外的特征工程,用 FM 建模低维的特征组合,用 DNN 建模高维的特征组合,因此可以同时从原始特征中学习到低维和高维的特征组合。

DeepFM 模型具有很强的学习能力,实施成本较高,对所需训练数据量和机器要求较高。当客户具有海量的训练数据时,该方法不需要额外的特征工程,因而是一种非常值得实验的方法。

相关阅读

从零到一搭建推荐系统指南(5)

智能运营案例介绍: 每日一淘

iOS 全埋点技术剖析(1)

金融业数字化转型 MVP 实践(上)

免费下载《从零到一搭建推荐系统指南》白皮书:

方式 1: 神策数据官网下载 ;