中文文本分类—Bert理论与实践
一、概念介绍
Bert(Bidirectional Encoder Representations from Transformers)作为一个Word2Vec的替代者,其在NLP领域的11个方向大幅刷新了精度,可以说是近年来自残差网络最具突破性的一项技术了。Bert的本质上是通过在海量的语料的基础上运行自监督学习方法给单词学习一个好的特征表示,我们可以直接使用Bert的特征表示作为该任务的词嵌入特征。所以Bert提供的是一个供其它任务迁移学习的模型,该模型可以根据任务微调或者固定之后作为特征提取器。
二、网络结构
Bert[1]的网络架构使用的是[2]中提出的多层Transformer结构,其最大的特点是抛弃了传统的RNN和CNN,通过Attention机制将任意位置的两个单词的距离转换成1,有效的解决了NLP中棘手的长期依赖问题。Bert的网络结构如下图。
其中的一个Trm模块使用了Transformer的编码器结构,如下图,其中左侧部分是一个编码器,由Multi-Head Attention和一个全连接组成,用于将输入语料转化成特征向量。右侧部分是解码器,其输入为编码器的输出以及已经预测的结果,由Masked Multi-Head Attention, Multi-Head Attention以及一个全连接组成,用于输出最后结果的条件概率。
Bert提供了两个模型,对应的超参数分别为:
其中L表示网络的层数,即Transformer blocks个数,H表示隐藏层大小,A表示self-Attention的数量。
三、Bert在ModelArts上的实践
可以订阅ModelArts的Bert算法来入门和熟悉Bert在中文文本分类中的使用流程。
3.1 准备数据集
可以在AI Gallery的“算法”中搜索“bert”,点击“中文文本分类-Bert”。
可以选择Bert适用的数据集,如“中文语句情感分类(manifest)”。
点击“下载”。
填写数据集在OBS桶内下载的目标位置。
选择“数据管理”中的“数据集”,点击“创建数据集”。
创建数据集,注意此时“数据输入位置”和“数据输出位置”均选择空的文件夹。
进入新创建的数据集,点击右上角“导入”,在“对象存储服务(OBS)目录位置”填写刚才数据下载的位置。
导入完成后,点击右上角的“发布”,填写训练验证比例为0.8。
3.2 订阅ResNeSt算法
在算法内选择“中文文本分类-Bert”。
点击“订阅”并进入控制台。
3.3 训练Bert模型
进入控制台后可以选择目前最新的算法版本点击“创建训练作业”。
创建训练作业后只需要填写数据输入和模型输出train_url,超参数据可以选择默认值,也可以根据实际情况修改,创建完毕后点击“提交”。超参数据说明可参考:https://marketplace.huaweicloud.com/markets/aihub/modelhub/detail/?id=bce58703-4a50-451f-a262-eff9aa8d640c
训练完成后可以查看该训练作业的配置信息、日志、资源占用情况和评估结果。
3.4 在线推理部署
点击“创建模型”。
选择“从训练中选择”-“训练作业”后就能根据已经训练好的训练作业来导入模型。
选择刚才训练好的训练作业来导入模型,点击“立即创建”。模型导入完成后选择在线服务中的部署。
选择导入的模型做推理服务。
等推理部署成功后,可以输入str参数进行预测。
四、参考文献
[1] Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
[2]Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. arXiv preprint arXiv:1706.03762, 2017.
[3]大师兄, 词向量之BERT. https://zhuanlan.zhihu.com/p/48612853
- 点赞
- 收藏
- 关注作者
评论(0)