深度结合NLP领域最强大模型,赋能人力资本领域算法升级

本文主要是介绍深度结合NLP领域最强大模型,赋能人力资本领域算法升级,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

                             

                                                                        WHAT'S BERT ? 

 

BERT (Bidirectional Encoder Representations from Transformers),是google于2018年底提出的一个预训练语言模型,它通过无监督的方法对大规模的自然语言的语料进行学习,从中提取出人类语言的内在基本规律,辅助后续的自然语言理解的相关任务。

 

例如,对于一段文本:e成科技是HR+AI赛道的领跑者,在NLP领域有很多的技术积累。

 

用通俗的语言理解,BERT在学习的是以下两方面的能力:

 

1.当输入了“e成科技是一家HR+AI__的领跑者”的时候,模型要学习到填入”赛道”是最佳答案,而不是其他的任何的无关词。

 

2.当输入了“e成科技是HR+AI赛道的领跑者”的时候,模型要学习到”在NLP领域有很多的技术积累”是最佳的下一句,而不是其他的任何句子。

 

以上两方面的能力,可以理解为是人类语言的基本规律,那么当模型学习到这种规律之后,有什么用呢?

 

BERT的强大能力

以BERT模型为基础,通过fine tune的方式,可以在BERT已经习得的语言知识的基础上,快速构建对其他自然语言任务的学习和理解,相比于普通的模型,其中的增益主要体现在两个方面:

 

1.理解更深入。

由于已经在大量的自然语言中习得了基本的语言规律,当模型面临一个新的自然语言任务的时候,模型可以利用的知识就包含了已经习得的海量语言规律+新任务里的知识,使得模型能够更加深入新任务所表达的规律。

 

2.更少的样本依赖。

在BERT以前,凡是涉及自然语言理解的任务,需要少则数万,多则数十万的训练样本,才能达到一个基本的效果,而训练样本不是自然就有的,大多需要人工标注。BERT出现之后,BERT可以基于已经习得的语言规律,更好的利用样本,使依赖的标注数量降低至少一个量级,极大加快模型的理解速度。

 

 

                                      

                                                                            BERT原理和BERT升级

 

BERT自2018年底诞生后,在业界和学术界迅速激起一层研究热潮,不断的出现以BERT为基础的改良模型,这其中典型的中文模型代表包括来自哈工大的bert_wwm以及来自百度的 ernie模型。下面我们将简单介绍BERT-base\BERT_wwm\ernie模型的基本原理。

 

BERT-base

 

BERT综合考虑了以往语言模型(例如ELMo\GPT)的缺点,基本组件使用Transformer模块,并将单向的语言模型改进成双向模型,其结构如图1所示。

 

图1 BERT: Bidirectional EncoderRepresentations from Transformers

 

BERT所提出的双向预训练模型提出了两个预训练目标,分别是Masked Language Model(MLM)和Next Sentence Prediction(NSP)。MLM随机选取15%的词进行掩码,被选中的词中,80%的词用[MASK]标记替代,10%的情况用随机挑选的词替代,另外10%的情况维持不变。由于在使用预训练模型时,输入的文本不会有[MASK]标记,因此采用这种掩码机制可以有效避免模型误以为目标词预测是针对[MASK]标记的,从而在下游任务中也能有效预测目标词。因此,BERT相关的模型又被称为掩码语言模型(MLM)。下一句预测(NSP)任务在预训练过程中,按50%的概率选择实际输入中当前句子的下一个句子,并标为IsNext标签,另外50%的情况随机从语料中选择一个句子拼接在当前句子后,并标为NotNext标签。预训练模型同时优化[MASK]目标词预测及下一句预测的目标。

 

在下游任务的改造方面,类似于GPT,BERT也针对不同任务提出了不同构造输入的方式,包括句子关系分类、文本分类、阅读理解及序列标注,构造方法如图所示。对输入只有一个句子的情况,直接添加[CLS]字符,对有两个句子的情况,将句子通过分隔符拼接再添加[CLS]字符。每种任务的输入都由三个部分组成,每个单词的向量表示(Token Embedding),句子的向量表示(Segment Embedding,用于区分输入的不同句子)及位置向量表示(Position Embedding)。

 

BERT提供了基于字符mask机制的中文预训练模型BERT-Base, Chinese。而对于中文来说,一个词由不同的字符组成,而BERT提供的字符级的mask机制对中文来说会有一些限制,因此对中文的预训练模型的改进则体现在对整个单词进行mask(即全词mask,whole-word-mask)。

 

BERT_wwm

 

哈工大讯飞联合实验室开放的中文预训练模型BERT-wwm[17],与下文介绍的百度的ERNIE类似,是采用了全词mask策略(Whole Word Masking, wwm),对同属一个词的所有子词进行mask、保留或替换操作。数据预处理的分词过程采用了哈工大LTP分词工具。第一版本的BERT-wwm采用了中文维基百科数据进行预训练,第二版本BERT-wwm-ext提供了在更大通用语料(5.4B词数,包括维基百科和通用数据)上预训练的模型。

 

ERNIE

 

比于BERT的字符级mask,ERNIE提出了基于先验知识的mask策略。即每次mask连续的短语或实体。如对句子“哈尔滨是黑龙江的省会,国际冰雪文化名城”进行mask,依据BERT的字符级mask策略得到“哈 [mask] 滨是 [mask] 龙江的省会,[mask] 际冰 [mask] 文化名城”,而ERNIE的mask方式为“[mask][mask] [mask] 是黑龙江的省会,国际 [mask] [mask] 文化名城”。在训练数据方便,ERNIE使用了中文维基百科,百度百科,百度新闻及百度贴吧的论坛对话数据,并采用类似于BERT 下一句预测的对话语言模型(Dialogue Language Model, DLM)来建模对话句对结构。

 

 

                                           

                                                                                  人力资本领域应用

 

e成科技作为HR+AI赛道的领跑者,以先进的NLP能力不断引领HR领域内的AI升级。我们从BERT一经问世就密切关注其研究进展,在将近一年的时间内,我们积累了大量的探索和应用的经验,下文从BERT直接应用、专有BERT研发、合理性判定三个方面阐述了我们的一些探索。

 

BERT的直接应用

 

(1)基于BERT的情感分析模型

情感分析是语义理解里的核心模型之一,其解决的主要问题是一句具有主观情感的话语进行理解,识别出其中蕴含的正面、负面或者中性的情绪。

 

举例如下:

1. 该面试者的沟通能力非常强

2.该面试者沟通方面有一些不足,

3.该同学来自上海。

 

模型对以上1 2 3句进行情感分析,1表达积极情绪,2表达消极情绪,3表达中性情绪。

 

在人力资本领域,情感分析模型的应用随处可见,在e成内部,我们使用情感分析模型进行公司新闻舆情、公司评价、面试官评价、绩效文本分析、对话情绪识别等基础的分析工作,助力人力资本领域内的洞见形成。

 

在BERT到来之前,e成就自研了基于lstm+softmax的情感分析模型,用于对公司的评价信息进行情感分析,取得相对不错的效果。但是仍然存在主要两点问题:

 

1.训练出一个有效模型需要的数据量庞大。我们使用了15w的训练数据,才训练出了一个准确率在90%的模型,15w的数据量不仅意味了更大的收集和标注数据难度,而且意味了更长的训练时常和资源消耗。

 

2.迁移能力差。我们尝试使用基于公司评价数据的模型直接对面试官评价数据进行分类,发现效果下降明显,大概降低了近15个百分点,自然语言处理有天然的领域属性,而一般的模型领域迁移能力有明显的局限。

 

2018年底,我们尝试了基于BERT的情感分析模型,新训练的模型准确率达到了93%,更重要的是,在以上两方面问题上,基于BERT的模型有质的提升:

 

1.训练模型需要的数据下降了至少一个量级。我们基于BERT尝试进行少量样本的学习,发现,训练到同样的效果,BERT需要的数据降低了一个量级。

2.强大的迁移能力。当我们把在公司评价数据集上训练的模型迁移到面试官评价数据集的时候,模型的效果几乎没有下降,这证明了BERT强大的领域迁移能力。

 

(2)基于BERT的实体识别模型

实体识别任务是指从一段文本中识别出特殊的名词,是NLP领域语言理解的核心任务之一。

 

在人力资本领域,我们需要识别的实体,主要包括(但不限于)公司、专业、职能、技能、学历、证书、学校等,从一段文本中识别出这些实体,是理解这段文本内容的基础,而基于识别结果并链接到知识图谱,更是下一步进行人岗匹配工作的核心要素。

 

举一个实体识别的例子如下:

我毕业于北京大学,是一名算法工程师,现在在阿里巴巴就职。

 

从上面这句话,我们的识别结果是,学校-北京大学,职能-算法工程师,公司-阿里巴巴。

 

我们使用BERT进行实体识别模型的训练,取得很好的效果。整体识别的f1值达到了0.79,相比于传统的模型提升了5-10个百分点。

 

(3)基于BERT的名词短语识别模型

 

众所周知,对文本进行理解的第一步就是要进行分词,而人力资本领域充满了各种专有名词,在分词的时候确保一个名词短语不被错误的切分开,是正确的理解人力资本领域内的各种文本的重要前提。

 

为此,e成在很久以前就尝试了各种名词短语识别的算法,我们将名词短语识别直接建模成为序列标注任务,同时基于cv语料上的识别结果进行相关统计过滤,识别出了大量的名词短语列表。

 

例如下面的句子:

 

e成科技是是一家AI创新的公司,利用自然语言理解技术,提升人力资本领域内各个任务的智能化程度。

 

典型的切词会把上文中的自然语言理解技术切分为 自然/语言/理解/技术,这种切分方法会对理解文本和进行人岗匹配等过程产生很多不利的影响。

 

我们使用基于BERT的模型识别出上文中自然语言理解是一个名词短语,进而辅助在切词的时候保留其完整性。

 

人力资本领域的专有BERT

 

业界和学术界的经验表明,当基于某个领域内的大量自然语言的进行继续无监督训练之后,BERT的效果会得到进一步的提升,基于此,我们打造了人力资本领域内的专有BERT,使得领域内的各种模型可以继续提升

 

继续无监督训练需要两个关键因素,一是大量的数据,二是充足的算力。得益于e成在人力资本领域内多年的数据积累,以及公司作为AI公司充足的算力,我们的无监督训练得以实现。同时,我们选择近期效果更好的BERT的升级模型-ERNIE,作为我们继续训练的基础。以下,我们称这个模型为cv预训练模型。

 

数据方面,我们基于简历中的工作经历字段的数据进行全词mask预训练。考虑到通过10次随机mask之后的数据会大幅扩增,因此此处采用了大约5G的CV数据进行预训练。算力方面,我们使用8块v100GPU(目前业界算力最强GPU)进行训练,总共训练约一周的时间。

 

CV预训练方法

 

预训练过程包括预处理和预训练两个阶段。数据预处理旨在对原始数据进行掩码并进行句子拼接。在预处理之前,首先需要将原始数据分词,并将数据按行分句,按空行分段。这里我们加入由e成多年积累的各个实体的词典库作为分词的用户字典。预处理时,对属于一个词的字符之间添加“##”标识来区分词和单字。如“幼儿园”经过tokenizer之后会变成“幼##儿 ##园”,若mask策略随机选择了“幼”这个词替换成[MASK],也会同时将“儿”和“园”一起mask。构造下一句预测数据时,若当前文档只有一个句子,或者以50%的随机概率从其他文档随机抽取一个句子拼接到当前句子来作为下一句预测的负样本,另外50%的情况是选择当前文档的下一个句子拼接,作为下一句预测任务的正样本。处理完一组数据后,注意需要将中文连续词前面的‘##’符号去掉防止影响后续的预训练过程。

 

CV预训练模型评估

 

我们选择之前提及实体识别任务,验证我们的cv预训练模型的效果。我们分别对同一组数据进行了四组实验验证。包括:基于BERT模型直接fine-tune,基于CV数据预训练BERT之后的模型进行fine-tune,基于ERNIE模型直接fine-tune,和基于CV数据预训练ERNIE之后的模型进行fine-tune。

 

为评估实体识别的效果,分别从标签数量和实体范围角度进行了评估。例如 “拥有高中教师资格证”对应的标签为 “O O B-Certificate I-CertificateI-Certificate I-Certificate I-Certificate I-Certificate E-Certificate”,按标签数目评估即判断标签是否正确,而按实体范围评估则要求标签能正确区分实体的起始和终止边界,若预测标签为“O O B-CertificateI-Certificate I-Certificate I-Certificate E-Certificate O O”,则按标签数目评估时正确标签有6/9,但按实体范围评估准确率为0/1。

 

表3和表4展示了基于BERT原始模型及用CV数据预训练后的模型在实体识别任务上的对比,其中P、R、F分别代表准确率、召回率和F1-score。可以看出,根据标签数量评估时,CV数据预训练后的模型相比原始BERT在准确率、召回率和F1-score上分别提升了1.35%,1.35%和1.68%。按实体范围评估时,CV预训练后的模型比原始BERT在准确率和F1-score上分别提升了1.69%和2.03%.

 

基于ERNIE的CV数据预处理后相比于基于BERT的CV数据预处理后在标签数目上分别提升了10.29%,2.61%,5.71%,在实体范围评估上提升了3.12%,0.64%和1.13%。由此可以看出,采用领域数据对预训练模型进行进一步的预训练,有助于提升领域下游任务的表现效果。

 

表3 BERT原模型及CV数据预训练后模型在实体识别任务上按标签数量评估的对比

 

表4 BERT原模型及CV数据预训练后模型在实体识别任务上按实体范围评估的对比

 

基于BERT的合理性判别

 

(1)对话中句子的合理性识别

 

为了识别Bot(聊天机器人)对话过程中,用户输入的一句话是否是一个合理的句子,我们应用了BERT对用户输入的query进行合理性的判定,对于识别出用户随意输入的句子,我们在Bot进行了特殊的回复设定,有效的增加了Bot对话过程对用户输入的理解能力。  

 

例如以下两句话:

1.请问公司的地址是什么

2.阿萨尔塔尔哇嘎时高时低

 

BERT模型会基于语言模型的预测结果,对1和2进行困惑度打分,过高的困惑度意味着这不是一个自然语句,进而触发特定的对话逻辑。

 

(2)公司名称的合理性判定

 

从自由文本中准确的识别公司名,是一项难度很大的任务,这其中一个很重要的点就是如何判定某一段文本在句子中是一个公司名,还是碰巧是其他词语,例如如下两句话:

 

我本科毕业后,一直在京东从事算法开发工作。

我们公司位于北京东边的一个商业中心。

 

从这两句话中,我们都可以提取词语‘京东’,而且京东确实一个公司,但是很明显在语句2中,京东所表达的并不是一个公司。此时,我们就可以使用基于BERT的语言模型进行相关的判定,我们将两句话中的京东都替换成百度,发现对第二句话模型预测句子的合理性出现了大幅的降低,可以判定在第二句中提取的京东不是一个真正的公司。我们正在探索使用此类方法,来进一步提升我们实体识别的准确率。

 

 

                                      

                                                                                           总结

 

本文主要阐述了BERT的背景、原理、模型升级和人力资源领域的落地应用,作为一种预训练语言模型,BERT在NLP领域取得了极大的成功,e成作为HR+AI赛道的领跑者,紧跟业界最新的研究前沿,积极探索落地应用并取得了一定的成果。接下来,我们会从模型加速、蒸馏、小规模语言模型等方面,持续的进行相关的探索。

 

 

不管是在文本分类、文本相似度、情感分析、通用实体识别、语言模型、阅读理解等NLP能力方面,还是在语音分析、视频面试等音视频能力、人力资源知识图谱、简历解析、画像推理、BEI访谈等应用能力方面,e成科技将BERT技术应用其中,并基于具体场景做了很多技术优化,如样本优化、性能优化等,并基于人力资源场景语料专门训练了Bert模型。同时,我们把它平台化,把很多其他NLP工具集中在平台里,未来可以做到更强的模型,更加贴合业务。

 

基于以上领先的AI技术和深厚AI能力的积累,e成科技推出HR行业首个AI开放平台,并已实现AI能力中台化,即⽤即取,高效连接算法能力和业务诉求;同时对外开放AI能力,将多年AI能力积累开放给所有HR行业友商,助力人力资本智能化升级。

 

 

作者:e成科技AI算法团队

参考文献:

[1] ACL主席周明:一起拥抱 ACL 和 NLP 的光明未来, https://www.msra.cn/zh-cn/news/features/acl-2019-ming-zhou

[2] 张俊林,从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史, https://zhuanlan.zhihu.com/p/49271699

[5] Vaswani A, ShazeerN, Parmar N, et al. Attention is all you need[C], Advances in neuralinformation processing systems. 2017: 5998-6008.

[6] Devlin J, Chang MW, Lee K, et al. BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding[C], NAACL, 2019: 4171-4186.

[16] Sun Y, Wang S, LiY, et al. ERNIE: Enhanced Representation through Knowledge Integration[J].arXiv preprint arXiv:1904.09223, 2019.

[17] Cui Y, Che W, LiuT, et al. Pre-Training with Whole Word Masking for Chinese BERT[J]. arXivpreprint arXiv:1906.08101, 2019.

 

这篇关于深度结合NLP领域最强大模型,赋能人力资本领域算法升级的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/327227

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt