Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

京东商城背后 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:056691

评论

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

自建开发工具系列-Webkit内存动量监控UI(七)

Tim

Script tsconfig

到底是先更新数据库还是先更新缓存?

冰河

数据库 缓存 系统架构 分布式系统 缓存一致性

浪潮位居全球区块链企业前十、中国前三

【大数据面试之对线面试官】MapReduce/HDFS/YARN面试题70连击

王知无

邮件误删不用怕,试试这个方法帮你找回来

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

ZooKeeper 分布式锁 Curator 源码 01:可重入锁

程序员小航

zookeeper 源码 分布式锁 curator

手写冒泡排序和选择排序算法

实力程序员

ClickHouse大数据领域企业级应用实践和探索总结

王知无

Vue进阶(幺陆贰):vue render函数介绍

No Silver Bullet

Vue 7月日更 render

10分钟理解REACT概念

加百利

React 7月日更

视觉生产技术入门篇

若尘

视觉 7月日更

Rust从0到1-并发-线程间消息传递

rust 并发 channel 消息传递 Message Passing

【LeetCode】在排序数组中查找数字 Java题解

Albert

算法 LeetCode 7月日更

【Flutter 专题】85 Flutter Attach 调试 Flutter Code

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

爬虫入门到放弃02:如何解析网页获取数据

叫我阿柒啊

爬虫 CSS选择器 xpath lxml

从零开始学习3D可视化之3D界面

ThingJS数字孪生引擎

大前端 可视化 3D 3D可视化 数字孪生

【从零开始学爬虫】采集京东商品信息

前嗅大数据

大数据 爬虫 数据采集 采集商城 采集京东

Vue进阶(幺肆拐):利用Vue中keep-alive快速实现页面缓存

No Silver Bullet

Vue 7月日更 keep-alive

MapReduce的参数优化

大数据技术指南

7月日更

MySql 通过定义变量更新多表

Flychen

电脑有什么超简单的录屏方法

淋雨

视频剪辑 Camtasia 录屏软件

Apache Spark结构化API(三)

Databri_AI

spark API RDD

华为云GaussDB(for openGauss)推出重磅内核新特性

华为云开发者联盟

高可用 华为云 内核 GaussDB(for openGauss) 存储引擎

了解一下缓存分类、更新、清理策略以及如何处理缓存带来的风险

Jokay

缓存 缓存穿透 缓存击穿 缓存雪崩 缓存设计

在线SVG在线编辑器

入门小站

Linux

测试开发之系统篇-常用系统命令

禅道项目管理

测试 命令 测试开发

Linux之chgrp命令

入门小站

Linux

B站崩了,拉垮了豆瓣?程序员不要怕,Alibaba架构师教你如何“预防”

Java架构师迁哥

如何在 Discourse 中配置使用 GitHub 登录和创建用户

HoneyMoose

数仓是如何与“夏令时”愉快的玩耍!

华为云开发者联盟

数仓 时区 GaussDB(DWS) 夏令时 夏令

事件Event:带你体验鸿蒙轻内核中一对多、多对多任务同步

华为云开发者联盟

鸿蒙 任务 OpenHarmony 事件 LiteOS-M

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