首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >BERT+Biaffine结构中文NLP地址要素解析

BERT+Biaffine结构中文NLP地址要素解析

作者头像
机器学习AI算法工程
发布2022-04-29 13:41:30
发布2022-04-29 13:41:30
3.8K0
举报

向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程   公众号:datayx

人类的活动离不开位置,从空间上可以表征为坐标,从文本上表征为通讯地址。通讯地址广泛存在于电商物流、政府登记、金融交通等领域。对通讯地址的分析、聚合服务已经是一项重要基础服务,支撑着诸多互联网场景,比如地图搜索、电商物流分析等。实际应用中,地址文本存在写法自由、缺省别名多、地域性强等特点,对地址的解析、归一和匹配等都造成困难。针对这些难点,阿里达摩院机器智能技术团队联合CCKS2021大会举办此次地址评测任务。该评测包含2个子任务,分别是:中文地址要素解析、地址文本相关性。

地址要素解析是将地址文本拆分成独立语义的要素,并对这些要素进行类型识别的过程。地址文本相关性主要是衡量地址间的相似程度。

评测指标: 通过将输出结果与人工标注的集合进行比较来分别计算每一种元素准确率(Precision),召回率(Recall)和F-1分值(F-1 score),并采用Micro-F1作为最终排名指标。

数据情况

1,文本长度

99%的文本长度不超过32个字符

2,不存在实体嵌套的情况

3,训练集数量8000+,验证集1900+,测试集有5w

4,存在实体混淆的情况,比如poi、subpoi这些

5,存在明显的句式特点(主要的提分点)

解决方案

全部代码 、数据集 获取方式:

关注微信公众号 datayx  然后回复 地址解析 即可获取。

整体还是以预训练+finetune的思路,主要在模型结构、预训练、模型泛化能力提升、数据增强、融合、伪标签、后处理等方面做了优化。

模型

现在的实体识别方案很多,包括BERT+CRF的序列标注、基于Span的方法、基于MRC的方法,我这里使用的是基于BERT的Biaffine结构,直接预测文本构成的所有span的类别。相比单纯基于span预测和基于MRC的预测,Biaffine的结构可以同时考虑所有span之间的关系,从而提高预测的准确率。

Biaffine意思双仿射,如果W*X是单仿射的话,X*W*Y就是双仿射了。本质上就是输入一个长度为L的序列,预测一个L*L*C的tensor,预测每个span的类别信息。

具体来说参考了论文Named Entity Recognition as Dependency Parsing,

https://arxiv.org/abs/2005.07150

但是稍有区别:

  • 纯粹基于bert进行finetune,不利用fasttext、bert等做context embedding抽取,这也是为了简化模型
  • 不区分char word的embedding,默认就是char【中文的BERT基本都是char】
  • 原来的论文中有上下文的多句话,这里默认都是一句话【数据决定】
  • 同时改进了原有greedy的decoding方法,使用基于DAG的动态规划算法找到全局最优解

但是这种方法也有一些局限:

  • 对边界判断不是特别准
  • 有大量的负样本

原来我也实现过Biaffine-BERT-NER,但这里的版本优化了一些。

预训练

在比较了大部分开源的预训练模型后,哈工大的electra效果比较好,因此我们采用了electra的预训练方法。使用了本赛道的所有数据+赛道三的初赛所有数据,构建了预训练样本,分别继续预训练base和large的模型33K步【大概15个epoch】。

继续预训练模型可以提升1个百分点左右的效果,还是非常有效的。

泛化能力提升

这些应该是属于比较基本的操作了,主要包括:

  • 使用了对抗学习(FGM)的方法,但代价是训练速度慢了一倍
  • 在Dropout方面加入了spatial dropout和embedding dropout
  • 使用SWA的方法避免局部最优解

需要在验证集上调参找到比较合适的值。

数据增强

我们用到了开源的一份地址解析数据,来自《Neural Chinese Address Parsing》。参考赛道二的标注规范,使用规则将数据进行清洗,并用这份数据作为数据增强的语料。同时利用统计信息稍微优化了一下数据,即认为一个span如果被标注次数大于10,并且有一个类别占比不到10%且标注数量小于5就认为是不合理的并将其抛弃。

我们使用了同类型实体替换的方法进行数据增强,然后将预训练后的模型在这份数据上finetune。最后用赛道本身的数据进行二次finetune。初赛上,上面的流程走下来可以在dev上达到94.71,线上92.56。

融合

融合的提升非常明显。在融合上,我们使用了electra-base和electra-large两个模型,分别进行预训练和finetune,然后5-fold。

最后对实体进行投票,其中base权重1/3,large权重2/3,只选择投票结果大于3的实体作为最终结果。

初赛上,base单独5-fold融合为93.0,large单独5-fold融合为93.477。二者加权融合为93.537。

伪标签

在融合的基础上,我们进一步使用了伪标签,即将上面的融合后预测的测试集结果作为伪标签,重新训练了base模型的一个fold,再进行预测,最终线上可以到93.5920。后面我也实验了训练5-fold的模型,测试下来可以到93.6087。

后处理

我这边后处理比较简单,主要对特殊符号进行了处理,由于一些特殊符号在训练集没有见过,导致模型预测错误。对于包含特殊符号的实体,如果特殊符号是在实体的边界,那么直接去除特殊符号,保留原来的实体类型;如果不是,则去除这个实体。在伪标签结果的基础上加后处理,线上到93.6212。

机器学习算法AI大数据技术

 搜索公众号添加: datanlp

长按图片,识别二维码


阅读过本文的人还看了以下文章:

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

《深度学习:基于Keras的Python实践》PDF和代码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

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

本文分享自 机器学习AI算法工程 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案
    • 预训练
    • 泛化能力提升
    • 数据增强
    • 融合
    • 伪标签
    • 后处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档