在之前的文章里,我们介绍了词语表达的训练,使用skip-gram模型训练word2vec。既然词语能表达,那句子也同样能被分布式的向量表示。这里主要介绍几种句子的表示方法。
1. Mikolov在word2vec模型上改进,得到的paragraph vector
类似于CBOW和skip-gram的两种方法。都是基于对paragraph进行embedding表示,并进行joint-train得到。
(1)使用paragraph embedding预测句子中的每个词概率。对每个paragraph构建Matrix,通过id查找得到当前embedding,用于预测句子中所有出现的词语,得到句子联合概率最大。
(2)类似于语言模型,通过paragraph-embedding加上前边的词语 预测后文中出现的词语。使得概率最大。
缺点:句子空间比词语空间大的多,不可能为每个句子得到embedding。要是有新的句子出现,需要重训,很麻烦。
2. skip-thought模型
模型很简单,思路也很简单。就是通过当前的句子,预测上下文出现句子的概率。采用的模型是seq2seq模型。
缺点:遇到seq2seq就知道,模型训练速度很慢了。
3. SDAE模型
SDAE的中文含义是序列加噪自编码模型。大致思路就是:将句子进行拆分、更换词序、删词等操作得到一系列的噪声数据,然后通过auto-encoder使得当前句子离原句子最相近(概率最大)。这种方式:拆分句子组合得到的信息较少,引入噪声重新构建原始句子得到的表达与上下文无关。
4. fastsent模型
fastsent模型是对skip-thought模型的改进,由于skip-thought的seq2seq模型速度比较慢,fastsent模型不再使用RNN对句子建模,而是使用句子的每个词进行预测。同样是使用中间句子预测上下两句。中间句子用词语embedding取平均得到,上下文句子拆分成一个个词语。缺点就是丢失了句子的序列信息。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有