内容的个性推荐体系如何搭建?


内容的个性推荐体系如何搭建?


内容的个性推荐体系如何搭建?

看到题主这个脑图,基本是可以有个初步结论:题主对推荐的理解可能非常浅显,知道推荐大概有什么东西,但不知道怎么具体落地。也没有想怎么做视频的推荐。很多功能点不是刚开始就需要考虑的,很多需要仔细考虑的却没有考虑。

关于推荐的一些通用的基础知识,我之前倒是总结过一些,想了解的话可以看一下:

【推荐系统那些事儿·一】从天猫双11到余弦公式 - 知乎专栏

【推荐系统那些事儿·二】常用推荐策略介绍 - 知乎专栏

【推荐系统那些事儿·三】推荐策略设计的Notes - 知乎专栏

关于里面提到的一些基础知识不再重复。只是扩展下,如果让我来做这个视频推荐,我会怎么想这个问题,以及怎么做这个项目。

1. 视频推荐的特殊性

视频领域或者说内容领域,和商品、电影、书籍、音乐还不太一样。主要有是时效性要求高,推荐需要考虑多推荐新的好的视频,在最需要推荐的时候,往往缺少足够多的数据。而商品、电影,书籍、音乐则对时效性不那么强。而内容类的推荐,给予标签的推荐会更通用一些。

2. 是否需要个性化推荐?

是否需要个性化推荐,需要在做个性化推荐之前思考清楚。很多公司觉得个性化推荐能解决一切问题,这是战略上很偷懒的行为。换个角度,如果你就每天更新100个视频,你分成10个大类,每个类更新平均10个差不多就行了。然后排序就按照播放量排序就OK。

基本思路是,如果信息比较少,一个feed流就OK,如果信息比较多,则做分类,如果信息更多,分类无法处理,那么搜索推荐才应该被考虑。

如果场景是在详情页的推荐,那是不是同分类的推荐就基本OK,或者简单协同过滤也就基本OK。

3. 实现的路径

一个成功的推荐系统应该是什么样子,什么机器学习,及时反馈,惊喜感,大家都能拽几个词。然后,我们怎么做到这步?却很少有人去真正想。一个牛逼的蓝图,必须有如何实现的路径。一开始画个这种看似面面俱到,但其实一年半载出不来的东西是肯定是不行的。

4. 一个可能的方案


内容的个性推荐体系如何搭建?

简要描述下:

对于内容库的搭建,前期根本没有能力做太多机器学习的挖掘性工作,人工分类就够了。如果真的是PGC或者UGC的话,这个视频量其实不会太多。

对用户的分类基本是根据用户消费了哪些方面的内容打分类标签。分类标签粒度也应该是和体量相匹配。

算法设计主要是基于用户分类标签和内容分类标签的匹配。用户消费过A标签的内容可以给用户A标签,同时也可以推荐A标签关联性极高的B标签的内容,比如:用户有游戏视频的标签,也可以根据标签间关联性推荐动漫标签下内容。关联关系既可以人工标注,也可以简单的算法计算,比如CF。最终结合业务指标进行打分。

上线之前一定要有离线评估,离线评估指标是算法调整的指导性指标。真实上线前也需要有合理的AB test,对于实验方案和指标都需要认真考虑。

5. 写在最后

构建个性化推荐有若干种方法,不同公司也有不同公司具体的情况。而不管什么方法,不管什么公司,在做个性化推荐的时候,都会发现一堆各种各样的坑。这些坑不会在论文里,也不会在书里。通用方法不经打磨很难使用在具体的场景和业务。而机器学习也未必比部分人工规则有太大的优势。

这个答案说到底,也只是个分析问题的参考。

如果非要说给题主什么建议的话,那就是:多看看有用的案例,多掂量自己的业务场景,多掂量自己的机器计算能力,多掂量自己的业务人员水平。

最近2年多的时间一直在做QQ音乐个性化推荐和用户画像建设的相关工作,也分享下我对内容型产品之一视频类产品个推的理解吧。

1.想清楚做个推的原因。是跟随趋势还是顺势而为?

自从alpha狗横空出世,AI领域就变得火爆异常,只要是个内容型产品都会有个个推梦。但,是不是每个产品都需要,都适合做个性化推荐呢,恐怕很少人去仔细思考过。其实在国内,有个推需求的产品还是不太多的。比如音乐,每个人都喜欢听到自己感兴趣的音乐,那是不是一定要是冷门小众的歌曲,才能彰显自己独特品味?其实不然,大家可以回想下从小我们听歌,喜欢一首歌更多是因为某个明星,某个热门趋势,觉得自己不听就会low的惯性去听。而等到慢慢长大,这时候追星慢慢淡去,更多的是自己对音乐的理解,所以慢慢才会形成自己的口味,去选择性的听音乐。因此,对于不同阶段的人群,对于内容的需求是不一样的。通过数据我们也验证过,对于年龄较小的用户,对新热的感知度较高,而对个性化的需求并不算太强烈。因此,当你要对自己的内容型产品做个性化时,一定要想清楚几点:我的数据多么?我的用户他们的需求真的很多样性么?如果是,那么可以继续思考下去,切勿跟风,毕竟一个好的个推系统有很多种做法,成本投入很大,一定要事先了解清楚这些才开始做,不然大概率事倍功半。

2.理清楚想做的内容型产品的特点,因地制宜。

视频有别于其他内容载体:

1)和音乐相比,它更偏一次性消费,很少被用户重复消费,因此更多应该考虑用户对某一类的喜好,而非某一个内容的喜好;

2)和新闻相比,部分非新闻快讯的节目及时性不需要很强,于是可以让你的算法可以用时间换空间,通过离线计算获得更精准的结果。

对自己的内容型产品了解有助于后续和开发团队定下来一些规范,比如运算效率,让团队达成共识。

3.建立内容库,以精为重,通过一些技巧解决标签生成难的问题。

推荐系统做的好不好,一个好的内容库占了一半的功劳。好的内容库并不是应该大而信息不全,而应该维护好每个类别下精品数据的标签准确性和覆盖率。音乐产品动辄几千万曲库,视频产品动辄几亿条视频,与其平均施力维护一个大的内容库,还不如维护一个1/10,甚至1/100的库保证其标签或基础信息的准确性来的好。

比如打标签也是做任何做推荐系统都必须要经历的。那其实除了人为缩小内容库范围方法之外,我们也可以尝试利用用户的ugc行为帮我们打上标签。比如每个视频app都有播单(可以将喜欢的视频加入成为列表,并改成自己喜欢的列表名),那其实我们可以遍历所有用户的播单,对于每一个视频,抽出包含它的播单并进行切词分析后,那么我们就可以知道哪些是“喜剧”,哪些是“恐怖片”之类的了。如下方的七品芝麻官,可能没有打上标签,但被1000个播单都认为是喜剧,所以喜剧的概率就接近100%,此时自动生成一个“喜剧”标签给这个影片就无可厚非了。


内容的个性推荐体系如何搭建?

而对于短视频等,我们也可以通过对标题进行文本分析,切词提取关键词形成这个视频的标签。从而丰富视频的维度。


内容的个性推荐体系如何搭建?

更神奇的如google,最近还推出了一个解决方案,通过分析视频截图画面判断内容究竟是什么,从而来判断视频包含什么人物,来给视频建立丰富的标签索引。

人工智能里程碑:谷歌率先实现视频内容识别_腾讯网触屏版

所以其实方法有很多,关键是去结合自身业务特点去想,总能想到一些快速丰富标签的思路。

4.为每个用户建立用户画像,形成推荐的基础。

每个用户都会有自己相对稳定的偏好,因此如果我们对用户建模,大概了解到他喜欢什么样类型的视频(是喜剧还是恐怖剧,是韩剧还是日剧),喜欢什么类型的演员(青春活力,实力演技)容易被什么样的标题吸引(标题主题),那么我们可以直接根据用户的画像,推荐他感兴趣的类型,但又还没有看过的内容。比如最近一个月,系统通过统计我的行为发现,我爱看推理剧,那么,推荐一部《神探伽利略》就可能会让我感觉惊喜了。再比如系统知道我是个ACG爱好者,那么推荐给我没看过的新番热番其实都是一个不错的选择,至少会比纯粹的编辑挑选会好太多。

5.不同的用户生命周期挑选不同的算法,不断的根据数据反馈调优。

推荐系统的算法有太多,协同推荐,决策树,逻辑回归等等无法一一列举,但这里需要一点的是没有一个算法是万能的,多个算法根据业务逻辑交替使用或许最终的效果会好很多。

1)比如对于一个视频新用户,你没有任何过往他的观影记录,但是他有登录QQ,那么你可以拿到他的一些基础属性比如年代,性别,地域等等,这些对于内容型产品来说都是不错的推荐特征维度。通过这个就可以进行简单的推荐,如小学生推动漫,成年人推电影,而男性推荐更多电玩,警匪,科幻类的电影,女性更偏向推言情,韩剧等,这样可以使得原本统一的首页变成稍微个性化,也让用户容易发现当前可能更感兴趣的内容。

可能有人会有疑问,只有大厂才会有如此特征便利,但据我所知,不少push sdk和手机厂商也在开始做这块的数据,他不依赖于用户填写,而依赖于用户手机上其他信息,比如装了一个辣妈帮,美丽说,蘑菇街的应用,则大概率是一个女性,如果你装了暴漫,b站则大概率是一个acg爱好者。再如今日头条早期登录微博,也是抓取用户首页微博通过切词,主题词分析得到用户偏好,从而进行推荐。或者你可以如即刻一样,给用户一个初始化选择,同样可以达到目的。


内容的个性推荐体系如何搭建?

一切都是建立在了解用户需求的基础上,推荐才可能得以展开。

2)对于一个有一定播放或收藏记录的用户,那我们除了可以根据用户画像进行类别上的推荐,也可以通过协同推荐等方法找到用户喜欢的内容最为相似的内容,帮助用户发现。

协同推荐方法在知乎上不少的介绍,感兴趣的可以翻翻,大致原理就是如果两个视频被一群人同时喜欢,那么他们很大概率是相似的。通过这个方法我们则帮助用户在留存这个阶段进一步拓展视野。

3)而当用户在视频平台已经累积有很多行为的时候,传统的推荐已经不能再满足,此刻我们则要思考如何给他惊喜感。比如推荐相似,不如一个同好的专家用户推荐一部冷门佳作会让他来电。

我们可以尝试去计算某个垂直分类(如喜剧)用户中最爱的视频排名,挑出大盘排名靠后,但爱看喜剧的人推荐的内容,这种往往和大盘有很大不同,但是推荐出来却有新意,不妨一试。


内容的个性推荐体系如何搭建?

总而言之,推荐系统是一个复杂的综合体,需要从不同维度去考虑,从而结合多个算法合一提升推荐效果。

6.善用离线测试和abtest,让推荐效果更有说服力。

算法完善后一般要做离线验证,我们可以用上一个月的观影和收藏行为作为输入计算出推荐结果,和这个月用户实际收藏行为进行对比,看看命中率如何,不断调优。

同时,发布外网后,也可以根据后台尾号进行灰度发量,观察不同的两组之间收藏率,播放率的差异,评价上线算法效果的好坏。

对于一个内容推荐体系的搭建大致如以上所说,看上去都是通用框架,但落地和调优细节会有太多差异,但这也是不同推荐系统之间的核心竞争力吧。因此当开始着手搭建自己公司的推荐系统前,都要考虑再三,投入的人力,时间,用户需求迫切程度和了解程度都直接影响你的系统是否能搭建完成。

做推荐是有套路的。

1. 推荐的本质是什么?

题主想到的一些点都挺沾边的,例如冷启动、内容库、数据收集,但犯了至少两个错误:1)题主的图是串不起一个推荐流程的;2)想要跑通一个推荐流程,核心并不是推荐算法,而是内容和数据。

内容就是你要提供给用户的东西,例如你的视频库,UGC、PGC什么的。用户最根本的目的还是消费优质内容。没有好的内容库,是推不出东西的。

数据指的是用户的行为数据。没米是做不了饭的,没有数据任何算法都是走不通的。很多高大上的词,用户画像什么的,本质上都是对用户行为数据的抽象而已。另外,给内容打标签、打质量系数分也可以用用户行为数据。

推荐的本质,就是根据用户行为数据,提供更满足用户的内容。

2. 一个怎样的产品才能做推荐?

在我看来,至少包括两个要素:

1)足够大量的内容和数据

内容不够多的话,做榜单就行了,做个毛线推荐。

数据不够大的话,再好的算法训练出来都一坨翔。

做推荐准入门槛很高,是个贵族游戏。

2)产品形态有推荐的原动力

什么意思呢?一言难尽。

产品经理喜欢拷问一些诸如“为什么要做推荐?做推荐对产品有啥用?是不是有些用户不喜欢推荐”之类的问题,在我看来这是蛋疼问题,推得好数据一定会更好,问题就是你的产品未必能推得好啊。

推荐应该是个研发主导的事情,首先要拷问的是这个产品的数据流是否能否支撑某种推荐模型,要拿什么、怎么训练、出些啥、可以干啥。如果数据流最多做做协同,那硬要做feed流一定会死很惨。

满足有推荐的原动力的产品,我可以举几个例子:

1)用户帮你打标签,例如知乎、网易云音乐。形成这样的产品形态不容易,一旦形成就可以四两拨千斤。

2)搜索渗透高的产品很适合做推荐,搜索是挖掘推荐数据的大金矿。

3)外部数据(如爬虫)能起很大作用的产品,例如各种图文信息流产品。

一个产品纯靠推荐来运作是很难的,往往是搜索、分类、榜单、用户、外部数据等所有加起来给推荐提供训练数据。我厂现在走大中台战略,倒是让许多本来不好做推荐的产品也能给你推了。

3. 推荐的大套路

1)收集数据

收集数据永远是第一步。需要了解手中的数据是怎么来的,到底是用户干了啥产生的。并且最好建立感性的认知,这样对后续的ETL、算法选择、调参、模型解释等各个环节都有很大帮助。

2)建立指标

一定要先建指标,否则是没办法验证推荐效果的。常见的有CTR、PV、UV、人均等,结合自己产品形态来设计。

3)实现推荐流程

到这里才是算法选择和工程实现。一般来说,能做推荐的产品规模都不会太小,所以会遇到各种高并发、分布式存储与计算等工程问题。推荐算法只是推荐整个流程的一个小块,做推荐的往往需要算法、大数据、数据分析、产品思维等多种能力,非常苛刻。

4)不断地优化

就是不停地ABTest、调参、更新策略、更新算法,一步一步提高指标。

4. 推荐的小套路

四个字,热推多补。

热指的是榜单内容,多用于冷启动。

推指根据短期、实时反馈的数据进行的即时推荐,效果最显著。

多指多样性,不能老是推用户爱看的,这样会收敛。你永远需要补充一些用户没看过的来让用户发现新的大陆。

补指补充,指的是根据长期数据、近线计算的用户画像推荐的内容,可以起到良好的补充作用。

以热推多补作为指导思想,建立推荐模型、推荐策略。

5. 关于视频推荐

不巧我正好是做视频推荐的。视频有些特别的属性,例如啊:

1)视频的打标签和分类是个难题,主要原因是文本极少以及标题党问题。一般视频入库的时候会有一些简单的信息补充,但是用处有限。

2)另一个蛋疼问题是鉴黄,你懂的。

如果你能在面试时靠谱地解答这两个问题,基本上就稳了。

如有有同学有兴趣往推荐的方向发展,一定要有非常扎实的基础。再重复一次,推荐算法真的只是其中非常小的一块,不是搞清楚LR和协同就能做推荐的。


分享到:


相關文章: