词向量模型 Word2Vec 2022-1-18

人工智能基础总目录


Word embedding 是自然语言处理中的重要环节,它是一种文本表示方法,并不具体指某种算法或模型。Word embedding 的任务是把不可计算的文本转换成可以计算的向量 。

一 One hot编码

本质上,one-hot编码把所有词看作互相独立变量.

缺点

  • 无法表达词和词之间的关系 • 相似 • 反义 • 上下位
  • 在句子中的地位
  • -空间占用大 • 数学计算不友好
  • 词典外词的插入会带来麻烦,需要对所有词扩展维度

编码举例:
[“中国”, “美国”, “日本”, “美国”] —> [[1,0,0], [0,1,0], [0,0,1], [0,1,0]]

由于one-hot 维数多,使用降维的方法来优化。

  • 1 PCA
  • 2 SVD: 压缩的过程, 不一定是方矩阵,可以为m * n 的矩阵。

PCA/SVD后的问题

  • 加入新词,需要重新计算
  • 计算复杂度仍然很高
  • 无法解释多义词

二 Word2vec

什么是好的词表示

  • SPACE ECONOMICAL 使用内存空间小,稠密的矩阵表达,维度小一些与one-hot 相比
  • ADAPTIVELY UPDATE 新语料,能方便的更新
  • SEMANTIC SIMILARITY 可以计算语义相似性 我们希望 漂亮和好看的词近一些。

单词的意思,受到上下文的影响。
在这里插入图片描述

  • 语料充分, 使用大量数据进行无监督模型训练得到
  • 各词有份 每个词都会计算都得向量
  • 考虑上下文实现 有当前词和周边词
  • 计算周边词在当前词的条件下概率
  • 训练优化 调节词向量使概率最大

1.1 目标函数

当前窗口为5个,最大化概率: P(对|计划) * P(未来|计划) * P(的|计划)*P(一|计划)
在这里插入图片描述

2.1 主流计算方法

1 Skip gram

在这里插入图片描述
Loss 函数的得到: 负号 将最大转化为最小。 原来是4个概率相乘,加log 后变成各项相加。

输入: 假设 输入 X one-hot V 词表大小,结果N 节点,词向量维度维度为N, 再经过V 个节点得到Y。

矩阵的解释输入 (V * V) × (V * N)(我们需要的词向量) × N * V 最后得到 V * V

有 Wt, 存在映射关系得到 Wt-2 Wt-1 Wt+1 Wt+2,求和最大,求解得到(Wt)

2 CBOW

在这里插入图片描述
有 Wt-2 Wt-1 Wt+1 Wt+2 都关于(Wt),求和最大,求解得到(Wt)

通过上下文来预测当前值。相当于一句话中扣掉一个词,让你猜这个词是什么。

2.2 计算方面的优化方法

一个较大语料中的词和词关系非常多,而Softmax非常费时间

1 Tree softmax

在这里插入图片描述

Haffman tree 参数都空心的叶子上
将所有词的softmax 求最大,变成多次二分类后得到最大的softmax。

2 Negative Sampling (NEG)

NEG 采集负样本,NEC 对噪声的一个控制。
有负采样与Haffman tree 两个二选一。

当前词是正样本, 不是当前词就是负样本。NEG 随机增大负样本采样。 调节了词频概率。等距划分,带权重的采样。将多分类转换为二分类。

三 Glove 模型

https://nlp.stanford.edu/projects/glove/
最近邻概念
假设 窗口大小为2 两个词在同一窗口出现的次数。词频共现矩阵
在这里插入图片描述
相关概率/不相关概率 = 8.9
不相关概率/相关概率 = 0.085

下面公式为思路,非公式推导。让左右两边尽量相等,即差值最小化。
在这里插入图片描述
在这里插入图片描述

四 句子向量

可以通过词向量来得到 句子向量。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值