首页 资讯 专利检索利用BERT网络模型小结

专利检索利用BERT网络模型小结

来源:爱乐趣网 时间:2020年11月16日 18:00

原标题:专利检索利用BERT网络模型小结

蓝灯鱼专利语义检索,采用BERT神经网络模型,4000万中文专利文字采样,生成语料120G语料文件,预训练原始基础模型,文本近似分类任务调整模型。最终形成具有专利特色的全新语言模型。

Google于2018年发布的BERT预训练模型,https://github.com/google-research/BERT。在自然语言处理(Natural LanguageProcessing, NLP)领域大热,平地惊雷,多项自然语言理解任务上取得了突破的效果,开启了预训练模型、微调模型的NLP基本范式,奠定了NLP领域中,各项不同任务的一系列预训练模型工作。

此后,BERT模型在NLP相关的各垂直领域也得到了广泛应用,并取得了良好的实验效果。

但由于垂直领域相关业务的数据格式的各不一样,词性、语义含义各不相同,各种场景应用对推理性能的要求也参差不齐,BERT的官方模型往往不能拷贝式直接地被应用于NLP业务之中,需要根据具体场景和数据对BERT模型加以调整和改造,以适应业务的现实需求。也就是微调出试用垂直领域一个行业NLP模型。

BERT 模型的结构主要由三部分构成:输入层、编码层、池化层,其中输入层和编码层是基础的、通用的底层结构,对于每一种任务都具有通用性,如问答、分类、摘要提取等。

BERT 模型的输入层包括嵌入变换、层标准化、随机失活;其中嵌入变换又分为词嵌入(token embedding)、位置嵌入(position embedding)短语嵌入(segment embedding)。BERT模型的位置嵌入可以通过参数调整,该参数和序列长度有计算关系,模型默认20。

位置嵌入是BERT模型的重要思想部分,标记编码就是在文本序列中每个标记转成编码后得到的向量;位置编码记录每个标记的所在位置序号;句子位置编码记录每个标记属于哪句内容。

举个例子,在第一句话上使用文本的段落A进行嵌入,在第二句话中使用段落B作为嵌入。BERT模型在输入序列的第一个位置加上一个特殊的[CLS] 标记用于聚合句子表示信息,并在两个句子之间使用特殊标记[SEP] 用于分隔两句话。BERT 的输入层将每个词的词嵌入、位置嵌入和段嵌入相加得到每个词的输入标识。

BERT模型的任务相关层则根据下游任务不同而各自不同,如对于文本分类任务,问答,文字理解任务相关层通常为线性分类。在Fine-tuning时,BERT模型和下游任务相关层的所有模型参数都同步更新。

BERT的模型有两个预训练任务,一个是掩蔽模式,也可理解为填空(Masked Language Model),第二个是下句的预测(NextSentence Prediction)。通过这两个预训练任务模型,BERT 能够学习到语言词汇的关系,并用向量进行标识层维度的位置,并在后面迁移给下游任务做好基础模型。

第一个预训练任务掩蔽模式的原理是,随机挑选输入序列中的一定比例(20%)的词语,用掩蔽标记 [MASK]替换,然后根据双向的上下文的词语预测这些被掩蔽的词语,形成内容与填空部分的关系紧密度。

第二个预训练任务下句预测(NSP)的主要原理是根据输入的两个句子 A 和 B,预测出句子 B 是否是句子 A 的下一个句子。G改模式可以对于应用场景包括问答、蕴涵关系,阅读理解都属于该任务的下有任务。

理解了BERT的基本原理后,我们进行实际的操作,加深理解BERT的巨大能量。其实在官方已经给一些基础训练好的语言模型,其中也包括中了中文模型,官方的中文模型是通过wiki百科的中文语料进行训练而成的,就通用性而言是相当不错的。但是作为行业的基础模型就略显不足了。

目前在网上公开可以使用的基础模型还是蛮多的,BERT_base、BERT_wwm、BERT-wwm-ext、RoBERTa、SpanBERT等等可以下载即用。

小编也尝试了以上模型的试用,总体来讲并没有对BERT原版模型有质的提高。因此小编也尝试了自己通过3000W专利语言的与训练,从0生成1个基础模型,基础数据文件达到了120G的文本文件,最后通过测试得出总体效果是也是最好的。

BERT_base:官方提供的示例模型一般我们都会使用BERT-Large,当然官方也提供了BERT-Tiny、BERT-Mini、BERT-Small、BERT-Medium。

BERT_wwm:wwm(Whole Word Masking)(全词Mask),它相比于BERT的改进是用Mask标签替换一个完整的词而不是子词,中文和英文不同,英文中最小的Token就是一个单词,而中文中最小的Token却是字,词是由一个或多个字组成,且每个词之间没有明显的分隔,包含更多信息的是词,全词Mask就是对整个词都通过Mask进行掩码。

BERT-wwm-ext:BERT-wwm的升级,相比于BERT-wwm的改进是增加了训练数据集同时也增加了训练步数,也可理解为优化版。

RoBERTa:更多的数据、更多的训练步数、更大的批次(用八千为批量数),用字节进行编码以解决未发现词的问题,小编尝试后,并没有达到预期。

SpanBERT:一种分词级别的预训练方法。它不再是对单个Token进行掩码,而是随机对邻接分词添加掩码。对于掩码词的选取,作者首先从几何分布中采样得到分词的长度,该几何分布是偏态分布,偏向于较短的分词,分词的最大长度只允许为10(超过10的不是截取而是舍弃)。之后随机(均匀分布)选择分词的起点。对选取的这一段词进行Mask,Mask的比例和BERT相同,15%、80%、10%、10%。

实践过程:

1.制作基础训练数据

python create_pretraining_data.py

--input_file=$MY_DATASET/all.txt

--output_file=$MY_DATASET/tf_examples.tfrecord

--vocab_file=$VOCAB_BASE_DIR/vocab.txt

--do_lower_case=True

--max_seq_length=512

--max_predictions_per_seq=240

--masked_lm_prob=0.18

--dupe_factor=30

2.预训练数据

python run_pretraining.py

--input_file=$MY_DATASET/tf_examples.tfrecord

--output_dir=$BERT_BASE_DIR/pretraining_output

--do_train=True

--do_eval=True

--BERT_config_file=$BERT_BASE_DIR/BERT_config.json

--init_checkpoint=$BERT_BASE_DIR/BERT_model.ckpt

--train_batch_size=128

--max_seq_length=512

--max_predictions_per_seq=240

--num_train_steps=200000

--num_warmup_steps=40

--learning_rate=2e-5

3.下有任务文本分类训练

python run_classifier.py

--task_name=ipc

--do_train=true

--do_eval=true

--do_predict=False

--data_dir=$MY_DATASET

--vocab_file=$BERT_BASE_DIR/vocab.txt

--BERT_config_file=$BERT_BASE_DIR/BERT_config.json

--init_checkpoint=$BERT_BASE_DIR/BERT_model.ckpt

--max_seq_length=512

--train_batch_size=128

--learning_rate=3e-5

--num_train_epochs=8.0

--output_dir=$OUT_MODEL

大家可以感受下BERT带来的文本近似检索。

责任编辑:

相关知识

专利检索利用BERT网络模型小结
【EA-ISET协会】社会网络类EI期刊,见刊检索快,正刊!
陈薇院士团队新冠疫苗获得专利,为国内首个
陈薇院士团队新冠疫苗获得专利,系国内首个
2020年7月中旬|工程类SCI,预上线6篇,WOS数据库检索12篇(预上线检索)
论文发表sci期刊认可见刊还是检索
搜狗-清华天工研究院提出ChoreoNet模型:让数字人闻声起舞
田轩:我国专利数量已居世界之首,但专利质量远远不够
原创 自己设计的东西被人拿专利来碰瓷,躺着也中枪
北京科普视频达人:用模型解答生活中的“十万个为什么”

网址: 专利检索利用BERT网络模型小结 https://www.alq5.com/newsview55326.html

所属分类:生活时尚

推荐资讯