PyTorch笔记 - Word Embeddings Word2vec 原理与源码

2023-11-06 05:30

本文主要是介绍PyTorch笔记 - Word Embeddings Word2vec 原理与源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注我的CSDN:https://blog.csdn.net/caroline_wendy
本文地址:https://blog.csdn.net/caroline_wendy/article/details/128227529

语言建模

  1. 基于已有的人类组织的文本语料,来去无监督学习如何组织一句话,并还能得到单词的语义表征。
  2. 统计模型:n-gram,N个单词所构成的序列,在文档中出现的次数,基于贝叶斯公式。
  3. 无监督学习:NNLM(Neural Network Language Model)《A Neural Probabilistic Language Model》,Neural Network + n-gram
  4. 大规模无监督学习:word2vec、BERT(Bidirectional Encoder Representations from Transformers)

n-gram模型

  1. 特点:统计性、简单、泛化能力差、无法得到单词的语义信息
  2. 定义:n个相邻字符构成的序列
    1. uni-gram,单一单词
    2. bi-gram,两个单词
    3. tri-gram,三个单词
  3. 用途:基于n-gram的频数分析文本,如垃圾邮件分类
  4. 对于word n-gram(基于单词),特征维度随着语料词汇增大和n增大而指数增大(curse of dimensionality,维度灾难)
  5. 对于character n-gram(基于字母),特征维度只随着n增大而增大

单词的语义表征

  1. 稀疏式:one-hot encoding,只有1个位置上的元素是1,只能反应单词在单词表中的位置,维度很长,不利于计算。
  2. 分布式:类似于word embedding,连续浮点型的向量,维度是固定的,隐式的语义表征。
  3. 应用场景:
    1. word/character/phrase/sentence/paragraph embedding
    2. speaker/user/item embedding

基于神经网络的语言模型(NNLM)

  1. 由Bengio(CA,University of California,加州大学)提出,解决Curse of Dimensionality问题。
  2. NNLM包含:
    1. 输入层(one-hot),排列矩阵
    2. 投影层,查询embedding table,将离散的index转换为连续的向量表示。
    3. 隐含层,映射为隐含层
    4. 输出层,映射到大小为单词表数量的embedding之上。
  3. word embeddings是副产物,隐含的语义表征
  4. 主要复杂度:N*D*H + H*V
  5. 如何降低复杂度,如何训练大数据,2010年左右面临的问题

image-20221207185332539

Word2vec模型

  1. 改进1:抛弃隐含层,并提出CBOW和Skip-gram
  2. Continuous Bag-of-Words(CBOW)连续词袋算法,与BERT类似
    1. 不同于NNLM,CBOW考虑到了前后上下文
    2. 使用周围单词预测中间单词
    3. image-20221207190330455
  3. Skip-gram
    1. 与CBOW相反,使用中间单词预测周围单词,判断两个单词是否为相邻单词
    2. image-20221207190343645
  4. 论文《Efficient Estimation of Word Representations in Vector Space》,Tomas Mikolov,CA

image-20221207190515415

Word2vec模型

  1. 改进2:优化Softmax

  2. Softmax计算量跟K呈线性关系,单词维度

    1. image-20221207200221338
  3. Hierarchical Softmax,参考详解Hierarchical Softmax,Huffman树

    1. l o g 2 K log_2K log2K次的二分类
    2. N个单词,N个节点
    3. 选择权重最小的2个单词,合并一课树的左右子树
    4. 重复筛选。
    5. 统计全部单词出现的次数,构建Huffman树的权重,

    image-20221207200507478

img

基于H-Softmax的word2vec

  1. Continuous Bog of Words (CBOW)
    1. 输入:前n个单词和后n个单词
    2. 目标:基于H-Softmax预测中间单词
  2. Skip-gram
    1. 输入:中间单词
    2. 目标:基于H-Softmax预测前n个单词和后n个单词

这篇关于PyTorch笔记 - Word Embeddings Word2vec 原理与源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/354709

相关文章

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别