产品策略算法:参数的调整
产品策略在实现层,最终是以算法公式的形式输出的。
超级APP功能越来越全,非超级APP的DAU都在下降,当失去增长红利之后,精细化迭代和精细化运营将成为必然选择。产品的工作的重点也需要从前端和交互的修改,转移到策略的制定。而产品策略在实现层,最终是以算法公式的形式输出的。
一个成熟的策略系统,会涉及多种重要的因素。如何保证这些策略公式在复杂的运算中发挥自己应有的作用,如何保证不同的数值能在同一纬度计算,这就涉及很多参数调整的策略技巧。
1. 调整参数的目的
首先在调整参数的时候,前提是明确调整参数的目的。针对具体的目的,使用对应的工具,然后才能达成具体的目的。对调整参数的目的简单做了一些总结,具体如下:
- 归一化处理
- 调整因素的影响力
- 信息论处理:热门降权和时间衰减降权
- 调整变化曲线
- 设定变化界限
2. 归一化处理
归一化处理,通过处理让不同因素在一个范围内进行比较。举个例子,如果要比较专栏的影响力,需要综合考虑阅读量、点赞量、发表文章量这三个因素,直接相加显然是不可行,因为阅读量数量是点赞数的至少10倍,而点赞数也是发表文章数的几十倍。要让不同因素在一个变化范围内,这个时候就需要对进行归一化处理。
最简单粗暴的归一化方式,就是直接除以数据中的最大值,那么所有值都在0~1之间,并保留原有的变化性质。即:
当然这样的处理方法也会有问题,比如受到极值影响比较大。而且如果大部分分值比极值低很大的数量级,则低分值将没有区分度,以阅读量为例,如果最大阅读量为十万+,而大部分专栏文章阅读量集中在500左右。这样直接除以极大值显然是不明智的。这个时候最好在处理前对数值进行调整。在之前的文章中提到的对数处理是个比较好用的方法.
这样既保证了所有的数值在0~1之间,同时极值对最终分值的决定性影响也没那么大。
3. 调整因素的影响力
调整影响力的比较通用的办法有两种,加数值,乘以数值。
加数值能解决冷启动遇到的新内容权重过低的问题,比如,如果知乎答案完全按照赞同排序,则新发布的知乎答案,一开始在下面,不利于被更多人看见,如果新发布的内容自带20个赞参与排序,则能解决这一问题。
乘以数值能解决数值重要性的问题,如果希望某一因素在总排序中占据更重要的位置,则可以用乘法处理,比如,还是知乎内容排序的例子,如果完全按照赞同排序,要提高文章的排序权重,可以直接乘以某个系数。
4. 信息论处理:热门降权、时间衰减降权、置信度提权
一个信息出现概率越小,信息量越大,如果一个信息越常见,包含的信息越小。这个在之前文章中提到的一个基础观点。在实际的策略公式中,从信息论的角度去考虑就能快速的理解策略,让最终结果更加符合预期。
热门降权以经典的图书推荐为例进行介绍。在图书推荐中买了的人还买了的策略中,有一个著名的哈利波特问题,因为哈利波特销量过高,几乎所有的图书都和它有关系。怎么处理呢?一个办法是用销量做流行度处理,降低流行度特别高的商品在排序中的得分。
时间衰减降权,顾名思义,让过去的信息权重更低,最近的信息权重更高。行为具有连续性,最新的行为包含了更大的信息量。在处理的时候也可以使用上面的数学形式,让更远的时间分数衰减更大。
置信度提权,是基于数据量越大信息越靠谱,在处理平均值,打分等的参数时候有比较好的应用。比如,在计算一个电影的排序的时候,在考虑多个因素中包含了电影观众打分,这儿时候应该是打分的人越多,电影打分的权重越高。
5.调整变化的曲线
一般而言未经加工的数值在策略中很难直接应用,比如:知乎点赞/阅读的比率。好的文章高一些,差的文章低一些。变化范围特别小。希望整体数值变化范围不变的情况下,怎么加大区分度?这个时候可以用一些曲线的性质。开方是个例子,0.25变为0.5,0.01变为0.1,而1处理后还是1。
同样的如果分值都集中在很高的情况下,为了加大区分度,也可以用开方的逆运算。0.8处理后变为0.64,0.5处理后变为0.25,1处理后还是1。
6. 设定变化的界限
防止一些极值产生对于计算的影响,设定变化界限也是常用的方法。比较暴力的做法是设定最大值,比如:当在阅读量计算中,阅读量数值大于10万,只取十万,防止大值的影响。
还有一些比较柔性的做法,比如用有界函数进行处理:
或者直接用之前文章中提到的对数也是不错的做法,会让大值影响减少。
7. 总结
本章讲的东西是一些通用的数值处理技巧,可能在脱离具体情形下,不是那么好理解,也比较枯燥。下一章主要会讨论一些关于公式和模型的思考方法。欢迎大家关注专栏,并收看下期。
本文由 @潘一鸣 原创发布于人人都是产品经理。未经许可,禁止转载。
一鸣老师的文章每次看了都收获良多。
棒棒哒
6. 设定变化的界限
中 第一个函数看不懂,求解释
厉害,看完还是需要消化 😕