2、自然语言和单词的分布式表示(中)

    目录

一、基于计数的方法存在的问题

二、基于推理的方法概要

三、神经网络中单词的处理方法

 四、简单的word2vec

1、CBOW模型的推理

2、CBOW模型的学习


        用向量表示单词的方法大致可以分为两种:一种是基于计数的方法;另一种是基于推理的方法。本节主要讲基于推理的方法。

一、基于计数的方法存在的问题

        基于计数的方法使用整个语料库的统计数据(共现矩阵和PPMI等),通过一次处理(SVD等)获得单词的分布式表示。而基于推理的方法使用神经网络,通常在mini-batch数据上进行学习。这意味着神经网络一次只需要看一部分学习数据(mini-batch),并反复更新权值。这种学习机制上的差异如图:

        从图中可以看出,基于计数的方法一次性处理全部的学习数据;基于推理的方法使用部分学习数据进行学习。这意味着,在词汇量很大的语料库中,即使SVD等的计算量太大导致计算机难以处理,  神经网络也可以在部分数据上进行学习。

二、基于推理的方法概要

        基于推理的方法主要操作是“推理”,即当给出周围的单词(上下文)时,预测“?”处会出现什么单词。

         从模型视角来看,推理任务如下图所示:

         也就是基于推理的方法引入了某种模型,我们将神经网络作为这种模型。输入为:上下文,输出为:(可能出现的)各个单词的出现概率。

        在这样的框架下,使用语料库来学习模型,使之能做出正确的预测。另外,作为模型学习的产物,我们得到了单词的分布式表示。

三、神经网络中单词的处理方法

        也就是将单词转化为固定长度的向量,常用的方法是:采用one-hot编码。例如:

        1、假设语料库中含有7个单词,分别为:"you"、"say"、"goodbye"、"i"、"hello"、"."。要想将单词转化为one-hot表示,就需要准备元素个数与词汇个数相等的向量,将单词ID对应得元素设置为1,其余元素设置为0.

         将单词得向量元素得个数确定下来之后,神经网络中输入层得神经元个数也确定下来了。

         输入层的神经元个数就等于向量的元素个数。

        2、以基于神经网络的全连接层变换为例

         经过一个矩阵的变换之后,将7维的向量压缩为3维。比如:

 四、简单的word2vec

        word2vec中主要使用的两个神经网络:CBOW和skip-gram。本节以CBOW为例。

1、CBOW模型的推理

        CBOW模型是根据上下文预测目标词的神经网络(“目标词”是指中间的单词,它周围的单词是“上下文”)。

        (1)CBOW模型的网络结构

               它有两个输入层(上下文仅考虑两个单词),经过中间层到达输出层。这里,从输入层到中间层的变换由相同的全连接层(权重为Win)完成,从中间层到输出层的变换由另一个全连接层(权重为Wout)完成。

        (2)语料库

        语料库:"you"、"say"、"goodbye"、"i"、"hello"、"."。

        (3)转化为one-hot形式

        以"you"、"goodbye"为例:

        you:[1,0,0,0,0,0,0];"goodbye":[0,0,1,0,0,0,0]

        (4)实现CBOW推理

         现在利用CBOW模型可以实现输入上下文,推测目标词了,但是准不准还需要多CBOW模型进行训练。

2、CBOW模型的学习

        对CBOW模型进行学习只是使用以下softmax函数和交叉熵损失。首先使用softmax函数将得分转化为概率,再求这些概率和监督标签之间的交叉熵误差,并将其作为损失进行学习,这一过程如下图所示:

        word2vec中使用的网络有两个权重,分别是输入侧的全连接层的权重(Win)和1输出侧的全连接层的权重(Wout)。一般而言,输入侧的权重的每一行对应于各个单词的分布式表示,输出侧的权重在列方向上保存了各个单词的分布式表示。如下图所示:

        就word2vec而言,选择输入侧的权重作为单词的分布式表示。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值