知识计算作者京东零售数据中台原创

BERT模型在京东零售业务的应用实践

京东零售数据中台联合平台生态部、平台业务中心、时尚和电子文娱等事业群 ——携手利用知识计算平台-商品知识图谱赋能京东零售业务,提升商家和用户体验

背景

京东零售是全球最大零售商之一,涵盖线上、线下的实体、虚拟等多元化交易场景。目前每日有效商品数量约30亿,产生相关日志和内容已经达到PB级。在这些海量数据中,有诸多涉及自然语言处理计算机视觉的应用场合,通过算法和数据的驱动,给多场景的用户体验和交易提升带来巨大改善,由于BERT在文本处理任务上的优异表现,我们也将BERT模型在电商文本分类、商品标题的序列标注等任务进行探索,并将相关实践经验进行总结。

BERT模型简介

BERT[1] (Bidirectional Encoder Representation from Transformers) 是Google在2018年10月底公布的基于变换器(Transformer)[2]的深度双向编码文本表示模型,通过模型预训练+任务微调整的方式,在11项NLP基础任务中展现出了卓越的性能,故成为NLP领域大火、整个ML界略有耳闻的模型。BERT的出现,彻底改变了预训练词向量模型框架和下游具体NLP任务的关系,将下游NLP任务重心转移到上游的文本动态表示,通过进一步增加词向量模型泛化能力和动态表达能力,以达到充分描述字符级、词级、句子级甚至句间关系特征的目的。

BERT的整体框架如图1所示:模型架构基于多层双向变换器编码而非Bi-LSTM ,这样可使得模型拥有更深的层数、具有更好并行性。在预训练方法上,选择了Masked LM和Next Sentence Prediction两种损失函数分别捕捉词语和句子级别的语义和句法等特征。

BERT的输入部分是一个线性序列(如图2所示),两个句子之间通过分隔符(SEP)分割,最前面和最后增加两个标识符(CLS)。每个词语有三个Embedding:

① 词语Embedding:词语本身的Embedding;

② 句子Embedding: 由于训练数据都是由句子构成的,那么每个句子对应的句子Embedding给到该句中每个词;

③ 位置Embedding:每个词在该篇语料中对应的位置信息。

将语料中对应的上述三种Embedding叠加,即形成了BERT的输入。

图 2 BERT的输入序列

BERT相较于之前相关模型,其创新之处在于采取了新的预训练的目标函数增加句子级别的任务。前者中,利用随机遮蔽输入中的一些tokens,然后在预训练中通过对它们进行预测,可以让模型融合前后两个方向上的上下文来输出特征,在ELMO[3]的基础上,解决了由于模型层数的加深带来的“目标泄露”,或者叫 “自己预测自己”(“see itself”)的问题;后者中,由于句子与句子之间本不是孤立存在的,以及现存QA和NLI任务都需要对两个句子之间关系进行理解,这种理解方式超越了传统的语言模型。为了理解句子关系,通过预训练了一个“下一句预测”(“Next Sentence Prediction”)任务,也即随机替换一些句子,然后利用上一句进行IsNext/NotNext的预测以达到提取该类句子关系特征。

BERT预训练模型准备

在应用BERT模型之前,首先需要下载Google发布的现有的模型(如图3),下载链接:https://github.com/google-research/bert,如果是英文数据,建议使用第一个BERT-Base, Uncased模型,多语言数据可使用第5个BERT-Base, Multilingual Cased (New, recommended)模型,中文数据可使用最后一个BERT-Base, Chinese模型。

图 3 Google已发布的BERT模型

电商违禁文本检测

垃圾文本检测也称Spam检测。在电商领域,商品的评论是电商平台的最重要的数据之一,它是用户选购商品的重要参考对象。京东零售下的“评论”、“问答社区”、“京麦”、“京东便利店”等几大业务线每天都会产生大量的垃圾文本,它们严重影响了消费者的购物体验。对站内的垃圾文本类型进行梳理,发现了如下几类垃圾文本类型,比如涉黄、涉政、辱骂,广告语,无意义的凑字,还有古诗词、流行语等等

  • 古诗词:

  • 故事段子、流行语:

我们将上述垃圾文本识别当成一个文本分类任务来进行处理,通过训练得到的文本分类模型来实现每天的垃圾文本的检测、拦截!

我们标注了约1万条数据,标签1表示正常文本,标签2表示垃圾文本。Label1与Label2的比例大约是2:1。且其中80%条作为训练数据,20%条作为测试数据,在相同的数据集的条件下,基于BERT微调整训练的模型与基于FastText训练得到的模型相比:在2类(垃圾文本)识别上,在不牺牲精确率(precision =92%)的前提下召回率得到很大提升(recall:84%—>94%)。所以相应的,在1类(正常文本)识别上,在牺牲少量召回率的条件下,精确率率也得到提升91%—>97%。所以,基于BERT预训练、微调训练的方式,在数据量一定的条件下,可以将BERT训练模型已经学习到的有用的信息迁移到我们的任务中并且取得不错的效果。

基于FastText的检测模型效果(分词、去停用词等数据预处理):

Tab1. FastText的违禁文本检测


PrecisionRecallF1
1(正常文本)0.910.970.94
2(垃圾文本)0.920.840.88

基于BERT检测模型效果(预训练、微调整):

Tab2. 基于BERT的违禁文本检测


PrecisionRecallF1
1(正常文本)0.970.960.97
2(垃圾文本)0.920.940.93

用户社区情感分析建模

情感分类可以简单地理解为对文本表达的用户潜在情感倾向进行分类[3]。对文本情感的最简单划分方法是,将文本分为正向、负向和中性三类[4]。但是,为了进一步提升对用户情感的感知,我们常常会进行更细致地划分,比如把正向划分为一般正向和极正,负向分为一般负向和极负向,即为5级情感分类。除了对情感做简单的极性(Polarity)划分,还可以引入更细致的情感状态,比如“愤怒”,“悲伤”,“幸福”等[4]

用户评论(Customer Review)是用户对所购买商品或服务的使用体验的表述,是电商平台上一种重要的用户反馈形式[5]。对评论进行情感分类,能够帮助我们理解用户的使用体验,及时进行用户反馈,监控商品质量,辅助用户进行下单、购买和消费决策,最终改善用户体验和京东零售生态。因此,我们构建了评论的5级情感分类模型,将用户评论分为5类:极正、一般正向、中性、一般负向和极负向。目前的情感分类模型已经覆盖了零售的主要类目,支持的应用场景包括评价星级划分、标签生成、商品印象等(详见图8),其中绿色框中的是前台标签,蓝色框中的是评价星级划分;红色框中的是商品印象词条(未完全覆盖)。

图 8 情感分类的应用场景示意图

我们准备了约10万规模的数据,其中80%作为训练集、20%作为测试集,利用BERT(pre-training + fine-tuning)[1, 6]进行情感分类,最后的模型效果如表3:

Tab3. 评论分类模型效果,BERT (based-chinese) vs fasttext

模型F1
BERT (based-chinese)[6]90.7%
FastText [7]89.6%

通过表3,可以看到BERT模型的测试集f1值比FastText显著提升1.1%,具有更强的泛化能力。提高不及spam评论检测的原因是,情感分类数据量较大,基于BERT迁移学习效果就不再那么显著了。

商品类目错挂预测

京东零售的数据中,商家在上架商品时,需要选定该商品所属的类目,比如“家用电器”、“手机”等,但是有的商家可能不清楚每件商品所归属的具体类目,或者在选择类目时误操作等导致商品错挂在了其他的类目当中,这对用户选择商品、搜索、营销推广都造成了不好的影响,因此,能够根据商品标题进行类目的预测至关重要。

根据商品标题进行类目预测本质上是一个文本分类问题,根据商家填充的商品标题自动进行类目预测,可以在商家上架商品时进行类目推荐,也可以在存量数据中进行类目错挂的识别和整治。但是,有的类目之间区别区分度较差,比如“厨卫大电”和“厨房小电”之间并没有严格的界限,且类目繁多,因此,传统的文本分类算法效果不是很好。另外,商品标题大多较短,需要短文本建模知识,这也对文本分类造成了很大的难度。BERT模型在进行文本分类方面效果优异,操作简单,优势明显。

实验基于京东零售约20个类目共计3万条左右的商品标题数据,进行类目预测分类,80%作为训练集,20%作为测试集,最后的模型效果如表4:

Tab4. 类目预测分类模型效果,BERT (based-chinese) vs xgboost

模型F1
BERT (based-chinese)99.7%
XGBoost96.8%

从数据表现结果来看,在同样的情况下使用BERT-Base, Chinese模型比Xgboost精度提升3个点。除了模型差异外,也可能与抽取数据类型、数据样本大小也有关系。

商品长标题序列标注

在电商领域,商家为了提高销量、增大搜索命中率,常常会在一个商品标题中堆砌多个相关产品词或者偷换产品词。产品词堆砌一方面会对搜索准确性、场景化推荐等任务产生负面影响,进而影响用户体验。另一方面会在构建基础数据 (如商品知识图谱)时产生负例知识,故需要根据商品标题识别出核心产品词。举例如下:

对于该商品标题而言,核心产品词任务目标是需要将标题 “美佰(MEIBAI)手机键盘OPPOr15是用于安卓手机vivox20手机壳华为鼠标键盘保护套 粉红色+有线鼠标”中的手机键盘进行特殊标记。

基于3C电子部分类目的约3万数据集,我们按照7:2:1的比例,划分成训练集和验证集、测试集命名为train.csv, dev.csv, test.csv。数据实验结果如表5:

Tab5. 核心词抽取模型效果,BERT (based-chinese) 


PrecisionRecallF1
BERT0.94620.95420.9502
CRF0.79400.87860.8342

在给定类目上的实验表明,基于BERT预训练模型+微调的方法确实表现出了良好的效果。

总结及展望

本文将基于BERT的预训练模型应用于京东零售若干文本处理任务,如序列标注、分类排序等,通过数据测试实验验证了该算法在线上数据的良好效果。但是应用的领域不仅仅局限于上述说到的几个场景,后续本组在文本分类方面涉及的商品推荐文章分类以及序列标注方面的促销类违规检测、商品属性校验上也将陆续得以应用。同时也会尝试拓展到智能写作、自动摘要、自动问答和会话系统等其他重要领域。

另一方面,对于本组处理的实际问题而言,更大量更准确的数据集会更好的覆盖数据多样性以支持模型的训练,对模型预测的泛化能力和识别准确率会有进一步提升。

最后,该模型根据不同的应用背景参数调整的自适应化是一个潜在可能的研究方向,合理的参数配置在既定数据和模型基础上会得到更好的实验效果。

参考文献

[1] Jacob Devlin, Ming-Wei Chang, Kenton Lee and Kristina Toutanova. 2018. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805[cs.CL]

[2] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, pages 6000–6010.

[3] 宗成庆, 统计自然语言处理,第二版,2017

[4] 维基百科wiki,情感分析(sentiment analysis),https://en.wikipedia.org/wiki/Sentiment_analysis

[5] 维基百科wiki,用户评论(Customer review),https://en.wikipedia.org/wiki/Customer_review

[6] BERT源码,https://github.com/google-research/bert

[7] Joulin et.al. Bag of Tricks for Efficient Text Classification, Association for Computational Linguistics, 2017

京东零售产品技术是零售业务基石,包括技术与数据中台,搜索/推荐、广告和供应链等

专栏二维码
理论BERT知识图谱深度学习注意力机制自然语言处理语言模型无监督预训练
67
相关数据
华为机构

华为成立于1987年,是全球领先的ICT(信息与通信)基础设施和智能终端提供商。华为的主要业务分布在无线、网络、软件、服务器、云计算、人工智能与大数据、安全、智能终端等领域,发布了5G端到端解决方案、智简网络、软件平台、面向行业的云解决方案、EI企业智能平台、新一代FusionServer V5服务器、HUAWEI Mate等系列智能手机、麒麟系列AI芯片等产品。目前华为拥有18万员工,36所联合创新中心,14所研究院/所/室,业务遍及170多个国家和地区。

统计自然语言处理技术

基于概率统计领域的理论进行自然语言处理, see NLP

BERT技术

BERT是谷歌发布的基于双向 Transformer的大规模预训练语言模型,该预训练模型能高效抽取文本信息并应用于各种NLP任务,并刷新了 11 项 NLP 任务的当前最优性能记录。BERT的全称是基于Transformer的双向编码器表征,其中“双向”表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部分信息。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

自动摘要技术

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

京东机构

京东(股票代码:JD),中国自营式电商企业,创始人刘强东担任京东集团董事局主席兼首席执行官。旗下设有京东商城、京东金融、拍拍网、京东智能、O2O及海外事业部等。2013年正式获得虚拟运营商牌照。2014年5月在美国纳斯达克证券交易所正式挂牌上市。 2016年6月与沃尔玛达成深度战略合作,1号店并入京东。

👍
太棒了!
干货啊……不光有理论还有真正的应用实践!赞一个👍
理论结合实践,so nice
既有理论,又有实践,写的比较详实,文章不错。
厉害了
真棒,终于有一篇既能看懂,又能实践的文章了。学习了。👍