Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >E-BERT,电商领域语言模型优化实践

E-BERT,电商领域语言模型优化实践

作者头像
朴素人工智能
发布于 2020-09-23 02:43:14
发布于 2020-09-23 02:43:14
1.5K00
代码可运行
举报
文章被收录于专栏:朴素人工智能朴素人工智能
运行总次数:0
代码可运行

最近跟几个做电商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,这个方法就是说要遮就遮整个词。这里用一个网上的例子帮大家理解

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Input Text: the man jumped up , put his basket on phil ##am ##mon ' s head
Original Masked Input: [MASK] man [MASK] up , put his [MASK] on phil [MASK] ##mon ' s head
Whole Word Masked Input: the man [MASK] up , put his basket on [MASK] [MASK] [MASK] ' s head

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计算变量

α

,跟预设的超参数

r

进行比较,如果

r<α

就用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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 朴素人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
超量化合物库筛选策略–P5(初步终结篇)
我也应该搞个什么,‘百亿级别的化合物筛选策略’来搞搞噱头hhh,不过其实也就是一个探索超量级别化学空间的方法,星辰大海哪有10的60次方多。
DrugScience
2022/07/27
7270
超量化合物库筛选策略–P5(初步终结篇)
LeDock的安装与使用
参考微信公众号:MoleDesign药物设计 http://bioms.org/forum.php?mod=viewthread&tid=1227#lastpost(ledock论坛) 1,下载安装文
Azur1
2021/09/15
2.4K1
DOCK-5-对接
创建文件dock.in 参数详解: http://dock.compbio.ucsf.edu/DOCK_6/tutorials/ligand_sampling_dock/ligand_sampling_dock.html 格式为:
DrugScience
2021/02/04
5940
使用Discovery Studio执行分子对接LibDock
分子对接是把配体分子放在受体活性位点位置,找到配体-蛋白之间有利的结合模式。Libdock分子对接速度快,但是精度低,常用于从小分子数据库里筛选出与蛋白活性位点匹配的小分子。Libdock得出的结合模式需由MD模拟或其他方法进一步验证合理性。此外,Libdock得到的配体-蛋白复合物可作为MD模拟的起点结构。
用户7592569
2020/07/27
12.3K1
使用Discovery Studio执行分子对接LibDock
分子对接简明教程 (一)
分子对接(Molecular Docking)理论 所谓分子对接就是两个或多个分子之间通过几何匹配和能量匹配相互识别找到最佳匹配模式的过程。分子对接对酶学研究和药物设计中有重要的应用意义。 分子对接计算是在受体活性位点区域通过空间结构互补和能量最小化原则来搜寻配体与受体是否能产生相互作用以及它们之间的最佳结合模式。分子对接的思想起源于Fisher E的”钥匙和锁模型”,主要强调的是空间形状的匹配。但配体和受体的识别要比这个模型更加复杂。首先,配体和受体在对接过程中会由于相互适应而产生构象的变化。其次,分子对
生信宝典
2018/02/05
16.1K0
分子对接简明教程 (一)
分子对接—蛋白分子和小分子配体
将前两步获得的rep.pdb,lig.mol2文件复制到AutoDock的工作目录中
sheldor没耳朵
2024/11/30
9502
分子对接—蛋白分子和小分子配体
Vina 1.2.0 --一次10年的更新
Vina 作为使用最广的对接软件之一,上一版本的 Vina 1.1.2 发布于 2010 年,已经有 10 年没有更新,最近终于更新了新版本,来尝尝鲜。vina 是一个有简单的评分函数和快速梯度优化构象搜索的分子对接程序,由 Dr. Oleg Trott 所创造,目前由 The Scripps Research Institute 的 Forli Lab 所维护。
DrugScience
2021/08/19
1.9K0
分子对接简明教程 (三)
Docking非原生配体 在前面的例子中,AutoDock Vina能把配体构象调整到几乎原生的构象,验证了这一预测方法的准确度。下面,我们尝试docking另外一个配体药物nelfinavir奈非那韦,来展示如何寻找小分子在蛋白内的结合位点。这个过程可以进一步地凝练和扩展作为“虚拟筛选(virtual screening)”的步骤。 重复上述步骤执行docking 获取nelfinavir.pdb:为教程提供的pdb文件(可从1OHR.pdb获得) 按照上述步骤对配体文件进行预处理获得pdbqt格式文件。
生信宝典
2018/02/05
5.9K0
分子对接简明教程 (三)
分子对接教程 | (5) 配体小分子的预处理
同样的,打开小分子文件。我前面准备了2个格式的文件,选择其中一个,这里我选择了mol2格式的。
DoubleHelix
2021/02/26
5.9K0
利用AutoDock进行水分子参与的分子对接
水分子在配体-蛋白质相互作用中的作用至关重要,AutoDock开发小组的研究人员设计了一种新的力场,可以优化水分子参与的分子对接,使得AutoDock程序能够自动预测水分子介导的配体蛋白结合方式,该力场考虑了离散水分子对配体结合的熵和焓贡献,提高了能量估算精度和对接性能。该方法无需事先知道蛋白与水分子的水合状态,在基于结构的药物发现过程中具有较大的应用价值。本文对AutoDock的水合对接方法的精度进行了总结,并且提供了如何利用最新版AutoDock进行水分子参与的分子对接教程。
智药邦
2022/04/13
1.5K0
利用AutoDock进行水分子参与的分子对接
分子对接教程 | (6) AutoDock对接操作与对接结果解读
接下来你可以按照下图设置显示形式,颜色按照前面的倒三角形里面选择显示二级结构,通过链显示颜色。
DoubleHelix
2021/02/26
20.4K3
AutoDock分子对接实战
For this tutorial, the ADFR software suite, providing a number of software tools for automated docking and peripheral tasks, and the Python package meeko, for preparing ligands for example, are necessary.
生信探索
2023/04/10
9150
Nat. Comput. Sci.|KarmaDock:针对超大规模虚拟筛选的基于深度学习的分子对接方法
本文介绍一篇来自浙江大学侯廷军教授、谢昌谕教授、潘培辰研究员和之江实验室陈广勇研究员团队联合发表的关于分子对接方法的论文。该文章提出了一种基于深度学习的分子对接模型,KarmaDock,可以快速且准确的预测蛋白配体结合构象及其结合强度。该方法通过混合密度函数学习蛋白配体间最优距离分布用于结合强度打分,并将其作为归纳偏置,利用融合自注意力机制的EGNN模型来迭代更新分子坐标从而预测蛋白配体间结合构象。KarmaDock跳过了传统分子对接软件的构象搜索阶段,极大提升了分子对接的速度(0.017 s/complex),适用于超大规模的虚拟筛选。
DrugAI
2023/09/23
1.8K0
Nat. Comput. Sci.|KarmaDock:针对超大规模虚拟筛选的基于深度学习的分子对接方法
Nat. Mach. Intell.|从虚拟筛选角度评估AI驱动的分子对接方法
本文介绍一篇来自浙江大学侯廷军教授和康玉副教授团队联合碳硅智慧发表的论文。该论文构建了一个全面的虚拟筛选(VS)数据集VSDS-vd,并系统评估了多种AI驱动的分子对接方法和传统的基于物理原理的对接方法在VS中的表现。评估结果显示,尽管AI对接方法在生成对接构象的物理合理性方面存在不足,特别是蛋白-配体间易出现立体冲突,且现有配体后处理方法未能有效缓解这一问题,但AI对接方法在VS中仍然展现出巨大潜力。基于评估结果,作者创造性地提出了一种层级式VS策略,该策略在筛选速度和精度两方面实现了动态平衡,为大规模药物筛选应用提供了极具前景的新途径。
DrugAI
2025/02/18
3310
Nat. Mach. Intell.|从虚拟筛选角度评估AI驱动的分子对接方法
榕树集–大规模分子对接指南
基于结构的大型化合物库对接筛选已经成为早期药物的常见方法。随着计算资源的增加和化合物库的扩大,对数亿甚至数十亿化合物进行筛选已经成为中小规模计算机集群的可行选择。在这里,作者概述了大规模对接之前进行靶点对接参数的评估策略,以及给予了一个基于褪黑素受体筛选的实例,获得的化合物活性在subnanomolar范围。并且提供了一些额外的参考因素用于确保hits的特异活性。虽然本文使用DOCK3.7进行对接,但是提供的策略和建议对于其余的对接软件也是适用的。
DrugScience
2023/11/22
4270
榕树集–大规模分子对接指南
autodock分子对接结果分析_分子对接公司
自己寻找一个受体+药物分子复合物体系(不同配体结合3-4个),然后拿复合物结构作为起始,做对接实验。 软件自选,Dock, AutoDock…
全栈程序员站长
2022/10/01
3K0
autodock分子对接结果分析_分子对接公司
分子对接与量子计算
高斯玻色子采样器是光子量子器件,具有解决一些经典系统较难处理问题的能力。 在这里,作者展示了高斯玻色子采样器可用于分子对接,这一药物设计领域的核心问题。作者开发了一种方法,将问题简化为在图中找到最大加权团,并表明高斯玻色子采样器可以编程为对最大团进行采样。为了对我们的方法进行基准测试,我们预测了配体与肿瘤坏死因子 -α 转化酶与其配体的结合模式。
DrugScience
2021/10/26
1.7K0
Briefings in Bioinformatics | 一种提高蛋白质-小分子对接和筛选准确性的评分函数
近日,深圳先进院-上海智峪生科-深圳超算-南洋理工联合团队在《Briefings in Bioinformatics》(影响因子IF=11.622)上发表了题为“Improving protein–ligand docking and screening accuracies by incorporating a scoring function correction term”的论文。该论文提供了一种新的蛋白质-小分子对接评分函数的设计思路,即结合对小分子对接构象的偏差估计作为传统评分函数的修正项,可以显著提升分子对接和筛选的精度,对于小分子药物设计和筛选有着重要意义。本文通讯作者是南洋理工大学慕宇光教授和深圳先进技术研究院魏彦杰研究员,第一作者是郑良振博士(智峪生科小分子算法负责人、深圳先进院联合培养博士后)。
DrugAI
2022/04/19
1.2K0
Briefings in Bioinformatics | 一种提高蛋白质-小分子对接和筛选准确性的评分函数
分子对接软件-Vina(作为Chimera插件使用)
简介: 使用Chimera进行vina的对接,本来是想使用,ADT或者pymol进行vina的对接,结果ADT的界面太丑(严重影响了我的心情?),中间还可能莫名的发生某些错误,而Pymol的第三方插件
DrugScience
2021/02/04
4.1K0
分子对接软件-Vina(作为Chimera插件使用)
蛋白组学—两个蛋白质之间的分子对接
首先在https://www.uniprot.org/中搜索相关基因,如VTN,选择对应的种属,点击Entry编号,uniprot中可以直接跳转PDB数据库https://www.rcsb.org/(也可以复制编号,直接去PDB数据库中去检索),同理下载SLPI的最佳蛋白质结构。
sheldor没耳朵
2024/11/06
2.7K3
蛋白组学—两个蛋白质之间的分子对接
推荐阅读
相关推荐
超量化合物库筛选策略–P5(初步终结篇)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验