Advertisement

详细解读Completely Heterogeneous Transfer Learning with Attention - What And What Not To Transfer

阅读量:

这篇论文的标题为《完全异质性转移学习:基于注意力机制的研究》,由卡内基梅隆大学的研究团队撰写,并于2017年的IJCAI期刊上发表。该研究是对其先前版本的一种改进,在此前发布的一篇文章中我们提出了一种名为CHTL(全异质性转移学习)的新模型。今天我们将重点介绍一种在原有模型基础上引入注意力机制的新方法,在该领域已有的文献中对此进行了深入探讨并取得了显著成果

首先介绍Completely Heterogeneous Transfer Learning(CHTL),其核心定义是完全异质迁移学习技术。那么什么是完全异质的迁移学习呢?简单来说就是在机器学习领域中当我们在一个源域上进行训练后希望将其知识迁移到另一个不同的目标域上实现更好的泛化能力这种技术就属于完全异质迁移的学习范畴在这种情况下源域和目标域之间的标签空间可能存在较大的差异性但在某些特定条件下它们可能仍具备一定程度的相关性例如我们可以利用英语文本分析所得的知识来解决法语文本分类的问题而不必将这些知识直接迁移到其他未见的英语文本分析任务中这种方法能够有效提升模型在多模态任务中的适应能力

已经理清了具体目标是什么,并将注意力集中在研究这个特定的问题上。在分析完问题的基础上,我们需要弄清楚整个系统的构建思路以及其核心模块之间的相互作用关系,在此之前有必要先了解其整体架构和各组件之间的关系

观察左下方的数据集可知,其包含政治或药物相关英文文本.右下角的目标数据集中则包含政府及运动相关中文文本,因此其与源数据集的标签空间存在差异.值得注意的是,目标数据集中的中文版本不仅限于英文版本,还包括法语及意大利语等多种语言版本.在源数据集中,我们采用映射函数g将目标数据集中的内容映射至共同的空间中.具体而言,这一过程采用了基于单词级别的向量表示方法(Word2vet).在本领域中,Word2vet常被用于本领域的文本向量化处理工作.传统的神经网络架构难以直接处理这类低维特征信息,因此我们将原始单词转换为其相应的向量表示(通过skip-gram模型实现).其中,skip-gram模型旨在学习能够反映单词间语义关系的低维向量表示.在这个过程中,我们需要特别关注两个单词在原始空间中是否相邻:如果它们在语义上接近,那么对应的向量表示也应具有相似性.值得注意的是,传统的方法往往无法有效减少两个不同语言环境下的特征差异(例如英语与非英语之间的差异).为此我们设计了一种共同映射函数f,将两个不同来源的数据投影到同一个标签空间中.最终这一系列操作便实现了从原始输入到分类结果的完整流程

看起来到这里的时候可能会觉得比较简单。
实际上也是相对简单的。
不过在深入探讨优化方法之前,
为了更好地理解整个系统的工作原理,
在介绍优化方法之前,
我们先对这个简单的模型进行了形式化地展示。
其目标函数如下:

我们可以看出损失函数由两部分组成:源数据集上的loss和目标数据集上的loss。深入观察后发现,尽管期望实现transfer learning(迁移学习),但这一过程并非想象中那么简单。可能是因为我的知识储备有限,在面对这一问题时显得力有未逮。不过事实证明,在源数据集上我们拥有完整的标注信息(complete annotation),而目标数据集中的标注比例却相当低(low annotation rate)。通过实验结果表明,在这篇文章中所使用的测试集中目标数据集仅占10%的比例被标注了标签(label),而在实际训练过程中正是利用了这一小部分的数据进行学习(training)。虽然这个10%的比例看似偏低(seems a bit low),但还有更低的情况(如one shot问题)以及极端情况下的zero shot问题(零次学习问题)。然而这些特殊场景通常需要借助先验知识等辅助工具才能解决。正因为获取带标签的数据需要耗费大量的人力物力资源,在推动迁移学习领域的发展方面起到了重要作用。说实话,在进行大规模图像数据标注工作时确实让人倍感压力:既要耗费时间和精力又要承受失败带来的挫败感——标错了标签更是让人抓狂不已!所以希望大家在使用别人提供的数据集时能心怀感激之情:滴水之恩当涌泉相报!回归正题,在公式推导过程中涉及的关键变量包括f, g, h等已做详细说明(这些符号的具体含义请参考前面的内容)。而W则是一个大家耳熟能详的基本参数矩阵,在这里不做过多赘述。其中X_s代表源域的数据集合(source domain dataset),X_t代表目标域的数据集合(target domain dataset),而Y_sY_t分别对应于这两套数据集合的目标类别标签集合(label sets)。需要注意的是,在公式推导过程中对这些变量下标的定义均为$i=1,2,...N_i=1,2,...N表示第i个实例的具体索引值

rac{~}{y}

表示的是数据集中不同于

{{{{Y}{}}{i}

除了当前处理的数据之外的所有标记是什么?也就是那些不属于当前数据集或上下文范围内的所有其他标记。
通过观察第二个求和符号的位置就能看出其含义。
我们采用的是hinge rank loss这一损失函数,并且有必要对此进行详细说明以确保整个模型的设计逻辑清晰明了。
为了便于理解这一机制的具体运作方式,我们可以将上述损失函数展开为以下形式:

此处分述的是CHTL模型的核心方程来自作者在论文中所提出的。其中使用的符号标识较为标准,请读者自行理解即可。采用Hinge Rank Loss的原因是什么?我们看下面的这个公式:

此处分述的是CHTL模型的核心方程来自作者在论文中所提出的。其中使用的符号标识较为标准,请读者自行理解即可。采用Hinge Rank Loss的原因是什么?我们看下面的这个公式:

X_{s}^{i}W_{s}W_{f}

这一块的得到就是我们通过模型预测到的标签,然后

X_{s}{i}W_{s}W_{f}Y_{s}{T}

即预测标签与其ground truth的内积而言,则其值越大表示两者越相似;若取负号,则我们的损失就越小。这与我们的训练目标是一致的。

X_{s}{i}W_{s}W_{f}{\widetilde{y}_T}

而这一部分的概念与前面部分具有相同性质。然而由于其前面的符号被标记为+1因此其应与其越不相似越好。为何如此设计?这是因为我们在进行分类任务时希望我们的目标类别与预测结果应尽可能接近从而提高模型性能其他类别应当与预测结果尽可能不接近以减少误判风险。其中R(W)这一项属于正则化项

ambda

是可调的参数。

随后介绍的是最初的chtl模型。同时,在文章后续部分进行了相应的优化。改进的原因在于尽管我们相信chtl源与目标之间没有明显的关联性。然而我们有理由认为存在某些实例适合于迁移而另一些则不适合迁移甚至可能导致负面影响。例如,在学习完篮球后转向足球时会发现一些知识能够顺利迁移如一共有两个框投入到对方的那个框就可以得分以及要把球传给位置较好的队友这些技巧在学习足球时同样适用但在篮球中出界未触地却能救回球而在足球中一旦出界无论是否触地都会判为出界这一区别会导致知识应用产生不同效果因此文章提出了一种解决方法即引入了一种注意力机制(attention)。具体而言就是对源数据集中的每个实例赋予一个权重为了提高计算效率作者并未对每个单独的实例施加权重而是将它们聚类到k个簇中并对每个簇赋予一个权重之后再结合这些权重构建了带有注意力机制的目标函数:

与前一版本相比,在模型架构上主要区别在于增加了一个权重系数项,并由可学习参数a控制各簇之间的权重分配情况。其中μ被定义为仅用于优化源任务时对a和f施加惩罚项;值得注意的是,在优化过程中虽然仅考虑了源任务相关的参数a的影响;具体而言,在分簇操作中采用了经典的K均值聚类算法(K-means),即通过计算样本间的欧式距离来进行数据点的聚类操作;值得注意的是,在此过程中,并未将同类文本归入同一标签页;然而这样的处理方式可能会导致不同类别但相似度较高的样本被分配到同一标签页中;此外该算法的核心优势在于其实现过程较为简单明了:首先初始化若干个质心点;然后通过迭代更新质心位置直至收敛状态;最后根据各样本到质心点的距离进行分类;其中关键参数k表示最终形成的簇的数量;由于该参数的具体取值直接影响最终分类效果因此通常需要通过多次实验来确定最合适的k值范围

在对具有注意力机制的chtl进行训练的过程中,文章采用了分步优化的方法。具体而言,则是依次从源数据出发进行分类任务的学习。具体来说,在这一过程中,首先将除chtl之外的其他参数固定,并分别对Wg、a和Wf这三个权重矩阵进行单独优化;接着保持Wh和Wf不变,在此基础之上逐步优化模型参数。

然后这还没有完,在这项研究中研究者进一步引入了抗噪自动编码器以优化模型架构。为了更好地理解这一机制我们可以先介绍下自动编码器的基本工作原理:自动编码器 是一种基于以下关键事实的数据压缩与重建方法:原始输入信号x通过加权变换(由权重矩阵W和偏置项b控制)以及Sigmoid激活函数进行一次映射得到隐层表示y;随后将y通过相同的权重变换反向映射得到重建信号z。为了使重建信号z尽可能接近原始输入x研究者设计了一个包含两个可学习参数组的网络结构:通过反复训练这两组参数(权重矩阵W和偏置向量b)使得损失函数达到最小化状态即重建误差最小化从而实现了对原始信号的最佳近似重建过程。在这个过程中正向传播的第一组参数(权重矩阵W和偏置向量b)表现优异成功地提取了输入数据中的核心特征信息因此才能实现如此精确的信号重建效果。图1展示了整个网络架构图

举个例子:

那什么是去噪自动编码器呢?这种设计的核心在于在原有的数据压缩机制上增添了一层降噪处理层。

去燥 :具体来说, 去燥的方法是利用一种特定的概率模型(通常采用二项分布)来去除原始输入矩阵中的部分信息. 即每个位置上的数值都有可能被随机设为零, 在这种情况下看似部分数据的信息被删除了. 用这些被破坏的数据x'来推断变量y和z, 并通过比较推断结果与原始数据之间的差异来进行优化. 经过这一过程后, 网络就能够有效地学习并重建这些破坏性的数据模式.

这个破损的数据是很有用的,原因有二:

其一,在非破坏性数据训练的基础上进行对比实验后发现,在使用破坏性数据训练的过程中所提取出的Weight值的噪声相对较小。由此得名。

原因不难理解,因为擦除的时候不小心把输入噪声给×掉了。

其二,破损数据在一定程度上减轻了训练数据与测试数据之间的代沟.然而由于原始的数据中存在缺失值问题,这些破损的数据实际上只是原始样本的一部分,因此它们无法完全代表整体情况

在一定程度上较为接近测试数据。(其中训练与测试数据间既有相同之处也有不同之处;不过我们强调的是通过相同的属性来进行区分。)

这样训练出来的Weight的鲁棒性就提高了。图示如下:

好了了解了这些之后我们来看最终的模型:

那么目标函数也加入了对应的去燥编码器部分的loss:

接下来是实验部分,下面直接呈现实验结果。文章中进行了两个实证实验,第一个实证实验基于自动生成的数据集

随后,在这个数据集中进行测试,以便比较不同方法在该特定场景下的性能表现如何。研究者利用高斯函数生成了多对源域与目标域的数据集,在这一过程中每一对源域和目标域的数据集之间存在差异程度的不同。通过对比这些数据集可以看出模型在不同任务难度下的性能表现如何以及它们之间的优劣关系。为了调节这种差异程度的研究者引入了一个可控的超参数δlable,在这种情况下当δlable取值越大时,则源域与目标域的数据集之间的差异程度增大。而另一个关键参数δ_diff则定义了分类的标准,在本文中我们设定δ_diff=0.5作为分类依据,在此前提下我们仅将方差间差异低于或等于0.5的数据实例划分为同一类别。在这个实验设置中仅考虑标签空间上的异构特性,并假设源域与目标域的特征空间维度一致均为20。

我们观察到标记率越大实验效果更好。ATT代表注意力机制,AE代表自动编码器。ZSL代表零样本学习。

然后文章中还做了另一个实验就是不同语言不同类别间的文本迁移:

本研究采用了多组数据进行实验分析,在具体实施过程中主要分为两个阶段:首先是基于英语的数据迁移学习阶段,在该阶段我们利用rcv1、20news和R8三个全英数据集分别训练并验证了法语、西语以及德意四语言的分类模型;其次是基于其他语言的数据迁移阶段,在这一阶段我们则采用的是分步学习策略:首先从日语出发逐步向韩语迁移,在此过程中我们实现了日韩双语下的机器翻译能力;接着又将范围扩大到朝韩双语体系,并在此基础上完成了中朝互译的学习任务。值得注意的是,在整个实验过程中并未给出具体的算法推导过程或代码实现细节;而是着重对模型性能进行了定性和定量分析

在介绍关注该机制时,我们对原始数据集进行了聚类处理;但具体应分为多少簇?经过实验验证,在k取40时表现出色。随后论文中提到他们采用CHTL-ATT模型实现了异域语言文本分类,在这一设置下取得了最佳效果。

本文的重点之一是注意力机制。那么它是如何体现的呢?文章提供了一个直观的表现方式。

以蓝色标记表示源数据、红色标记表示目标数据;黑色标记则代表从源数据集中选出权重最高的五个簇;我们分析发现:最近的源数据获得了较高的权重值;从而能够将最优的知识进行迁移;然而需要注意的是:最远的数据点也获得了较高的权重值;文章指出:这种做法能够有效避免负迁移现象;然而我们仍存在疑问:这种做法是否真的完全避免了所有潜在的问题呢?

本篇文章到这里已经结束啦!期待能为大家提供一些有帮助的内容哦~ 如果有疑问或者建议的话,请随时留言讨论~ 如果有朋友在阅读过程中发现了文章中的错误或不足之处,请及时提出指正。我们都非常重视这些反馈,并将认真对待每一些建议~

ps:转载请注明出处。

全部评论 (0)

还没有任何评论哟~