杂记@TOC
FAQ是一种常见任务检索的任务,其目标是根据用户的查询从数据库中检索适当的问答(QA)。现阶段主流方法考虑了用户查询(q)和常见问题(Q)之间的相似性以及查询问题(q)和答案(A)之间的相关性。许多FAQ检索模型使用q和QA对之间具有相关性标签的数据集。但是,构造这样的标记数据花费很多。为了减少人工标注的成本并提升模型效果,基于active learning进行最小成本标注,并用life long learning模型解决训练问题。
相关工作:
FAQ:
任务描述: 根据用户的查询q从知识库中找到合适的QA_pair
《FAQ retrieval using query-question similarity and BERT-based query-answer relevance》
- 有q-Q和q-A两个思路。
- q-Q的计算基于Best Match25(BM25),得到分数scoreQ。
- q-A的计算:使用Bert来解决(q-A)的二分类问题,将问题q和答案A作为输入,输出得到两者的相关性分数scoreA。
- 综合两个分数策略:(1)当scoreQ高于设定阈值时,表示q和Q中的单词彼此高度重叠,搜索结果具有较高的可信度。故直接根据scoreQ输出结果进行排名(2)当scoreQ低于设定阈值,表示很难解决q和Q之间的词汇空缺,按照scoreQ*t+scoreA得分进行排名。
《Effective FAQ Retrieval and Question Matching With Unsupervised Knowledge Injection》
1.提出使用主题知识去提高q-A理解。用PLSA识别q中每个token的主题。
2.q-Q的计算基于Best Match25(BM25),得到分数scoreQ。q-A使用K-Bert利用主题知识得到分数scoreA。
3.最终分数为两种分数加权求和。最后提出vote机制挑选答案(规则)。
Active learning:
目前推广应用的机器学习训练过程依赖于已标注类别的训练数据集。然而在应用场景下,能够得到的数据实际上都没有进行人工标注处理,对这些数据进行类别标注所耗费的人力成本和时间成本非常巨大。为了减少对已标注数据的依赖,研究人员提出了主动学习(Active Learning)方法。主动学习通过某种策略找到未进行类别标注的样本数据中最有价值的数据,交由专家进行人工标注后,将标注数据及其类别标签纳入到训练集中加油模型训练。
1)现有的主动学习方法总共分为三类:
-
基于uncertainty的(如找分类任务决策边界,二分类任务中分类概率0.5的,monte carlo dropout)
-
基于diversity(找到数据分布和whole dataset一致的small dataset)
-
基于expected model change(对网络的影响有多大)
2)方法介绍:
《Learning loss for active learning》:通过添加损失函数设计一种任务不可知的主动学习方法。训练过程就是联合优化目标模型与损失预测模型的损失函数。分为以下几步:
-
从unlabeled的数据池里随机挑选出K个添加标签,完成初始化。
-
用标注好的数据集训练网络(包括主、副网络)。
-
用副网络(loss predict model)来对整个数据集预测每张图片的loss。
-
选出topK个loss最高的图片添加标注后加入训练集。
-
重复2-4,直至模型表现良好或者标注成本达到极限。
实验表明在数据集较少情况下训练提升效果明显,但是在10k+数据量后算法没有优势了。(适合小数量数据集)
《Variational Adversarial Active Learning》:设计了一种利用 VAE 和对抗网络来学习潜在空间中已标注数据分布情况的查询策略
《Bayesian Generative Active Deep Learning》介绍了一种利用对抗性网络的查询合成方法
Life long learning:
一个已经训练好的网络,在保持旧任务能力的基础上,能学习新任务,即任务增量学习。
现有方法:
θs:一组共享参数
θo:特定于旧任务的参数
θn:新特定于新任务的随机初始化参数
更多推荐