自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)

  • 自然语言:规则—>统计—>神经网络
  • 现在:黄金时代
  • 缺陷:
    • 过度依赖数据和计算资源
    • 建模、可解释性、推理不足

1.什么叫自然语言处理

  • 自然语言处理

自然语言处理就是用计算机对人类语言进行处理,使得计算机具备人类的听、说、读、写能力,它是未来人工智能技术最为关键的核心之一。比尔·盖茨说过,“自然语言处理是人工智能皇冠上的明珠,如果我们能够推进自然语言处理,就可以再造一个微软。”

1.1 困难

  • 困难可想而知
    • 词同意义不同
    • 人:有背景知识,可以理解
    • 机器:缺失背景知识

自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)

1.2历史

自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)

1.3 智能

自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)

1.4 经典nlp任务的进展

自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)

  • 聊天机器人:小冰
    • 对话23轮以上
  • SQuAD:阅读理解
  • WMT-2017机器翻译
  • CoNLL(语法检查)会议名
    • 有很多评测任务
    • 命名实体识别之类的

02.技术体系

2.1 词

  • 词的编码
    • 方法:
      • CBOW
        • 周围的词预测当前的词
      • skip-gram
        • 当前的词预测周围的词
    • 结果:获得每一个词稳定的向量表示–语义表示

2.2 句子

  • 句子的编码
    • 方法

      • RNN
        • 从左到右对句子建模,每个词对应一个隐藏状态,
          • 该状态:代表了从句首到当前词的语义信息,
          • 句尾:全句子语义
        • 补充:双向RNN中
          • 前向RNN的状态:句首到当前词
          • 后向:句末到当前词
          • 拼接:双向信息
      • CNN
        • 词嵌入
        • 位置嵌入
        • 卷积
        • —>向量表示:对应句子的语义
      • ATTENTION:注意力机制
        • 综合考虑:当前状态下对饮给的编码的每一个隐藏状态,加权平均–>体现当前的动态输入
      • transformer
        • 引入自编码:一个词与周围词建立相似
        • 引入多头注意力机制:可以引入多种特征表达,所以编码效果或者编码的信息更加丰富
      • 预训练模型
        • 最早:静态词:不论上下文,只看词本身的表征(多义词也只有一个
        • 下面的都是根据上下文的唯一表征
        • ELMo:
          • 双向:可左到右,也可右到左
          • 每一层对应的节点并起来:双向信息–当前词在上下文的语义表示
          • 这个语义+词本身的嵌入–进行后续任务,性能提升
        • Bert
          • 它用左边、右边的信息来预测最外部的词的信息
          • 它也可以判断下一句是真的下一句还是伪造的下一句
          • 用两种方式对句子每一个词进行编码
          • 得到的训练结果:表征了这个词在上下文中的语义表示。
          • 基于这样的语义表示,
            • 就可以判断两个句子的关系,
              • 比如说是不是附属关系,
            • 判断一个句子的分类
              • (例如Q&A中,判断回答对应的边界是不是对应提问)
            • 对输入的每一个词做一个标注(序列标注
              • 结果就得到一个词性标注(实体标注。
        • 其他
          • GPT-2,以及最近的XLNET,以及UNILM、MASS、MT-DNN、XLM
          • 也都是依据上下文获得唯一表征
          • UNILM(微软研究院)
            • 同时训练得到类似Bert和GPT
          • MASS(微软)
            • 以encoder-decoder训练
            • 在机器翻译上表现良好
          • MT-DNN
            • 强调多任务学习
          • XLM
            • 学习多语言Bert
            • 适用于跨语言
              自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)
    • 基于这样的表征,编码、解码机制

      • 序列–编码–>向量(表征)–解码–>序列
      • 翻译、序列标注等
  • 预训练模型的启发
    • 过去:期望用基于知识的方法来充实当前的输入,但做的不好
    • 现在:
      • 预训练模型:学习语言结构、学习领域知识、常识
      • fine-tune微调:适应下游任务
        • 微调仅需要少量数据

03 未来发展

  • 性能超越人类
    • 一堆模型、一堆数据、一堆机器–刷榜
  • 问题
    • 计算资源有限

      • 同样的算法,越大越快越好,但消耗巨大
      • 过多的计算导致环境污染(服务器消耗巨大资源)
      • 下面例子里用了10倍蛮力,得到0.2%的提升(不划算)
        自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)
    • 过于依赖数据

      • 标注代价巨大
      • 标注质量堪忧(人总有误差、偷懒等
      • 标注数据隐含歧视(受到人主观映像
      • 数据分布不同(训练的模型只在你标注数据相同的数据上有效,换一个数据压根不行)

      比如说我们做Q&A问答系统,我们在所有的问答里面都假设是第一名,但到了搜索引擎上有很多简单的问题都解决不好。此外,还有数据隐私保护等等问题。

    • 去除上文以外的问题(三个主要的问题)

      • Rich Resource Tasks(资源丰富的任务)
        • 如中英机器翻译
      • Low Resources Tasks(资源很少的任务
        • 如中文到希伯来语的翻译
      • Multi-turn Tasks(多轮任务)
        • 客服(对话机器人)

3.1 资源丰富的任务—中英翻译

  • 语料虽多,效果却还是有问题
    • 翻译错词
    • 丢词
    • 不合语法
  • 疑问
    • 如何把词典集成进来
    • 如何上下文判断问题
    • 领域自适应
    • 主体自适应
  • 就算有大量数据,也并不一定能够解决所有的问题
    自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)
    自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)
    自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)

3.2 资源少的任务

  • 困难:
    • 语料少,需要借力
  • 借力
    • 迁移模型:最常见的:预训练模型
    • 跨语言学习:从其他的语言学习过来
      • 英语的模型,用在德语、法语上
    • 利用种子迭代学习
      • 比如有一个小辞典,有几条规则,有几条双语,以此为引子,冷启动,启动之后迭代
  • 尝试很多,但没有很好的方法
    • 如何建模
    • 如何从数据分析中做无监督、少监督的学习
    • 如何迁移:也是问题
    • 如何无监督也是问题
    • 先验的规则词典,如何冷启动
    • 人能不能参与其中,帮助一个开始弱小的额系统逐渐强大(主动学习?

3.3 多轮问题–多轮对话

自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)
自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)

  • 困难
    • 小孩子都知道,电脑却难以回答
      • 问题:没有常识,推理不行
    • 前后不一致
      • 时间、空间、逻辑
      • 需要记忆力
  • 如何推理
    • 了解上下文
    • 利用知识
    • 推理
    • 可解释性问题(推理需要可解释
  • 推理所用技术:
    • 语义分析
    • 上下文的指代消解
    • 省略消解
  • 推理模型是什么样的?
    • 有记忆、知识
    • 有读写:
      • 可读取记忆,改变对话状态(知识和状态)
      • 写记忆(更新
    • 得到答案后,也要更新记忆、存储
      自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)

4 未来之路

  • 目标遥远:可解释、有知识、有道德、可自我学习的NLP
  • 问题很多:
    • 我们怎么样来实现这样的目标呢?
    • 我们要从具体的任务出发,找出存在的问题。
      • Rich-Resource存在什么问题呢?
        • 上下文建模、数据纠偏、多任务学习、人类知识的理解。
      • Low-Resource又有什么问题要解决呢?
      • 多轮要解决什么问题呢?
        • 就是要解决知识常识、上下文建模、推理机制、可解释等等。
  • 如何推进发展
    • 算力
    • 数据
    • 模型
    • 人才培养
    • 合作
    • 强调应用
      自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)