神策 FM | 精准推荐的 4 种常用方式解读
在解读个性化推荐的常用方法之前,我们先看一个优惠券推送的场景,你可以通过用户分群来做,不过这样你可能会陷入无穷尽的规则添加中,直到失控。不过这种方式类似老中医诊脉,依赖前人经验,有点不太靠谱。
如图所示,左边所谓的基于人口统计学推荐,右边是基于内容标签的推荐。
一、基于内容标签的推荐
1、分类与来源
基于标签的推荐,要了解优质内容的标签,以及内容标签的分类,你需要花费大量的精力来整理标签的体系。同时你也需要了解标签的来源,包括运营产生标签、用户产生标签、机器自动产生标签。这三种标签方法优缺点都很明显。
运营产生标签的优点:质量较好、符合产品调性;缺点:存在运营人员自己的偏见、人力成本高、效率低。
用户产生标签的优点:数量大、节省成本、能产生意想不到的内容;缺点:需要产品形态支持、质量较差、需要进行审核。
机器自动产生标签的优点:可自动运行;缺点:技术难度大、效果不可控。
如果将三种标签方式结合后产生标签的方法有时会更有价值。我们看下面这张图,生成的第一个内容标签是“偷拍成功”,第二个是“学霸养成中”,第三个词是“完美侧颜”,这三个标签都是经过运营、用户、机器三者的结合后打的标签,这个标签经过了图像识别,然后由客户选择了运营之前写好的标签,这样能产生更有意思的结果,但是这个确实比较难,需要你们的产品能够支持这种模式。
2、内容标签推荐的优缺点
标签推荐的优点是简单易行,可以理解。缺点包括以下几个方面:
第一,受标签质量影响大。如果标签质量太差,标签粒度很粗,那就没有什么价值。
第二,受标签产生者个人偏差大。标签产生者受自身知识体系所限,所设标签和用户真实应用场景不一致。
第三,采用基于规则方法时规则量化不准确。比如优惠券为什么设为 100 元,而不是 1500 元?这个数据是拍脑袋决定的。
第四,缺乏探索性和扩展性。你只能选择被标签化的内容,比如一部动画片中有很多舞蹈,包括街舞、宅舞等。如果没有“宅舞”这个标签,这类内容你只能将其分到其他标签中,比如“广场舞”标签中,因此内容标签推荐受限于完整的分类体系。
二、基于协同过滤的推荐
协同过滤是非常有效的推荐方法,最早应用协同过滤系统的设计是解决 Xerox 公司在 Palo Alto 的研究中心资讯过载的问题。协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,考虑的是“共现”,基础是物以类聚、人以群分的思想。
协同过滤在推荐效果上有明显的提升,他的优点在于:
第一,利用其他人的智慧,能学习出难以表述的概念(如个人品味,文章的质量等)。利用了群体智慧来帮助构建推荐系统,比如用户看完 A 视频后,去看了 B 视频,用户这种潜意识的行为会帮你建立 AB 视频的联系。
所以例如品位是一个很难量化且无法标签化的东西,但通过协同过滤这种共现的方法,是可以学习到品味这种概念。
第二,不需要预先建立标签体系,你不需要花人力来做大量标签的标注。
第三,可以根据数据和反馈自动训练。这个模型是在不断变化的,它会使用最新的数据来去训练模型,而不需要你的运营人员反复看“我的标签体系是不是要变了,是不是要重新打标签了”。
第四,更好的规则变化,有更大的探索性扩展性。因为所有的值都是机器学习出来的,而不是去拍脑袋“拍”的,会更加客观,并且具有更大的探索和扩展性,很多你不知道的概念会被机器学习到。
同时,缺点也很明显,一是冷启动的问题,因为协同过滤应用的是人和物的关系,如果物是一个新的人或者是一个新的物品,就很难解决;二是稀疏性问题: 系统历史数据过少,系统无法进行训练,难以进行精确的模式查找匹配推荐;三是不具备可解释性。
三、基于深度学习召回模型的推荐
对比协同过滤,深度学习召回模型更有优势:
第一,更全面的行为表达。在模型中结合点击、收藏、搜索等多种行为,能更全面地表示用户行为偏好,而在协同过滤中是不能这么做的。
第二,可添加画像特征,可加入性别、地域等用户画像相关的特征。如果你有额外的一些标签或发生的信息,这个模型是可以兼容的,它可以把所有信息糅杂在同一模型里面去做,而在协同过滤模型里面是完全无法引入的。
第三,考虑用户的行为顺序。比如用户通常的行为顺序是,先买一个手机,然后再去买一个手机壳;买了一个汽车后可能会买个汽车坐垫。如果推荐顺序是:用户买了个手机壳后被推荐了一款手机,这样的逻辑明显是错误的。
协同过滤是不具备序列关系的学习能力的,它将所有的行为都看成一个完全平等的关系,而深度学习是可以学习顺序,在整体模型的表达的能力和调优方面都非常前沿。
图 3 神策数据某电视推荐场景
这个是神策在一个客户上做推荐的结果。一个用户刚看完《小猪佩奇》第二季第一集,如果基于协同过滤可以推出《小猪佩奇》其他集,但是如果基于深度学习召回模型是可以连续推出《小猪佩奇》第二季第二集、第三集等。
第四,组合复杂特征。神经网络可以进行更复杂的特征组合,挖掘更深层次的关联关系。
四、个性化推荐之排序
在排序方面,这些年有很大的发展。随着数据量增多以及业务模式的复杂性,我们可以选择更复杂的模型来解决问题。当然这需要推荐的点击数据要和展现数据实现比较好的整合,这也是要重视展现数据的主要原因。
这里是我们在做排序数据的时候,Level 列的数字是 01010,意思就是有没有点击,所有点击的展现全都写在一张表里,如此才可以训练排序模型。
综上所述,推荐是一个系统,不是一个简简单单的模型,推荐包含了大量的数据收集和业务理解的工作,同时还需要对应的全套工程架构的支持。最后有几句话想和大家分享下:
第一句是“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。如果你的数据根基没有做好,那所有的工作都是徒劳的。
第二句是“世界上最遥远的距离,是我们的算法一样, 但训练数据不同”。每家公司的模型搭建都大同小异,但是模型落地在业务的时候,真正差距在于你的数据是不是对的,是不是干净,是不是及时的,这才是决定整个推荐系统最终效果的重要因素。如果你不能从数据治理开始,空中楼阁般的搭了一套算法框架的话,你会发现你的产品落地还是很远。
总之,推荐的关键是数据,数据是一切算法的根基, 是一切迭代的依据。
注:本文摘自神策数据架构师房东雨的以《推荐的场景与实践》为主题的演讲内容。
号外!更多精彩声音,可关注
神策 FM
『点击图片,解锁更多精彩』
▼▼▼
↙↙↙点击“阅读原文”查看更多精彩内容
戳此,2019 业绩暴增哦