(二)文本嵌入式表示方法实战(词、句和段落向量:Word2Vec,GloVe,Paragraph2vec,FastText,DSSM)

本文是《文本嵌入式表示方法实战》系列的第二部分,详细介绍了Word2Vec、GloVe的原理与对比,探讨了C源码实现与gensim库的应用,以及doc2vec(Paragraph2vec)的原理和Gensim实战。内容涵盖了词向量的训练、评测和在情感分析任务中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《文本嵌入式表示方法实战》系列文章是基于2017年我于研一下半学期做的两场长时间的组会汇报ppt上形成的文章(学习和实验长达3个月,因为当时主要以上课为主,实验都是课余时间做的。。),由于当时我正处于入门阶段,理解和表述定有不当之处,还请各位同学老师批评指教。。。

《文本嵌入式表示方法实战》系列文章全部链接如下:

(一)文本嵌入式表示方法实战(词、句和段落向量:Word2Vec,GloVe,Paragraph2vec,FastText,DSSM)

(二)文本嵌入式表示方法实战(词、句和段落向量:Word2Vec,GloVe,Paragraph2vec,FastText,DSSM)

(三)文本嵌入式表示方法实战(词、句和段落向量:Word2Vec,GloVe,Paragraph2vec,FastText,DSSM)


(。。。。。。书接上一期。。。。。。)

我们可以将这种共现关系表示成以下形式:

 →  → 

,其中

 

这使得该特征矩阵可与其转置互换。
该算法中还包含了一个加法偏移,防止log中的xik=0:

其在计算该共现矩阵时,在避免分歧的同时又维持了 X 的稀疏性。

然后定义了一个新的损失函数

并且定义了一个非常好用的加权函数f(x):

其中:

1. f(0)=0;

2. f(x)应该为非递减;

3. f(x)的值相对于x要小的多。

    在阅读原作论文时发现,只是讲解了原理,很多部分没有细讲,具体glove一步一步如何实现没有讲(当然也不可能会讲基础东西)。

    然而无论用google还是百度,都没能收到足够的讲解glove的博客/教程(内容质量google>百度),都是千篇一律把目标函数推一遍,具体的算法原理、实现原理都没有解释,而且对于glove的网络结构没有一个直观的描述。

    所以我在看了c源码,并且在来斯惟博士证明了glove与sg目标函数其实一致等资料的基础上,对glove的实现和模型的抽象化理解进行了分析,见我之前的博文:GloVe背后的计算原理(进一步理解GloVe实现细节)(内容优点糊了,后面我会重新梳理和重写的)。

其实在了解了skip-gram模型后发现其与skip-gram模型还是有点相像的,尤其是来斯惟在其博士论文的附录证明了两者的损失函数其实是一样的,感觉还是很神奇的。

来斯惟的一个总结的表格,来博士的博士论文总结的非常好,推荐阅读一下。

 

 

4.2 C源码及结合gensim实战

下载好基于C实现的glove源码后,进行试验。本实验基于text8语料,先用glove

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值