Ali BGN介绍

Reading time ~2 minutes

阿里在《Personalized Bundle List Recommendation》中提出了一种BGN的推荐思路:

摘要

产品捆绑销售(Product bundling)是在线电商和线下零售商常用的营销策略之一,它提供了一种将多个商品组合销售给顾客的方式。高质量的捆绑销售组合包含了顾客感兴趣的常购商品,而在不同的捆绑销售组合中提供多样性可以提升用户体验,最终增加交易量。本文将个性化捆绑销售列表推荐问题形式化为结构化预测问题,并提出了一种基于捆绑生成网络(BGN: bundle generation network)的解决方案,该方案通过行列式点过程(DPPs)将问题分解为质量和多样性两个部分。BGN采用了典型的编码器-解码器(encoder-decoder)框架,提出了一种特征感知(feature-aware)的softmax方法来缓解传统softmax方法的不足,并集成了掩码束搜索(masked beam search)和DPP选择,以生成具有适当捆绑大小的高质量和多样化的捆绑销售列表。我们在三个公共数据集和一个工业数据集上进行了广泛的实验,其中包括两个基于共同购买记录生成的数据集和两个从真实的在线捆绑销售服务中提取的数据集。BGN在所有数据集上的质量、多样性和响应时间方面都显著优于现有的最先进方法。特别是,在维持四个数据集上的最高多样性的同时,BGN平均提高了最佳竞争对手的精度16%,并在捆绑销售列表推荐问题中使响应时间提高了3.85倍。

1.介绍

一个捆绑包(bundle)是一组作为整体出售的产品或服务,而捆绑包列表(bundle list)推荐则是推荐一个个性化的捆绑包列表。在传统商业领域,如通信服务、线下零售商和超市等,都将捆绑销售视为关键的市场营销策略,并且他们通常通过人工洞察或非个性化的挖掘方法来制作捆绑包[2]。在现代电子商务网站和在线服务业务中,如亚马逊、淘宝、Steam和Netflix等,也部署了新的应用[22,32],这些应用推荐和销售捆绑包列表而非单个商品。

客户、卖家以及推荐平台都可以从个性化的捆绑包推荐服务中受益。对于客户来说,高质量的捆绑包可以拓宽用户兴趣,并在购买后的最短路径上直接显示互补产品。经典营销研究表明,精心设计的捆绑包可以带来相互促进的效果

  • 对于卖家来说,捆绑销售可以增加每位客户的交易量。沃尔玛官网的平均订单规模为2.3[36]。通过附加一些高度相关的产品,卖家可以推出更多产品并增加毛利润(GMV)
  • 对于客户和卖家来说,购买捆绑包的成本可能低于单独购买每个产品的成本。例如,在电子商务网站中,如果一个订单中的商品金额超过一定数额,通常会免收运费。

对于推荐系统来说,捆绑销售是一种更有效的组织和展示产品的方式。推荐列表由高度相关的捆绑包组成,与商品列表形成对比,多个多样化的捆绑包避免了用户选择单一。推荐系统将捆绑包作为一个整体展示,从而在单位面积内展示更多产品。对于移动应用程序来说,减少向上滑动操作以改善用户体验至关重要。

图片名称

图1

在图1中,我们展示了一个捆绑包列表的例子。捆绑包中的商品应具有高度相关性。此外,捆绑包间的多样性成为了一个关键指标,这是一个可解释的、面向业务的目标,独立于点击率(CTR)和精确度,试图避免单调的选择并量化捆绑推荐系统中的用户体验。相同的高质量商品往往出现在不同的捆绑包中[22],这构成了令人困惑且单调的捆绑包列表,因此在精确度/似然度和多样性之间存在权衡。其他有意义的问题,例如如何设置价格折扣以最大化利润,如何组合捆绑包的图片等,超出了本文的范围,可以作为未来的工作。本文关注于如何生成高质量且多样化的捆绑包

针对个性化捆绑推荐问题,存在几个挑战。首先,推荐系统应该在没有人工干预的情况下自动、灵活地生成高质量捆绑包。频繁项集挖掘算法提供了高质量的捆绑,但不具有个性化。为了模拟捆绑包的分布,我们使用共同购买数据或预定义的捆绑包来监督具有用户上下文的捆绑包质量。然而,序列生成方法在捆绑推荐场景中对于丰富特征的表示不足,因为传统softmax的权重矩阵仅考虑商品ID。此外,在实践中,我们可能需要更大规模的捆绑包以达到卖家的促销目的,但seq2seq通常难以生成短序列[14]。

其次,捆绑包间的多样性成为了捆绑推荐的一个关键指标。具有相同高质量商品的捆绑包可能同时获得高分排名,因此重复的商品往往出现在生成的捆绑包列表中[22]。除了重复之外,由于特征的相似性导致的相似商品可能会产生令人困惑且单调的捆绑包列表,降低用户兴趣。捆绑推荐系统应考虑跨捆绑包间的多样性,同时考虑商品的重叠和相似性。在这里,多样性是一个显式指标,而不是从数据中学到的某些隐藏相似关系。由辅助信息和先验知识预先定义的显式相似性为测量和调整提供了确切的信号。我们使用行列式点过程(DPPs)作为目标函数,该函数在推理过程中考虑全局负相关性,以分解质量和多样性。

最后,与传统item列表推荐相比,捆绑推荐的搜索空间是item的双重指数级数量,因为理论上一个bundle可以包含任意长度的组合,并且一个list包含多个捆绑[9]。应谨慎考虑捆绑稀疏性(Bundle sparsity),因为在共同购买形式下的训练数据中,相对于整个搜索空间而言,只包含了少量的bundle的ground truth。搜索空间中的大多数bundles都是低质量的,因此我们需要一种方法为每个用户高效地生成高质量候选bundles,而不是在所有可能的bundles中应用ranking方法

在本文中,我们旨在解决个性化bundle list推荐问题,并提出了一种捆绑生成网络(BGN)。

我们将本论文的贡献总结如下:

  • • 这是首次尝试通过考虑质量和多样性的序列生成方法来解决捆绑列表推荐问题。我们基于行列式点过程(DPP)分解生成模型,并将神经网络与DPP选择相结合,以产生高质量且多样化的捆绑列表。
  • • 我们提出了一种捆绑推荐场景中的特征感知softmax,用于弥补传统seq2seq对丰富特征表示的不足,从而显著提高了质量建模。特征感知softmax的损失是在每个步骤上优化BPR损失的泛化。
  • • 我们在真实世界数据集和公共数据集上进行了大量实验。我们的模型在四个数据集上平均提高了最佳基线的精度16%,同时保持了最高的多样性,并在捆绑列表推荐问题中显示出最快的响应时间。此外,BGN可以在可容忍的精度降低范围内控制捆绑大小。

3.个性化bundle list推荐

符号表示。设:

  • I为可供选择的所有商品集合,
  • $\mid N \mid$为所有商品的数量。
  • b:一个bundle ,是由I中的商品组成的任意组合
  • T:表示bundle中商品的数量

在bundle中,商品的顺序是无序的。当将bundle视为一个序列时,通常按照商品价格从高到低的顺序对捆绑销售中的商品进行排序,因为价格较低的商品更容易被替换为bundle中的其他商品,同时在序列生成模型中更容易受到曝光偏差(exposure bias)的影响。假设:B为所有可能的bundle集合,$\mid B \mid$等于 :

\[\sum_{t=1}^T \binom{N}{t}\]

其中:

  • T为最大捆绑销售大小,
  • $\binom{N}{t} = \frac{N!}{t! (N−t)!}$ 表示从N个商品中选择t个商品的组合数。
\[I = {1, 2, \cdots, N},|I| = N \\ B = {b = \lbrace i_1,i_2, \cdots, i_T \rbrace | i \in I},|b|=T,|B|=\sum\limits_{t=1}^T \binom{N}{t} \\ Y = {y = \lbrace b_1,b_2, \cdots, b_K \rbrace | b \in B},|y|=K,|Y|=|B|^K\]

在这里:

  • K:是推荐bundle list y的大小。然而,我们认为在bundle list中的顺序并不重要。
  • Y:为所有可能的bundle list集合。
  • $C_u$:用户上下文,通常表示他/她在历史记录中点击/购买的商品序列。

问题公式化。假设:

  • $\widehat{P}(\cdot, \cdot): Y \times {C_u} \rightarrow R^+$为一个通用的兼容性函数,用于衡量bundle list y和用户上下文$C_u$之间的得分(兼容性),
  • $\widehat{P}(y \mid C_u)$ :表示为给定$C_u$时y的非标准化条件概率

因此,个性化bundle list推荐问题可以形式化为一个结构化预测问题[3],试图找到满足以下条件的bundle list $\widehat{y}$:

\[\widehat{y} = \underset{y \in Y}{argmax} \widehat{P}(y = {b_1, b_2, \cdots,b_K }|C_u)\]

… (1)

  • $P(y \mid C_u)$:为$\widehat{P}$关于y的归一化条件概率。$P(y \mid C_u)$实际上是对N的双指数级数量的分布进行建模,因此在给定$C_u$的情况下,有 $\binom{(\sum\limits_{t=1}^T \binom{N}{t}}{K}$ 种可能的y结构,这带来了极大的计算挑战。

在本文中,我们考虑与质量和多样性相关的$\widehat{p}$兼容性函数。 bundle list推荐是单个bundle list推荐问题和单个item list推荐问题的一般化。当给定用户上下文时,每个bundle是独立的,我们有:

\[P(y = {b_1,b_2, \cdots,b_K} | C_u) = \prod_k P(b_k |C_u)\]

在这种情况下,bundle list之间没有相关性,问题变成了单个bundle推荐问题[36],有时被认为是个性化bundle的ranking问题[22]。此外,当bundle大小T等于1时,它是单个item list推荐问题。

4. Bundle Generation Network

在这里,我们提出了一个基于捆绑销售生成网络(BGN)的解决方案,以解决考虑质量和多样性的个性化bundle list推荐问题。 在下面的子节中,我们介绍如何通过SDPP将bundle list概率分解为质量/多样性部分,并分别分解它们。然后,我们介绍如何测量多样性,并设计具有特征感知softmax的改进型神经网络来学习质量部分。此外,我们提出了一种masked-beam search方法来控制bundle list大小并避免重复商品。最后,我们演示如何将这些部分集成到BGN中,以处理bundle推荐的生成过程。

4.1 基于SDPP的捆绑销售生成模型

我们在概率空间(B,Y,P)上定义了一个结构化行列式点过程(SDPP: structured determinantal point proc)[15]。当Y是根据概率质量函数(PMF)P绘制的bundle推荐列表的随机变量时,分布如下:

\[P(Y = y) \triangleq det(L_y)/Z\]

…(2)

这里:

  • L是SDPP的对称正半定核,大小为$|B| * |B|$
  • $L_y$:表示L限制为y元素索引的条目,$Z = \sum\limits_{y′ \in Y} det(L_{y′})$是归一化常数。

核L有一个直观的几何解释,即$det(L_y)$是其相关特征向量展开体积(volumn)的平方[16]。请注意,y的每个元素都指向具有特定结构的bundle,因此我们认为DPP是有结构的。定义DPP概率模型的一个好处是我们可以以非常自然的方式分解质量和多样性。对于任何正半定矩阵L的元素$L_{ab}$,我们总是可以找到一个质量/多样性分解

\[L_{ab} = q(a)ϕ(a)^T ϕ(b)q(b) = q(a) S(a,b) q(b)\]

…(3)

其中:

  • $a,b \in B$
  • $L_{ab}$:表示由bundle a和b索引的元素
  • $q(b) \in R$:表示bundle的质量项
  • $ϕ(b) \in R^D$:表示具有$||ϕ(b)||_2 = 1$的归一化多样性特征

这里我们定义一个相似度函数/度量: $S(a,b) : B × B → R$,满足:$S(a,b) = ϕ(a)^T ϕ(b)$,并保持相应的相似度矩阵S半正定。我们将方程(3)重新形式化为矩阵方式

\[L = QSQ\]

… (4)

其中:

  • Q:表示对角矩阵diag $\lbrace q(b)_{b \in B} \rbrace$

该分解平衡了质量和多样性。然后,个性化bundle list推荐的优化准则是找到一个最大化给定用户上下文$C_u$时$P(y \mid C_u;\theta)$的 bundle list y:

\[\underset{y}{argmax} \ det(S_y) \cdot \prod\limits_{b \in y} q^2 (b|C_u; \theta)\]

…(5)

解决个性化bundle list推荐的一个主要挑战是:bundle list的优化准则具有N的双指数级数量的复杂度。根据等式(5)中的分解,我们将复杂度降低到了测量空间B上的质量项q和测量空间B × B上的多样性项S。然而,这两个项仍然具有指数级空间,这是无法处理的。

SDPP认为测量空间B中的任何元素都可以分解为一组因子F [15],其中因子α ∈ F是结构部分的一个小子集。然后,我们分别继续分解质量项和多样性项:

\[q(b) = \prod\limits_{α \in F} q_α(b_α ) \\ ϕ(b) = \sum\limits_{α \in F} ϕ_α(b_α)\]

…(6)

这种分解定义了我们如何解释模型结构,并使模型易于处理。然后,我们将分别为多样性和质量指定分解,并将它们集成在一起,以生成高质量和多样化的bundle list。

4.2 多样性的测量和分解

我们在工作中测量的多样性是一种可解释的指标/目标,试图量化bundle推荐系统中的用户体验,与来自数据的似然性无关。从数据中学习的这种隐式关系可能不是我们所追求的“多样性”,并且数据中物品之间的相关性已经被考虑到了质量部分中。然而,由侧面信息和先验知识定义的显式相似性为测量和调整提供了准确的信号。此外,推荐系统通常缺乏多样性标记的基准列表,这使得监督完整的似然性变得困难。 利用方程(3)和方程(6),我们将bundle的相似度函数分解为物品相似度函数:

\[S(a,b) = ϕ(a)^T ϕ(b) \\ = ( \sum\limits_{α \in F} \phi_α (a_α)^T )(\sum\limits_{β \in F} ϕ_β (b_β)) \\ = \sum\limits_{α, β} ϕ_α(a_α)^T ϕ_β(b_β) \\ = \sum\limits_{i \in a,j \in b} s_{a,b} (i, j)\]

…(7)

在这里, $s_{a,b} (i, j)$测量的是物品而不是bundle的相似性,这与用户上下文无关。相似度函数通常应与根据领域知识预定义的多样性度量一致。例如,在我们的实验中,$s_{a,b}(i, j)$由bundle的Jaccard相似度给出:

\[s_{a,b}(i, j) = \frac{1}{|a \cup b|} δ(i = j)\]

…(8)

其中:

  • δ(·)表示指示函数。请注意,bundle不包含内部重复的物品。该函数可以维护L的半正定性[4],并防止在不同捆绑销售中显示相同的物品。该函数与等式(19)保持一致的局部测量,并且SDPP优化全局负相关性。此外,多样性的度量也可以通过计算属性的相似性来定义,从而提供属性的细粒度多样性。

4.3 用特征感知Softmax建模质量部分

在这里,我们重点研究质量部分$q(b \mid C_u ; θ)$的建模,采用典型的编码器-解码器框架,其中:编码器从用户上下文中提取信息,解码器使用提出的特征感知softmax生成高质量的候选捆绑销售列表。

  • 对于编码器,用户上下文可以表示为物品的购买历史。我们使用TextCNN [13]提取信息,最近已经显示出在文本分类和信息提取方面的有效性[33, 34]。我们在图2中展示了基本的网络架构,并省略了细节的讨论,因为它不是我们的主要贡献之一。TextCNN是可并行化的,比双向LSTM更快,并且可以通过基于自注意力架构的Transformer [27]在未来的工作中轻松改进。
  • 对于解码器,bundle的质量$q(b \mid C_u;θ)$是一个未归一化的联合概率,其参数化为通用的$\theta$,因此我们按照贝叶斯公式进行分解。请注意,贝叶斯公式始终成立并对质量的完整分布进行建模,这里的假设是以序列方式共享参数。
\[q(b|C_u; θ) \propto p(b = {i_1,i_2, \cdots, i_T} | C_u; θ) \\ = \prod\limits_{t=1}^T p(i_t | i_1, \cdots, i_{t−1}, C_u; θ)\]

… (9)

在等式(9)中,我们通过乘以每个元素的所有条件概率来分解任何bundle的联合概率。通过共享这些条件概率的相同权重,我们使用具有(堆叠的)LSTM单元和众所周知的Luong Attention [19]的序列生成模型来计算概率。 设:

  • $x_t$:为解码器的输入
  • t:为bundle中的物品位置

我们使用编码器的输出初始化$h_0$。然而,我们省略了LSTM和attention的常见细节。

\[h0 = text-CNN(C_u) \\ x_t = [item\_emb(i_t), cate\_emb(i_t), \cdots] \\ h_t = stacked-LSTM-attention(h_{t−1}, x_{t−1}, C_u) \\ p(i_t | i_1, \cdots, i_{t−1}, C_u; θ) = feature-aware-softmax(h_t)_{i_t}\]

…(10)

传统的softmax层包含一个权重矩阵$W^{(h+1)*N} = [w_1,w_2, \cdots,w_N]$,其中:$w_i$可以被认为是i的item_id的嵌入。请注意,这里我们省略了偏置项,只是为了方便书写。

\[softmax(h_t ,W)_j = \frac{exp(h_t^T w_j)}{\sum\limits_{\widehat{j}=1}^N exp(h_t^T w_{\widehat{j}}) }\]

…(11)

然而,在推荐系统中的物品候选项通常具有更多的归属特征,而不仅仅是item_id。传统的softmax由于缺乏特征而可能导致权重矩阵表示不充分。

受到指针网络 [28] 的启发,我们提出了特征感知(FA)softmax: 它使用特征感知的权重矩阵修改softmax操作符,而不是使用固定的权重矩阵,使softmax对动态信息敏感。特征感知softmax使用由$F(x_i)$构建的动态权重矩阵,其中F是所有特征的非线性变换函数,因此softmax除了item_id之外还可以对特征敏感。

\[E^{(h+1)* N} = [e_1, e_2, \cdots, e_N]^1, e_i=F(x_i) \\ feature-aware-softmax(h_t)_j = softmax(h_t, E)_j\]

…(12)

我们使用共同购买的数据$D = {b,C_u }_{1:\mid D \mid}$来指导学习过程。loss可以定义为每个步骤softmax层的平均交叉熵,这保证了与等式(9)相同的形式,模型的目标是最大化单个bundle的似然性。

\[L_{MLE}= −\frac{1}{T} \sum\limits_{t=1}^T logp(i_t | i_1, \cdots, i_{t−1}, C_u; θ)\]

…(13)

然而,由于动态构建权重矩阵E,特征感知softmax在训练过程中可能会耗时较长。因此,我们采用带有采样softmax损失的特征感知softmax,称为采样特征感知softmax损失,以加速训练过程。

当采样数量为1时,采样的特征感知softmax的损失由以下公式给出:

\[L_{sample-1}= −\frac{1}{T} \sum_{t=1}^T log \frac{exp(h_t^T e_{i_t})} {exp(h_t^T e_{i_t}) + exp(h_t^T e_{s_t})} + λ_θ ||θ||^2 \\ = −\frac{1}{T} \sum\limits_{t=1}^T log σ(h_t^T(e_{i_t} − e_{s_t})) + λ_θ||θ||^2 \\ = −\frac{1}{T} \sum\limits_{t=1}^T logp(θ |≥t,C_u)=\frac{1}{T} \sum\limits_{t=1}^T L_{BPR}(t)\]

…(14)

其中:

  • σ(·)是逻辑sigmoid函数
  • ≥t,Cu 是每个步骤中的成对偏好,[24]

因此,具有一个负样本的特征感知softmax相当于在每个时间步长优化方程(14)中的平均BPR。

4.4 bundle生成过程概述

bundle list推荐的目标是通过生成高质量和多样化的bundle list y 来最大化等式(5)中的 $p(y \mid C_u)$。在本小节中,我们将整合并总结捆绑生成的整体过程。

图片名称

  • 图2(a)显示了BGN的整体推理过程。我们使用文本-CNN的输出来初始化h0,然后通过在每个步骤扩展生成的bundle前缀来生成bundle列表
  • 图2(b)显示了bundle list $y_t$在每个生成步骤中如何扩展。每个小形状图标表示一个item,矩形块的每一行是一个生成的bundle前缀,t表示生成的bundle前缀的对齐大小。在每个生成步骤中,我们使用beam search生成K * N个候选bundle。beam search[30]是一种启发式搜索算法,通过在有限集中扩展最有希望的item来探索搜索空间,广泛应用于序列生成方法中[26]。在这里,我们使用beam search将低质量的bundle修剪到宽度为M的$y_{cand}$,这对于效率至关重要。DPPs的子模假设[16]在实际应用中广泛使用,包括推荐系统[6,10],可以在多项式时间内找到解决方案。根据等式(5),我们从$y_{cand}$中选择一个bundle b,一次最大化$P(y \cup \lbrace b \rbrace)$,如下所示:
\[\underset{b \in y_{cand}}{argmax} log det S_{y \cup \lbrace b \rbrace} + \sum\limits_{\beta \in y \cup \lbrace b \rbrace} log q^2(\beta|C_u)\\ <=> \underset{b \in y_{cand}}{argmax} logp(b|C_u) + \lambda log det S_{y \cup \lbrace b \rbrace}\]

…(15)

这里,λ是一个超参数,用于控制生成bundle的质量和多样性之间的权衡。当我们增加λ时,我们在生成的bundle之间更加关注多样性,而不是最终列表的准确性,反之亦然。

此外,我们需要避免bundle中出现重复的item,并且在实践中希望生成更大规模的bundle。通常,我们会添加一个特定的项目结束标记来标记bundle生成的结束,这样我们就可以产生不同长度的bundle。然而,BGN使用共同购买数据或预定义的bundle来监督质量部分。ground truth bundle大小的概率分布可能与目标应用的预期分布不一致。在实践中,由于卖家的促销活动,可能需要更大的bundle尺寸。此外,传统的束搜索通常存在显著的长度偏差,并将bundle大小的分布压缩到一个更偏向于较短大小的分布,正如我们在实验中的图4(b)中所示。如果我们简单地选择具有较大bundle尺寸的数据集进行训练,可能会由于训练集的减少而导致更多的稀疏性问题。

为了解决这个问题,我们可以采用一些策略,例如对较大的bundle尺寸进行数据增强,或者在训练过程中引入对bundle尺寸的惩罚项,以鼓励模型生成更大规模的bundle。这些策略可以帮助缓解稀疏性问题,并提高模型在生成大规模bundle时的性能。

Netflix关于cosine相似度的讨论

Netflix团队发了篇paper《Is Cosine-Similarity of Embeddings Really About Similarity?》,对cosine相似度做了相应的研究。# 摘要余弦相似度(cosine similarity)是指两个向量间夹角的余弦...… Continue reading

Meta AdaTT介绍

Published on January 02, 2024

SATrans介绍

Published on December 02, 2023