0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

针对电商场景调优BERT的论文

深度学习自然语言处理 来源:深度学习自然语言处理 作者:深度学习自然语言 2020-09-25 16:40 次阅读

最近跟几个做电商NLP的朋友们聊天,有不少收获。我之前从来没想过【搜索】在电商里的地位是如此重要,可能GMV的50%以上都是从搜索来的。巨大的经济价值也极大地推动了技术的发展,他们的工作做得很细致,毕竟一个百分点的点击率后购买率提升也许对应的就是几百亿的成交额。

其实之前做的汽车领域NLP工作跟电商有很多相似的地方,场景先验都非常重要。直接使用开放域语料预训练的语言模型效果并不好。我们也尝试过一些方法,例如用本领域语料训练语言模型,结合一些词库词典等等。今天介绍最近看到的一篇针对电商场景调优BERT的论文《E-BERT: Adapting BERT to E-commerce with Adaptive Hybrid Masking and Neighbor Product Reconstruction》[1],其中的一些方法应该对细分领域NLP有一些启发。

方法

论文的创新方法主要有两个:Adaptive Hybrid Masking(AHM,自适应混合掩码)和Neighbor Product Reconstruction(NPR,相似商品重构)。

E-BERT总览

AHM

第一个方法AHM其实是对已有掩码方式的改进。原始版本的BERT采用的是随机mask,这个大家应该都比较清楚。这种mask方式针对的是token,而众所周知token是由单词通过wordpiece tokenizer分割而来。所以这种方式遮盖住的可能是单词的一个部分,学习这种类似看三个字母猜剩下四个字母的任务不是很符合大家的直觉。随后就诞生了更加符合人类认知的Whole Word Masking,这个方法就是说要遮就遮整个词。这里用一个网上的例子帮大家理解

InputText:themanjumpedup,puthisbasketonphil##am##mon'shead OriginalMaskedInput:[MASK]man[MASK]up,puthis[MASK]onphil[MASK]##mon'shead WholeWordMaskedInput:theman[MASK]up,puthisbasketon[MASK][MASK][MASK]'shead

philammon是一个词,他会被tokenizer分解成三个token,这时就体现了普通mask和WWM的区别。

怎么继续改进遮盖方法呢,一个比较直观的方向是继续提高遮盖的整体性。前面是从token走到了word,可以继续往前走一步到phrase。这个方向其实之前有人做了,比如SpanBert[2]随机mask一小段,ERNIE[3]mask实体等等。这篇论文做了两个工作,一个是进一步提升遮盖phrase的质量,用了一种叫AutoPhrase[4]的方法来构建高质量的电商短语集合;第二个是设计了一套自适应机制,让模型训练在词语遮盖和短语遮盖间切换,两个方面合在一起就叫做AHM。

AHM总体的流程如下图所示。对于一句输入,首先用两种方式进行mask,左边是常规word mask,右边是phrase mask,然后输入到BERT,分别得到MLM的loss,Lw和Lp。然后用一个函数f,根据两个loss计算变量,跟预设的超参数进行比较,如果就用word masking,反之就用phrase masking。的计算其实可以有很多方法,论文也没有在这块做对比实验,我也就不展开,大家有兴趣可以去看原文。

AHM总体流程

NPR

NPR是个比较有意思的部分,直观的解释是希望能通过一个商品重建出另一个相似商品的隐空间表示。具体的做法是把两个商品a和b的文本内容送进Bert,得到各自的embedding矩阵;然后对这两个句子做交叉注意力,得到注意力矩阵,然后用注意力矩阵加权a的embedding得到重构后的b的embedding,反过来也从b重构a。得到重构后的embedding后再和原embedding计算距离作为loss,论文采用的是欧氏距离。只做相似商品重构还不够,论文还引入了不相似商品(随机采样)作为负样本,采用triplet loss来计算最终的重构损失。

NPR示意图

效果

论文的实验和结果比较部分做的比较全面。

先介绍一下对照实验涉及的模型。baseline是裸BERT(BERT Raw),用电商数据finetune过的Bert外加SpanBERT作为对照组,finetune有两种方法,分别是word masking的Bert和phrase masking的Bert-NP。实验组是各种配置的E-Bert,包括只使用phrase masking的E-Bert-DP,使用AHM的E-Bert-AHM和AHM+NPR的E-Bert。

评估效果使用了4个电商场景场景的下游任务,Review-based Question Answering(基于评论的问答),Review Aspect Extraction(评论方面抽取?),Review Aspect Sentiment Classification(评论情感分类)和Product Classification(商品类别分类)。

不同模型在不同任务上的结果如下图

模型结果比较

从结果可以看出E-BERT在各种任务上都大幅领先裸BERT,甚至也大幅领先基于领域语料预训练过的BERT。文章的方法其实可以在任何的垂直领域中使用,可以说相当的实用。

最近一个讨论比较多的问题是在BERT时代,NLP算法工程师的价值是什么?我想这个结果可以从一个侧面给答案,知道如何在模型中引入行业先验知识是可以大大提高模型在特定场景的表现的,即使如BERT这样自身很强的超级模型也不例外。

参考资料

[1]

E-BERT: Adapting BERT to E-commerce with Adaptive Hybrid Masking and Neighbor Product Reconstruction: https://arxiv.org/pdf/2009.02835

[2]

SpanBERT: Improving Pre-training by Representing and Predicting Spans: http://arxiv.org/abs/1907.10529

[3]

ERNIE: Enhanced Language Representation with Informative Entities: http://arxiv.org/abs/1905.07129

[4]

AutoPhrase: https://github.com/shangjingbo1226/AutoPhrase

责任编辑:xj

原文标题:E-BERT: 电商领域语言模型优化实践

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 语言模型
    +关注

    关注

    0

    文章

    487

    浏览量

    10201
  • AHM
    AHM
    +关注

    关注

    0

    文章

    2

    浏览量

    7480
  • nlp
    nlp
    +关注

    关注

    1

    文章

    481

    浏览量

    21932

原文标题:E-BERT: 电商领域语言模型优化实践

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TAS58xx系列通用指南

    电子发烧友网站提供《TAS58xx系列通用指南.pdf》资料免费下载
    发表于 09-14 10:49 0次下载
    TAS58xx系列通用<b class='flag-5'>调</b><b class='flag-5'>优</b>指南

    AM6xA ISP指南

    电子发烧友网站提供《AM6xA ISP指南.pdf》资料免费下载
    发表于 09-07 09:52 0次下载
    AM6xA ISP<b class='flag-5'>调</b><b class='flag-5'>优</b>指南

    如何进行TI PCIe Gen5转接驱动器

    电子发烧友网站提供《如何进行TI PCIe Gen5转接驱动器.pdf》资料免费下载
    发表于 09-03 11:31 0次下载
    如何进行TI PCIe Gen5转接驱动器<b class='flag-5'>调</b><b class='flag-5'>优</b>

    OSPI控制器PHY算法

    电子发烧友网站提供《OSPI控制器PHY算法.pdf》资料免费下载
    发表于 08-30 11:12 0次下载
    OSPI控制器PHY<b class='flag-5'>调</b><b class='flag-5'>优</b>算法

    深度解析JVM实践应用

    Tomcat自身的针对conf/server.xml中的几个参数的设置。首先是对这几个参数的含义要有深刻而清楚的理解。
    的头像 发表于 04-01 10:24 338次阅读
    深度解析JVM<b class='flag-5'>调</b><b class='flag-5'>优</b>实践应用

    鸿蒙开发实战:【性能组件】

    性能组件包含系统和应用框架,旨在为开发者提供一套性能平台,可以用来分析内存、性能等问
    的头像 发表于 03-13 15:12 301次阅读
    鸿蒙开发实战:【性能<b class='flag-5'>调</b><b class='flag-5'>优</b>组件】

    无刷电机谐波怎么 无刷电机为什么要

    无刷电机谐波怎么 无刷电机为什么要  无刷电机谐波调节原理详解 无刷电机是一种通过电子调速器来控制电机转速的电机。它由三个电子组成:无刷
    的头像 发表于 12-20 16:00 1684次阅读

    jvm工具有哪些

    JVM是提高Java应用程序性能的重要手段,而JVM工具则是辅助开发人员进行工作的利
    的头像 发表于 12-05 11:44 909次阅读

    jvm常用命令

    JVM是提升Java应用性能的一个重要方面,通过合理设置JVM参数可以达到优化应用性能、提高系统稳定性的目的。本文将为你详细介绍JVM常用的一些命令和技巧。 一、垃圾回收相关参
    的头像 发表于 12-05 11:43 570次阅读

    jvm主要是哪里

    JVM主要涉及内存管理、垃圾回收、线程管理与锁优化等方面。下面将详细介绍每个方面的技术和策略以及如何进行优化。 内存管理 JVM的内存管理主要包括堆内存、栈内存和非堆内存。堆内
    的头像 发表于 12-05 11:37 1306次阅读

    jvm参数的设置和jvm

    JVM(Java虚拟机)参数的设置和对于提高Java应用程序的性能和稳定性非常重要。在本文中,我们将详细介绍JVM参数的设置和方法。 一、JVM参数的设置 内存参数: -Xms
    的头像 发表于 12-05 11:36 1009次阅读

    jvm参数

    JVM(Java虚拟机)是Java程序的运行环境,它负责解释Java字节码并执行相应的指令。为了提高应用程序的性能和稳定性,我们可以JVM的参数。 JVM主要涉及到堆内存、垃圾
    的头像 发表于 12-05 11:29 517次阅读

    什么场景需要jvm

    JVM是指对Java虚拟机进行性能优化和资源管理,以提高应用程序的运行效率和吞吐量。JVM场景有很多,下面将详细介绍各种不同的
    的头像 发表于 12-05 11:14 1044次阅读

    javajvm有几种方法

    JVM是Java应用程序性能优化过程中的重要步骤,它通过针对JVM进行优化来提高应用程序的性能和可靠性。JVM可以根据具体的
    的头像 发表于 12-05 11:11 1824次阅读

    HarmonyOS NEXT工具Smart Perf Host高效使用指南

    Perf Host场景分析模版提供整机CPU调度分析模板以及内存场景分析,在CPU调度分析模板中,可做到自动分析CPU调度数据,并协助发现CPU调度瓶颈。 具体操作过程首先开发
    发表于 11-09 08:35