• 使用子字(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问题
  • 相关阅读:
    JRebel
    狂神说Spring学习笔记
    Android 系统高度修改定制开机动画显示时间
    手把手教你开发律师法律咨询小程序
    数据分析知识点搜集(纯粹的搜集)
    ROS学习(26)动态参数配置
    案例分析背诵点
    【步态识别】GaitMPL
    Go学习笔记 -- 函数和高阶函数
    Linux常用命令— 目录和文件都能操作的命令
  • 原文地址:https://blog.csdn.net/weixin_45647721/article/details/126590528