基于标签的召回应该是召回策略中最简单直接的一种方式,而这种方式的基础是要有个能准确且详细描绘用户和item的标签体系。
标签体系主要是帮助机器来认识和了解我们的用户及内容。包括用户的一些基本属性(例如年龄,性别、省份等),身份属性(如是否是注册用户、是否是会员用户等),还包括用户的兴趣属性、内容倾向等。基于这样的理解,制定了视频平台所用的标签体系,如下图(图中隐藏了部分信息):
有了标签体系,不仅对于召回有很大的提升,还对相关推荐、简单的个性化推荐都有较大的帮助,且推荐效果也不会太差。这篇主要说召回,那我们就重点说下基于标签的召回。目前我们主要用两种方式:
1、单标签召回
单标签是直接筛选一些分类或细分标签作为召回的有效标签(如CATEGORY_电影、PEOPLE_杨幂、TIME_晚上、VIP_芒果等),这种方式简单、粗暴,且召回结果丰富,不存在召回结果为空的情况。当然,具体用哪些标签是是一个关键点。一方面是因为部分单标签会存在包含关系,所以不加筛选的话召回结果的重复占比会很高,对召回的性能也有影响;另一方面,为了帮助用户更精准的筛选候选集,不同类型的用户(如冷启动用户与活跃用户,会员用户与普通用户等)所用的召回标签肯定也存在差异。
2、组合标签召回
上面说的单标签召回存在召回结果重复率高、不精准的问题,虽然召回结果丰富,但做了过滤后,有效的结果是有限的,那我们为啥不通过召回本身过滤掉重复和效果不好的呢,于是就有了组合标签召回。
我们的标签是分了多级的,组合标签召回可以是同级标签组合(如CATEGORY_电影_AND_PEOPLE_杨幂)、多级标签顺序组合(如CATEGORY_电影_AND_STYLE_搞笑),也可以跨分类多级组合(如SEX_女_AND_VIP_芒果_AND_CATEGORY_综艺),还可以将静态标签与动态标签进行组合、固有属性标签与用户行为进行组合等,具体组合类型及组合的深度可通过产品特性和业务特点大家自己去发现和探索。即使不做太多优化,组合标签召回的效果也比单标签好很多,下图是仅加入了同级标签组合和多级标签顺序组合后的实验数据(2802:对照组(单标签);2811:组合标签实验):
从实验数据看,推荐效果上的各项指标都比单标签的对照组有所提升,同时在推荐请求耗时上比单标签降低不少。整体来看组合标签召回的效果和预期一致,后续继续优化,指标上应该还会有一些提升^_^
ps.若是朋友们在标签召回方面有较好的优化点也可与我分享哦O(∩_∩)O~