【CS224n】Part1:NLP with Deep Learning 小白的NLP学习之路

【CS224n】Part1:NLP with Deep Learning 小白的NLP学习之路

在这里插入图片描述
本人小白一枚,最近入坑NLP,现跟着斯坦福教程一步步学(教案原文),以下为Part1部分的学习总结。

1. word Vectors

我们知道我们要处理自然语言时,通常将单词变为词向量形式,后期对词向量进行后续的处理。

最基础的词向量便是One-hot vertor (即目标单词位置为1,其他位置为0)。但是这种形式十分稀疏,并且不能捕捉到上下文的关联。
在这里插入图片描述

2. SVD Based Methods

由于one-hot vertor方法不能捕捉到上下文的关联,提出了基于SVD的方法。

1). Word-Document Matrix

-> 可以捕捉上下文关联
-> 但是矩阵太大,与文件数M成正比   R|V|×M

2). Window Based Co-occurrence Matrix

-> 每个单词与相加单词在特定大小的窗口出现的频次组成的矩阵

  1. I enjoy flying.
  2. I like NLP.
  3. I like deep learning.
    The resulting counts matrix will then be:
    在这里插入图片描述
3). Applying SVD to the cooccurrence matrix

-> 计算前K维捕获的方差量,当其达到满意的百分比时,将其子矩阵H1:|v|,1:k 作为词嵌入矩阵。
                                                                   在这里插入图片描述   方差量
在这里插入图片描述
在这里插入图片描述
缺点:维度常变化、高维性、稀疏、二次cost to train、词频不平衡
改进:忽略一些词(is,and,or…)、根据文档中单词之间的距离对共现计数进行加权、使用Pearson相关,将负计数设为0

4). Iteration Based Methods - Word2vec
  1. 算法: CBOW -> () <-                ->交叉熵 ->更新V、U
                Skip-gram <- () ->           ->朴素贝叶斯 ->更新V、U
                                                                   |______>交叉熵 -> loss function
  2. 训练方式: 负采样 -> 面对抽样负面示例来定义目标 (negative words)
                       分层Softmax -> 使用有效树来定义目标以计算所有词汇的概率(随机游走)
     

在这里插入图片描述
这种模型需要对大量数据集进行计算和存储全局信息。

4.1.1 Continuous Bag of Words Model (CBOW)

CBOW模型
从周围单词预测中心单词。
每个单词需要学习两个向量。
在这里插入图片描述

  • n为任意大小,用于定义嵌入空间的大小
  • V 输入矩阵,V的第i列为word wi的n维嵌入vector,vi -> n * 1 vector
  • U 输出矩阵,U的第j行为word wj的n维嵌入vector,uj -> 1 * n vector
    在这里插入图片描述
    在这里插入图片描述
    其中 y -> one-hot -> R|v|
    softmax公式:
         在这里插入图片描述
    交叉熵公式:
        在这里插入图片描述
        由于j为one-hot vector,故而简化交叉熵公式为:
            在这里插入图片描述
    由于相似向量的点积更高,推动相似的词彼此接近以获得更高的分数。
    为了学习输入矩阵U和输出矩阵V,CBOW定义了一个代价函数,用于衡量预测中心词的好坏程度。然后通过随机梯度下降更新矩阵U和V来优化该代价函数。
    在这里插入图片描述

未完待续。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值