• 使用子字(subword)构建单词向量的原因分析---学习笔记


    1. 传统空格分隔的tokenization技术:不利于模型学习词缀之间的关系。E.g. 模型学到的“old”, “older”, and “oldest”之间的关系无法泛化到“smart”, “smarter”, and “smartest”。
    2. OOV:out of vocabulary.
      1. Character embedding作为OOV的解决方法粒度太细
      2. 补充:Character embedding 字符嵌入
        1. 提出原因:
          1. 词向量机制中的词和词之间是独立的,这种独立性假设是有问题的,词之间形式上的相似性会一定程度造成功能的相似性,尤其是在形态丰富的语言中。
          2. 词表大小的问题:即使有丰富的数据可用,实际存储所有单词类型的向量也是不切实际的。
        2. 输入是一个单词,输出是该单词的词向量表示
        3. 字符嵌入模型先训练得到每个字符的字符向量,如果想要得到一个单词的词向量,需要将组成该单词的每一个字符的字符向量输入BiLSTM模型,最终得到该单词的词向量
        4. 优点:
          1. 能够解决OOV词问题;
          2. 可以捕获字符间的结构信息;
          3. 可以推理出相似结构的词表示    
        5. 缺点:
          1. 模型必须“从头开始”学习大量词汇(训练时还需要通过LSTM生成词表示,速度比词向量机制要慢)。
          2. 自然文本表现出数百或数千个时间步长的长距离依赖性。
          3. 字符序列比字序列长,因此需要更多的计算步骤。
          4. 测试时虽然可以通过缓存的方法预先生成一些词向量,但是对于OOV词的词表示生成依旧速度慢;
    3.  Subword粒度在词与字符之间,能够较好的平衡OOV问题
  • 相关阅读:
    Haddop集群的简单搭建
    迅为RK3568开发板ubuntu图形界面开机免密自登录
    友盟+|如何通过阿里云Flink+Paimon实现流式湖仓落地方案
    HTTP入门
    计算机里的公共汽车(总线)
    32.1 Java进阶之注解概念,工作原理
    Shiro框架详解
    Python 单元测试设置
    Spring Boot 3.0.0 发布第一个里程碑版本M1,你的 Java 升到17 了吗?
    用移动ip的优势
  • 原文地址:https://blog.csdn.net/weixin_45647721/article/details/126590528