QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

京东商城背后 AI 技术揭秘(一):基于关键词自动生成摘要

  • 2020-04-04
  • 本文字数:2802 字

    阅读完需:约 9 分钟

京东商城背后AI技术揭秘(一):基于关键词自动生成摘要

最近几年,AI 技术在电商领域的广泛运用已经彻底改变了传统的营销方式。在京东商城的【发现好货】频道,很多商品的营销文案都由京东自研的“商品营销内容 AI 写作服务”来生成,AI 能够针对不同群体采用不同营销策略及不同风格的营销文案从而提高营销转化率。


通过 AI 创作的数十万商品营销图文素材,不仅填补了商品更新与达人写作内容更新之间的巨大缺口,也提升了内容频道的内容丰富性。同时,AI 生成内容在曝光点击率、进商详转化率等方面其实都表现出了优于人工创作营销的内容。本文将介绍一种基于关键词指导的生成式句子摘要方法。


自动文本摘要(简称“自动文摘”)是自然语言处理领域中的一个传统任务,其提出于 20 世纪 50 年代。自动文摘任务的目标是对于给定的文本,获得一段包含了其中最重要信息的简化文本。常用的自动文摘方法包括抽取式自动文摘(Extractive Summarization) 和生成式自动文摘(Abstractive Summarization)。抽取式自动文摘通过提取给定文本中已存在的关键词、短语或句子组成摘要;生成式自动文摘通过对给定文本建立抽象的语意表示,利用自然语言生成技术,生成摘要。


本文所介绍的是基于关键词指导的生成式句子摘要方法,该方法融合了抽取式自动文摘和生成式自动文摘,在 Gigaword 句子摘要数据集上与对比模型相比,取得了更好的性能。



论文链接:http://box.jd.com/sharedInfo/B2234BB08E365EEC

生成式句子摘要

生成式句子摘要 (Abstractive Sentence Summarization) 任务的输入是一个较长的句子,输出是该输入句子的简化短句。


我们注意到,输入句子中的一些重要词语(即关键词)为摘要的生成提供了指导线索。另一方面,当人们在为输入句子创作摘要时,也往往会先找出输入句子中的关键词,然后组织语言将这些关键词串接起来。最终,生成内容不仅会涵盖这些关键词,还会确保其流畅性和语法正确性。我们认为,相较于纯粹的抽取式自动文摘和生成式自动文摘,基于关键词指导的生成式自动文摘更接近于人们创作摘要时的习惯。 



图 1:输入句和参考摘要之间的重叠关键词 (用红色标记) 涵盖了输入句的重要信息,我们可以根据从输入语句中提取的关键字生成摘要


我们举一个简单的句子摘要的例子。如图 1 所示,我们可以大致将输入句子和参考摘要的重叠的词(停用词除外)作为关键词,这些重叠的词语覆盖了输入句子的要点。例如,我们通过关键词“世界各国领导人”“关闭”和“切尔诺贝利” ,可以获取输入句子的主旨信息,即“世界各国领导人呼吁关闭切尔诺贝利”,这与实际的参考摘要 “世界各国领导人敦促支持切尔诺贝利核电站关闭计划。”是相吻合的。这种现象在句子摘要任务中很常见:在 Gigaword 句子摘要数据集上,参考摘要中的词语超过半数会出现在输入句子中。

模型概述

句子摘要任务的输入为一个较长的句子,输出是一个简短的文本摘要。我们的动机是,输入文本中的关键词可以为自动文摘系统提供重要的指导信息。首先,我们将输入文本和参考摘要之间重叠的词(停用词除外)作为 Ground-Truth 关键词,通过多任务学习的方式,共享同一个编码器对输入文本进行编码,训练关键词提取模型和摘要生成模型,其中关键词提取模型是基于编码器隐层状态的序列标注模型,摘要生成模型是基于关键词指导的端到端模型。关键词提取模型和摘要生成模型均训练收敛后,我们利用训练好的关键词提取模型对训练集中的文本抽取关键词,利用抽取到的关键词对摘要生成模型进行微调。测试时,我们先利用关键词提取模型对测试集中的文本抽取关键词,最终利用抽取到的关键词和原始测试集文本生成摘要。


1、多任务学习


文本摘要任务和关键词提取任务在某种意义上非常相似,都是为了提取输入文本中的关键信息。不同点在于其输出的形式:文本摘要任务输出的是一段完整的文本,而关键词提取任务输出的是关键词的集合。我们认为这两个任务均需要编码器能够识别出输入文本中的重要信息的能力。因此,我们利用多任务学习框架,共享这两个任务编码器,提升编码器的性能。


2、基于关键词指导的摘要生成模型


我们受 Zhou 等人工作(Zhou, Q.; Yang, N.; Wei, F.; and Zhou, M. 2017. Selective encoding for abstractive sentence summarization. In Proceedings of ACL, 1095–1104. 参考文件放到文章末尾)的启发,提出了一种基于关键词指导的选择性编码。具体来说,由于关键词含有较为重要的信息,通过关键词的指导,我们构建一个选择门网络,其对输入文本的隐层语义信息进行二次编码,构造出一个新的隐层。基于这个新的隐层进行后续的解码。


我们的解码器基于 Pointer-Generator 网络【See, A.; Liu, P. J.; and Manning, C. D. 2017. Get to the point: Summarization with pointer-generator networks. In Proceedings of ACL, 1073–1083.】,即融合了复制机制的端到端模型。对于 Generator 模块,我们提出直连、门融合和层次化融合的方式对原始输入文本和关键词的上下文信息进行融合;对于 Pointer 模块,我们的模型可以选择性地将原始输入和关键词中的文本复制到输出摘要中。

实验与分析

1、数据集


在本次实验中,我们选择在 Gigaword 数据集上进行实验,该数据集包含约 380 万个训练句子摘要对。我们使用了 8,000 对作为验证集,2,000 对作为测试集。


2、实验结果


表 1 显示了我们提出的模型比没有关键词指导的模型表现更好。我们测试了不同的选择性编码机制,分别是输入文本的自选择,关键词选择和互选择,实验结果显示互选择的效果最佳;对于 Generator 模块,我们发现层次化融合的方式要优于其他两种融合方式;我们的双向 Pointer 模块比原始的仅能从输入文本中复制的模型表现更好。


总结

本文致力于生成式句子摘要的任务,即如何将一个长句子转换成一个简短的摘要。我们提出的模型可以利用关键词作为指导,生成更加优质的摘要,获得了比对比模型更好的效果。


1)通过采用了多任务学习框架来提取关键词和生成摘要;


2)通过基于关键字的选择性编码策略,在编码过程中获取重要的信息;


3)通过双重注意力机制,动态地融合了原始输入句子和关键词的信息;


4)通过双重复制机制,将原始输入句子和关键词中的单词复制到输出摘要中。


在标准句子摘要数据集上,我们验证了关键词对句子摘要任务的有效性。


注释:


[1]  Zhou, Q.; Yang, N.; Wei, F.; and Zhou, M. 2017. Selective encoding for abstractive sentence summarization. In Proceedings of ACL, 1095–1104.


[2] See, A.; Liu, P. J.; and Manning, C. D. 2017. Get to the point: Summarization with pointer-generator networks. In Proceedings of ACL, 1073–1083.


如果想了解更多相关内容,可以关注京东智联云开发者公众号(ID:JDC_Developers)。 


作者介绍:


京东 AI 研究院专注于持续性的算法创新,多数研究将由京东实际的业务场景需求为驱动。研究院的聚焦领域为:计算机视觉、自然语言理解、对话、语音、语义、机器学习等实验室,已逐步在北京、南京、成都、硅谷等全球各地设立职场。


2020-04-04 15:056198

评论

发布
暂无评论
发现更多内容

微信朋友圈高性能复杂度分析

LT

架构实战营

架构实战营 - 模块 2- 作业

zealot0317

如何配置分享到微信功能?

Towify

微信小程序 无代码 触发器

关系型数据库设计三大范式

京东科技开发者

关系型数据库 数据库设计 范式 冗余 数据库·

React源码分析2-深入理解fiber

flyzz177

React

跨平台应用开发进阶(二十五) :uni-app实现IOS云打包解决IOS提交审核相册等隐私描述语导致审核失败问题

No Silver Bullet

uni-app 12月月更 IOS云打包 提交审核 隐私描述语

React源码分析3-render阶段(穿插scheduler和reconciler)

flyzz177

React

跨平台应用开发进阶(二十六) :忐忑悲壮路,心酸出坑史——记第一次iOS艰辛上架路

No Silver Bullet

uni-app iOS上架 12月月更 问题汇总

如何使用 Towify 在小程序中实现勾选用户协议后登录?

Towify

微信小程序 无代码 触发器

百度工程师带你探秘C++内存管理(ptmalloc篇)

百度Geek说

c++ Linux 内存管理 12 月 PK 榜

ClassLoader 隔离性的基石是namespace,证明给你看

小小怪下士

Java 程序员 面试

DevData Talks | 大咖集结『研发效能答疑专场』即将开始!

思码逸研发效能

研发管理 研发效能 研发管理工具

教你用JavaScript完成简易贪吃蛇小游戏

小院里的霍大侠

JavaScript 编程开发 实战案例 初学者 入门实战

架构训练营 模块二作业

提姆

架构训练营10期

ReactDOM.render在react源码中执行之后发生了什么?

flyzz177

React

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

前端leetcde算法面试套路之树

js2030code

JavaScript LeetCode

跨平台应用开发进阶(二十四) :uni-app实现文件下载并保存

No Silver Bullet

uni-app 12月月更 文件下载 文件保存

架构实战营模块二作业

周烨

React源码分析4-深度理解diff算法

flyzz177

React

React源码解读之React Fiber

flyzz177

React

2022 阿里灵杰AI开发者峰会内容抢先看!

阿里云大数据AI技术

人工智能 阿里云

React源码解读之任务调度

flyzz177

React

用javascript分类刷leetcode23.并查集(图文视频讲解)

js2030code

JavaScript LeetCode

二十大专题,3000道 Java后端核心面试解析,国内超牛的《Java 面试突击核心手册》重磅来袭!

架构师之道

编程 程序员 java面试

前端面试比较好的回答

loveX001

JavaScript

最新前端面试总结

loveX001

JavaScript

数据库原理及MySQL应用 | 日志管理

TiAmo

数据库 日志 12月月更

三次握手与四次挥的问题,怎么回答?

loveX001

JavaScript

promise执行顺序面试题令我头秃,你能作对几道

loveX001

JavaScript

程序员职场晋升:与阿里前P9的一次近距离互动

博文视点Broadview

京东商城背后AI技术揭秘(一):基于关键词自动生成摘要_AI&大模型_京东 AI 研究院_InfoQ精选文章