多任务学习背后的基本前提是不同数据集可能具有语义或句法上的相似性,这些相似点可以帮助训练一个比在单个数据集上训练的模型更优化的模型。它还有助于减少模型的过度拟合
多任务学习是一种集成学习方法(ensemble approach),通过对几个任务同时训练而使得多个任务互相影响。当然了,这种影响是很隐晦的影响,一般是影响在共享参数上。多个任务共享一个结构,这个结构里面的参数在优化的时候会被所有任务影响(主要是通过损失函数加权求和来实现的)。这样在所有任务收敛的时候,这个结构就相当于融合了所有任务,因此他的泛化能力一般而言是比单任务要好的。
有关多任务学习的keras代码:
https://zhuanlan.zhihu.com/p/107737884?utm_source=wechat_session想法:看代码有一种醍醐灌顶的感觉,很多概念用文字表述真的很难理解,看代码之后会发现代码层面的实现很简单
多任务学习的几点经验:
https://www.jiqizhixin.com/articles/2019-02-16想法:实体识别和实体链接这两个任务有内在紧密的联系,感觉可以联合训练
Comparative Toxicogenomics Database(CTD数据库)
TaggerOne: joint named entity recognition and normalization with semi-Markov Models
- 模型的具体步骤
1.预处理:
1)Ab3P生物医药文本缩写识别工具,将文本中的缩写替换成完整的术语
2)用SimConcept将复合的实体分割(例如:唇腭裂分割为唇裂和腭裂)
3)
如上图所示,抽取出NER特征和规范化的向量,然后联合训练,主要是在训练过程中共同迭代参数
- CCKS&百度 2019中文短文本的实体链接比赛
1.https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/100571658
2.https://github.com/liuweiping2020/ccks_baidu_entity_link-1 - 想法:
1.实体链接实际上就是两段文本的匹配问题,预测输入的query文本中的实体对应知识库中的id
2.两段文本的编码可以用一层BiLSTM编码,然后可以用attention计算两段文本嵌入的相似度,后面接全连接层,做二分类判断是否匹配,预测时需要逐个比较同名实体,做二分类输出概率最高的实体id
3.最大匹配算法匹配query文本中的实体和知识库中的实体(实体识别的baseline,精确度不高)
4.人工设计特征对任务的性能提升往往很好,主要是基于知识库做的统计特征(人工观察数据集的特征)