词向量模型

RNN

卷积神经网络(CNN)主要应用计算机视觉,而递归神经网络(RNN)主要应用于自然语言处理。
在这里插入图片描述
递归神经网络会涉及处理之前所有的数据,但并非所有数据特征都需要,所以RNN处理结果与我们所需要的存在误差,数据处理不精。
而LSTM网络中会适当过滤一些不必要的特征。
在这里插入图片描述

词向量模型

考虑:如何能将文本向量化?文本向量化需考虑到的因素有很多,比如不同文本位置不同所表达意思不同、同一个词不同语境下意义不同、不同的词同一语境下意义相同等。
因此。文本的词向量维度比不可能少,一般为50-300。通常情况下,维度越高,向量能提供的信息越多。

提取数据特征是构建模型中非常重要的一步。而如何描述词的特征?通常都是在词的层面上来构建特征。Word2Vec就是要把词转化为向量。

假设现在已经拿到了一份训练好的词向量,其中每一个词都表示为50维的向量:
在这里插入图片描述
将其在热度图中显示:
在这里插入图片描述
观察以下三个词的热度图可发现:man和boy这两个词有很多部分热度值相近,但与water这词的极少相近热度值。从中可以发现,相似的词在特征表达中比较相似,也就是说明词的特征是有实际意义的
在这里插入图片描述

模型整体框架

词向量模型是为了学习文本词语之间的关系。
在这里插入图片描述
举例:下面所示的,输入是 Thou 和 shalt,模型的任务是预测它们的下一个词是什么。
在这里插入图片描述
具体流程:
输入数据 -> 初始化词向量 -> 通过多次前向传播反向传播训练更新词向量(不光更新权重参数W,也会更新输入数据) -> 计算机通过最终的词向量预测下一个词 -> SoftMax后得到概率最高的词输出

训练数据构建

问:我们的训练数据应该从哪找呢?
答:一切具有正常逻辑的语句都可以作为训练数据。如小说、论文等。

构建训练数据:
如果我们有一个句子,我们可以选出其中连续三个词,用前两个作为词模型的输入,最后一个词作为词模型输出的目标值,这样就成功构建一条训练数据。
在这里插入图片描述
故而具体构建训练数据方法:在文本数据集中设置一滑动窗口,并规定好滑动窗口中哪些位置是输入数据,哪些位置是输出数据,哪些是标签;再通过滑动窗口一次次向后滑动可获得不同的训练数据。

CBOW与Skip-gram模型

  1. CBOW
    输入:上下文,输出:预测词。通过文本上下文预测词

例如这里是引用

在这里插入图片描述

  1. Skip-gram模型
    输入:单个词,输出:词对应上下文。通过当前的词预测上下文。

例如:
在这里插入图片描述

在这里插入图片描述

负采样

如果一个语料库稍微大一点,可能的结果就太多了,最后一层 SoftMax 的计算就会很耗时,有什么办法来解决吗?

初始方案:输入两个单词,看他们是不是前后对应的输入输出,也相当于一个二分类任务。
传统模型中,我们输入 not ,希望输出是 thou,但是由于语料库庞大,最后一层 SoftMax 太过耗时,所以我们可以改为:将 not 和 thou 同时作为输入,做一个二分类问题,类别 1 表示 not 和 thou 是邻居,类别 0 表示它们不是邻居。
在这里插入图片描述
但是由于训练集本来就是用上下文构建出来的,所以训练集构建出来的标签全为 1 ,无法较好的进行训练。
在这里插入图片描述
故而需要人工手动添加一些标签为0的数据,通常情况下添加5个负样本。
改进方案:加入一些负样本(负采样模型)。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值