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

相关文章

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

基于Java实现模板填充Word

《基于Java实现模板填充Word》这篇文章主要为大家详细介绍了如何用Java实现按产品经理提供的Word模板填充数据,并以word或pdf形式导出,有需要的小伙伴可以参考一下... Java实现按模板填充wor编程d本文讲解的需求是:我们需要把数据库中的某些数据按照 产品经理提供的 word模板,把数据

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于