阿里提出电商搜索全局排序方法,淘宝无线主搜GMV提高5%

做者 | 瑞溪
编辑 | Vincent
AI 前线导读:AI 前线本周带来第 35 篇论文解读,本期要解读的论文来自阿里巴巴,主题是:电商搜索全局排序方法。一个好的排序算法能够为电商带来销量的巨大提高,若是你也是这一领域的开发者,但愿阿里巴巴的这篇论文解读对你能有所启发。

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)
1. 前言

搜索排序的传统方法是经过各类方法对商品进行打分,最后按照每一个商品的分数进行排序。这样传统的搜索排序方法就无 法考虑到展现出来的商品之间相互的影响。相似地,传统的针对单个商品估计 ctr、cvr 的方法也都基于这样一个假设:商品 的 ctr、cvr不会受到同时展现出来的其余商品 (咱们称为展现 context) 的影响。而实际上一个商品的展现 context 能够影响到 用户的点击或者购买决策:假如一个商品周边的商品都和它比较相似,可是价格却比它便宜,那么用户买它的几率不会 高;反之若是周边的商品都比它贵,那么用户买它的几率就会大增。算法

若是打破传统排序模型展现 context 没有影响的假设,该如何进行排序呢?为此,咱们首次提出了一种考虑商品间相互影响的全局排序方法。咱们将电商排序描述成一个全局优化问题,优化的目标是反应用户满意度的商品成交额:GMV(Gross Merchandise Volume)。准确地说,全局排序的优化目标是最大化 GMV 的数学指望。计算 GMV 的数学指望须要知道商品 的成交几率,而商品的成交几率是彼此相互影响的,所以咱们又提出了考虑商品间相互影响的成交几率估计模型。微信

首先, 咱们提出了一种全局特征扩展的思路,在估计一个商品的成交几率时,将其余商品的影响以全局特征的形式加入到几率估 计模型中,从而在估计时考虑到了其余商品的影响。而后,咱们进一步提出了经过 RNN 模型来精确考虑商品的排序顺序对 商品成交几率的影响。经过使用 RNN 模型,咱们将电商排序变成了一个序列生成的问题,并经过 beam search 算法来寻找 一个较好的排序。咱们在淘宝无线主搜索平台上进行了大量的实验,相对于当时的淘宝无线主搜算法,取得了GMV 提高 5% 的效果。网络

2. 全局排序方法

全局排序阶段的输入是要排序的 N 个商品,输出则是 N 商品的排序结果。学习

咱们用 S = (1, … , N) 表示基础排序输出的 top‑N 商品序列;O 表示 S 的全排列集合,o = (o1, … , oN ) ∈ O 表示 S 的一个排列;另外,用 di 表示商品 i 在排序 o 中的位置,即 odi = i;c(o, i) 表示商品 i 在排序 o 中的展现 contex 全局排序 t,具体定义后面会分状况讨论;测试

v(i) 表示商品 i 的价值。优化

咱们将目标定义为本次搜索产生的 GMV,因而在给定 c(o, i) 的状况下,就有:搜索引擎

全局排序的最终目标就是找到一个指望收益最大的排序:设计

寻找这个最优排序须要解决两个问题:3d

  • 问题 1. p(i|c(o, i)) 这个几率如何去准确地估计;orm

  • 问题 2. 寻找 o∗是个组合优化的问题,暴力搜索的时间复杂度是 N! 的,须要找到合理高效的近似算法。

问题 1 是提升效果的关键,估计得越准,后面组合优化的效果越明显,反之则会致使第二步的组合优化没有意义。从理论上讲,c(o, i) = (o1, … , oN ) 是 i 的完整的展现 context,可是若是完整地考虑展现 context,问题 2 的组合优化复杂

度很难下降下来。为了能更高效求解问题 2,须要对 c(o, i) 进行适当地简化。根据对 c(o, i) 的简化程度,咱们把全局排序模型分红了两类,分别在下面介绍。

2.1 全局特征扩展

电商搜索全局排序方法

第一类模型只利用展现 context 的商品集合信息,而不去深究真实的展现 context 的顺序,即 c(o, i) = S ∖ {i}。直观上理

解,第一类模型假设用户在判断是否购买商品 i 的时候,只记得他看过全部的商品集合 S,而不在乎 S 中商品的出现顺序。

这种状况至关于用户知道本身的挑选集合,从中比较和挑选出最想购买的商品。咱们将商品 i 自己的特征成为局部特征 fi,l。这时能够把商品 i 的局部特征 fi,l 与其余候选商品的局部特征进行比较,获得这个商品的特征与候选集合其余商品比较的结果,而且把这些比较的结果做为包含全局信息的特征加入到 p(i|c(o, i)) 的预测中。

以价格特征为例,咱们会按照价格纬度对 S 排序,将商品 i 的价格位次均匀地归一化成 [0, 1] 之间的一个值(最贵的价格变成变成 1,最便宜的价格变成 0),这样 i 的价格特征就扩展出了i 的价格全局特征。

经过上述的方式能够对 fi,l 的每一维按照其位次扩展,获得相应的全局特征 fi,g,最终咱们将局部和全局特征拼接起来做为考虑了展现 context 的商品 i 的特征 fi = (fi,l, fi,g)。这时展现 context 经过特征扩展而加入到模型中来,帮助模型预测成交几率 p(i|c(o, i))。

在第一类模型的假设下,问题 2 的组合优化就变得很简单了。商品集合是静态的,所以各个商品的成交几率能分别独立计算出来。

可是 DNN 计算出的 p(i|c(o, i)) 没有考虑到商品 i 的排序位次,应该根据根据 position bias 对 p(i|c(o, i)) 作一个修正,即 p(i|c(o, i))bias(di)。对于求解问题 2 来讲,咱们不须要具体知道 bias(di) 的值,只须要知道 bias 随着位置从前日后依次下降就能够了,由于这时只要按照 v(i)p(i|c(o, i)) 从高到低对商品进行排序,就必定能获得收益最大的排序。

2.2 排序序列生成

第二类模型不仅仅考虑展现 context 的商品集合信息,还精确地考虑到排在 i 以前的商品的顺序。与第一类模型相似,展现 context 的商品集合信息仍是经过扩展全局特征的方式加入到了每一个商品的特征中,即 fi = (fi,l, fi,g)。可是与第一类模型不同,计算 p(i|c(o, i)) 时,第二类模型还考虑了排在 i 前面的真实顺序,即 p(i|c(o, i)) = p(i|o1, o2, . . . , odi−1),这样问题 1 变成了一个序列几率估计的问题,最直观的方法就是用 RNN 来计算 p(i|c(o, i))。

与第一类模型不同的是,因为咱们考虑了排在 i 以前的商品的顺序,前面商品的排序变化会影响商品 i 的成交几率。这时就不能分别独立计算每一个商品的收益了,由于商品 i 的收益要受到排在它前面的商品的影响;而在最终排序肯定以前,没法知道商品 i 以前的排序是什么,并且咱们的目标就是去肯定这样一个最优的排序。同时,正是由于只考虑了排在 i 以前的商品顺序,使得咱们能够从前日后一步一步地排序,每一步选择排在当前位置的商品。

为了便于理解,能够先看一种简单的状况:分位排序。

所谓分位排序是指在排序时先将收益最大的一个商品排到第一位,而后条件在第一个商品之上,从新计算剩余商品的收益,并选出收益最大的商品排到第二位,依次类推。很明显分位排序是一种贪婪的算法。beam search 算法能够理解为贪婪算法的扩展,beam search 在每一步搜索的时候会保留收益最大的 k 个序列,一直到最后一步,再返回最好的一个序列。

原始的 RNN 模型解决不好长距离依赖的问题:当咱们计算第 20 个位置的商品成交几率时,排在头 4 位的商品几乎就没有任何影响了。而排在前面的商品因为是用户最早看到的,通常会有较深的印象,对后面商品的影响不应该被忽略。为了使模型有能力考虑到长距离和对排序位置的依赖,咱们设计了一种新的 attention 机制加入到 RNN 的网络中。

经过这种引入 attention 而且加入位置 embedding 的方式,模型能够根据数据自动学习不同位置 attention 该如何调节以获得更好的预测结果。直观来看,模型的结构图以下:

3. 实验效果
3.1 成交几率估计

其中 DNN 是只使用 fi,l 做为特征的 baseline。reDNN 是使用全局特征 fi = (fi,l, fi,g) 的 DNN 全局排序模型,miRNN 是 RNN 全局排序模型,miRNN+attention 是增长了咱们的 attention 机制的 RNN 模型。

3.2 淘宝无线主搜线上 A/B 测试

使用 miRNN 和 miRNN + attention 模型作排序,算法的时间分别是Θ(kN 2) 和Θ(kN 3),其中 N 是被排序的商品数,k 是 beam search 算法的 beam size 参数。对于淘宝搜索这样的大规模的搜索平台来讲,这样的复杂度显然是过高了。

不过咱们能够在 baseline 排序的基础上,只对排在最前面的 N 个商品进行排序,只要 N 取得不大,计算量就是能够承担的。同时,由于排在前面的商品对效果的影响最大,对这些商品从新排序的收益也比较大。

咱们对比了不同 N 和 k 下,本文提出的各类全局排序方法的 GMV 增加(反应模型效果),搜索引擎 latency(反应计算负担)的增加曲线:

最终效果总结:GMV、搜索引擎 Latency 想对于 baseline DNN 的增加:

结论

咱们首次提出了考虑商品间相互影响的电商全局排序方法,并在淘宝主搜索上取得了明显的效果。目前最大的问题就是 RNN 的方法效果虽然更好一些,可是带来的计算负担太大,如何减小计算量将是重要的研究方向。

相关文章
相关标签/搜索