推荐系统都是基于用户的静态特征和动态特征来进行内容推荐,静态特征基本上是永久或长期不会发生变化的特征,例如用户年龄、性别、职业等;动态特征则和用户当前场景下的兴趣爱好息息相关,动态特征又分为正反馈和负反馈。正反馈就是用户根据推荐系统推送的内容进行点击、消费时间等一系列行为,而负反馈则是比正反馈更有用的信息,作为用户的主动反馈行为,其可信度更高,应该被重视。
01 背景
产品的主要用户基本上为小孩,存在非小孩用户的推荐列表会受到主流用户爱好干扰的现状,尤其是在开学季,非小孩用户的列表和节假日存在巨大的差异,因此有必要在优化推荐系统的同时新增用户负反馈功能。
(这里主要是讲收集数据之前的工作,后面还会总结收集的数据如何使用)
02 项目过程
1. 竞品分析
收集数据之前,会发现产品目前并没有这个功能可以协助用户进行反馈,还是需要从头开始做,因此,我参照了几个用户量比较大的产品,并非是真正的竞品,但也能学到一些东西;经常使用信息流产品的人应该会很熟悉今日头条;二次元深度患者则多使用b站;数码生鲜产品爱好者则多会了解京东一些。
这三个产品,刚好都有做负反馈功能,如下图(依次是12京东,34今日头条,5b站):
会发现,虽然只是一个小小的反馈功能,每个产品却各有特色:资讯类产品负反馈因为涉及到用户在信息流的实地感受,因此负反馈功能做的较为复杂,便于更精准的掌握用户的喜好;b站则更注重用户的心里感受,会做出及时反应以及用户安抚,但无过多选项;电商类产品负反馈则相对简单粗暴,不喜欢就干掉,方便快捷;三者各有特点,需要从我现在的实际需求出发,取长补短。
我目前的需求仅停留在数据收集层面,因此会倾向于较为简单粗暴的方式,但考虑到游戏图标较小的现状,采取了长按触发的情况;
2. 数据预估
做一个功能之前,还有一点较为重要,也容易被大家忽视。那就是功能的覆盖率(可以简单的理解为功能的使用人数比例),这一点是很有必要做的,因为这决定了这个功能产生好或不好的数据影响波动范围。
我这里的预估方式,是选取了之前的一个用户给游戏打星级分数的覆盖率,预估了覆盖率(最后的覆盖率,和预估的数据几乎无差异)。
3. 功能设计
虽然负反馈功能夫人覆盖率我预估在4%-5%左右,不会对大盘数据产生什么显著影响,但还是需要谨慎,因此对功能的生效条件做了限制,功能根据用户活跃天数灵活可控,配置开关,用户引导次数灵活可配置,避免新手引导过多导致数据变差;
4. 需求评审与测试
需求文档需要考虑到很多层面:
客户端的开发逻辑、是否存在不能实现的需求点;
实验的结果预估,数据变差的下一步优化需求预估,尽量做到最好;
产品自测的时候哪些地方需要格外注意;
数据埋点设计,需要以需求的最终目的为导向,进行埋点设计,不设计多埋点浪费资源,也不会缺少重要埋点;
5. AB test
功能上线后开实验验证数据效果,实验结果也基本在掌握之中,且和预估的结果差不多——新用户数据有微微下降,推测是新手引导过多,因此在后期数据收集的时候灵活配置了实验,新用户功能生效但不引导;
6. 总结闭环
实验结束需要完善实验报告进行项目闭环,且需求也达到了之前最初的目的:在用户核心数据不变的前提下,收集用户负反馈数据。
03 项目复盘
1)目光长远与数据收集
负反馈是一个需要长期维护的工作。在覆盖率和数据量比较少的情况下几乎起不了什么作用,也不能左右大盘的数据,但也是需求去做的,慢慢的积累,负反馈结果是比用户正反馈更加真实准确的训练模型的正例样本;
2)数据预测与功能类比
覆盖率预估。功能设计之前,要明确功能的使用覆盖率,如何预估其实是很简单的,需要类比其他类似功能,进行数据查询,就能大概的预估其带来的数据收益;
3)结果预测与需求灵活
需求在做之前,一定要考虑和预估到每一步的结果以及接下来的应对方法,这样才会避免反复做同一件事,需要有好的思考方式和做事习惯。
加油,打工人!