导读:知识图谱为人工智能提供了丰富的知识,是实现机器认知智能的重要基石;智能创作旨在教机器自动生成流畅合法的文本,是人类与机器沟通的桥梁。当知识图谱遇到智能创作,相信一定会发生有趣的故事。本文将分享京东科技在基于知识图谱的商品营销文案自动生成的实践经验。全文主要介绍:
--
01
商品营销文案自动生成概览
1. 京东科技商品营销文案自动生成全景
如上图从下往上看,输入部分是多模态的异构数据,所谓的多模态包括了文本数据以及商品图片数据,异构指的是包括了非结构化的纯文本数据,以及结构化的商品知识图谱,还有通用知识图谱等。
接下来对文本和图片进行处理,包括提取商品相关属性卖点,提取要素词。要素词其实是对商品知识图谱的凝练。
模型方面包括编码器、解码器。因为我们是多模态的数据,所以涉及文本编码器和图片编码器。在解码器方面,会用到受限解码和复制机制去完成解码的需求。我们还会用其它模型去增强解码效果,包括现在比较流行的预训练的语言模型,句间流畅度打分的模型以及标点的纠错模型,最终生成一份文案。
生成的文案有多种风格:功能描述,体验类的描述,短标题、长标题、短文,或者是一些长文本,甚至一个篇章段落。上图中的例子是短文的形式。
2. 京东科技商品营销文案自动生成的落地应用
上图展示了文案自动生成的一些落地应用。首先,京东APP主页里有一个发现好货频道,这里的文案有些就是 AI生成的。
第二个是导购机器人。假设在用户和导购机器人进行交互时候,客户给客服发来一个洗衣机的链接,准备咨询洗衣机相关的问题。在客户发出具体咨询之前,导购机器人会给用户推送该洗衣机的文案,其中会把经典的一些卖点加粗加红等,希望这个文案能够向用户宣传商品的卖点,或者可以直接解答用户的疑问,并最终促成用户的下单。
第三个是社交APP(京粉)。可以让用户去分享到如QQ、微信等社交平台。
第四个是直播机器人。用一个虚拟人物对一些店铺里面的商品去直播,稿件很多都是机器去生成。因为类似于夜间直播等非常规时间的工作,真人主播难以完成,因此AI模型正好去完成这样的工作,从而更好得服务深夜购物者。
第五个是搭配购。比如一组商品去写作,图中的一件上衣一条裤子和一个书包都是清爽的风格,就比较适合搭在一起去做营销。
3. 可控文本生成持续火爆以及可控文本生成原理
商品营销文案自动生成,在学术界其实可以总结成一个技术:可控的文本生成技术。根据对最近5年的ACL和EMNLP可控文本生成的相关文章的统计,我们发现在2019年之前很少,比如在2017和2018年文章就两三篇。2019年之后可控文本生成开始火爆,至今每年都会有10篇或者以上的文章发表。
如何做到可控的生成?可以具体从三个角度去分析。第一个是从输入的角度,可以通过增加或者删除输入的文本,或者修改文本的结构,比如把纯文本改成结构化,抽取出来知识图谱,达到控制的目的。第二从输出的角度,比如从解码词表的角度去控制,在生成营销方案时,违反广告法的一些词肯定是不能生成的,可以做解码的禁止模块。鼓励模块也是有必要做的。比如想要去描述一些卖点属性,可以去鼓励这些文本的解码。第三个是从模型角度看,比如可以改变解码器或者解码器的一些初始化,或者增加一些辅助任务去达到可控的目标。
4. 商品营销文案自动生成面临的挑战
在电商场景下,商品营销文案自动生成常面临如下挑战:
基础挑战:在文本生成输出方面,希望产出的文本真实、生动、可阅读性强。可以总结成三个方面,第一是重要性,它必须是描述一些重要的内容,而不是琐碎的没有意义的文本;第二是非冗余性,避免描述重复的文本,让信息量更多,更丰富;第三是可读性,这是一个基本的要求,要读起来非常流畅,像人写的。
进阶挑战:希望文本生成模型能够做到可控、可信。描述是多样性的,内容不能单调乏味。描述是始终忠实于商品属性的。另外希望生成的文本内容是丰富的,可以提供丰富的知识,比如常识。
针对这些挑战我们会提供一些解决方案,实现多维度的控制。比如基于商品要素和多模态的多样性的控制,基于商品知识图谱的忠实度控制,以及基于通用知识图谱的内容丰富度控制,和基于领域知识预训练的拟人化控制。
--
02
基于商品要素的多模态商品文案生成
1. 多样 VS 单调
如上图,展示了两个风格不同的文案,左边是多样化的生动的文案,可以看到它描述了非常多的商品细节和属性。右边是一个单调乏味的文案,放在很多商品下都是符合的。右边的文案会引发很多问题,比如优质的面料怎么体现它的优质性。我们的文本生成模型,就致力于生成左边这种多样性的描述,从而带来更好的营销效果。
2. 多模态+商品要素
为什么要基于多模态进行建模?因为不同的用户,需求是不同的。我们可以把用户分成两类:第一个类是感性用户,他们通常会关注外观信息,更希望得到直观的信息,它关联到的是商品的图片信息;另一类是理性用户,更多关注商品的功能,而这些功能关联到商品的知识图谱。
从商品要素角度进行建模,要考虑三个方面:重要性、非冗余性和流畅性。在重要性方面,用文本生成模型去生成一些重要的商品要素。在非冗余性方面,模型能够避免冗余的商品要素的一些表达。在流畅性方面,文本要流畅,并且在商品要素的维度上也是流畅的。这个商品要素,实际上是对商品知识图谱的一个再加工。
举一个例子,比如空调商品,商品要素有电机、静音、温度、清洁等,对于能效这个要素,我们还会有一些要素词,这就是对应商品属性里边的商品知识图谱里的一些属性,比如环保、节能、省电、高效、低耗等。
大家可能注意到,在电商领域,商品知识图谱展现出来的是二元组的形式,也就是一个key value pair的形式,和一般是三元组形式的通用知识图谱不同。
3. 多模态
① 多模态商品文案生成模型
我们使用不同的图片形式探索了多模态,包括使用R-CNN去提取文本的区域特征,目标特征,使用 ResNet去提取商品的全局特征。区域特征通过多模注意力机制把它集成到指定区域的销量里,用全局的特征去初始化解码器和编码器。
② 多模态商品文案生成模型优于纯文本模型
如上图,多模态的文本生成模型,相对于这种纯文本的模型输出,会更多地描述外观属性,比如商品的条纹、袖子的形状,以及其它具体的特征。
通过在家电、服饰、箱包这三个类目上做的实验,可以清楚看到多模态的文本生成模型相比于纯文本的模型有比较大优势。
4. 商品要素
下面介绍如何对商品要素进行建模,有三个主要环节。
① 描述重要的商品要素
第一个环节是去文本生成模型中描述重要的商品要素或重要的商品属性。
如上图,左边是两个商品的不同的商品知识图谱,并截取了两个属性。第一件商品,一级能效是一个很好的特性,但产品类型是涡轮,并不是非常有特色的卖点。第二件商品,三级能效,能效不是特色属性,但它的产品类型是子母双桶是特色的,非常有吸引力。
针对这些重要的商品要素或者重要的商品属性进行建模,鼓励模型去描述这些重要属性。描述到商品的这种特色商品属性的时候,我们就会给解码器一个正向的reward,从而驱使模型去挖掘并描述这些有特色的商品属性。模型经过改进,在家电、服饰、箱包三个类目上描述重要要素的比例明显提升,大概能够提升10%-20%。
② 避免冗余的商品要素信息
第二个环节是避免冗余的商品要素的表达。传统的文本摘要模型要避免冗余性表达或者重复文本表达,通常采用的是覆盖度机制。如图右上角基于词的覆盖度机制,它的物理意义就是在每一步解码的时候,对历史上的每个时刻的注意力机制进行累加,然后不仅把累加出来的历史注意力机制加入到计算注意力的公式里面,还会新增一个loss,其物理意义就是,如果历史时刻已经对某一个词有非常大的注意力,那么我们在当前时刻就不要对这个词重复的赋予它更大的注意力。
如图左边的例子,当输入文本含有“噪音”和“杂音”的时候,文案中的“噪音”已经生成,在后续的解码中会通过词的覆盖度机制,使后续的时刻,减小对解码出来的“噪音”这个词的注意力,也就是“噪音”不会被生成。“杂音”和“噪音”同样是描述静音属性,但由于“噪音”和“杂音”是不同的词,基于词的覆盖度无法解决这个问题,模型在后续解码过程中有可能会生成“没有杂音”,最终会造成生成了重复的信息。
针对这个现象我们提出了基于要素覆盖的机制。把历史的词的覆盖度再积累到要素的维度上,如上图中左边的例子。我们会把静音基于要素覆盖度去累计,然后惩罚到噪音,也会惩罚到杂音。从而避免了噪音的重复生成,也避免杂音的重复生成。这样就在要素维度上进行了去冗余的操作。
③ 流畅的商品要素表达
第三个环节是流畅的商品要素表达,这里做了简单的解码处理。比如上图例子中,这款洗衣机是10千克的大容量,后面介绍操控系统,之后又介绍到了容量。可以看到它其实容量是跳跃表达的。在逻辑上的会有重复、不连贯的感觉,在解码的时候我们做了一个处理,对历史已经结束解码的要素做一个记录,当这个模型想要继续去解码同样的一个已经结束的要素的时候,就禁止它解码,这样就避免了要素回跳,影响流畅的要素表达的现象。
--
03
基于电商知识图谱的商品文案生成
1. 知识图谱指针
① 更准确描述商品属性
基于电商知识图谱的文案生成的工作中,我们的考虑出发点是什么?如上图,模型需要生成这款洗衣机的容量是多少。具体的容量是200L还是201L,数字的差距对于人是敏感的,但是对于机器并不会很敏感,因此生成具体数字对于机器而言会面临困难。尤其是对那些比较低频的容量,比如有的洗衣机容量非常小,有的冰箱容量非常大,对于模型它的学习就更加难了。
我们对于完整复现真实的商品属性,提出了一个基于知识图谱指针的机制。原始文本生成模型是直接去生成商品的属性词,我们的模型转化成使用商品知识图谱做一个指针。比如当我们想要生成商品的某个属性,例如一款洗衣机的容量是多少的时候,模型通过指针可以直接找到“容量”这个属性对应的数值,将其复制过来就可以了。
② 利用知识图谱指针改进复制机制
具体来说怎么操作?原始的复制机制实际上是文本生成模型或者说文本摘要模型一个必备模块,当前解码就会寻找解码器的最大的注意力。比如当前解码器把注意力放到了“九千克”上,它就会把“九千克”通过复制的形式输入文本,或者把知识图谱里的文本拿取过来。
但这里会有个困难,比如不能够准确地复制到一些低频的属性,解决方法是改进复制机制,通过商品知识图谱指针的形式,不去直接复制商品的属性值,而是复制属性,然后通过属性的方式把属性的权重叠加给属性值。
比如这里想要复制“九千克”的时候,是先去找到“容量”,然后通过“容量”注意力的权重对“九千克”做一个修改,当我们“九千克”注意力非常小的时候,“容量”这一高频的属性就会纠正过来,它把正确的注意力机制赋予给它,从而实现了利用指针去改进复制机制的现象。
2. 解决商品知识图谱缺失问题
① 多模态商品知识图谱补齐
实际过程中使用商品知识图谱去做文本生成,会面临一个不可避免的问题——商品知识图可能会存在一些缺失的问题。因为商品知识图大多数是商家自己上传的,有些商家店铺里的商品非常多,它在上传这些商品的时候,可能有些商品的属性是缺失的。我们如何解决这些问题?
去年我们做了一个基于商品动态去补齐商品知识图谱的一个工作,因为很多日销类的商品,比如服饰、鞋靴、箱包、日用品的量非常大,但是他们的商品图谱知识缺失现象严重,并且这一类的商品很多的属性是和外观相关的,所以使用外观商品的图片去补齐商品制度,是顺理成章的事情。
② 多层次地利用视觉信息增强文本语义理解
在这个模型里首先有一个解码——编码器,会对文本图片进行编码。在解码的过程中,会对原始的文本编码进行强化。因为一般要做商品知识图谱,补齐有非常多的方式。一个是分类,但是label的分类可能会有一个问题,如果label它本来是不存在于商品中,它可能会产生一些不忠实于商品的属性。比如商品它在描述颜色,可能把它分类到长度上面,比如说“一米”,而实际上“一米”是不存在于输入文本里面去的。
所以为了去满足线上的忠实度的需求,可以把任务定义成一个序列标注的问题,也就是说可以对每个输入中的词进行label标注,而不是一个单纯的分类问题,而是一个序列标注的问题。
既然是基于输入的文本序列做一个分类,让文本的一个语义表达更加准确是必须要做到的。因此定义了两类的视觉门,即使用视觉信息对文本信息进行加强。
第一类是全局的视觉门,目的就是希望使那些和文本、视觉信息、视觉信息相关的文本获得更多的视觉的加成。而那些和视觉信息无关的文本,比如虚词,也不引入视觉的噪音,其实就是通过一个门控机制,对无关的文本去噪。
第二类是局部视觉门,由于在做不同的商品属性,因此在做不同商品属性的序列标注的时候,让模型关注到不同的商品的区域是非常有必要的。比如想要生成领形的时候,模型应该去关注到商品的领子;再比如生成袖子属性的相关语句描述,模型需要能关注到商品的袖子。
最终通过全局的视觉门和局部视觉门这两种不同的视觉门去加强文本的语义表达,最终完成一个动态的序列标注。
③ 视觉信息对商品知识图谱补齐效果显著
使用多模态模型,无论是属性类别的识别还是属性值的抽取,性能上都有非常大的提升。右边可视化,可以看到当解码领形相关时,视觉信号成功地关注到商品的领子;鞋子高帮相关的属性,模型关注到了鞋帮的区域。
3. 通过复制机制提高商品文案忠实度
① 商品属性Only-Copy机制
如何利用商品电商知识图谱去提高商品文案的忠实度?其实提高商品文案的忠实度,对线上直接使用商品文案是非常关键的。如上图示,一款变频的空调,如果文本生成模型把它写成“定频”,这个后果是非常严重的!这会造成一个欺骗消费者的行为,无论对平台或者商品还是消费者都是严重的错误。
通过原始复制机制切入分析“定频”这个解码错误是如何产生的?复制机制它是在计算解码概率是由两部分构成的。第一部分就是复制概率。如图就是Pcopy。因为“定频”它是不属于在输入里边的,所以说 Pcopy是0的。但是计算“定频”的解码第二部分生成概率(generation)的时候,由于“定频”和“变频”,同时出现在解码的词典里面,所以无法保证generation的概率是等于0的,所以就会错误地计算出定频的解码概率不等于0,就有可能会解码出“定频”这个错误属性。
针对这个现象,把属性相关的词解码时,将genernation概率直接关闭掉,即我们把λ强制为1,也就是把genernation概率为0。所以只剩复制概率,那么“定频”就是等于0的解码概率,而“变频”就是大于0的解码概率。因此就一定会解码出“变频”,而不会解码出“定频”。
--
04
基于通用知识图谱的商品文案生成
1. 商品知识图谱与通用知识图谱的互联
如图,这是商品知识图谱和通用知识图谱的一个展示。依图可知商品知识图谱和通用知识图谱其实非常容易做关联。比如有一款商品,它是一个鸡肉味、从泰国进口的方便面。可以通过方便面这个产品词关联到通用知识图谱里面去,从而拿到商品知识;通过通用商品知识图谱拿到更多关于这款商品的介绍。以方便面为例。它是一个素食,淀粉做的,能缓解用户的饥饿等,这些都是方便面相关的属性。
很多直播里面会有非常多的场景类的、体验类的介绍。这种体验类、场景类的介绍实际上很多在商品的介绍里面是拿不到的。但在商品通用知识图库里面有非常丰富的相关信息。所以可以利用通用知识库去丰富我们商品文案介绍的信息的维度。
2. 通用知识图谱编码
① 通用知识图谱+Token类别向量
一个简单的方式就是把通用知识图谱的信息直接使用商品知识图谱的形式加入进来。实践的过程中暴露了一些问题。通用知识图谱带来的一些额外的信息,并不适合描述某款商品时,应该怎么办?
加入Token类别向量是一种解决方法,就是把输入的信息做一个分类标签,类似于BERT编码器的token向量和positions向量。
Token的类别向量,具体的类别包括商品类目信息、产品信息、标题信息、商详页信息,还有商品知识图谱信息以及通用知识图谱信息。所以,我们把Token类别做一个向量编码进去,从而减少通用知识库带来的不忠实的风险。在模型使用中,不能是随意的像利用商详文本那样漫无目的去利用,通用知识图谱应该是选择性的去利用,从而保持我们模型的一个忠实度。
3. 通用知识图谱
① 为文本生成模型引入了更多知识
加入了通用知识图谱后,对文本生成而言引入了非常多的信息。如图,太阳眼镜这样一个例子,通用知识图谱带来的三元组是:太阳眼镜的目的是减轻眼镜的眼睛的疲劳,以及强光的刺激伤害。加入了通用知识图谱之后,模型输出的文案里面也会介绍到商品的一些用途——能够阻断阻隔强光以及电对眼睛的伤害。三个品类,包括家电,服饰和食品上的测试结果显示如右图所示,使用通用知识图谱后引入的知识会显著增加。
4. Token类别向量
① 区分输入信息类型,文本生成模型更精确描述商品类别
除了对商品知识库、通用知识库做了一个类别的token向量之外,还对产品词做了一个向量。其动机是,如果模型已经知道产品词是什么,尽可能多地去描述出这个产品词是什么才是符合期望的。
以蓝牙耳机为例,当不使用token向量的时候,可以看到它输出的文案虽然比较流畅,但是由于没有介绍具体的产品词,用户不能够直接知道你在描述什么。当加入到显示的产品词类别之后,这个产品词是耳机被描述到了,通过实验发现token向量的加入,描述产品词的比例能够从27%提升到35%。
--
05
基于领域知识的预训练语言模型
1. 大模型参数的「新摩尔定律」
最后给大家介绍一下基于领域知识训练的语言模型的一个尝试。大模型规模是每年以10倍的速度在增长。如图,从2017年出现Transformer,来到GPT超过了1亿的参数量,并且来到 GPT-2超过了15亿,以及GPT-3达到了百亿级别的参数量。中文也已经出现了千万级别的万亿级别的Wudao模型。
2. 从通用模型到面向知识的模型
那么对于工业界来说,用大模型肯定是有一些障碍的,因为大模型可能带来一些线上计算资源的非常大的消耗,那么针对这种大模型是怎么思考的?其实是从知识方面对大模型进行了一些思考,如图左边是一个通用的大模型,包括BERT模型以及BART模型。
现在有一种训练模型的方向,是将知识加入到预训练里面。因为通用的语言预训练模型,并没有对知识进行显著的建模。因此那些知识的建模能够更显著地学习到下一步任务所需要的知识。
比如百度提出来的ERNIE模型,对知识进行了非常大且非常深入的建模。我们在预训练领域的探索,就是希望能够在电商领域能够做深耕,在垂直领域上做研究,我们提出了一个基于领域知识增强的预训练语言模型K-PLUG。
3. K-PLUG模型框架
K-PLUG模型首先会定义电商领域的领域知识,它包括:商品的知识图谱,商品的要素知识,商品的类别知识以及商品的卖点知识。针对这些不同的知识,会去设计不同的下游任务,包括受 BERT和BART启发,会设计掩码语言模型和掩码文本生成模型。掩码是围绕知识进行掩码的,会优先对各种知识进行掩码。除此之外,针对这些知识设计一些特定的任务,包括要素边界检测任务,使模型学习去识别不同的要素,目的是训练对要素的感知。第四个任务就是商品的类别,就在模型学习到商品分类的一个知识。针对下游的生成任务来说,还设计了商品卖点短语/句生成任务。
4. K-PLUG模型的优势
① 拟人化更好(ROUGE得分高)
② 描述更丰富(生成的文本长度更长)
③ 可信度更高(审核通过率更高)
如图,在电商知识图谱生成的案例。图中产品为老板抽油烟机。对比通用预训练模型和领域预训练模型,领域知识预训练模型(K-PLUG)模型有三方面的优势。首先,拟人化是更好的,它的ROUGE得分是比较高的。其次,描述更丰富,生成的文本的长度更长。如图可知,LSTM可以生成62字,T5可以生成55字,而K-PLUG能够生成80个字,并且没有对这个长度进行一个约束的情况下,K-PLUG就已经能够生成非常丰富的信息。最后,就是可信度更高,K-PLUG人工审核率已经达到了90%,而其他的模型是80%以下。
--
06
互动问答
Q:标注的数据量有多大,是如何构建的?
A:商品知识图谱在电商场景下,是以商品规格参数这种形式展示的,我们并没有对它进行太多标注,因为商品的量是非常大的,所以我们一是利用商家上传的商品规格参数,另外是利用商品知识图谱补齐模型去补齐商品知识图谱。
Q:编码器输入的关键词顺序有讲究吗?
A:我们做过类似的尝试,对于RNN模型,改变关键词在输入中的位置,确实有一定的影响。
对于一个输入序列,它是有前后顺序关系的,所以顺序其实是影响非常大的。因为我们知道这个商品知识图谱的信息是非常重要的,它能够给我们提供非常多的商品使用信息,所以说我们为了去突出商品知识图谱的一个重要性,从而使我们的文本生成模型能够更多地去描述商品的属性信息。我们会把这个商品知图谱里边的文本信息放在最前面或者最后面,这样对模型描述商品属性有一个非常大的促进作用。
今天的分享就到这里,谢谢大家。
阅读更多技术干货文章、下载讲师PPT,请关注微信公众号“DataFunTalk”。
分享嘉宾:李浩然博士 京东科技 算法专家
编辑整理:郭鈭萌 中嘉华
出品平台:DataFunTalk
分享嘉宾:
活动推荐:
关于我们:
DataFun:专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章700+,百万+阅读,14万+精准粉丝。
欢迎转载分享评论,转载请私信。
| 留言与评论(共有 0 条评论) “” |