现有人工排序是基于商品sort值属性来做的,优势在于简单、快速,运营调整完之后可快速在首页看到排序变化效果,不好的地方在于排序维度单一,且受人为主观因素影响较多,同一个商品不同人给的sort有出入,为了屏蔽掉大家对美好事物的认知差异及降低人工投入成本,这里我们将考虑使用商品静态分字段进行优化
-
什么是商品静态分
商品静态分即商品质量分,是一种基于多维指标评价商品质量的综合方案。
商品静态分和网页搜索引擎通过PageRank算法为网站打分评价网站重要性的方式类似; pagerank通过网站之间的投票关系进行运算, 相对而言商品的静态分的因素会更多一些;有点类似于提前通过一种算法规则模型为商品注入了人气分值,这个分值将在搜索排序、个性化推荐排序方面进行应用; 商品静态计算过程和pagerank一样需要解决如下2个问题:
- 稳定性. pagerank可以保证一个网站不会因为简单链接堆砌可以线性提升网站的排名. 同样, 商品静态分的计算不可以让商品可以通过增加单一指标线性增加分值(比如刷单对搜索引擎的质量的影响).
- 区分度. 在保证稳定性的基础上商品静态分要有足够的区分度可以保证同样搜索的条件下, 排在前面的商品的质量比排在后面的商品的质量高.
-
静态分有什么用
商品静态分主要是为了解决基于高质量商品更多曝光机会,为搜索引擎在处理商品复杂排序时提供了一种可能;不仅实现了预期的排序效果,还解决了性能问题。
-
如何实现静态分
根据以往经验罗列了如下几个影响商品排序的维度:
展示效果相关
点击次数、点击人数内容属性相关
组件类型、分类、标签、动效、价格分布、收藏量、上架时间转化效果相关
下单量、成交额、制作量
静态分公式:
Tscore = a * F(展示) + b * F(内容) + c * F(转化)
其中a、b、c是权重参数,用于平衡各指标的影响程度,F()是指标增量控制函数和归一化函数;这里可以尝试将权重参数放F函数里 即F(a*点击量),具体参与那种方式以及如何确定权重系数可根据AB效果进行调整优化。
- 针对单一维度的增量控制,这里采用log函数,根据log曲线可以看出,随着X数值的增大,Y值的增长速率在逐渐放缓,这样就避免了因单一指标的过快增长导致最终分值被线性放大。
这里需要注意的是,为了避免出现y值为负的情况,需要将曲线沿x轴方向向左平移1个单位,即 y=lg(x+1)
-
数据归一化,归一化的目的是让数据能够均匀离散的分布于0-1直接,并且可以达到消除量纲的目的,让不同单位的指标可以进行相互比较;常用的归一化函数有两种:最大最小值归一化、z-score归一化,前者实现简单便于理解,缺点是易受奇异值的影响,进而导致结果的不稳定, 假设一个奇异点是第二大的值的1000倍, 这样会让大部分的值都集中在0~0.01, 失去了归一化的目的。
最值归一化
- 至于权值的选择,可结合业务经验给出初始权值,然后使用控制变量法改变单一 变量,再根据AB结果动态调整。
对还算法感兴趣的同学可以参考我的另外一篇文章 你真的了解商品热度排名吗
写到最后
某电商平台引入商品价值分后对整个搜索点击率提升5%~10%左右。搜索效果优化是一个非常值得持续投入的场景,一方面算法人员要具备良好的工程技术背景,在开发实施的过程中可以去借鉴成熟的技术框架,避免重复造轮子;另一方面,每个产品的搜索功能都有自身的特点,我们需要深入了解自己的业务场景以及用户的使用习惯,进而去给出合理的解决方案。