小叽导读:当前电商场景之下,单纯的商品推荐已不足以满足用户需求,基于内容的推荐应运而生。那么其中的关键问题就是我们要为推荐的商品产出优质的推荐理由,从而可以:帮助消费者做出选择;开拓用户对商品的兴趣;引导多种产品以提高多样性。而在春节云主题推荐理由生成的场景中,我们的目标是让文本生成系统能够生成基于知识的个性化推荐理由。
作者 | 霜清、捉云、行嗔、鸿侠
1. 引言
文本生成系统能够生成基于知识的个性化推荐理由主要有以下几个难点:1. 生成的文案需要符合语法,表达流畅通顺;2. 推荐理由的内容需要与商品属性相关,同时要符合商品相关的知识,比如食品的推荐理由不能使用其他领域的表述,比如“便于组装”这类常用于描述玩具的表达;3. 推荐场景下的文本生成要尽可能做到个性化,对于同一个商品类目(后续我们会根据基于 graph embedding 的 interest category 替代当前 physical category),不同的用户群体能够获得不同的推荐理由。
过去文本生成大多基于传统的基于 RNN 的 Seq2Seq+Attention (Sutskever et al., 2014; Bahdanau et al, 2014; Luong et al., 2015) 的框架实现。这个模型最早用于机器翻译,后来逐步扩展到各大文本生成类的任务。而当前机器翻译领域已经发生了一些改变,学术界和工业界普遍青睐于速度更快、效果更好的 transformer 架构。我们率先把 transformer 架构 (Vaswani et al., 2017)引入到推荐理由生成的场景中,在 baseline 的层面上获得比传统的 RNN-based Seq2Seq 更好的表现。而针对以上提出的两大问题,知识引入和个性化推荐,我们在 transformer 架构的基础上提出我们的新模型,KOBE (KnOwledge-Based pErsonalized text generation system)。下图简述了当前任务以及模型运行流程。
在下文中,本文将在第二章对当前问题进行定义,在第三章对基础模型架构以及我们的 KOBE 模型的具体实现进行阐述,在第四章汇报实验结果并在第五章介绍在春节云主题场景的应用。
2. 问题定义
而对于我们当前的推荐场景,我们的问题定义相较过去有所改变。为了实现推荐理由的知识引入和个性化,我们引入了特征属性和知识。特征属性指的是商品的某些方面,如外观、质量等。针对每一个商品,当前的输入除了 x 以外,还有与它对应的特征属性。l 表示特征类别的总量,而针对每一个特征类别,存在多个具体特征。在下文模型实现部分,我们将详细介绍特征属性的来源。这些特征属性可以是经常关注相似商品的用户标签,于是系统可以利用这部分信息去追求更加个性化的文案。
此外,我们使用了外部知识库,使得我们输入的商品和其相关的知识联系起来。我们使用了具有文本描述的外部知识库 CN-DBpedia。该知识库中对每个命名实体都有相关的纯文本描述。针对每个商品,我们从知识库 w 挖掘其对应的知识:
在此基础上,我们的问题转变为,输入商品名称 x ,以及它对应的特征属性 a 和相关知识 w ,系统需要生成一段针对该商品的并具有相关知识的个性化推荐理由 y 。
3. KOBE 模型设计
KOBE 的模型架构区别于传统的 RNN-based Seq2Seq,采用现在在机器翻译任务取得 SOTA 表现的 transformer 框架 (Vaswani et al, 2017)。考虑到传统的 RNN-based Seq2Seq 对长距离依赖的捕捉效果不如自注意力,我们把我们的方法建立在基于自注意力机制的 transformer 模型。在 baseline 的对比中,transformer 的表现要优于 RNN-based Seq2Seq。在接下来的部分中,我们首先介绍 transformer 模型,然后介绍我们如何基于这个模型引入个性化相关特征和外部知识,完成 KOBE 模型的构建。下图展示了 KOBE 模型的基本框架。
3.1. Transformer
Transformer 本身也是一个基于编码器-解码器框架的模型,也可认为是 Seq2Seq 的一种。与基于 RNN 的 Seq2Seq 不同的是,编码器和解码器的实现均基于自注意力机制,而没有使用 RNN 的架构。在这里我们简单介绍编码器和解码器的实现。
编码器由多层的自注意力层叠而成(一般为6层,如果要实现大模型的话可以增加层数)。编码器接受文本序列的输入x,通过词嵌入层将其转变为词嵌入序列。而由于模型不同于 RNN,无法直接捕捉到输入的序列关系,我们给 e 加上位置编码以后再送入编码器的自注意力层。
每个自注意力层主要包括自注意力机制和全连接层,内部使用了残差连接和 layer normalization。此处以第一层为例。注意力机制可以用如下方法表示:
其中,mathbf{Q},mathbf{K} 和 mathbf{V} 分别代表注意力机制的输入。在自注意力机制中,这三项均为输入 e 的线性变换,其中。自注意力则可以表示为:
其中 在此处可以表示隐藏层的大小,而在多头注意力机制中则为头的大小。多头注意力机制将输入切分成多头,分别进行注意力计算,然后将各自输出拼接起来。
在自注意力模块后,全连接层(FFN)将之前的输出进行变换,具体实现如下:
而解码器的实现近似于编码器,同样采用了多层的自注意力层。不同的是解码器增加了 context attention,将编码器和解码器联系起来。具体实现上近似于自注意力的实现,只需把 K 和 V 替换成编码器输出 h 的线性变换。
在接下来的部分,我们将重点介绍我们的 KOBE 模型,其中包括 Attribute Fusion 模块和 Knowledge Incorporation 模块,解释如何将个性化推荐相关特征和外部知识引入到原有框架中。
3.2. Attribute Fusion
包括 transformer 和 RNN-based Seq2Seq 在内,baseline 模型都有生成文本多样性不足的问题。这些模型通常会采用比较宽泛和模糊的表述,而且表达方式比较单一,内容也比较雷同和单调。为了减轻这个问题,我们引入个性化推荐相关特征属性,主要集中在两个方面。第一个是 aspect,指的是产品的特定方面,比如外观、质量等。第二个是 user category,即该产品匹配的用户群体,比如机械键盘对应的用户群体是科技爱好者等。通过这个方法,模型能够根据不同的用户群体生成他们所偏好的文本, 包括风格和内容层面。以下我们将介绍这些特征的来源以及它们如何通过 Attribute Fusion这一模块融入到模型中。
对于 aspect,我们希望模型能够根据给定的方面生成相对应的推荐理由。比如给定“质量”,模型应当生成描述产品质量的推荐理由。但由于训练集规模较大,我们难以获得大量的标注好 aspect 的推荐理由。我们利用启发式的方法,首先用标注数据集训练一个基于 CNN 的文本分类器,能够将输入的推荐理由分类到对应的 aspect,然后我们利用这个分类器对大量未标注数据进行标注。于是训练集中所有的样本都得到属于自己的 aspect。而对于 user category,我们使用了数据超市中用户特征偏好兴趣度的数据,我们把这些标签认为是用户类别。我们利用用户的隐性反馈来给数据进行标注,如点击行为和停留时间等,从而每个样本都能得到相对应的用户类别。数据准备完毕后,我们利用 Attribute Fusion 模块将它们实现有机融合。
具体实现上,我们分别利用不同的词嵌入层分别获得 aspect 和 user category 的词嵌入表示和,然后将两者平均后获得 attribute 的表示。随后我们将这个attribute 的表示和商品标题的词嵌入序列 e 的每个时间点的词嵌入表${e_{i}$相加,等到一个新的词嵌入序列,然后再将它送入到 transformer 模型中。
3.3. Knowledge Incorporation
另一个文本生成的常见问题就是缺乏信息量。baseline 模型生成的推荐理由相对比较单调,信息量不足,尤其缺乏传达相关知识的能力。对于读者来说,读者希望看到的推荐理由应当包含有效信息,也就是有用的知识。考虑到这个问题,我们设计了 knowledge incorporation 这一模块,目的是将产品相关的知识融入到文本生成模型中。从而,模型生成的推荐理由能变得更加“言之有物”。
为了对知识进行编码,我们新建了一个知识编码器。该编码器同样是一个基于自注意力机制的编码器,具体模型构造和上文所述编码器一致。类似于上文编码器的行为,知识编码器将输入的知识编码成新的表示 u。至此,我们得到了商品标题表示 h 和相关知识表示 u。
为了实现商品标题表示和相关知识表示的有效结合,我们实现双向注意力机制 (Seo et al., 2016),分为“标题到知识的注意力”和“知识到标题的注意力”。两者的功能各有不同。标题到知识的注意力能够获取和标题相关的知识,而知识到标题的注意力则获取和知识相关的标题内容。对于这部分的注意力,首先计算两者的相似度然后根据权重对要获取的内容进行加权求和。相似度计算如下:
4. 春节云主题实战
在春节期间,我们在春节云主题的项目上线了 KOBE 模型,为每个类目提供相应的个性化推荐理由。可以看到我们生成的推荐理由表达流畅,能够根据类目和产品特点选择符合产品相关知识的描述,并且能够携带一些具有趣味性的表达。以下是上线效果示意图和 demo 视频:
5. 结果&展望
对于推荐理由生成,可能与经典的 recommender system 推荐具体商品的解释有所不同,但是我们上述考虑的推荐理由生成技术已经逐渐成熟。消费内容是当前趋势,电商平台的内容化一定大有可为,我们希望在内容生成的探索上为平台带来些许帮助。
Reference:
[1] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. 2014. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473 (2014). [2] Thang Luong, Hieu Pham, and Christopher D. Manning. 2015. Effective Approaches to Attention-based Neural Machine Translation. In EMNLP’15. 1412–1421. [3] Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi. 2016. Bidirectional attention flow for machine comprehension. arXiv preprint arXiv:1611.01603 (2016). [4] Ilya Sutskever, Oriol Vinyals, and Quoc V. Le. 2014. Sequence to Sequence Learning with Neural Networks. In NIPS’14. 3104–3112. [5] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is All you Need. In NIPS’17. 6000–6010. [6] Bo Xu, Yong Xu, Jiaqing Liang, Chenhao Xie, Bin Liang, Wanyun Cui, and Yanghua Xiao. 2017. CN-DBpedia: A never-ending Chinese knowledge extraction system. In IEA/AIE’19. Springer, 428–438.