冷启动是推荐系统的重要挑战之一,也是推荐系统中非常重要的一个问题,有很多读者可能对冷启动不是特别了解或者不知道怎么设计一个好的冷启动方案,所以本文试图给大家讲清楚这些问题。

一、冷启动概述

1、什么是冷启动

推荐系统的主要目标是将大量的标的物推荐给可能喜欢的海量用户, 这里涉及到标的物和用户两类对象。

任何互联网推荐产品, 标的物和用户都是不断增长变化的,所以一定会频繁面对新标的物和新用户, 推荐系统冷启动问题指的就是对于新注册的用户或者新入库的标的物, 该怎么给新用户推荐标的物让用户满意,怎么将新标的物分发出去,推荐给喜欢它的用户。

另外,如果是新开发的产品,初期用户很少,用户行为也不多,常用的协同过滤、深度学习等依赖大量用户行为的算法不能很好的训练出精准的推荐模型, 怎么让推荐系统很好的运转起来,让推荐变得越来越准确,这个问题就是系统冷启动。

总之,推荐系统冷启动主要分为三大类:

  • 物品冷启动、
  • 用户冷启动、
  • 系统冷启动。

现在我们大概知道了什么是冷启动,看起来冷启动很好理解,但冷启动不是这么容易搞定的。下面我们就讲讲冷启动的难点。

2、解决冷启动面临的挑战

要想很好的解决冷启动,需要发挥推荐算法工程师的聪明才智。本节我们来说说冷启动到底会面临哪些挑战,只有知道冷启动的难点,才能更好的思考出解决冷启动的好方法。具体来说,解决冷启动问题会面临如下挑战:

1.我们一般对新用户知之甚少, 所以基本不知道用户的真实兴趣,从而很难为用户推荐他喜欢的标的物;

我们对新用户知之甚少的主要原因有:

  1. 很多APP也不强求用户注册时填写包含个人身份属性及兴趣偏好的信息,其实也不应该让新用户填写太多的信息,否则用户就嫌麻烦不用你的产品了。由于没有这些信息,我们没法得到用户的画像。
  2. 新用户由于是新注册的,在产品上的访问行为没有或者很少,不足以用复杂的算法来训练推荐模型;

2.对于新的标的物,我们也不知道什么用户会喜欢它,只能根据用户历史行为了解用户的真实喜好,如果新的标的物与库中存在的标的物可以建立相似性联系的话, 我们可以基于这个相似性将标的物推荐给喜欢与它相似标的物的用户。

但是,很多时候标的物的信息不完善、包含的信息不好处理、数据杂乱,或者是新标的物产生的速度太快(如新闻类,一般通过爬虫可以短时间爬取大量的新闻),短时间类来不及处理或者处理成本太高,或者是完全新的品类或者领域,无法很好的建立与库中已有标的物的联系,所有这些情况都会增加将标的物分发给喜欢该标的物的用户的难度。

3.对于新开发的产品,由于是从零开始发展用户,冷启动问题就更加凸显,这时每个用户都是冷启动用户,面临的挑战更大。

既然冷启动问题这么难解决, 那么我们是不是可以不用管这些新用户和新的标的物,只将精力放到老用户身上呢?

读者肯定知道这是不可以的,否则我就不会写这篇文章了,那冷启动的重要性体现在哪些方面呢?

3、解决冷启动为何如此重要

用户不确定性需求是客观存在的,在当今信息爆炸的时代,用户的不确定性需求更加明显,而推荐作为一种解决用户不确定性需求的有效手段在互联网产品中会越来越重要, 特别是随着短视频、新闻等应用的崛起,推荐的重要性被更多人认可。

很多产品将推荐业务放到最核心的位置(如首页),或者是整个产品的核心,比如今日头条等各类信息流产品及很多电商类产品。因此,新用户必须要面对冷启动这个问题。从上面的介绍中可以知道,新用户、新标的物是持续产生的,对互联网产品来说是常态,是无法避免的,所以冷启动问题会伴随整个产品的生命周期。

特别是当你投入很大的资源推广你的产品时, 短期会吸引大量的用户来注册你的产品(比如今年百度的春晚红包),这时,用户冷启动问题将会更加严峻,解决冷启动问题也会更加迫切。既然很多产品将推荐放到这么好的位置, 而推荐作为一种有效提升用户体验的工具,在新用户留存中一定要起到非常关键的作用,如果推荐系统不能很好的为新用户推荐好的内容,新用户可能会流失。所以如果不解决冷启动问题,你的新用户一直会得不到好的推荐体验,极有可能会流失掉。新用户的留存对一个公司来说非常关键, 服务不好新用户,并让用户留下来,你的用户增长将会停滞不前。对于互联网公司来说, 用户是公司赖以生存的基础,是利润的核心来源。

可以毫不夸张地说,如果不能很好的留住新用户,让总用户健康的增长,整个公司将无法运转下去。因为互联网经济是建立在规模用户基础上的,只有用户足够多,你的产品才会有变现的价值(不管是会员、广告、游戏、增值服务,你的总营收基本线性依赖于用户数, 拿会员来举例说明,会员总收益=日活跃用户数付费率客单价)。

同时,只有你的产品有很好的用户增长曲线, 投资人才会相信未来用户大规模增长的可能, 才能看得到产品未来的变现价值,才会愿意在前期投资你的产品。那既然冷启动问题对新用户的留存及体验这么重要,怎么在推荐业务中很好的解决这个问题呢?这就是本文最重要的话题了。

4、解决冷启动的方法和策略

前面讲过冷启动包含用户冷启动、标的物冷启动和系统冷启动。

在本节我们会给出一些解决冷启动的思路和策略, 方便大家结合自己公司的业务场景和已有的数据资源选择合适的冷启动方案。

在讲具体策略之前,我们先概述一下解决冷启动的一般思路,这些思路是帮助我们设计冷启动方案的指导原则。具体思路有如下7个(括号里面代表适用于哪类冷启动):

提供非个性化的推荐(用户冷启动)
利用用户注册时提供的信息(用户冷启动、系统冷启动)
基于内容做推荐(用户冷启动、系统冷启动)
利用标的物的metadata信息做推荐(标的物冷启动)
采用快速试探策略(用户冷启动、标的物冷启动)
采用兴趣迁移策略(用户冷启动、系统冷启动)
采用基于关系传递的策略(标的物冷启动)

上面这些策略是整体的思路,下面分别针对用户冷启动、标的物冷启动、系统冷启动这三类冷启动给出具体可行的解决方案。同时, 在本节最后我会基于自己的思考从新的视角来看冷启动,提供不一样的解决方案。

二、用户冷启动

android 冷启动区别 热启动 冷启动项目_冷启动

基于上面7大思路,针对新注册用户或者只有很少用户行为的用户,可行的解决冷启动的策略有:

1、提供非个性化的推荐

(1) 利用先验数据做推荐

可以利用新热标的物作为推荐。人都是有喜新厌旧倾向的,推荐新的东西肯定能抓住用户的眼球(比如视频行业推荐新上映的大片)。推荐热门标的物, 由于这些标的物是热点,同时人是有从众效应的,大家都在看的,新用户喜欢的可能性比较大(比如视频行业推荐最近播放量TopN的热门节目), 基于二八定律,20%的头部内容占到80%的流量,所以基于热门推荐往往效果还不错。热门推荐也一般用来作为新推荐算法的AB测试的基准对照组。

还可以推荐常用的标的物及生活必需品。如在电商行业推荐生活必需品, 这些物品是大家使用频次很高的,生活中必不可少的东西(比如纸巾等), 将这些物品推荐给新用户,用户购买的可能性会更大。

对于特殊行业,可以根据该行业的经验给出相应的推荐策略。如婚恋网站,给新注册的男生推荐美女,新注册的女生推荐帅哥,效果肯定不会差。

(2)给用户提供多样化的选择

这里举个视频行业的例子,方便大家更好的理解,可以先将视频按照标签分几大类(如恐怖、爱情、搞笑、战争、科幻等),每大类选择一个推荐给新用户,这样总有一个是用户喜欢的。

如果是新闻类的产品(如今日头条),可以采用TF-IDF算法将文本转化为向量,再对文本做聚类,每一类代表一个不同的新闻类型,可以采用上面视频类似的推荐策略每类推荐一个。

如果是图像或者视频(如快手),可以利用图像相关技术将图片或者视频转化为特征向量,基于该向量聚类,再采用每类推荐一个的策略。可以用openCV及深度学习技术从视频图像中提取特征, 图像视频分析对技术要求更高,也需要大量计算。

这种方法要保证有比较好的效果,需要类有一定的区分度。也可能碰到给用户的类是用户不喜欢的。最好是从一些热门的类(可能需要编辑做一下筛选)中挑选一些推荐给用户。太冷门的类用户不喜欢的概率较大。

2、利用新用户在注册时提供的信息

(1) 利用人口统计学数据很多产品在新用户注册时是需要用户填写一些信息的, 这些用户注册时填的信息就可以作为为用户提供推荐的指导。典型的比如相亲网站,需要填写自己的相关信息,填的信息越完善代表越真诚,这些完善的信息就是产品为你推荐相亲对象的素材。

基于用户的信息(如年龄,性别,地域、学历、职业等)来做推荐,这要求平台事先要知道用户的部分信息,这在某些行业是比较困难的,比如OTT端的视频推荐,因为用户主要通过遥控器操作,不方便输入信息。并且还要有一定的规则来将用户画像(你填的信息提取的标签就是你的画像)与待推荐的物品关联起来,根据用户的画像标签关联相关的物品,从而为用户做推荐。

最近由于安全问题越来越严峻(今年315晚会报道了大量利用大数据来做黑产的公司),用户也越来越不愿意填写自己的信息了,所以获取用户的画像是比较困难的。

(2) 利用社交关系 有些APP, 用户在注册时要求导入社交关系等,这时可以将你的好友喜欢的标的物推荐给 你。利用社交信息来做冷启动,特别是在有社交属性的产品中,这是很常见的一种方法。社交推荐最大的好处是用户基本不会反感推荐的标的物(可以适当加一些推荐解释, 比如你的朋友XXX也喜欢),所谓人以类聚,你的好友喜欢的东西你也可能会喜欢。

(3) 利用用户填写的兴趣点

还有一些APP,强制需要用户在注册时提供你的兴趣点,有了这些兴趣点就可以为你推荐你喜欢的内容了。通过该方法可以很精准的识别用户的兴趣,对用户兴趣把握相对准确。这是一个较好的冷启动方案,但是要注意不能让用户填写太多内容,用户操作也要非常简单,用户的耐心是有限的,占用用户太多时间,操作太复杂,用户可能就不用你的产品了。

3.基于内容做推荐当用户只有很少的行为记录时,这时很多算法(比如协同过滤)还无法给用户做很精准的推荐,这时可以采用基于内容的推荐算法。基于内容的推荐算法只要用户有少量行为就可以给用户推荐(比如你看一部电影,至少就知道你对这个题材的电影有兴趣,那么就推荐类似题材的电影),不像基于模型的算法那样需要有足够多的行为数据才能训练出精度够用的模型。

4.采用快速试探策略这类策略一般可用于新闻短视频类应用中, 先随机或者按照非个性化推荐的策略给用户推荐,基于用户的点击反馈快速发现用户的兴趣点,从而在短时间内挖掘出用户的兴趣。由于新闻或者短视频时长短,只占用用户碎片化时间,用户发现兴趣也不会太长。现在的新闻应用(如今日头条),你可以采用下拉,快速选择自己感兴趣的东西,抖音快手也一样,可以很快的切换视频。

5.采用兴趣迁移策略当一个公司有一个成熟的APP时,准备拓展新的业务,开发新的APP,这时可以将用户在老APP上的特征迁移到新APP中, 从而做出推荐。比如今日头条做抖音时,对抖音是新用户,但是如果这个用户刚好是头条的用户(抖音前期是通过头条来导流的,所以抖音很大一部分用户其实就是从头条来的),那么我们是知道这个用户的兴趣点的, 从而在抖音上就很容易为他做推荐了。兴趣迁移策略借鉴了迁移学习的思路,在基于主产品拓展新产品形态的情况下,特别适合新产品做冷启动。

三、物品冷启动

android 冷启动区别 热启动 冷启动项目_冷启动_02

四、系统冷启动

android 冷启动区别 热启动 冷启动项目_冷启动_03




参考资料:
推荐系统系列(10):推荐系统冷启动