01-WordVec笔记

WordVec词向量空间

1. WordNet的表示

  • WordNet 一个包含同义词和上位词的词典来表示

  • 下面是使用nltk中的corpus进行展示

    • NLTK简介
      NLTK,全称Natural Language Toolkit,自然语言处理工具包,是NLP研究领域常用的一个Python库,由宾夕法尼亚大学的Steven Bird和Edward Loper在Python的基础上开发的一个模块,至今已有超过十万行的代码。这是一个开源项目,包含数据集、Python模块、教程等;
      NLTK的模块 简介:
      NLTK模块及功能

    取同义词

    from nltk.corpus import wordnet as wn
    poses = { 'n':'noun', 'v':'verb', 's':'adj (s)', 'a':'adj', 'r':'adv'}
    for synset in wn.synsets("good"):
    	print("{}: {}".format(poses[synset.pos()],", ".join([l.name() for l in synset.lemmas()])))
    

    取上位词

    from nltk.corpus import wordnet as wn
    panda = wn.synset("panda.n.01")
    hyper = lambda s: s.hypernyms()
    list(panda.closure(hyper))
    
    • WordNet的缺点
      • 忽视了细微的差距
      • 无法保持实时更新
      • 需要人工的来维持和更新
      • 具有主观性

2. One-hot Vector

  • 传统的单词使用离散的变量进行表示,其中One-Hot独热编码便是其中的一种(一个变量为1,其余全为0,如:[0,1,0,0,0,0]
  • 缺点
    • 单词向量之间是正交的,无法表示它们的相似性
    • 单词量很大时,会占用很大的存储空间

3. WordVec的表示

(1)Word Vector的表示

  • 分布语义表示:一个词的意义是由经常出现在附近的词所赋予的,当单词w出现在文本中时,它的上下文是出现在附近的单词集(在固定大小的窗口中)。
  • 将为每个选中的单词构建一个密集向量,以便它与出现在类似上下文中的单词的向量相似
  • 注:单词向量有时称为单词嵌入(word embedding)或单词表示(word representation)。它们是一种分布式表示。

(2)Word2Vec的表示

  • idea
    • 有大量的文本语料库
    • 固定词汇表中的每个单词都用一个向量表示
    • 遍历文本中的每个位置t,其中有一个中心单词c和上下文(“outside”)单词o
    • 使用c和o的单词向量的相似性来计算给定c时o的概率(反之亦然)
    • 不断调整单词向量来最大化这个概率
    • 其中的中间产物就是Word2Vec
  • 两个模型变体:
    • Skip-grams (SG)
      预测上下文(“外部”)词(位置独立)给定中心词
    • 连续词包(CBOW)
      从上下文词中预测中心词
  • 计算流程
    • 每个位置t= 1,…,T,预测一个窗口内固定大小m的上下文词,给定中心词 w t w_t wt在这里插入图片描述
    • 相似度,其中 θ \theta θ为所有可以被优化的变量
      在这里插入图片描述
    • 目标函数J( θ \theta θ)为平均负对数似然值
      在这里插入图片描述
    • 此时最大化相似度L( θ \theta θ)相当于最小化平均负对数似然值J( θ \theta θ)
    • 对于每个单词使用两个向量进行表示
      • v w v_w vw当w为中心词的时候
      • u w u_w uw当w为上下文词的时候
    • 使用softmax函数对中心词c和上下文词o进行预测
      • 其中取幂使得值变成正的;
      • 点积来计算两个点的相似度
      • 标准化使得结果是一个概率分布
      • softmax函数:max:最大化的概率最大的数 x i x_i xi的比例;soft:使得概率小的值也有一定的概率
        在这里插入图片描述
    • 优化函数
      • 向量空间,注意每个单词都有两个向量的表示, θ \theta θ是对所有的这些参数进行优化
        在这里插入图片描述
      • 梯度下降
      • 推导公式,两个 相似度越大,梯度越小。在这里插入图片描述
    • 更新方程
      在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41601540/article/details/111171232