文章目录
讲道理肯定还得有Transformer,我这边先放着,以后再加吧。
TF-IDF
TF(全称TermFrequency),中文含义词频,简单理解就是关键词出现在网页当中的频次。
IDF(全称InverseDocumentFrequency),中文含义逆文档频率,简单来说就是该关键词出现在所有文档里面的一种数据集合。
TF-IDF用来评估字词对于文档集合中某一篇文档的重要程度。TF-IDF的计算公式为:
TF-IDF = 某文档中某词或字出现的次数/该文档的总字数或总词数 * log(全部文档的个数/(包含该词或字的文档的篇数)+1)
TF-IDF的思想比较简单,但是却非常实用。然而这种方法还是存在着数据稀疏的问题,也没有考虑字的前后信息。
bag-of-words
这玩意将一个文档或者句子使用一个向量来表示,
John likes to watch movies. Mary likes movies too.
那个这玩意把上面这个变成下面这个向量,当然了,我们要规定向量的第一个元素是john,值为1,表示john在这一段话中只出现了一次;第二个元素是like;倒数那几个元素是一些这段话中没有出现过的单词,所以都是0。
[1, 2, 1, 1, 2, 1, 1, 0, 0, 0]
Bert
bert的Embedding层由3个子层求和得到,分别是词向量层Token Embedings,句子层Segment Embeddings以及位置编码层Position Embeddings,特别注意的是,bert中的位置编码层是采用随机初始化训练学习得到,和transformer的正弦函数编码不同。
Token Embeddings是词向量,第一个单词是CLS标志,主要用于之后的分类任务。
Segment Embeddings用来区别两种句子,作用于两个句子为输入的分类任务。
Position Embeddings是随机初始化训练出来的结果。
MLM是Mask Language Model,也就是掩码语言模型。MLM有两种方式:AR和AE。
AR是自回归模型,也就是从左边不断向右边预测这样,只能利用单侧信息,典型的模型是GPT。
AE是自编码模型,也是bert的MLM采用的。通过随机遮挡住一个句子中部分词语,让模型训练进行预测,充分利用了文本的上下文信息。遮挡方式为先在原始训练文本中随机抽取15%的token作为参与MASK任务的对象,然后随机选择80%的词语为MASK,10%替换成其他词语,10%保持不变。
原始bert是静态mask,也就是每个epoch训练的内容mask部分都是一致的,这样没法学习到更多有用的信息,roberta采用的是动态mask,每个epoch训练的mask都是重新处理的,效果更好。
Next Sentence Prediction任务
给定俩个句子,用[sep]进行句子划分区别两个句子,过一层Bert以后,将cls进行liner再softmax,得到的yes或者no(句子1和句子2是否是相连接的句子),cls就是分类的意思。
有研究人员表示:next sentence prediction部分并没有什么有用的价值
BERT这两个任务是一起做的。