Datawhale组队学习之NLP组第三天 N-gram

    技术2022-07-10  89

    Datawhale组队学习之NLP组第三天 N-gram

    word2vec 和 glove的区别:N-gram思想:FastText 模型:参考资料:

    本篇博客主要介绍三个部分, 1、word2vec 和 glove的区别 2、介绍 n-gram 思想 3、介绍 FastText 模型

    word2vec 和 glove的区别:

    两者最直观的区别在于,word2vec是“predictive”的模型,而GloVe是“count-based”的模型。

    不采用 negative sampling 的word2vec 速度非常快,但是准确率仅有57.4%。

    但是这样的word2vec只告诉模型什么是有关的,却不告诉它什么是无关的,模型很难对无关的词进行惩罚从而提高自己的准确率。

    在python的gensim这个包里,gensim.models.word2vec.Word2Vec默认是不开启negative sampling的,需要开启的话请设置negative参数。

    当使用了negative sampling之后,为了将准确率提高到68.3%,word2vec就需要花较长的时间了(8h38m)

    相比于word2vec,因为golve更容易并行化,所以速度更快,达到67.1%的准确率,只需要花4h12m。

    由于GloVe算法本身使用了全局信息,自然内存费的也就多一些,相比之下,word2vec在这方面节省了很多资源。

    N-gram思想:

    N元语法。 维基百科的定义:在计算语言学中,n-gram指的是文本中连续的n个item(item可以是phoneme, syllable, letter, word或base pairs)

    n-gram 中如果n=1则为unigram,n=2则为bigram,n=3则为trigram。n>4后,则直接用数字指称,如4-gram,5gram。

    N-Gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。

    每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征空间,列表中的每一种gram就是一个特征向量维度。

    该模型基于这样一种假设,第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的Bi-Gram和三元的Tri-Gram。

    N-gram 的应用大概有以下三个方面: 1、基于N-Gram模型定义的字符串距离。 2、利用N-Gram模型评估语句是否合理。 3、使用N-Gram模型时的数据平滑算法。

    N-gram中的 N 如果较大,就会造成对于词的约束信息较多,模型有更大的辨别力,但是更稀疏。同样得到的词典的词个数也会呈指数级增长。如果 N 较小,模型有更高的可靠性,但是约束信息更少,会存在一些输入无法检测的事情。

    FastText 模型:

    FastText使用了字符级别的n-grams来表示一个单词。对于单词“apple”,假设n的取值为3,则它的trigram有

    “<ap”, “app”, “ppl”, “ple”, “le>”

    其中,<表示前缀,>表示后缀。于是,我们可以用这些 trigram 来表示“apple”这个单词,进一步,我们可以用这5个trigram的向量叠加来表示“apple”的词向量。

    这带来两点好处:

    1、对于低频词生成的词向量效果会更好。因为它们的n-gram可以和其它词共享。

    2、对于训练词库之外的单词,仍然可以构建它们的词向量。我们可以叠加它们的字符级n-gram向量。

    FastText 的核心思想:

    仔细观察模型从隐含层输出到输出层输出,会发现它就是一个softmax线性多类别分类器,分类器的输入是一个用来表征当前文档的向量;模型的前半部分,即从输入层输入到隐含层输出部分,主要在做一件事情:生成用来表征文档的向量。

    具体做法是:叠加构成这篇文档的所有词及n-gram的词向量,然后取平均。叠加词向量背后的思想就是传统的词袋法,即将文档看成一个由词构成的集合。

    于是fastText的核心思想就是:将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。这中间涉及到两个技巧:字符级n-gram特征的引入以及分层Softmax分类。

    参考资料:

    1、https://blog.csdn.net/m0_37870649/article/details/83958472 2、https://blog.csdn.net/weixin_40593658/article/details/90451855

    如若侵权,请联系删除。

    Processed: 0.009, SQL: 9