丁香园大数据 稿

今天我们来聊一聊大数据时代的电商搜索问题,随着电商的普及,越来越多人开始在网上购物,电商搜索的目的在于如何从海量的商品当中找到用户需要的商品。目前,绝大多数的商品召回和排序都是基于embedding,如何构建商品向量、如何解决搜索词与商品名称之间的语义鸿沟问题、如何解决店铺特征稀疏等问题以及如何给用户推荐合适的商品成为了商品召回和排序中的主要问题。本期文章将主要围绕上述问题进行讨论。

CoRT: Complementary Rankings from Transformers

在进入bert时代之后,在排序上bert也得到了广泛的运用,而bm25等传统方法在许多应用场景上也取得了较好的结果。

文章首先通过bert方法对利用query与passage之间的相似度对候选的item进行排序(如上图所示),同时利用bm25等传统的排序方式对候选的item进行排序,然后综合二者得到最后的排序结果。在多个评价标准上结果表明,传统的排序方法在一定的程度上能够提高基于bert排序的准确率。文章在解决文章的搜索排序上出发点较简单,在丁香园商城排序的初期工作上,我们也在利用深度学习和传统算法结合上进行过相应的探索。

AliCoCo: Alibaba E-commerce Cognitive Concept Net

说到商城搜索就不得不提一下阿里的工作了,在商品搜索过程中除了通过精准搜索词来获取自己想要的商品,也存在通过搜索场景词来获取商品,如:“outdoor barbecue”,而传统的搜索策略或者是推荐系统难以解决这种“不精准”的搜索场景。Alicoco商品图谱的构建正是为了解决在淘宝中此类问题的商品搜索问题,如下图所示:

从图上可以看出,Alicoco主要分为四层即item,ecommerce concepts,primitive conceptes,taxonomy。其中item为具体的商品,taxonomy可以看作是商品的类目(分为三级类目,由专家构建),primitive conceptes中primitive concepte中可能存在上下位关系,在构建primitive conceptes层不仅需要挖掘出primitive concepte还需要构建primitive conceptes之间的关系。在primitive concepte的挖掘使用了两种方式分别是规则+人工和lstm+crf方式,在关系的构建上也有两种方式分别是规则和有监督的方式(基于词量表示),并通过一些主动学习的方式,对模型进行反哺。

在ecommerce concepts层的构建过程分为三个部分,ecommerce concept词的挖掘,关系的构建,和primitive concepte层关系的构建。在词挖掘上主要通过一些固定模式获取ecommerce concept词,ecommerce concept关系和primitive concepte层关系的构建上主要要满足有消费需求、通顺、合理和明确方向等需求,在关系的构建上考虑到了电商短语中缺乏上下文信息,因此通过分词链接到wiki上增加一些辅助语意。最后item需要和primitive conceptes与ecommerce concepts进行相互关联,通过采用一种有监督的方式进行关联,为了减少“语意漂移”的问题,在concept部分也加入外部知识。

AliCoCo2: Commonsense Knowledge Extraction, Representation and Application in E-commerce

与AliCoCo相比,AliCoCo2则补充了四个层中的primitive conceptes,在primitive conceptes中丰富了实体词以及实体关系。在构建图关系之后文章通过GAT得到了实体的图表示,然后将实体图表示与bert的表示拼接之后得到具有上下文信息的实体表示。文章把primitive conceptes层的实体关系分成了三种,如图右所示:

对于最多的binary relation而言,自然而言利用了TransE获取实体和实体关系的表示;对于tree而言,则根据Poincaré Ball代替欧式距离获取实体表示,如下公式所示:

对于N-ary relation而言,先计算实体词与concepte之间的距离,然后再通过多层感知机得到 e_c,最后判断是否在正确的一级类目下。

通过将三者进行联合训练得到丰富后primitive conceptes中各个实体和实体关系的表示。与alicoco相比allicoco2增加了大量的实体关系,在搜索和推荐的实验上的得到了积极的反馈。

Joint Learning of Deep Retrieval Model and Product Quantization based Embedding Index

在商品召回时,一般采用ANN的方式解决基于向量相似性召回的延时问题,而基于向量相似性的召回需要对向量的表示进行学习和建立向量的索引。文章提出了一种全新的联合训练模型,通过对聚类中心的参数化学习,减少子空间的划分和聚类中心,从而进一步减少误差。

如图所示,图左是一个经典的双塔模型,而indexing layer中主要过程如下。首先,为了降低子空间之间的相关性,将item embedding与标准正交矩阵相乘得到 x',然后通过 x 与聚类中心矩阵 v 之间的相似度计算找到对应行的聚类中 v_r,得到residual item embedding,将 residual item embedding 均匀划分成 D 个 subvectors,同时学习每个子空间的聚类中心矩阵,并通过残差方式后得到quantized item ebedding,最后通过与正交的矩阵 R 的x的旋转矩阵相乘还原出item embedding。

Towards Personalized and Semantic Retrieval: An End-to-End Solution for E-commerce Search via Embedding Learning

文章提出在商品搜索中不仅要考虑语意之间匹配度要考虑个性化的商品搜索,提出Deep Personalized and Semantic Retrieval(DPSR)来解决该问题。

DPSR为双塔模型,左边为user tower包含了用户的一些特征,如购买力行、性别等,用户历史特征如点击商品等和query词,得到拼接后的平均向量之后,经过k个head,其中k为query的多个意图,比如搜索词“苹果”意图可以为手机或者水果;在item tower关注了商品的title,brand和category特征。在user tower得到k个意图,需要对于每个意图进行加权,将k个意图通过多头之后得到m个向量,利用注意力机制,对multi head 与query tower的损失加权,从而得到总的损失函数。文章在商品搜索过程中不但考虑了用户的信息,同时通过multi-head解决了一词多义情况,较好的解决了query的搜索意图问题,还是有一定借鉴意义。

为了解决query与商品之间相关度较低和训练句子与推理之间的差异性的问题,传统的平均池化的操作会弱化个人特征,因此文章提出了一种多粒度深层语意检索模型(MGDSPR),MGDSPR如下图所示。

其中,user tower可以分为query部分,用户行为部分。模型提到的多粒度分别从6种粒度对query进行描述,其中具体如下图所示。

其中 c 为字符, w 为词, Trm 为transformer,得到6个粒度的特征之后,通过注意力机制的方式与用户长、短和实时特征行为进行融合得到uesr tower最终的向量表示,最后在与item部分进行内积。MGDSPR试图用多个粒度来表示query,缓解传统平均池化“一刀切”影响,再通过query、item和user的各个特征的交互解决query与items之间的差异性问题。

A Dual Heterogeneous Graph Attention Netwo