word2vec
Word2vec是一种词嵌入模型。
句子需要先进行分词,而后将每词表示成一个固定长度的向量。假设词库大小为N,词向量长度为L,则通过语料库学习到这个W=N*L矩阵的内容,也就是该预料库下每个词的向量表示。
Word2vec考虑词之间共出现的概率,但是未考虑语义信息。有了词的向量表示,后续就可以衔接其他分类模型,解决文本分类或其他问题了。
Word2vec是一种词嵌入模型。
句子需要先进行分词,而后将每词表示成一个固定长度的向量。假设词库大小为N,词向量长度为L,则通过语料库学习到这个W=N*L矩阵的内容,也就是该预料库下每个词的向量表示。
Word2vec考虑词之间共出现的概率,但是未考虑语义信息。有了词的向量表示,后续就可以衔接其他分类模型,解决文本分类或其他问题了。
LSA即潜语义分析(或主题模型,主题即为潜在的语义信息),认为“一篇文章是通过一定的概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到的。
目标是:通过对“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布,即根据给定的一篇文档,推测其主题分布。
主要有2种主要方法:奇异值分解SVD、非负矩阵分解NMF。
单词集合W={w1, w2, …, wm}
文档集合D={d1, d2, …, dn}
单词向量空间Xm*n:单词-文本矩阵,每个单词在文档中出现的频率(行-单词,列-文档)
话题向量空间Tm*k:单词-话题矩阵,每个单词在话题中出现的频率(行-单词,列-话题),T是X的一个子集
文本在话题空间的向量表示Yk*n: Xmn = Tmk * Ykn,Ykn 就是我们需要求得的隐变量,即每个文本对应每个话题的权重,可将每个文本标记为权重较大的话题上。
最近NLP领域发生了一件大事,一个叫BERT的预训练模型掀起了一场革命式的风波。基于这段时间参读大牛们精细的解析,简单总结下BERT的原理(What)和怎么应用到自己的数据中(How)。
BERT(Bidirectional Encoder Representation from Transformers),是谷歌AI团队新发布的应用于NLP领域的模型,在11项NLP任务均获得了相当不错的结果,文章于2018年10月发表,并提供了开源地址( https://github.com/google-research/bert ),致谢👏👏👏。
Corpus: BooksCorpus (800M words) + English Wikipedia (2,500M words).
可参考GitHub详细文档。
Ø 使用Transformer作为特征提取器
Ø 双向语言模型
由于BERT是基于Transformer模型的,而Transformer模型主要基于Attention机制,因此先需要了解下Attention机制。