简介: 工作那么忙,怎么给女朋友买包?是翻看包包的详情页,再从商品评论中去找信息吗?为了帮助类似的同学节省时间,阿里工程师们提出快速回答生成模型RAGE。你问它答,这个“百事通”能从整体结构,评论的抽取和表示及融合四个方面综合解决生成模型响应速率及生成质量的问题,进而提高生成的回答的真实性及有效性。从此,如何给女友“买包”,不再是难题。

本篇内容参考论文《Review-Driven Answer Generation for Product-Related Qestions in E-Commerce》论文作者为:武汉大学李晨亮、陈诗倩,阿里巴巴计峰、周伟、陈海青

引言

随着互联网技术的普及,电子商务产业得到了蓬勃的发展,用户的购买行为逐渐由线下转移到线上,然而线上购物带来便利的同时,弊端也逐渐显现。用户在做购买决定之前,通常希望获取更多的商品详情与使用感受等信息,然而,当网页浏览与点击代替了面对面的交易,用户无法获得直观的判断,仅能通过翻阅商品详情页及已购买用户的评论获取有效信息。用户需浏览及过滤大量的评论信息才能获得商品的综合评价,这无疑增加了线上购物的时间成本,降低了用户的购物体验。

为了解决线上环境信息获取渠道闭塞且耗时的问题,各大电商平台,例如,淘宝、亚马逊,相继提供社区问答(CQA)的服务。虽然社区问答在一定程度上缓解了部分用户浏览及过滤评论信息的时间成本,然而,等待已购买用户回答问题的过程同样是低效耗时且低召回的。因此,为了进一步节省用户购物时间,各大电商平台开始探索通过智能问答系统,自动、及时且真实的回答用户提出的商品相关性问题,帮助用户获取所需的信息。虽然现有的智能问答系统经过了几十年的发展,已经相对成熟,然而依然无法在电商领域广泛应用,其原因在于:

  1. 检索式问答系统过分依赖于问答库,而电商领域中问题形式千变万化,构造完整的问答库相对困难且耗时。
  2. 现有的生成式问答系统的工作均以循环神经网络及其变种形式为基础。循环神经网络因其时序特性而无法并行处理,导致效率较低。
  3. 目前生成式问答系统外部信息的引入主要依赖于结构化的知识库或者是关键词及主题模型,而在电商领域中,商品知识库的构造是一项消耗时间及人力成本的工作。

因此针对电商领域问答系统的需求现状及现有工作中存在的不足,我们创新性的提出了利用非结构评论信息引导回答生成的思想,同时提出了一种基于多层门控卷积神经网络的快速回答生成模型RAGE。该模型分别从整体结构,评论的抽取、表示及融合四个方面综合解决生成模型响应速率及生成质量的问题,进而提高生成的回答的真实性及有效性。

2 模型

模型整体结构如图1:


图1

2.1基础结构

  • 2.1.1问题编码器

考虑到循环神经网络存在的种种不足,我们选择采用门控卷积神经网络作为问题编码器对问题序列进行编码。然而,卷积神经网络因其权值共享的特性,导致其对位置信息不敏感。为解决门控卷积神经网络位置信息丢失的问题,我们在输入矩阵中引入位置向量,以保证卷积过程中模型对于位置信息的敏感性。同时,我们将词性信息(POS tag)引入输入矩阵,词性信息中所包含的句法和词法信息能够更好的帮助门控卷积神经网络理解词间关系和文本语义。

  • 2.1.2 基础解码器

2.2 评论的抽取、表示及融合

  • 2.2.1 评论的抽取

  • 2.2.2评论片段的表示

  • 2.2.3 评论的融合

为了使每一层的生成状态均对外部信息保持敏感,在回答生成器中我们同样采用了层次注意力机制。另外,我们认为问答任务中外部信息的选择过程不仅仅由当前的生成状态决定,还应与问题的语义密切相关。因此,在RAGE中我们利用与当前生成状态相关的加权问题编码向量与带权词典计算注意力权重,其原因在于加权问题编码向量中不仅仅含有当前生成状态的信息,同时包含了问题的语义信息,能够准确的对外部信息进行选择。其具体过程如公式2-14,2-15所示,最终得到与l层j时刻生成状态相关的评论信息编码向量。

式中表示第l层中,j时刻的问题编码向量与带权词典中中第i个词的表示向量计算的注意力权重。

为了避免信息的冗余,在每一层中本文通过门控机制选择性的利用问题编码信息和评论信息对生成状态进行更新,得到最终的生成状态。因而,将公式2-8改为公式2-16。

式中为门控权值向量,由l层的j时刻生成词生成状态,当前生成状态相关的加权问题编码向量,当前生成状态相关的评论信息编码经过函数()映射而得,具体程如公式2-17所示。

式中为两层矩阵映射及Sigmoid非线性变换。

3 实验

3.1对比模型

1)Seq2seqwith Attention(Bahdanau 2016)

2)TA-Seq2seq(Xing2017)

3)ConvSeq2seq(Gehring2017)

4)ConvSeq2seq-RV:在ConvSeq2seq的基础上,每次生成时动态的限制生成的词必须出现在其对应的相关评论片段中

5)RAGE/POS:RAGE去除POS信息

3.2数据集

我们使用了两个淘宝平台中真实的“问大家”数据集对模型的生成效率及质量进行测评,两个数据集分别为“手机”相关数据集及“大家电”相关数据集。其中“手机”数据集相对较小,仅涉及4457个商品,而“大家电”数据集相对较大且离散,包含冰箱、洗衣机等多个子类目下的47979个商品。

为了测试RAGE模型的泛化能力,本文从手机数据集中随机挑选出6个品牌的商品相关性问题及其对应商品的评论作为测试集,其余商品的问答对和评论作为训练集。同样的,随机挑选出“大家电”数据集下的两个子类目,取其问题及评论作为测试集,其余商品问答对和评论构成训练集。

最终得到的数据集统计信息如表4-1所示。表中表示问答对的数量,表示问题的词平均长度,表示标准回答的词平均长度,表示抽取的平均评论片段数目。

对于测试集,我们仅保留其问题部分,该问题对应的标准回答仅用于衡量模型的生成效果不应参与训练及生成过程。抽取评论片段的过程中,我们首先利用Word Mover’s Distance在训练集中寻找其最相似的问题,取该问题的答案与测试集中的问题构成问答对。

3.3 评价指标

客观评价指标我们采用词平均相似度(Embedding BaseSimilarity;ES)及句中离散度(Distinct)来衡量。主观评价方面,我们规定了如下的打分标准:+3:如果生成的回答既通顺又与问题密切相关,同时包含有效信息且该有效信息与标准回答及用户评论相符,则该回答为3分。+2:如果生成的回答包含与标准回答及用户评论相符的有效信息,但是含有部分的语法错误,比如重复生成、句式紊乱等,则该回答为2分。+1:如果生成回答仅能够用于回答问题,但是不包含有效的信息,比如“我是给别人买的,我不知道”,“可以,可以”等无意义的回答,则该回答为1分。0:如果生成的回答毫无意义或者包含太多的语法错误以至于难以理解,则该回答为0分。而后邀请两位评价者对模型的生成回答进行评价,并利用kappa值衡量评价者间的评价一致性。

3.4 实验结果及分析

我们对各模型进行了客观指标的评价,,并得到了如表4-2的结果。通过对两个指标的观察我们发现,“大家电”数据集的词平均相似度整体低于“手机”数据集,其原因可能是由于“大家电”数据集类目复杂,句式较为离散,模型不易学习其问答间的转换关系。另外“大家电”数据集中RAGE/POS的句中离散度高于RAGE模型,通过结合主观评价指标的综合分析,我们认为其可能的原因是RAGE/POS生成了部分不相关的词,导致其句中离散度较高。同时我们观察到,TA-Seq2seq和ConvSeq2seq-RV以及RAGE/POS、RAGE的句中离散度和词平均相关性在两个数据集上均高于Seq2seqA和ConvSeq2seq,佐证了本文“引入外部信息有利于生成包含有效信息以及贴合问题语义的回答”的观点。

主观评价的部分,我们通过对表4-3,4-4中的结果进行分析,得到如下结论。第一,虽然RAGE生成的回答与标准回答在各方面都存在一定差距,但是相比于现有的回答生成工作,RAGE在通顺性以及包含有效信息程度等方面都有显著的提升。第二,我们可以观察到,RAGE/POS和RAGE在2分的结果上有明显差距,说明词性信息的引入确实有助于提高回答生成的通顺性。

考虑到电商领域实时响应的需求,我们在基础模型的搭建过程中,将以往工作中常用的循环神经网络替换为多层门控卷积神经网络,为证明其效率,我们在单卡 Tesla K40 GPU环境下对比了各个模型的训练及测试效率,其结果如表4-5中所示,可以观察到,基于循环神经网络的Seq2seqA和TA-Seq2seq模型,训练及测试的耗时明显高于基于多层卷积神经网络的其他模型。

表4-6 Case Study:

最后我们做了Case Study。于表4-6中列出其标准回答,评论抽取过程中Word Mover’s Distance最小的评论片段MSR,以及各个模型的生成结果。通过表中案例可以观察到,对于问题1,2,4这类简单的问题,各个模型生成的回答都相对贴合问题语义。Seq2seqA以及ConvSeq2seq这两个模型由于没有引入外部信息,其生成的回答明显不具备任何有效信息,是所有问题都适用的安全性回答。RAGE得利于其对评论片段的抗噪表示以及融合方式,生成的回答相比于其他模型更加准确、通顺、符合语法且包含丰富的有效信息。

问题3,5,6与问题1,2,4相比较为复杂,其包含了两个子问题,“制冷效果怎么样?”“制热呢?”从表4-6中罗列的结果可知,大部分模型,包括标准回答均只回答了一个子问题,只有RAGE对两个子问题都做出了回答。

4 总结

通过对实验结果进行主观、客观及模型效率的分析,我们认为,RAGE在电商领域的问答任务中有较好的表现,相比于现有的其他工作,RAGE能够更加快速的生成具有通顺性,贴合问题语义且包含丰富信息的回答。

工程师如何给女友买包?问问阿里“百事通”相关推荐

  1. 帮表弟的女友买了个5900的dell 1420

    昨天,去友通数码港帮表弟的女友买了台笔记本. 为了买笔记本,我两周前就开始看,看网上介绍,看产品实样,看评论.说实话,买笔记本是很头疼的事,就是我自己买也很头疼,都想追求性价比,花最少的钱,办最好的事 ...

  2. 命令点无效怎么处理_怎么更好处理闲置包包,买包卖包都要记住这5点

    当你选择将闲置包包变现那一刻起,你的心里有一件特别感兴趣的事情对不对? 让我来猜猜,是不是很想确定你的包包价值多少钱? 不管是自己挂在闲鱼卖,还是找专门的回收平台进行回收, 你要怎么掌握主权,以下这5 ...

  3. 软件开发工程师到底有没有必要买一台阿里云服务器?

    ​ 做为一名程序猿多多少少每天都在跟服务器打交道,尤其是后端的小伙伴,那么你是否也有这样的想法呢 ? 一.个人服务器究竟能做什么? 1. 搭建个人博客 软件开发这个行业,知识技术日新月异,作为一名合格 ...

  4. 我买了个阿里云服务器并在上面部署了一个项目

    我在阿里云服务器上部署了一个项目.本博客详细说明了从服务器购买,到项目部署过程.因为我的毕业设计是做一个钉钉工作台的微应用,所以要用到公网IP.前几年也租过服务器,淘宝上很多,价格也不贵,但是性能很差 ...

  5. bv值是什么意思_BV出爆款了,今年买包怎能不盘一只“云朵”?

    我们开门见山,跟爆款.IT Bag无缘n年了的BV今年终于出爆款了,包包名字叫做The Pouch,我之前简单介绍过它一次,预测过它有可能会是今年的'hot to buy'. 这不,才一个多月时间,它 ...

  6. 在腾讯云买的域名解析阿里云的服务器的ip地址

    最近有这样一个需求,之前一直在使用腾讯云服务器,在上面买了域名和服务器,服务器到期了但是域名没有到期,现在想转战阿里云,想使用之前在腾讯云购买的域名解析阿里云服务器的IP地址. 这个怎么搞,其实特别简 ...

  7. 部署war包到阿里云liunx的tomcat时报错:zip END header not found

    思考 首先检查war包是否有问题--在本地部署成功 可能是环境不一致导致 tomcat版本都是9- jar,服务器是11,本地16-使用16编译的class文件11可能跑不了 解决 在本地使用jdk1 ...

  8. linux下抓包代码阿里云,10.10 linux下抓包

    监控系统状态 抓包工具 tcpdump 用法:tcpdump -nn tcpdump -nn -i ens33 tcpdump -nn port 80 tcpdump -nn not port 22 ...

  9. 程序员到底有没有必要买一台阿里云服务器?

    做为一名程序猿多多少少每天都在跟服务器打交道,尤其是后端的小伙伴,那么你是否也有这样的想法呢 ? 一.个人服务器究竟能做什么? 1. 搭建个人博客 软件开发这个行业,知识技术日新月异,作为一名合格专注 ...

最新文章

  1. docker删除image失败,conflict
  2. mysql startupitem_MySQL数据库之Mac上安装MySQL过程分享
  3. 自定义EventSource(一)EventCounter
  4. 安装Nvida 显示环境
  5. 2018年NLP技术学习总结
  6. 6.边缘检测:梯度——边缘检测、导数与边缘、什么是梯度_2
  7. Android 应用开发(37)---RelativeLayout(相对布局)
  8. Android系统源码分析--Process启动过程
  9. spring是java ee框架吗,Java EE和Spring框架之间的区别
  10. C语言修行中(2)学习了分支和循环结构
  11. wps中将二维表转换为一维表
  12. axios请求文件流下载文件
  13. 《三体》与Taylor展开式的无限遐想
  14. 哈工大硕士生用 Python 实现了 11 种经典数据降维算法,源代码库已开放
  15. c语言程序运行结果怎么看,c语言程序的运行结果.ppt
  16. 手机短号 (多实例)
  17. 零售EDI:家乐福Carrefour EDI需求分析
  18. 铁甲雄心机器人冠军_《铁甲雄心》第二季首播 优必选科技引领中国AI机器人进击之路...
  19. 如何获取中国电信、网通、铁通的最新ip地址段
  20. docker、K8S、k3s、rancher

热门文章

  1. 解放双手|Python 自动搜索、翻译、存储文献标题摘要!
  2. 巨头垄断,Facebook直接封杀了一个国家!
  3. CentOS 8 成为绝版!到底发生了什么?
  4. 软件测试报告bug统计,软件测试中如何有效地写Bug报告
  5. Android 过滤无效录音数据,android – MediaRecorder类记录音频的问题 – prepare()给出异常 – 权限被拒绝...
  6. 二值化图像去除小黑点_python与图像工程(2020.10.11)
  7. 怎么像编辑提供wb原图_PLoS One:7月1日起,投稿必须提供原始WB图片!
  8. oracle 以1开头以9结尾_为什么你看到的价格总以数字“9”结尾?
  9. Bootstrap(自助法),Bagging,Boosting(提升)
  10. Web Application:Exploded和Web Application:Archive