前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习之句子表达

深度学习之句子表达

作者头像
CodeInHand
发布2018-04-08 17:17:35
1.5K0
发布2018-04-08 17:17:35
举报
文章被收录于专栏:Pytorch实践Pytorch实践

在之前的文章里,我们介绍了词语表达的训练,使用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取平均得到,上下文句子拆分成一个个词语。缺点就是丢失了句子的序列信息。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CodeInHand 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档