首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深度学习之句子表达

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180324G0ZLHM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券