专利检索利用BERT网络模型小结
原标题:专利检索利用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
推荐资讯
- 1李清照“两处相思同淋雪,此生 21150
- 2中华民国双旗开国纪念币一枚能 16059
- 3佟丽娅现状如何佟丽娅与陈思诚 15472
- 4马库斯世界和平艺术展圆满落幕 15420
- 5第十届中国花卉博览会,其中复 13292
- 6张家界____是张家界市永定 11809
- 7《交换的乐趣》林媚阿强苏小婉 11132
- 8《绝叫》-叶真中显 (pdf 10925
- 9《稻盛和夫给年轻人的忠告》电 9754
- 10《三嫁惹君心》中的美女,董馨 9549
