美文网首页工作生活
CS224n winter 2019-(1)Introducti

CS224n winter 2019-(1)Introducti

作者: tianchen627 | 来源:发表于2019-07-02 20:20 被阅读0次

    CS224n stanford主页
    该链接包含课程的视频、课件、笔记,强烈推荐。
    b站中文字幕
    使用b站新版网页界面,播放器右下角可以调出中文字幕。
    斯坦福 CS224n 中文笔记整理活动 | ApacheCN


    本次课程的内容

    1.The course

    (0:00~9:52)

    主要介绍了课程相关信息,与往年不同的是这次课程使用pytorch而不是tensorflow。


    2.Human language and word meaning

    (9:53~20:45)

    以几个场景切入解释了语言重要的原因。

    (20:46~22:46)

    我们用文字词句表达意图与含义,在语言学中即一个符号(signifier)⇔一个想法与事物(signified)。
    这又称为指称语义(denotational semantics)。

    (22:47~25:42)

    在计算机上处理文字词句含义时,我们常用WordNet,其中包含了大量的同义词集(synonym sets)和上位词(hypernyms,即IsA,知识图谱概念之间的连接关系也是如此)。


    python调用WordNet

    (25:43~27:10)

    WorldNet的缺点:
    1.文字间的细微差别无法准确识别。
    2.不能准确包含文字所有含义,毕竟文字词义在不断更新。
    3.主观性强。(只有固定的离散同义词集,即只有0和1没有相似程度)
    4.需要大量的人力进行标注。
    5.难以准确计算字词之间的相似性。

    (27:11~32:35)

    用离散符号表示文字词句(one-hot编码)会遇到的问题是:
    1.词语数量大时向量也会太大。
    2.所有向量两两正交,无法表现出文字语句间的相似度。
    因为WordNet的种种缺点,用WordNet来计算文字语句的相似度也不合适。所以我们可以想办法在编码时就包含相似度。

    (32:36~34:38)

    J.R.Firth提出了分布式语义(Distributional semantics)。区别于指称语义(denotational semantics),分布式语义认为语义应该结合文字词句的上下文来确定,我们可以利用单词 w 的上下文来为单词 w 构建语义。单词 w 的上下文是指出现在其周围的单词文本(在w左右设定一个固定大小的窗口)。

    (34:39~35:46)

    词向量即构建一个稠密向量,包含的每一位都有数字(区别于稀疏的one-hot向量)。这是一种分布式的表示方法,又被称为词嵌入。

    (35:47~37:53)

    可视化

    将9维词向量投影到2维平面上,可以看到意思相近的单词距离会比较近。


    3.Word2vec introduction

    (37:54~43:58)

    Word2vec是Mikolov在2013年提出的一个词向量框架。我们有大量的文本,文本中出现的每一个单词都用一个向量表示。遍历文本中的每一个位置t有中心词c和外部词o,即分布式语义中的单词w和单词w的上下文。
    利用c和o的词向量相似度来计算P(o|c)或P(c|o),接着持续调整词向量来最大化条件概率。(具体如何计算调整见下一段落)


    一个例子

    (43:59~53:00)

    上一个段落提到了最大化概率及调整词向量。在这里我们定义Word2vec的目标函数,下面两张图非常清楚明了:


    目标函数

    θ是要优化的参数,即词向量的每一位。


    分母中的V是词汇表,即中心词c和词汇表中的所有单词计算指数向量积
    这个式子即softmax

    (53:01~54:54)

    需要优化的θ

    这里的θ是一个2Vxd的矩阵,注意每一个单词都有u,v两个向量所以是2V。


    4~6.Optimization

    (54:55~73:06)

    这里老师左手持笔激情洋溢地在黑板上推导偏导数~梯度下降和链式求导的细节这里就不展开了。


    推导过程

    另外课件中提到了SG和CBOW的概念(课上没讲)。以上的word2vec算法又被叫做Skip-Gram model(SG),还有另一种word2vec算法是Continuous Bag of Words(CBOW)。区别是Skip-Gram是求o(context word)相对于c(center word)的条件概率,而CBOW是求c(center word)相对于o(context word)的条件概率。还提到了优化训练速度的负采样(softmax的分母计算量会极大减慢训练速度)。

    (73:07~81:51)

    介绍了Gensim,这是一个python的库。在最上面的stanford主页链接可以下到代码。

    相关文章

      网友评论

        本文标题:CS224n winter 2019-(1)Introducti

        本文链接:https://www.haomeiwen.com/subject/ssqgcctx.html