资源链接:https://www.bilibili.com/video/BV1r4411

正文内容

人类语言声音:语音学和音韵学( Phonetics and phonology)

(课件内容,不是很懂。。。)

  • Phonetics 语音学是一种音流——物理学或生物学
  • Phonology 语音体系假定了一组或多组独特的、分类的单元:phoneme 音素 或者是独特的特征 
    • 这也许是一种普遍的类型学,但却是一种特殊的语言实现
    • 分类感知的最佳例子就是语音体系 
      • 音位差异缩小;在音素之间被放大

大致意思就是:caught和cot有不同的元音在发音,但是美国西南部长大的人很多不区分元音,这样这两个词对于不区分的来说是相同的,这个也和自然语言处理中分类有很大影响,区分哪些声音对他们是敏感的

词法:词的部分

  • 声音本身在语言中没有意义:a和e,b和p是没有意义的(没有实际意义,词是有实际意义的)
  • parts of words/词 是音素的下一级的形态学,是具有意义的最低级别(也就是单个字母没有意义,但是单词是有意义的,例如财富代表巴拉巴拉,幸运代表巴拉巴拉)

  • 传统上,morphemes 词素是最小的语义单位(以不幸/unfortunately为例子)
  • 深度学习:形态学研究较少;递归神经网络的一种尝试是 (Luong, Socher, & Manning 2013) 
    • 处理更大词汇量的一种可能方法——大多数看不见的单词是新的形态(或数字)

(斯坦福大学之前也研究过这种语义表示的树状结构,如上图)

Morphology/形态学

  • 一个简单的替代方法是使用字符 n-grams (上图n=3)

    • Wickelphones (Rumelhart& McClelland 1986)
    • Microsoft’s DSSM (Huang, He, Gao, Deng, Acero, & Hect2013)
  • 使用卷积层的相关想法
  • 能更容易地发挥词素的许多优点吗?

在神经网络80年代中期到九十年代初期,语言结构是个很有争议的问题,有些人建立了学习动词过去式形态的系统,但是最困难的地方是很多不规则的动词过去式(上述图就是当时人们使用的模型方法,类似一个三元组/每次取三个,但是这个想法遭到了很多争议,但是单纯作为工程解决方案,事实证明是很好的方法)

书写系统中的单词

许多语言没有分词:比较出名的就是咱们的汉语啦~,例如:美国关岛国际机场及其办公室均接获(希腊语也木有)

附著词?

  • 分开的:
  • 连续的:

复合的(复合名词)?

  • 分开的:
  • 连续的:

(英语复合名词是带-的,但是例如德语、日耳曼语等复合词类似上述连续的)

单词级别下的模型

  • 需要处理数量很大的开放词汇:巨大的、无限的单词空间 (例如捷克语、美国土著语等都比较复杂...单词空间贼大)

    • 丰富的形态
    • 音译(特别是名字,在翻译中基本上是音译)
    • 非正式的拼写(下图的Goooo...od和Vibesss...)

字符级模型

  • 词嵌入可以由字符嵌入组成

    • 为未知单词生成嵌入
    • 相似的拼写共享相似的嵌入
    • 解决OOV问题
  • 连续语言可以作为字符处理:即所有的语言处理均建立在字符序列上,不考虑 word-level
  • 这两种方法都被证明是非常成功的! 
    • 有点令人惊讶的是——传统上,音素/字母不是一个语义单元——但深度学习模型组成了组
    • 深度学习模型可以存储和构建来自于多个字母组的含义表示,从而模拟语素和更大单位的意义,从而汇总形成语义

(感觉有个分布式词向量的那个味道)

书写系统

大多数深度学习NLP的工作都是从语言的书面形式开始的——这是一种容易处理的、现成的数据

但是人类语言书写系统不是一回事!各种语言的字符是不同的!(有的字符带有语义)

纯字符级模型

  • 上节课我们看到了一个很好的纯字符级模型的例子用于句子分类

    • 非常深的卷积网络用于文本分类
    • Conneau, Schwenk, Lecun, Barrault.EACL 2017
  • 强大的结果通过深度卷积堆叠

纯字符级NMT模型

  • 以字符作为输入和输出的机器翻译系统
  • 最初,效果不令人满意 
    • (Vilaret al., 2007; Neubiget al., 2013)
  • 后来,人们拥有成功的字符集解码器/decoder
    • (JunyoungChung, KyunghyunCho, YoshuaBengio. arXiv 2016).
  • 证明了这个是一个有前景的~ 
    • (Wang Ling, Isabel Trancoso, Chris Dyer, Alan Black, arXiv 2015)
    • (Thang Luong, Christopher Manning, ACL 2016)
    • (Marta R. Costa-Jussà, José A. R. Fonollosa, ACL 2016)

英语-捷克WMT 2015年的结果(英语和捷克语的翻译系统)

  • Luong和Manning测试了一个纯字符级seq2seq (LSTM) NMT系统作为基线/基准
  • 它在单词级基线/基准/基础上运行得很好
  • 对于 UNK/不存在的词,是用 single word translation 或者 copy stuff from the source
  • 字符级的 model 效果更好了,但是太慢了 ,但是在运行时需要3周的时间来训练,运行时没那么快,如果放进了 LSTM 中,序列长度变为以前的数倍(大约七倍)

事实证明翻译还是比较好的~

(char/角色级模型效果很好;而word模型中对于不认识的词,可能直接进行原文替换,这就比较失败了)

Fully Character-Level Neural Machine Translation without Explicit Segmentation

Jason Lee, Kyunghyun Cho, Thomas Hoffmann. 2017. Encoder as below; decoder is a char-level GRU

(大概2020年就出来了,一个更复杂,能了解原端语言含义的模型,用了很多我们上次说的技术,编码方面使用字母嵌入序列)

在LSTM seq2seq模型中,深度越大,字符越强

Revisiting Character-Based Neural Machine Translation with Capacity and Compression. 2018. Cherry, Foster, Bapna, Firat, Macherey, Google AI

(在捷克语这样的复杂语言中,字符级模型的效果提升较为明显,但是在英语和法语等语言中则收效甚微。小型的模型适合文字模型,大型的适合角色模型,也就是模型较小时,word-level 更佳;模型较大时,character-level 更佳)

子词模型:两种趋势

与word级模型相同的架构

  • 但是使用更小的单元:“word pieces”
  • [Sennrich, Haddow, Birch, ACL’16a], [Chung, Cho, Bengio, ACL’16].

混合架构

  • 主模型使用单词,其他使用字符级
  • [Costa-Jussà& Fonollosa, ACL’16], [Luong & Manning, ACL’16].

字节对编码

  • BPE 并未深度学习的有关算法,但已成为标准且成功表示 pieces of words 的方法,可以获得一个有限的词典与无限且有效的词汇表。
  • 最初的压缩算法 (本来字节作为单位,可以将词作为单位)
    • 最频繁的   字节 -> 一个新的字节。
    • 用字符ngram替换字节(实际上,有些人已经用字节做了一些有趣的事情)
    • Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural Machine Translation of Rare Words with SubwordUnits. ACL 2016. 
      • https://arxiv.org/abs/1508.07909
      • https://github.com/rsennrich/subword-nmt
      • https://github.com/EdinburghNLP/nematus

  • 分词算法 word segmentation

    • 虽然做得很简单,有点像是自下而上的短序列聚类
    • 将数据中的所有的Unicode字符组成一个unigram的词典
    • 最常见的 ngram pairs 视为 一个新的 ngram

  • 有一个目标词汇量,当你达到它的时候就停止
  • 做确定性的最长分词分割
  • 分割只在某些先前标记器(通常MT使用的 Moses tokenizer )标识的单词中进行
  • 自动为系统添加词汇,不再是基于传统方式的 strongly “word”
  • 阿紫2016年WMT排名第一!仍然广泛应用于2018年WMT

词条/句子模型

谷歌NMT (GNMT) 使用了它的一个变体

  • V1: wordpiece model
  • V2: sentencepiece model
  • 不使用字符的 n-gram count,而是使用贪心近似来最大化语言模型的对数似然函数值,选择对应的pieces
    • 添加最大限度地减少困惑的n-gram

Wordpiece模型标记内部单词

Sentencepiece模型使用原始文本

  • 空格被保留为特殊标记(_),并正常分组
  • 您可以通过将片段连接起来并将它们重新编码到空格中,从而在末尾将内容反转
  • https://github.com/google/sentencepiece
  • https://arxiv.org/pdf/1804.10959.pdf

BERT 使用了 wordpiece 模型的一个变体

  • (相对)在词汇表中的常用词

    • at, fairfax, 1910s
  • 如果词汇表中不存在,则其他单词由wordpieces组成 
    • hypatia = h ##yp ##ati ##a

如果你在一个基于单词的模型中使用BERT,你必须处理这个

字符级建立单词级

Learning Character-level Representations for Part-of-Speech Tagging (Dos Santos and Zadrozny 2014)

  • 对字符进行卷积以生成单词嵌入
  • 为PoS标签使用固定窗口的词嵌入

与字符结合就能处理无限的词了

Character-based LSTM to build word rep’ns/基于字符的LSTM构建word rep'ns/Bi-LSTM构建单词表示

运行角色级/字符级Bi-LSTM连接两个最终状态,我们称之为外向代表,然后我们把这个单词放入更高级的语言模型(我们目标最好就是降低角色级LSTM生成词的困惑度---不太明白这句话。。)

字符感知神经语言模型

Yoon Kim,Yacine Jernite, David Sontag, Alexander M. Rush. 2015

一个更复杂/精密的想法

动机是:

  • 派生一个强大的、健壮的语言模型,该模型在多种语言中都有效
  • 编码子单词关联性:eventful, eventfully, uneventful…
  • 解决现有模型的罕见字问题
  • 用更少的参数获得可比较的表达性

对字符卷积后选择最可能的词送入词级别

尽管我们对他是存疑的,但是事实上是有很好的效果的,如下图

(红色的是单词前缀,蓝色的是单词后缀,橙色的是连词符,灰色的是其他的一切)

Take-away

(课上没讲,属于ppt内容)

  • 本文对使用词嵌入作为神经语言建模输入的必要性提出了质疑
  • 字符级的 CNNs + Highway Network 可以提取丰富的语义和结构信息
  • 关键思想:您可以构建“building blocks”来获得细致入微且功能强大的模型!

混合式NMT/混合式神经翻译系统

  • 两全其美的建筑(比单纯的字符级更好,比字符级底层然后词级上层的也更加合理)
  • 翻译大部分是单词级别的
  • 只在需要的时候进入字符级别
  • 使用一个复制机制,试图填充罕见的单词,产生了超过 2 BLEU的改进

模型想法/架构如下:(只是打算。还没做哟~)

2-stage Decoding

单词级别的束搜索

  • 只有当遇到<UNK>时,才使用字符级别的束搜索
  • 混合模型与字符级模型相比 
    • 纯粹的字符级模型能够非常有效地是用字符序列作为条件上下文
    • 混合模型虽然提供了字符级的隐层表示,但并没有获得比单词级别更低的表示

WMT2015年冠军系统

2015冠军,用了30倍数据和三个系统,但是混合系统更np

英语-捷克语翻译示例

遇见<UNK>时有两种策略,一种是尽最大程度去复制这个词,或者就是字符级模型去处理,理论上很好,但是现实中却容易出现问题,如下图:

Chars for word embeddings/单词嵌入的字符

一种用于单词嵌入和单词形态学的联合模型(Cao and Rei 2016)

  • 与word2vec目标相同,但使用字符
  • 双向LSTM计算单词表示
  • 模型试图捕获形态学
  • 模型可以推断单词的词根

FastText embeddings/子词嵌入

目标:下一代高效的类似于word2vecd的单词表示库,但更适合于具有大量形态学的罕见单词和语言

  • 带有字符n-grams的 w2v 的 skip-gram模型的扩展
  • 将单词表示为用边界符号和整词扩充的字符n-grams
  • where=<wh,whe,her,ere,re>,<where>
  • 注意<her>和<her是不同于her的
  • 前缀、后缀和整个单词都是特殊的
  • 将word表示为这些表示的和。上下文单词得分为
  • 细节:与其共享所有n-grams的表示,不如使用“hashing trick”来拥有固定数量的向量

这里课程讲的比较浅,有兴趣可以看看动手学习深度学习的这部分内容

这个子词模型也是很成功的,如下:单词相似度得分?

罕见单词的差异收益

2019年CS224N课程笔记-Lecture 12: Subword Models相关推荐

  1. 2019年CS224N课程笔记-Lecture 5: Linguistic Structure: Dependency Parsing

    资源链接:https://www.bilibili.com/video/BV1r4411,部分内容参考来自于码农场 » CS224n笔记6 句法分析和https://zhuanlan.zhihu.co ...

  2. 2019年CS224N课程笔记-Lecture 13: Contextual Word Representations and Pretraining

    资源链接:https://www.bilibili.com/video/BV1r4411 之前大部分都是课件内容翻译+自己的一些总结,以后更倾向于自己的总结咯- 正课内容 词的表示方法 一开始时学过的 ...

  3. 2019年CS224N课程笔记-Lecture 3: Word Window Classification, Neural Networks, and Matrix Calculus

    资源链接:https://www.bilibili.com/video/BV1r4411 正课内容 分类的介绍和概念 xi​ 是输入,例如单词.句子.文档(索引或是向量),维度为d yi是我们尝试预测 ...

  4. 2019年CS224N课程笔记-Lecture 19:Safety, Bias, and Fairness

    资源链接:https://www.bilibili.com/video/BV1r4411f7td?p=19 毒性/toxicity->戾气程度 正课内容 对于现实中的这种香蕉我们倾向于不提黄色( ...

  5. 2019年CS224N课程笔记-Lecture 16:Coreference Resolution

    资源链接:https://www.bilibili.com/video/BV1r4411f7td?p=16 正课内容 What is Coreference Resolution?/什么是共指消解? ...

  6. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机...

    Lecture 12 支持向量机 Support Vector Machines 12.1 优化目标 Optimization Objective 支持向量机(Support Vector Machi ...

  7. 【NLP】CS224N课程笔记|词向量I: 简介, SVD和Word2Vec

    NewBeeNLP原创出品 公众号专栏作者@Ryan 知乎 | 机器学习课程笔记 CS224N课程笔记系列,持续更新中 课程主页:  http://web.stanford.edu/class/cs2 ...

  8. 【笔记3-6】CS224N课程笔记 - RNN和语言模型

    CS224N(六)Recurrent Neural Networks and Language Models 语言模型 语言模型介绍 n-gram 基于窗口的神经语言模型 RNN RNN Loss a ...

  9. 【笔记3-7】CS224N课程笔记 - 神经网络机器翻译seq2seq注意力机制

    CS224N(七)Neural Machine Translation, Seq2seq and Attention seq2seq神经网络机器翻译 历史方法 seq2seq基础 seq2seq - ...

最新文章

  1. 告诉你,Spring Boot 真是个牛逼货!
  2. 查看并修改mysql的默认引擎
  3. 分子计算机已经问世,纳米计算机指日可待?
  4. 从Android源码的角度分析Binder机制
  5. NeurIPS | 17篇论文带你展望图机器学习发展趋势
  6. 【进击大厂之力扣每日打卡】七进制数
  7. 顺序栈实现迷宫求解问题v0.1
  8. [转移]今天做了的一些事
  9. matlab求解指派问题最优解的函数
  10. new一个对象的过程发生了什么
  11. 三元一次方程组例题_50道三元一次方程组计算题及答案过程
  12. 计算机主机解剖图,电脑主机结构示意图
  13. win7装matlab教程,win7系统怎么安装matlab软件(图文教程)
  14. Vue 豆瓣电影项目
  15. 护眼的绿豆沙色 RGB 值
  16. 2021年中国彩电行业发展现状分析,零售量首度跌破4000万大关,行业迎来艰难时刻「图」
  17. IP地址子网掩码的计算
  18. 20230306 作业
  19. 计算机结构化面试万能套话,结构化面试30句万能套话拯救你.pdf
  20. 360浏览器的404报错页

热门文章

  1. 超高学费一年八万!华中师范大学伍伦贡联合研究院计算机硕士
  2. context.getApplicationContext()与context的差别
  3. MongoDB数据库设计中6条重要经验法则 Part 2
  4. 芯片设计中的latch_为什么ICG Cell中使用锁存器(Latch),而不使用触发器(Flip Flop)?...
  5. MATLAB resample函数
  6. Windows下的ARP命令
  7. 二、计算机网络体系架构——网络工程师成长之路
  8. exception的使用
  9. forward_list
  10. Lasso回归理论及代码实现