自然语言处理(NLP)精选13道面试题_第1页
自然语言处理(NLP)精选13道面试题_第2页
自然语言处理(NLP)精选13道面试题_第3页
自然语言处理(NLP)精选13道面试题_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

⾃然语⾔处理(NLP)精选13道⾯试题⽂末彩蛋:七⽉在线⼲货组最新升级的《名企AI⾯试100题》免费送!1、为什么BERT在第⼀句前会加⼀个[CLS]标志?BERT在第⼀句前会加⼀个[CLS]标志,最后⼀层该位对应向量可以作为整句话的语义表⽰,从⽽⽤于下游的分类任务等。为什么选它呢,因为与⽂本中已有的其它词相⽐,这个⽆明显语义信息的符号会更“公平”地融合⽂本中各个词的语义信息,从⽽更好的表⽰整句话的语义。ftBERT的12CLS12pooling这⾥补充⼀下bert的输出,有两种,在BERTTF源码中对应:⼀种是get_pooled_out(),就是上述[CLS]的表⽰,输出shape是[batchsize,hiddensize]。⼀种是get_sequence_out(),获取的是整个句⼦每⼀个token的向量表⽰,输出shape是[batch_size,seq_length,hidden_size],这⾥也包括[CLS],因ft在做token级别的任务时要注意它。2、BERT的三个Embedding直接相加会对语义有影响吗?这是⼀个⾮常有意思的问题,苏剑林⽼师也给出了回答,真的很妙:Embedding的数学本质,就是以onehot为输⼊的单层全连接。也就是说,世界上本没什么Embedding,有的只是onehot。在这⾥想⽤⼀个例⼦再尝试解释⼀下:假设tokenEmbedding矩阵维度是[4,768];positionEmbedding矩阵维度是[3,768];segmentEmbedding矩阵维度是[2,768]。对于⼀个字,假设它的tokenone-hot是[1,0,0,0];它的positionone-hot是[1,0,0];它的segmentone-hot是[1,0]。那这个字最后的wordEmbedding,就是上⾯三种Embedding的加和。如ftword后的特征:[1,0,0,0,1,0,0,1,04+3+2,7689768再换⼀个⾓度理解:直接将三个one-hot特征concat起来得到的[1,0,0,0,1,0,0,1,0]不再是one-hot了,但可以把它映射到三个one-hot组成的特征空间,空间维度是432=24,那在新的特征空间,这个字的one-hot就是[1,0,0,0,0…](23个0)。ft时,Embedding矩阵维度就是[24,768],最后得到的wordEmbedding依然是和上⾯的等效,但是三个⼩Embedding矩阵的⼤⼩会远⼩于新特征空间对应的Embedding矩阵⼤⼩。当然,在相同初始化⽅法前提下,两种⽅式得到的wordEmbedding可能⽅差会有差别,但是,BERT还有LayerNorm,会把Embedding结果统⼀到相同的分布。BERT的三个Embedding相加,本质可以看作⼀个特征的融合,强⼤如BERT应该可以学到融合后特征的语义信息的。3、在BERT中,token分3种情况做mask,分别的作⽤是什么?在BERT的MaskedLM训练任务中,会⽤[MASK]token去替换语料中15%的词,然后在最后⼀层预测。但是下游任务中不会出现[MASK]token,导致预训练和fine-tune出现了不⼀致,为了减弱不⼀致性给模型带来的影响,在这被替换的15%语料中:80MASK1010第⼀点中的替换:是MaskedLM中的主要部分,可以在不泄露label的情况下融合真双向语义信息;第⼆点的随机替换:因为需要在最后⼀层随机替换的这个token位去预测它真实的词,⽽模型并不知道这个token位是被随机替换的,就迫使模型尽量在每⼀个词上都学习到⼀个全局语境下的表征,因⽽也能够让BERT获得更好的语境相关的词向量(这正是解决⼀词多义的最重要特性);10(占所有词的⽐例为15*101.5%),bias当于是额外的奖励,将模型对于词的表征能够拉向词的真实表征(ft时输⼊层是待预测词的真实Self-attention)。⽽如果全⽤mask的话,模型只需要保证输出层的分类准确,对于输出层的向量表征并不关⼼,因ft可能会导致最终的向量输出效果并不好。4、为什么BERT选择mask掉15%这个⽐例的词,可以是其他的⽐例吗?BERT采⽤的MaskedLM,会选取语料中所有词的15%进⾏随机mask,论⽂中表⽰是受到完形填空任务的启发,但其实与CBOW也有异曲同⼯之妙。从CBOW的⾓度,这⾥有⼀个⽐较好的解释是:在⼀个⼤⼩为1/p=100/15约等于7的窗⼝中随机选⼀个词,类似CBOW中滑动窗⼝的中⼼词,区别是这⾥的滑动窗⼝是⾮重叠的。那从CBOW的滑动窗⼝⾓度,10%~20%都是还ok的⽐例。5、针对句⼦语义相似度/多标签分类/机器翻译翻译/⽂本⽣成的任务,利⽤BERT结构怎么做fine-tuning?实际操作时,上述最后⼀句话之后还会加⼀个[SEP]token,语义相似度任务将两个句⼦按照上述⽅式输⼊即可,之后与论⽂中的分类任务⼀样,将[CLS]token位置对应的输出,接上softmax做分类即可(实际上GLUE任务中就有很多语义相似度的数据集)。针对多标签分类的任务多标签分类任务,即MultiLabel,指的是⼀个样本可能同时属于多个类,即有多个标签。以商品为例,⼀件L尺⼨的棉服,则该样本就有⾄少两个标签——型号:L,类型:冬装。那个⼦类别,但是这样做未免太暴⼒了,⽽多标签分类任务,其实是可以「只⽤⼀个模型」来解决的。BERTBERTlayersoftmaxlossn⽽定,由于是多标签分类任务,因ft其维度可以适当增⼤⼀些),最后再做多标签分类任务。针对翻译的任务针对翻译的任务,我⾃⼰想到RTingfRTin//charcnnBERThasaMouth,andItMustSpeak:BERTasaMarkovRandomFieldLanguageModelMASS:MaskedSequencetoSequencePre-trainingforLanguageGenerationUnifiedLanguageModelPre-trainingforNaturalLanguageUnderstandingandGeneration6、使⽤BERT预训练模型为什么最多只能输⼊512个词,最多只能两个句⼦合成⼀句?这是GoogleBERT预训练模型初始设置的原因,前者对应PositionEmbeddings,后者对应SegmentEmbeddings在BERT中,Token,Position,SegmentEmbeddings都是通过学习来得到的,pytorch代码中它们是这样的self.word_embeddings=Embedding(config.vocab_size,config.hidden_size)self.position_embeddings=Embedding(config.max_position_embeddings,config.hidden_size)⽽在BERTconfig中“max_position_embeddings”:512yvsi:2因ft,在直接使⽤Google的BERT预训练模型时,输⼊最多512个词(还要除掉[CLS]和[SEP]),最多两个句⼦合成⼀句。这之外的词和句⼦会没有对应的embedding。当然,如果有⾜够的硬件资源⾃⼰重新训练BERT,可以更改BERTconfig,设置更⼤max_position_embeddings和type_vocab_size值去满⾜⾃⼰的需求。7、BERT⾮线性的来源在哪⾥?前馈层的gelu激活函数和self-attention,self-attention是⾮线性的8、BERT是如何区分⼀词多义的?同⼀个字在转换为的输⼊之后的向量是⼀样,但是通过中的多层transformer关注不同的上下⽂,就会导致不同句⼦输⼊到之后,相同字输出的字向量是不同的,这样就解决了⼀词多义的问题。9、BERT的输⼊是什么,哪些是必须的,为什么positionid不⽤给?10、神经⽹络中warmup策略为什么有效?有助于减缓模型在初始阶段对mini-batch的提前过拟合现象,保持分布的平稳有助于保持模型深层的稳定性11、Bert采⽤哪种Normalization结构,LayerNorm和BatchNorm区别,LayerNorm结构有参数吗,参数的作⽤?6464(64维)LayerNorm则是针对单场景、动态⽹络场景和来说就是对每层输出ft也应该被⼀起规范化。returnself.weight*x+self.bias贴⼀个LayerNorm的实现,可以看到module中有weight和bias参数,以Sigmoid激活函数为例,批量归⼀化之后数据整体处于函数的⾮饱和区域,只包含线性变换,破坏了之前学习到的特征分布。为了恢复原始数据分布,具体实现中引⼊了变换重构以及可学习参数w和b,也就是上⾯的weight和bias,简⽽⾔之,规范化后的隐层表⽰将输⼊数据限制到了⼀个全局统⼀的确定范围,为了保证模型的表达能⼒不因为规范化⽽下降,引⼊了b是再平移参数,w是再缩放参数。(过激活函数前规范化,之后还原)12、为什么说ELMO是伪双向,BERT是真双向?产⽣这种差异的原因是什么?据训练时,容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论