算法实践|绝对语义识别挑战大赛方案分享
点击「京东数科技术说」可快速关注
「摘要」本文将基于决赛答辩PPT中的内容,给出此次比赛的完整方案,主要从特征设计理念、建模核心思路、算法核心思想等角度阐述,同时对相关细节进行了适当的拓展讲解。涉及Attention、Capsule、Bi-GRU和BERT等算法及相关概念。
1
赛 题 背 景
语义识别是自然语言处理(NLP)技术的重要组成部分之一,其应用场景广泛、市场潜力和经济价值巨大,为当下炙手可热的领域。
语义识别的核心除了理解文本词汇的含义,还要理解这个词语在语句、篇章等具体语境中所代表的意思,通过赛题“绝对语义识别”将减少商品宣传中用语错误,将合适的广告内容推送给消费者,促成广告效益最大化。
注意:绝对语和语境词的区分,其中语境词是指表达个人情感、意愿的词语。
例如1:“每一次选择都是对生活最好的期待”表达的是个人感情,广告宣传语不违规;
例如2:“本车贴使用了最好的反光材料”指向的是自己销售的商品,广告宣传语违规。
比赛地址链接:
http://jdata.inner.jd.com/html/detail.html?id=10 (复制网址内网打开)
2
赛 题 介 绍
2.1 赛题数据
训练数据为8万句广告宣传语,其中约3.5万句为违反广告法的使用绝对化用语(label=1),约4.5万句不违反(label=0)
2.2 赛题目标
预测广告宣传语是否违规。
2.3 评价指标
本赛题采用F-SCORE值进行衡量:
其中:Precision为准确率,Recall为召回率, β=1;
3
算法核心设计思想
3.1 算法架构设计
特征工程设计理念
基于传统机器学习的词频方式提取词组的上下文特征,作为对“绝对语”的特征表达;同时,基于深度学习方法的词向量特征,捕捉“语境词”的特征表达,并利用字级别和词级别两种方式对词向量表达的完整性进行相互补充构建;引入语境词向量的BERT编码方式,进一步捕捉文本的真实表达。
特征工程实现方法
词频方式:TF-IDF ,同过词频方式,提取词组的上下文特征;
词的向量方式: 考虑字级别和词级别两种方法同时使用Word2Vec 和GloVe两种方法。将所有词组成一个词表,得到word2index字典和index2word字典;将词映射为index,并且进行padding,然后通过词对应的index对词向量矩阵进行Lookup,得到当前文本对应的word2vec;
语境词向量方式:利用BERT-Base, Chinese: Chinese Simplified and Traditional, 12-layer, 768-hidden, 12-heads, 110M parameters 中文预训练词向量。
算法核心设计理念
基于词频TF-IDF特征使用传统的LR、LightGBM和Xgboost模型,利用Ngram上下文特征进行广告宣传语的违规预测,构建“绝对语体系”模型;
基于词向量方式,构建TextNN网络,同时利用BiGRU等序列模型构建“横向序列体系”和利用Capsule构建“空间向量体系”,由两个维度丰富模型对绝对语境的捕捉能力。
3.2 Attention机制
当序列越长时,RNN在捕捉序列长期依赖关系时就显得越弱。而从分析attention函数我们可以发现,Attention是将进行序列的每一个元素与其他元素的对比,在这个过程中每一个元素间的距离都是1。因此,我们在BI-GRU和Bi-LSTM模型中引入attention机制,去灵活的捕捉全局和局部的联系。
3.3 Capsule TextNN
Capsule是通过向量的方式来建模,它利用向量输出代替标量输出,捕捉空间结构信息,最初由深度学习之父hinton提出应用在图像领域。由于NLP是通过词的向量的方式构建的,所以Capsule方式在NLP领域有着得天独厚的优势,在这个比赛中,我们将Capsule方式由图像领域迁移到了NLP领域,并进行了应用与实践。因为Capsule本质上是一种并行注意力模型,能把信息提取的注意力集中到下一层更加活跃的Capsule,同时忽略掉那些不活跃的。所以,我们将RNN的输出作为low-level Capsule,同时通过动态路由的方式构建高层语义表征得到high-level Capsule,得到的空间特征作为后续Dense层的输入。
比赛中使用的Capsule TextNN参考自何从庆同学的Capsule TextModels,不同点在于对原有模型根据赛题需要做了一些简化,完整版可以参考:
https://github.com/hecongqing/2018-daguan-competition (复制网址打开)
3.4 优化器改进
为了避免L2的作用受到优化器和learning rate的影响,重写了Keras的Adam函数,将L2加到优化器作用之后,使其与learning rate完全脱钩,避免Adam的自适应归一化和alpha抵消了L2带来的weight decay的作用。同时,将第1个epoch使用warmup,第2个epoch将学习率降到最低。
3.5 BERT
BERT作为横扫NLP各项任务的一个大杀器,在本次比赛中我也做了相应的应用。
BERT与最近的其他语言表示模型不同,BERT旨在通过联合调节所有层中的上下文来预先训练深度双向表示。因此,用12层Transformer捕捉全局语义信息,通过next perdiction 预测下句话,可以构建上下文的语境词向量。预训练的BERT表示可以通过一个额外的输出层进行微调,适用于广泛任务的最先进模型的构建。
在此次比赛中,使用了最大池化作为12层Transformer后的输出层,意在通过提取最具模型表达的特征进行广告宣传语的违规预测。
在此次比赛的决赛答辩中,有些选手提出BERT模型在使用时,不如Bi-LSTM效果好,其原因大概有两种:
一是BERT模型的使用在训练过程中未收敛;
二是直接套用原始模型,而未针对该实际问题进行相应的优化和参数调整。
4
结 果 分 析
通过对“算法核心设计思想”的介绍可能让你对模型内部到底是怎么运作的有个大概理解,但深度学习模型的难解释性和抽象性仍会让人在实际场景中无法具象表达,因此将模型权重具象到词上,并做可视化输出后我们发现,模型对“绝对语”的判断与识别具有良好的效果。同时,如图中红绿不同程度的颜色表示,我们可以发现在不同语序下“语境词”的表达强弱也各有差别。
例如,第一个广告宣传语描述中的“独有”一词,从“绝对语”角度就可判断违规;而第二个广告宣传语描述中,“优质”、“更佳”、“品质”在其所在语境中并没有体现出虚假宣传和绝对语宣传等违规方式。
5
比赛经验总结
本次比赛中,使用的多模型融合方式相对简单,并没有使用Stacking、Blend等方式进行融合,而是只采用了投票形式。
除了以上介绍的算法模型优化带来的效果提升以外,还需要补充的一种有效的方式为数据增广(DataAugment),但由于在阶段B由于时间原因未使用该方法,因此上述表述中未作介绍。
6
有趣的发现
此次比赛中,还发现了一些有趣的点,在这里分享一下。
一是此次比赛AB两个阶段,我的解决方案是完全不同的,A阶段线上第二名的分数来自BERT+LR模型的,在原有BERT模型的基础上,利用BERT模型(语境词层面)和LR(绝对语层面)进行特征补充,完成对绝对语义的理解识别。
二是在数据增广的前提下,只利用TF-IDF+LR(绝对语层面)就能达到前3名的成绩。
写在最后的话
入职一年半,参加算法比赛的目的其实很简单,就是为了让自己保持一个良好的竞技状态和学习状态。同时,每次比赛又是一个不断审视、总结自己的过程。无论是结构化数据、自然语言处理领域还是图像领域,欢迎志同道合的小伙伴一起分享探讨,共同进步。
有兴趣的朋友可以直接通过以下链接了解其他团队的决赛答辩情况。
决赛答辩视频:
https://h5.m.jd.com/dev/3pbY8ZuCx4ML99uttZKLHC2QcAMn/live.html?id=393636 (复制网址内网打开)
参考论文
[1] Devlin J , Chang M W , Lee K , et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[J]. 2018.
[2] Loshchilov I , Hutter F . Fixing Weight Decay Regularization in Adam[J]. 2017.
[3] Raffel C, Ellis D P W. Feed-forward networks with attention can solve some long-term memory problems[J]. arXiv preprint, 2015.
[4] Zhao, W. , Ye, J. , Yang, M. , Lei, Z. , Zhang, S. , & Zhao, Z. . (2018). Investigating capsule networks with dynamic routing for text classification.
[5] Congqing He, Li Peng, Yuquan Le, Jiawei He, and Xiangyu
Zhu. 2019. Secaps: A sequence enhanced capsule model for charge prediction. In International Conference on Artificial Neural Networks.
Springer.
京东数科技术说&技术课堂
▼▼▼
由京东数科-数字技术中心策划组织
倡导“原创·实用·技术·专业”
致力于分享技术领域实战经验与技术干货
线上订阅“京东数科技术说”,线下聆听“技术课堂”
为加强技术分享、总结沉淀,提升数科技术影响力而搭建的
线上线下融合交流平台
咨询、建议、合作请联系:
刘嘉璐(liujialu)/张明瑛(zhangmingying3)
长按识别二维码关注我们