这里梳理一下我目前比较感兴趣、以后可能做的研究方向,以及相关的论文、笔记、想法等。
内容主要来自:
- 工作/研究笔记本
- OneNote上的笔记
- workspace目录下的一些md文件
- github博客的文章
- 知乎发布的文章
- 知乎专栏 - 学习ML的皮皮虾的文章
- 腾讯文档中的一些调研记录
- trello中记录的条目
- hugging face在medium发布的文章
- github NLU team的页面
- PaperNote博客的论文
- 其他
自然语言理解
- 迁移学习
- few-shot,融合外部知识,融合先验的规则
- 主动学习
- 蒸馏学习
任务型对话中的对话结构(状态)挖掘
- 文本表示
- 多粒度文本表示(Ordered Neuron)
- 结构化的信息存储
瑞思数据:使用mask、进行课程学习
瑞思数据:有关组合优化,对话状态的本质、学姐之前的想法
语义分析相关问题
语义分析、NL2SQL、句法依存、基于语法的代码生成、执行程序生成(配合规则和强化学习,如神经-符号概念学习器):都类似于将序列变成树形结构(Seq2Tree)
其他
NLP应用研究:共同趋势
- 越来越注重于少样本、零样本的研究,包括但不限于以下技术/概念:
- 目前广泛应用的:预训练模型 + fine-tune的范式
- 模型融入外部知识库
- 用一些工具预先提取特征一起作为模型输入,如NER标签、TF-IDF值、语义依赖树等
- 这种方法相当于融入了一些先验知识,能否也算作符号主义和连接主义的结合呢?
- 迁移学习:
- 模型驱动:原模型+新数据,从而适应新任务/新需求
- 数据驱动:多任务学习框架,用多样本任务促进少样本任务
- 可以使用对抗进行特征提纯、特征空间对齐等
- 元学习:即学习如何学习,但目前应用还比较难
- 无监督学习:通过巧妙构造问题,使得模型能够从无标注语料学习到知识
- 半监督学习:即监督+无监督的结合,利用有限的标注数据,加上一些无监督的启发式方法,使模型的适用性更广
一些广泛使用的方法/结构
- Transformer,尤其是:通过attention的mask机制可建模树形结构,如语义依赖树
- 多级attention,可以对按树形组织的结构计算注意力
核心问题:知识的定义
知识是什么?它被定义成现在这样(使用神经网络去拟合数据分布获得的模型参数)是否合理?能被我们迁移来迁移去的知识到底是什么?人类能轻松上手大部分任务的原因为何?
我的观点:想就迁移学习来说说,目前的研究越来越趋向于迁移学习,比如使用预训练、使用外部知识库等等,而不再是learn from scratch。
我们都知道人类文明能不断延续下去并得以发展的一个很大的原因是:站在巨人的肩膀上。因此,爱因斯坦研究相对论不需要重新把牛顿的基础力学再研究一遍。我觉得人工智能的发展也应该是如此。如果每次都是完全从数据开始重新训练一个模型,那么永远只是重复走【零到一】之间的路。而要发展,从零到一,再到二,三,以至无穷的话,势必要有知识的积累,也就是前人栽树,后人乘凉。
比如之前使用大量标注数据训练好的NER模型,用到下游任务作为特征提取器,帮助下游任务进行先验的特征提取,这就可以认为是一种知识的积累。
这样带来的后果就是,往后训练的模型,可以得到的特征越来越多,比如预训练好的NER模型、句法分析器、bert句向量等等,都可以作为一个句子的辅助特征作为新的输入。有点像是现在的聚合模型了。这就导致模型的输入是多个层次的,不定的,这就要求有一种表示(编码?)的方式,能够以统一的形式,动态地表示这种可变化的输入。
另外一个问题就是,这些可获取的表示之间可能有信息的重复,也可能信息的重要程度互有差别,比如也许有部分信息很重要,而另外一部分完全没有用(互信息的概念?)。这就要求模型可以根据实际情况,动态调整信息流向的拓扑图,决定哪些模块产出的信息应该流向哪些模块,流向的重要程度分别是多少等等。
也许就现在看来仍有些虚无缥缈,因为就目前看,我们的人工智能研究在很大程度上仍然是处于“从零到一”的阶段。不过姑且对未来做一个预测吧?