基于计数的方法,根据一个单词周围的单词的出现频数来表示该单词。需要生成所有单词的共现矩阵,再对这个矩阵进行 SVD,以获得密集向量,如果语料库处理的单词数量非常大,将需要大量的计算资源和时间。基于计数的方法使用整个语料库的统计数据(共现矩阵、PPMI),通过一次处理(SVD)获得单词的分布式表示。

基于推理的方法,使用神经网络,在 mini-batch 数据上进行学习,神经网络一次只需要看一部分学习数据(mini-batch),并反复更新权重。神经网络的学习可以使用多台机器、多 个 GPU 并行执行,从而加速整个学习过程。

如果需要向词汇表添加新词并更新单词的分布式表示,基于计数的方法需要从头开始计算,重新完成生成共现矩阵、进行 SVD 等一系列操作。基于推理的方法(word2vec)允许参数的增量学习。可以将之前学习到的权重作为下一次学习的初始值,在不损失之前学习到的经验的情况下,高效地更新单词的分布式表示。

推理:当给出周围的单词(上下文)时,预测“?”处会出现什么单词。

基于推理的方法:输入上下文,模型输出各个单词的出现概率。这个模型接收上下文信息作为输入,并输出(可能出现的)各个单词的出现概率。作为模型学习的产物,也能得到单词的分布式表示。如下图所示。

分布式假设:基于推理的方法和基于计数的方法一样,也基于分布式假设。分布式假设,“单词含义由其周围的单词构成”。

one-hot 表示:神经网络无法直接处理 you 或 say 这样的单词,要用神经网络处理单词,需要先将单词转化为固定长度的向量。在 one-hot 表示中,只有一个元素是 1,其他元素都 是 0;将单词转化为 one-hot 表示,就需要准备元素个数与词汇个数相等的向量,并将单词 ID 对应的元素设为 1,其他元素设为 0。

单词的表示:单词可以表示为文本、单词 ID 和 one-hot 表示。如果语料库中,一共有 7 个单词(“you”“say”“goodbye”“and”“i”“hello”“.”),单词表示如下图所示。

将单词转化为固定长度的向量(one-hot 表示),神经网络的输入层的神经元个数就可以固定下来,比如,输入层由 7 个神经元表示,分别对应于 7 个单词。

全连接层变换:c 和 W 的矩阵乘积相当于“提取”权重的对应行向向量。

import numpy as np
c = np.array([[1, 0, 0, 0, 0, 0, 0]]) # 输入
W = np.random.randn(7, 3) # 权重
h = np.dot(c, W) # 中间节点
print(h)
# [[-0.70012195 0.25204755 -0.79774592]]

CBOW模型:它是根据上下文预测目标词的神经网络。模型的输入是上下文。这个上下文用 [‘you’, ‘goodbye’] 这 样的单词列表表示。可以转换为 one-hot 表示,以便 CBOW 模型进行处理。大致结构如下。

输入层:如果对上下文仅考虑两个单词,输入层有两个;如果对上下文考虑N个单词,则输入层会有N个。

中间层:中间层的神经元是各个输入层经全连接层变换后得到的值的平均,经全连接层变换后,第 1 个输入层转化为h1,第 2 个输入层转化为h2,那么中间层的神经元是(1/2)*(h1+h2)。中间层的神经元数量比输入层少,因为,中间层需要将预测单词所需的信息压缩保存,从而产生密集的向量表示。

输出层:输出层有 7 个神经元,这些神经元对应于各个单词。输出层的神经元是各个单词的得分,它的值越大,说明对应单词的出现概率就越高。对这些得分应用 Softmax 函数,就可以得到概率。

全连接层:从输入层到中间层的变换由全连接层完成,全连接层的权重是一个 7 × 3 的矩阵,权重的各行对应各个单词的分布式表示。

采用推理的方法认知单词、CBOW模型相关推荐

  1. 采用模块化建模方法,搭建空气悬架模型,UKF状态估计模型,可实现悬架动挠度等状态估计

    非线性悬架,UKF状态估计 软件使用:Matlab/Simulink 适用场景:采用模块化建模方法,搭建空气悬架模型,UKF状态估计模型,可实现悬架动挠度等状态估计. 包含:simulink源码文件, ...

  2. 非线性悬架,UKF状态估计 采用模块化建模方法,搭建空气悬架模型,UKF状态估计模型,可实现悬架动挠度等状态估计

    非线性悬架,UKF状态估计 软件使用:Matlab Simulink 适用场景:采用模块化建模方法,搭建空气悬架模型,UKF状态估计模型,可实现悬架动挠度等状态估计. 包含:simulink源码文件, ...

  3. 改进版的CBOW模型

    复习 首先复习一下之前的CBOW笔记. 采用推理的方法认知单词.CBOW模型这里面主要是: CBOW模型的核心思路:给出周围的单词(上下文)时,预测目标词处会出现什么单词. 要用神经网络处理单词,需要 ...

  4. 魔术轮胎,dugoff轮胎建模 采用模块化建模方法,搭建非线性魔术轮胎PAC2002,dugoff模型

    魔术轮胎,dugoff轮胎建模 软件使用:Matlab/Simulink 适用场景:采用模块化建模方法,搭建非线性魔术轮胎PAC2002,dugoff模型. 非线性轮胎模型输入: 轮胎侧偏角,轮胎滑移 ...

  5. 【水声通信】使用Bellohop模型产生水声信道,采用相干检测的方法进行PSK、QAM调制解调【matlab代码】

    源码 https://blog.csdn.net/qq_44394952/article/details/124490764?spm=1001.2014.3001.5502 1.实验目的 (1)学习并 ...

  6. Keras深度学习实战(25)——使用skip-gram和CBOW模型构建单词向量

    Keras深度学习实战(25)--使用skip-gram和CBOW模型构建单词向量 0. 前言 1. skip-gram 和 CBOW 模型 1.1 CBOW 模型基本原理 1.2 skip-gram ...

  7. word2vec原理(五):skip-gram和CBOW模型代码实现

    目录 代码一 代码二 第一部分代码对于skip-gram和CBOW模型是通用的,第二部分是实现skip-gram模型的代码. 代码一: import os from six.moves.urllib. ...

  8. CBOW模型的学习、Trainer类的实现

    CBOW 模型的学习的实现:给神经网络准备好学习数据.然后求梯度,并逐步更新权重参数. Trainer类:学习的类. 初始化:类的初始化程序接收神经网络(模型)和优化器(SGD.Momentum.Ad ...

  9. 【Python自然语言处理】文本向量化的六种常见模型讲解(独热编码、词袋模型、词频-逆文档频率模型、N元模型、单词-向量模型、文档-向量模型)

    觉得有帮助请点赞关注收藏~~~ 一.文本向量化 文本向量化:将文本信息表示成能够表达文本语义的向量,是用数值向量来表示文本的语义. 词嵌入(Word Embedding):一种将文本中的词转换成数字向 ...

最新文章

  1. kosaraju算法
  2. 抢购系统架构设计原理参考文档
  3. 终于知道10月27-28-29这3天为什么调整了
  4. centos8更换yum源_基于yum进行linux系统升级--从Centos7升级到Centos8
  5. 世界人工智能大会 | 腾讯攻坚AGI,与机器人配合,推医疗全链条
  6. python plotly 弹出子图_python – 在plotly中添加组条形图作为子图
  7. 如何隐晦地表达“滚”?
  8. (转)人工智能步入金融领域的主流玩法
  9. 管理工作时间的软件有哪些?
  10. pdf两页合并一页,身份证两页合并到一页
  11. 五分钟看懂plc梯形图程序
  12. android webview 视频黑屏,webview 播放H5视频问题 黑屏 只有声音没有画面
  13. OpenCV4--->基础函数,与操作
  14. Apache Doris ODBC mysql外表注意事项
  15. 学习笔记(30):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-模型微调(青出于蓝胜于蓝)
  16. [LuoGu] P3957 跳房子
  17. cmd模式下cd目录,文件夹命名有空格无法切换问题解决方法
  18. 4k显示服务器,远程服务器4k显示器
  19. 回溯法输出自然数1~n的全排列。
  20. HTML5交互性是什么意思,HTML5的结构和语义(5):交互

热门文章

  1. Net和T-sql中的日期函数操作
  2. ABCDE类IP地址的解释
  3. PyCharm运行出现 Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run
  4. c++11特性move和forward区别
  5. ASP.NET MVC 上传图片到项目目录中的文件夹并显示
  6. 快捷方式修复_Mac上的屏幕截图不起作用该如何修复?
  7. 华为二层创建vlan_二层交换机不同VLAN实现互通 (华为)
  8. 为什么python 为什么没有接口_python没有接口吗
  9. 用户信息填写web代码_Web前端常见问题汇总
  10. mysql100多个字段如何优化_MySQL 调优/优化的 100 个建议