文章介绍了通过建大池、粗筛、细筛、精筛,四个步骤搭建内容池的一个过程,与大家分享,希望可以給大家带来启发。
个性化推荐产品有三个核心要素:用户、内容和数据。今天专门分享一下构建内容池方面的一些心得。个性化推荐产品的算法是相似的,差别就在于内容上。视频,商品,新闻,音乐,形态各异,消费方式各异,但构建内容池的思路是相通的。
对于一款个性化推荐产品来说,构建一个好的内容池一般分为四个步骤:大池->粗筛->细筛->精筛。构建过程和使用过程刚好互逆:优先召回精筛池,随后才可能是细筛、粗筛、大池。
下面以构建一个视频类个性化推荐产品为例,分别详细说明。
建大池
首当其冲就是粗略规划好自己的内容的原始来源。要干推荐这活,首先要问自己:内容哪里来?内容原始来源一般有三种:生,买,借。
第一种,生。
也就是自食其力,鼓励用户在自己产品平台上创建内容,俗称UGC,比如快手就属于这种,以及自己组建编辑团队创建内容,大多数媒体型网站都属于这类,俗称PGC。这一类内容都是自己的,算是站内资源。如果站内资源较为丰富的话,那就好办了。当站内资源都足够优质时,则可以直接作为内容池,但实际上大部分网站的内容都有不少杂质,尤其是UGC内容。
从站内资源中找到符合要求的内容,不外乎两个思路。一个是做减法;一个是做加法。做减法就是找那少部分不入流的将其去掉,适合大部分内容都是优质的情况;做加法就是从鸡群中找立鹤。什么样的内容会是好内容?通常有几种:
经得起时间检验的内容,通常是专业编辑们过目之后的内容,比如:各个网站的首页、频道首页、专题等
数据效果好的内容,比如:推荐/搜索模块点击量、点击率较高的(好坏的衡量指标根据产品目标而定,可以是点击率、UP值等)
第二种,买。
通过公司之间的合作,得到好的内容,例如淘宝的商品被推荐在微博上。这个多是商业合作,此处不讲。
第三种,借。
站外抓取这件事是一个风险极高的事。第一个就是版权问题,当然可以通过避风港原则来规避这一点;第二个就是技术问题,如一旦抓取目标网站页面结构变化,就影响抓取的效果,页面转码以统一成自己平台的风格;第三个是基因问题,某个站的内容已有一定的基因,是否适合自己的平台,一股脑放出去可能是有违和感。那为什么这么多风险,我们还是建议要“借”呢?高风险,高收益嘛,你懂的。
当拿到初始化的内容后,推荐的大池就完成了。
粗筛池
我们已经“警告”过,构建大池,势必会引入一些杂质。杂质是没有资格在一个应用内流转的。我们所说的杂质包含:
背离产品价值观的,如低俗擦边球,色情的;
威胁平台存活的,如政治类内容。
构建粗筛池,就是从大池中将这些没有资格的内容分拣出来扔掉,同时进行初步的质量评价。
识别这些杂质,一般是机器+人工的模式。我们可以根据内容本身、内容提供商、抓取源等维度进一步对内容池去噪。
对内容质量打分,主要就是构建一个打分模型,利用相关特征拟合一个分数。对于一个视频网站,可以用到的特征有:内容的发布时间、视频长度、视频热度、非广告/政治敏感/色情/黑名单、标题质量,以及视频的历史表现,如点击率、点击量、停留时长等。
对内容提供者打分方法类似,主要区别在于特征,对于视频应用来说,可能有:上传者历史视频的播放量、点击率、播放完成率、赞/踩等;上传者的等级、活跃度、社会影响力等。
最终,根据内容质量分数和内容上传者分数,就建立了一个内容池优选模型,对已有的视频做一个排序,其中低质和劣质的内容可以直接过滤掉。
细筛池
细筛池是在粗筛池之上,结合具体的推荐场景和业务目标,进行一些人为干预:人工调权、调整多样性等。
先说人工调权,需要首先增加一个字段,专门用于设置人工权重。大家不要觉得一提到人工调权就有点“拿不出手”,其实人工权重是必不可少的,某些信息无法通过自有产品数据及时反馈到当前内容上来,如上传者是微博上的KOL,或是视频网站的PGC,这些站外信息虽然人知道,但是没有数据就无法让机器知道,这样就可以通过人工对其调权,以此将其反应到自己的内容池中。
再说多样性。内容池在各个主体上分布一定是不均衡的,某些热门的主题会内容较多,而某些冷门的主题会内容较少。这也需要人工干预多样性,适当帮助补充一些冷门主题的内容池。
精筛池
内容池构建机制到目前,已经可以上线使用了。但是这其中无论是大池、粗筛池、细筛池,所依赖的模型还是离线构建的,调整起来有一定的延迟,在实时场景下我们应该考虑更及时的动态筛选。
因为我们要关心很多诸如这样的问题:当内容池上线被用户看到后,到底效果如何?低效的如何实时被淘汰?为了解决这些问题,所以最后设置了精筛池这个环节。
这需要采集实时的数据,具体流程如下:
结语
曾有大牛说过,推荐的影响要素中,产品形态(可以理解成UI/UE)占40%、数据30%、领域知识20%、算法10%。这里数据就包含内容池。
实战当中,我发现内容池的重要性更是超过预期。在之前做视频Feed的过程中,每一次播放量的跨越,几乎都是内容池的功劳。如用CF方法对内容池进行扩量、内容池优选模型、内容池准入准出规则的调整等。所以推荐产品,尤其是内容产品,建议在内容池这块花大力气。