解决方案:华为诺亚开源首个亿级中文多模态数据集,填补中文NLP社区空白
优采云 发布时间: 2022-11-28 11:42解决方案:华为诺亚开源首个亿级中文多模态数据集,填补中文NLP社区空白
华为诺亚方舟实验室的研究人员提出了一个大型中文跨模态数据库——“悟空”,并以此为基础,对不同的多模态预训练模型进行了benchmark,有助于中文视觉语言预训练算法的研发和开发.
在大数据上预训练大型模型以微调下游任务已成为 AI 系统的新兴范例。BERT 和 GPT 等模型在 NLP 社区中越来越受欢迎,因为它们对广泛的下游任务甚至零样本学习任务具有很高的可迁移性,从而产生了 SOTA 性能。最近的工作,如 CLIP、ALIGN 和 FILIP,进一步将这种范式扩展到视觉语言联合预训练 (VLP) 领域,并在各种下游任务上显示出优于 SOTA 方法的结果。这个有前途的方向引起了业界和研究人员的极大关注,将其视为通往下一代人工智能模型的途径。
VLP 模型的成功有两个原因。一方面,更高级的模型架构(如 ViT/BERT)和训练目标(如对比学习)通常会提高模型的泛化能力和学习表征的鲁棒性。另一方面,由于硬件和分布式训练框架的进步,越来越多的数据可以输入到*敏*感*词*模型中,以提高模型的泛化性、可迁移性和零样本能力。在视觉或语言任务中,在*敏*感*词*数据(如图像分类中的JFT-300M,T5中的*敏*感*词*数据集)上进行预训练,然后通过迁移学习或提示学习进行学习,已被证明非常有效地提高了下游任务的执行。有用。此外,
因此,预训练 VLP 模型在*敏*感*词*数据上的成功促使人们不断爬取和采集
更大的图形数据集。下面的表 1 显示了 VLP 领域中许多流行数据集的概览。Flickr30k、SBU Captions 和 CC12M 等公开可用的视觉语言(英语)数据集的样本量相对较小(约 1000 万),而较大的数据集如 LAION-400M。但是,直接使用英文数据集训练模型会导致中文翻译任务的性能大幅下降。例如,大量特定的中文成语和俚语无法被英文翻译覆盖,而机器翻译往往会在这些方面带来错误,进而影响任务执行。
目前,社区缺乏*敏*感*词*公开可用的中文数据集,这不仅阻碍了社区的发展,而且使用私人大型数据集也取得了其他作品无法公平比较的惊人性能。
为了弥合这一差距,华为诺亚方舟实验室的研究人员发布了一个名为“悟空”的大型中文跨模态数据集,其中收录
来自互联网的 1 亿个图像文本对。为确保多样性和泛化性,Wukong 数据集是从 200,000 个高频中文词列表中采集
的。本文还采用基于图像和基于文本的过滤策略进一步细化悟空数据集,使其成为迄今为止最大的中文视觉语言跨模态数据集。研究人员分析了数据集并表明它涵盖了广泛的视觉和文本概念。
研究人员进一步发布了一组使用不同架构(ResNet/ViT/SwinT)和不同方法(CLIP、FILIP 和 LiT)的大型预训练模型。本文的主要贡献如下:
“悟空”数据集
研究人员构建了一个名为 Wukong 的新数据集,其中收录
从网络采集
的 1 亿个图像文本对。为了涵盖足够多的视觉概念,Wukong 数据集是从收录
200,000 个术语的查询列表中采集
的。这个基础查询列表取自严松等人的论文《Directional Skip-Gram: Explicitly Distinguishing Left and Right Context for Word Embeddings》,然后根据华为海量新闻文本中中文词和短语出现的频率进行过滤语料库。
查询列表建立后,研究人员在百度图片上搜索每个查询,获得图片网址列表和相应的标题信息。为了保持不同查询结果之间的平衡,他们每次查询最多搜索 1000 个样本。然后使用先前获得的图像 URL 下载图像,总共产生 1.66 亿个图像文本对。然后,像往常一样,研究人员通过以下一系列过滤策略构建最终的 Wukong 数据集。下面的图 2 显示了 Wukong 数据集中的一些样本。
基于图像的过滤
研究人员首先根据图像大小和纵横比过滤数据。仅保留长于或宽于 200 像素且纵横比为 3 或更小的图像。这种方法会过滤掉太小、太高或太宽的图像,因为这些图像在预训练期间经过上采样和方形裁剪等图像增强后可能会变得低分辨率。
基于文本的过滤
其次,为了使选取的样本具有对应图像的高质量中文描述,研究人员进一步根据图像所附文字的语言、长度和频率对数据进行过滤。具体来说,他们首先检查语言和长度,保留收录
至少一个但少于 32 个汉字的句子。无意义的图像描述如“000.jpg”也被丢弃。之后搭配太多图片的文字通常与图片内容无关,比如“查看源码页面”、“展开文字”、“摄影社区”。在实践中,研究人员将这个阈值设置为 10,即丢弃整个采集
到的语料中出现次数超过 10 次的图文对。
为了保护文本中个人的隐私,研究人员将人名替换为特殊标签“<人名>”。此外,他们还构建了中文敏感词列表,收录
敏感词的图文对也被丢弃。
在应用上述过滤策略后,研究人员最终得到了大约 1 亿对的数据集。下表 2 显示了数据集的统计数据:数据集文本中有 20,442 个独特的标记,每个描述中的平均标记数为 22。
" />
在下面的图 3 中,研究人员可视化了数据集中单词(由一个或多个标记组成)的分布。然后,他们使用中文文本分词工具 Jieba 截取单词并构建数据集的词云。
方法框架
文本图像联合对齐
与最近经过充分验证的方法类似,研究人员采用对比预训练架构,如下图 1 所示。他们使用带有基于 Transformer 的文本和图像编码器的双流模型。这两个编码器将文本和视觉输入标记转换为相同维度的嵌入。在这个学习的联合嵌入空间中,我们使用对比损失来鼓励图像和文本对具有相似的嵌入,而未配对的对具有不同的嵌入。
模型架构
由于视觉和文本模态的编码器是解耦的,因此可以为这两种模态探索不同的编码器架构。研究人员试验了三种视觉编码器变体(即 ResNet、Vision Transformer 和 Swin Transformer)和一种类似 BERT 的文本编码器来训练中文 VLP 模型。
预训练目标
跨模态对比学习是一种特别有效的方法,用于从成对的图像文本数据训练模型,它可以通过区分成对和未成对的样本同时学习两种模态的表示。研究人员遵循 FILIP (Yao et al., 2022) 中的公式符号,使用
定义图像样本集,同时
表示文本数据。给定图像样本
和一个文本样本
,该模型旨在使成对的图像和文本表示在联合多模态空间中靠近在一起,而不成对的表示相距很远。
" />
在这项工作中,研究人员探索了两种方法来衡量图像和文本之间的相似性。图像和文本的学习表示被标记为
和
. 这里,n_1 和 n_2 是每个图像和文本中(未填充的)词标记的数量。
LiT调校
研究人员受到最近提出的微调范例 LiT-tuning(锁定图像文本调优)的启发,该范例表明具有固定权重的图像编码器和可学习的文本编码器在 VLP 模型中效果最好。他们在对比学习设置中做了同样的事情,只更新了文本编码器的权重而不是图像编码器。
具体来说,研究人员采用的 LiT-tuning 方法旨在教会中文文本编码器从现有的图像编码器中读取合适的表示,该图像编码器已在英文数据集上进行了预训练。他们还为每个编码器添加了一个可选的可学习线性变换层,它将两种模态的表示映射到相同的维度。LiT-tuning 效果很好,因为它解耦了用于学习图像特征和视觉语言对齐的数据源和技术(Zhai 等人,2021b)。此外,图像描述符使用相对干净或(半)手动标记的图像预先进行了很好的预训练。
我们将这个想法扩展到多语言数据源,并尝试将在英语数据源上预训练的固定图像编码器与可训练的中文文本编码器对齐。此外,LiT-tuning 方法显着加快了训练过程并减少了内存需求,因为它不需要为视觉编码器计算梯度。
实验结果
下面的表 3 描述了视频编码器的模型参数和详细信息。
零镜头图像分类。研究人员在 17 个零镜头图像分类任务上评估了预训练模型。零样本图像分类结果如下表5所示。他们比较了使用不同视觉编码器的多个 LiT-tuning 模型,即从 CLIP 或 Swin Transformer 加载现有的视觉编码器并在训练阶段固定它们的权重。结果发现,使用令牌级别的相似性比使用全局相似性带来更显着的改进。
文本检索任务。研究人员评估了两个子任务,即按图像搜索文本和按文本搜索图像。下面的表 6 和表 7 分别显示了零镜头设置和微调图像文本检索的结果。对于零样本设置,与其他模型相比,Wukong_ViT 在 4 个数据集中的 3 个上取得了最好的结果,而 Wukong_ViT-500M 在更大的 MUGE 数据集上取得了最好的结果。对于微调设置,Wukong_ViT-500M 在除 AIC-ICC 之外的所有数据集上都取得了最好的结果,其中 Wukong_ViT 效果最好。
词汇 - 瓷砖对齐的可视化。研究人员使用预训练模型 Wukong_ViT 和 Wukong_Swin 进行可视化。如图 4 所示,该图可视化了来自 ImageNet 的中文六个标签(即豆娘、救生艇、蜂鸟、平板电话、教堂和电扇)的图像。然后应用与 FILIP (Yao et al., 2022) 相同的可视化方法来对齐文本和图块标记。
从下面的图 4 中,研究人员发现这两个模型都能够预测目标对象的图像块。对于具有更多图像块的 Wukong_ViT,这种词汇块对齐比 Wukong_Swin 更细粒度。
核心方法:词嵌入的经典方法,六篇论文遍历Word2vec的另类应用
在这篇文章中,作者首先为读者普及了word2vec的基础知识,然后以六篇论文为例详细介绍了当前研究如何利用经典的word2vec进行扩展研究。其中,作者着重介绍了知识嵌入空间的生成过程。对其完整应用感兴趣的读者可以参考原论文。
随着深度学习的兴起,每个模型都需要一个输入,而我们现实生活中的物体(文字、图片等)都不是数字,计算机无法处理。那么如何为每个任务确定一个合适的“输入”就变得尤为重要。这个过程也称为表征学习。
word2vec 所做的是将文本转化为对计算机有意义的输入。简单的说,就是把这些东西映射到一个空间里。我们通常用三维空间来表示位置,也就是xyz,但是在图片、文字等这个领域,三维空间不够用,有可能去另一个N维空间. 在这个空间里,就像三维空间里人的鼻子应该靠近嘴巴一样,我们也希望在这个新的空间里也能找到类似的东西。比如课文中的“鼻子”和“嘴巴”我们也希望它们能离得近一些,因为它们属于五感,所以“鼻子”和“腿”是比较远的。
顾名思义,word2vec 将文本转换为计算机可识别的输入,因此这项技术最早也是应用最广泛的应用是在自然语言处理(NLP)领域。其实我之前针对representation learning做过两次基于ICLR和CVPR的high-level总结,不过这次这篇文章主要针对word2vec,从细节入手,看看word2vec中发现的空间是如何改进和使用的,还要看看根据word2vec原理发现的新空间。在开始正题之前,为了防止大家对word2vec理解不清从而影响后面文字的理解,这里先科普一下本文将要用到的相关基本概念。
一、word2vec简介
What is word2vec: Word2Vec是一个过程(技术),其中文本被用作神经网络的训练数据,这个神经网络的输出向量被称为embeddings,这些embeddings(向量)将收录
训练后单词的语义信息。这个过程所做的是从每个单词嵌入到多个维度的空间到维度低得多的连续向量空间。矢量嵌入可以在真实对象的“离散”世界和机器学习的“可微”世界之间架起一座桥梁,因而在数据库研究中具有巨大的潜力。一类对象的嵌入向量从X映射到某个向量空间,称为潜在空间,我们通常假设它是有限维d的实向量空间R^d。
它们用在什么地方:最后word2vec会生成如图1所示的一堆向量(word embedding,word embedding),这些向量可以在后续任务中作为神经网络模型的输入。
图 1:示例词嵌入。图片来源:
为什么使用 word2vec:如前所述,这些嵌入捕获了文本的语义,具有相似含义的单词靠得更近(图 2 显示了最常见的相似性度量之一——余弦相似度 Spend)。并且经过长期的实践,研究人员发现这种语义编码使得各种NLP任务都有很好的表现。
图 2:距离作为距离度量的示例 - 余弦相似度。图片来源:
基本模型:训练word2vec常用的方法有CBOW和skip-gram。如图3所示,w(t)代表当前词,w(t-?)代表前一个词,w(t+?)代表后一个词。简单来说,CBOW就是利用周围的词来预测当前词。而 skip-gram 模型使用当前词来尝试预测周围大小为 c 的窗口中的词。具体的计算细节可以参考图3来源的文章,这里就不详细介绍了。
图 3:skip-gram 和 CBOW。图片来源:
如何衡量:在使用embeddings时,我们应该考虑几个问题——对象的哪些属性由embeddings表示?我们使用的距离测量有什么意义?潜在空间的几何属性是否对应于 X 上有意义的关系?当然,同时我们还要考虑计算向量嵌入的计算成本。
2.改善旧空间
了解了word2vec的基础知识之后,就可以正式进入正题了。正如上一节所述,当我们构建嵌入空间时,我们需要考虑对象的那些属性需要在嵌入空间中表示。word2vec在传统的NLP任务中表现不错,但是在一些新的更复杂的任务中,有些属性不能很好的体现出来,因为最初的word2vec模型是完全基于文本训练的,很多关系很难在文本中体现出来,比如“看”和“吃”。单看这两个词,我们甚至很难认为它们有关联。
但是如果加上图4,他们会连起来吗?对这幅图的描述可以有两种,一种是小女孩在“看”冰淇淋,另一种是增加了一定的联想——小女孩在“看”冰淇淋。“吃冰激凌。在对这张图片的描述中,两句话都是正确的。这个例子不仅说明了使用纯文本进行学习的缺点,还表明在图片描述等任务中,这个信息也很重要。
图 4:吃冰淇淋的小女孩。资料来源:[1]
不难理解,人类在感知世界时,不仅仅用视觉,还用听觉、嗅觉等,同样,在看的时候,看到的也不仅仅是文字,语言是知识的载体transfer,所以现在研究者开始使用不同的感知模式(声音,图片)来学习语言模型(multi-modal learning),让语言模型学习到的embedding能够更全面的代表我们人类的理解能力。
至于技术层面,其实回到语言模型起源的阶段,语言模型和迁移学习就像一对兄弟,只是进入了不同的领域,叫法不同。例如在NLP任务中,先训练语言模型,然后直接使用预训练好的语言模型来执行下面的任务。好像前面几层的migration learning都冻结了(这个如果不理解也可以,不影响后面的理解,如果觉得放不下可以看看之前的文章机器之心,基础教程很多,这里就不介绍了)。
之所以说transfer learning,是因为如果要达到完善word2vec空间的效果,其实类似于transfer learning中的global finetune,把前面的语言模型(一开始冻结的层)进培训。
为了展示当前的研究如何具体使用word2vec进行扩展应用,本节简要介绍四篇论文,展示图片和声音如何增强现有word2vec嵌入空间的表示能力。当然,这里介绍的知识嵌入空间的生成过程在原论文中还有其他创新之处。如果您有兴趣,可以再次阅读全文。
2.1 视觉 Word2Vec (vis-w2v) [1]
论文链接:
这种方法解决了图4中提到的例子中的问题。这里作者需要在原来word embedding的基础上增加图像的语义表示,即在w2v训练中加入图像作为背景。该方法基于 CBOW 并使用代理标签作为图像背景的表示。
图 5:vis-w2v 中的网络结构。资料来源:[1]
具体模型如图5所示,模型的输入是图文对D = {(v, w)},v指的是图片的特征,w是v对应的文字描述。这里,w(句子或单词)的形式会因场景而异(更多内容见下文)。
图5所示的是一个窗口(这个窗口可能收录
w的一些单词,也可能收录
完整的w,也会根据不同的场景发生变化,下面会详细介绍),其中w_1到w_l代表一个窗口收录
的词是用one-hot方法编码的(N_V表示one-hot编码的维度),H_wi是W_I乘以wi得到的,这里W_I是共享的,即所有的w_i都乘以同一个W_I,因为它是one-hot encoding,其实相当于取W_I的某一行,对每条H_wi取平均值得到最终的H:
得到H(N_H为embedding的维度)后,将这个H作为最终的特征向量,通过W_O映射到N_K维度(一共有N_K类,这里的N_K后面会讲到)。对其进行softmax操作后,就可以知道这段文字(w_1-w_l)属于哪个类别。这一步是做分类。
如果理解NLP任务,第一步获取H和我们平时获取embedding的方式是一样的,因为这里的W_I初始化为传统CBOW的权重,所以这一步其实就是获取这些词的传统embedding,然后取其平均值作为整个窗口所有词的特征,然后做一个分类任务。
现在是本文的核心——上一段说这是一个分类任务,那么分类任务的标签从何而来呢?这就是辅助标签的作用——作者在做分类任务时将图片v聚类成N_K个类,然后每个v所属的类就是这个v对应的w的标签。
然后回到 w,其中 w 允许选择 w 的各种形式,例如完整的句子或形式的元组(主要对象,关系,次要对象)。w 的选择取决于我们关心的任务。例如,在常识断言分类和基于文本的图像检索中,w 是元组中的一个短语,而在视觉释义中,w 是一个句子。给定 w,S_w 也是可调整的。它可以包括所有 w(例如,当从元组中的短语学习时)或单词的子集(例如,当从句子中的 n-gram 上下文窗口学习时)。
最后说说效果吧。这个任务其实就是在w2v的基础上进行finetune。这种直接进行global finetune的效果,按照论文的说法,也可以保持原有的w2v效果,即如果有些词在finetune过程中没有出现,会保持原有的语义属性,而这个global finetune会不要让新的 w2v 在传统任务中变得更糟。
在下表1所示的视觉转录任务对比中,vis-w2v的效果要比纯w2v任务好很多。
表 1:中继任务的平均准确度 (AP)。表格来源:[1]
2.2 视觉监督Word2Vec(VS-Word2Vec)[2]
" />
论文链接::uhM9BVykvRQyYoWE5KCq3BfjUSjLRED2yV7nktCUgw3jDcAh_R2xx8iV7Az3pBWTZPBQ87cQzEgd
本文还想把图片中的信息迁移到w2v中,让w2v空间更好的表示图片中的信息。上一篇论文是在w2v中加入广义的图片信息(词的相似度由图片的相似度引导),这篇论文的全称是Embedded Representation of Relation Words with Visual Supervision。顾名思义,就是让embedding space能够更好的表示相关词(“我背着包”中的“holding”就是相关词)。
下图6展示了一些关系词的例子,[3]给出了一个与此类似的数据集,是本文的输入形式之一。
图 6:关系词。资料来源:[3]
VS-Word2Vec的基本结构如图7所示,这个结构分为上下两部分。上面是一个CNN,类似于图6中的图片作为输入,输出是一个特征向量,作为图片对应的关系词的embedding(视觉关系特征空间);下面是传统的CBOW,也会生成word embeddings。
这篇论文和第一篇论文除了要表现的信息不同外,使用的方法也不同。基本思路是:如果这个词是关系词,那么让上面(CNN)生成的word embedding和下面生成的embedding尽量一样,但是如果这个词不是relative word,那么就忽略上面的,和传统的CBOW训练完全一样。
图 7:VS-Word2Vec 网络结构。资料来源:[2]
具体来说,整体算法如图8所示,第一行和第二行对应图7上半部分的CNN。首先,计算图表示(视觉关系特征,算法的第四行):
这里y_wi是某个关系词wi的表示。具体来说,就是利用VGG得到这个关系词对应的所有图片(Q_i张图片)的特征向量(y_wi^q),然后对这些特征向量进行平均。如前所述,如果训练出来的词属于关系词,那么作者希望CBOW和CNN生成的两个embeddings尽可能一致。本文的不一致性通过以下公式衡量:
这里s_ij表示关系词i和关系词j的余弦相似度,右下角的r表示这是一个关系词,x表示CBOW中生成的word embedding,v表示CNN中生成的word embedding。这个公式中J越小越好。
图 8:VS-Word2Vec 算法流程。资料来源:[2]
最后就是图8中的第4到19行,是上面整体思路的体现,即计算如下公式,同时更新参数(梯度上升):
首先D是CBOW的训练集,然后对于训练集中的每个词,计算两个损失e1和e2,e1是前半部分,也就是传统CBOW的损失,e2是后半部分,也就是衡量两个嵌入的性能。不一致(J_V),\lambda是可调超参数,p_t表示w_t是否是关系词,如果是关系词,则p_t=1,保留后半部分,如果不是关系词,就变成传统的CBOW训练过程。
注意第15行,这里使用了for循环,所以本文的目标不是让上下两部分对于一个关系词有完全相同的embedding,而是要求关系词保证“一致性”图7上下两部分的相似度,所以直接用J_V代替余弦相似度。
作者使用该方法后,对比了SimVerb-3500中九大类的同义词(SYNONYMS, ANTONYMS, HYPER/HYPONYMS, COHYPONYM, NONE),对比结果如表2所示,总体来说比CBOW好,并且在一些特殊的班级,效果有了很大的提升。
表 2:同义词一致性结果。表格来源:[2]
2.3 Action2Vec [4]
论文链接:
又一篇探索视觉信息的文章,不过这里探索的对象变成了视频(因为它编码了动作),如图9,思路和上面类似,但是变成了左右结构,而这个第二篇是真正的两词比较(pairwise ranking loss),而不是用一致性来判断。
图 9:Action2Vec 端到端架构。资料来源:[4]
具体来说,左侧首先使用[5]中的数据集预训练的C3D模型提取每帧图片的特征向量,然后使用一个层次递归神经网络(HRNN),并加入一个self-attention机制,最后通过一个全连接层(fully connected weights),将LSTM2得到的video embedding变成一个和word embedding同维的向量,最后这个向量通过一个全连接层来执行分类任务层,判断这个视频对应的动作是什么。然后使用“双重损失”(交叉熵+成对排序)使改进后的联合嵌入空间同时具有视频和文本语义信息。
HRNN:这里的HRNN指的是使用了两层LSTM。第一层用来提取局部特征(输入是每一帧的图片),第二层LSTM(LSTM2)的输入是LSTM1每s张图片的输出。,以图9为例,其中步长为3,每三张图片(h1-h3,h4-h6,...)会输出一个向量,这些向量就是LSTM2的输出。self-attention机制中的attention计算这里就不介绍了。
Dual loss:这里的dual loss是指cross entropy加上pairwise ranking loss。这里不介绍交叉熵。它对应于上面提到的分类任务。如果你不明白pairwise ranking loss(PR loss),可以看看这篇文章(),会更容易理解下面的公式。这里的PR损失定义为以下公式:
这里a_i和v_i分别表示HRNN和word2vec模型生成的action word i的embedding,a_x和v_x分别对应HRNN和word2vec生成的负样本(即非action word i的embedding)。请注意,图 9 中的绘图并不完整。交叉熵(CE)对应的分类任务就不在上面画了。Action Embedding首先通过全连接层进行分类任务,然后有CE损失。
最后需要说明的一点是,由于两个数据库中的词并不完全相同,可能会出现video数据库中的词在word2vec词库中不存在的情况,这些动词会被转换成对应的形式(如 walking 变成 walk 等)。
在实验部分,作者在ZSAL(Zero Shot Action Learning)任务中将其与其他ZSL模型进行了比较。可以看出,作者提出的模型在各个数据集上的效果都是最好的。
表 3:ZSAL(Zero Shot Action Learning)模型效果对比。表格来源:[4]
2.4 sound-word2vec [7]
论文链接:
前几篇介绍了视觉,上一篇我们开始涉及到听觉,也就是声音信号。虽然大多数声音中都有象声词,但很多象声词在文本中并不常见,而且与直接音相比,这些词对应的语义信息很难学习,因此本文作者利用声学特征将传统词融入其中嵌入空间。值得注意的是,这里又用到了辅助标签(聚类)。该模型的整体结构如图10所示。
图 10:sound-word2vec。资料来源:[7]
在图10中,这个模型的输入是基于FreeSound生成的输入对{s,T},s是声音,T是用户提供的声音对应的一系列标签(一组词),这些标签首先通过W_P(由预训练的word2vec模型中的权重初始化)成embeddings,然后对这些embeddings进行平均,得到隐藏层的值H。最后,H通过全连接层(W_O)完成一个分类任务,输出一个类别。
" />
与第一篇论文一样,此处分类任务的标签来自聚类。首先对s进行聚类得到类别标签,然后用这个标签来训练W_P和W_O。总体来说,这篇论文的思路和第一篇论文差不多,但是论文中关于声音如何表示的声音处理还是很有启发性的。同时,本文再次证明整体的finetune可以提升传统的word embedding。空间效果好。
这种方法的效果如表4所示,在普通词上,效果和word2vec差不多,但是在象声词上,sound-word2vec明显表现的好很多。作者还对一些基于文本的拟声词识别任务进行了实验,效果也比普通的baseline模型好很多(详见原论文)。
表 4:相似词的示例。表格来源:[7]
3.探索新空间
论文链接:
去年,谷歌使用语言模型将蛋白质序列转换为嵌入,从而在许多相关任务上实现了飞跃。我曾经写过一篇文章介绍这个,这里就不赘述了。今天主要介绍一下这个方法是如何应用的。在音乐上,生成了一个新的基于音乐的嵌入空间,新嵌入空间的音乐理论知识表示——music + word2vec [6]。
因为这篇论文收录
了更多的乐理专业知识,对应的机器学习方法也比较传统,是skip-gram模型加上乐谱的编码。然而,论文中详细分析了乐谱在乐谱嵌入空间中的乐理知识表示,表明skip-gram可以很好地从乐谱中学习乐理知识。
关于乐谱的编码,如下图11所示,图中包括了肖邦玛祖卡Op.的前六小节。67 No. 4 (Chopin's Mazurka Op. 67 No. 4) 和前三小节的编码示例。这相当于把一个节拍当作文本中j的一个词,第一个块收录
E,它是表示四分音符中E5音高的音级。由于第二拍的音高是 E5 和 A3,因此第二个块收录
E 和 A。请注意,作者在第二小节中收录
了 E,即使音高 E5 连接到第一拍(不是开场),它仍然在第二拍上发音。同样,由于第三拍收录
音高 E3、A3、E4、E5(来自附点连奏)和 F5,因此第三块收录
音级 E、A、f。图中的例子。
图 11:分数分类。资料来源:[6]
如果声音片段长于一拍,我们可能会失去调和弦变化的细微差别。相反,如果切片短于一个节拍,则可能存在太多重复切片(切片之间的内容相同)。找到切片的最佳持续时间也很重要,但本文不涉及。我相信更好的编码方法将使这项研究更加有效。
因为这篇文章的价值不在于使用什么机器学习方法,而在于skip-gram的使用,所以训练过程就不再赘述了。当然,除了证明skip-gram在音乐领域可以很好地获取和弦和谐波特征外,本文还提供了很多可以在音乐领域使用的数据集(第4节)。如果你有兴趣在这个领域做点什么,这些数据集还是很有用的。
这篇论文的结果分析太专业了。如果想看音乐大咖对这个模型的评价,可以看原论文。总之,这款车型各方面表现都非常出色。懂音乐的同学可以看看原论文。书中中间是怎么分析的,或许对后续的任务也有很大的帮助。
4.利用空间
论文链接:
最后,在讨论了如何改进传统词嵌入空间以及如何创建新的嵌入空间之后,如何使用这个空间也很重要。但由于本文不是word2vec的介绍,所以这里不再介绍word2vec在传统NLP任务中的应用。网上已经有很多实用性或理论性的科普文章。这里我们主要介绍词嵌入是如何在RL-Word2vec中应用于行为的[8]。
这里的a代表听神经细胞。首先输入命令,然后使用这个命令的embedding来初始化隐藏层hi。这里的初始化是利用文本中5个命令词的embedding来进行预训练来初始化h_1-h_5。命令字为'forward', 'backward', 'stop', 'cease', 'suspend', 'halt',后四个字表达的意思相同,都不会用于初始化,作为测试组。初始化完成后,删除这些虚线连接,然后机器人进入*敏*感*词*开始仿真,向机器人输入指令的embedding,然后通过各个传感器获取的信息进行动作。这种初始化使网络能够获取语义信息。
除了上述机制外,图12中的整个网络并不复杂。第一层称为传感器层,从机器人的传感器获取数据,然后这些神经元与后面的隐藏层全连接。这里的第二个隐藏层是一个带有自连接的循环神经网络,最后一个隐藏层与最后一个动作层(最右边)全连接。
图 12:Word2vec 到行为训练网络。资料来源:[8]
综上所述,整个训练过程如图13所示。通过向输入层的神经元a提供与“停止”等命令相关的word2vec嵌入,可以设置机器人控制策略的隐层初始值。然后将该策略下载到机器人,其运动生成的传感器数据被馈送到输入层的其余部分(虚线箭头),进一步改变隐藏层和运动层。
评估后,机器人的行为根据与命令配对的目标函数进行评分,例如惩罚运动的函数。然后针对其他四个命令和目标函数对同一策略再进行四次评估(B 和 C 两次),训练策略以最大化所有五个函数的平均分数 (D)。训练后,最佳策略被赋予第六个未训练的同义词“停止”,其行为根据“停止”目标函数 (E) 进行评分。
图 13:训练过程。资料来源:[8]
最终结果如下图所示。每种颜色代表一个命令。可以看出,通过作者的方法训练的机器人(第一个)在“停止”命令上确实表现优于其他机器人。
图 14:实验结果。资料来源:[8]
总结
从本文提到的分析性或创新性论文来看,skip-gram和CBOW可以很好地捕捉我们生活中很多对象(音乐、声音等)的语义,multi-modal是一个很好的完善在现有嵌入空间法,在没有标签的情况下,合理聚类也可以提供模型辅助标签。这个embedding space不仅适用于NLP领域,还有很多其他领域可以直接应用w2v中生成的embedding space(比如RL)。
当然,未来还有很多其他可以探索的方向,比如开发一个比较初级的音乐领域,如何将声音中的情感融入到传统的w2v模式中等等。
总之,语言作为我们观察和描述世界的基本要素,基本涵盖了我们生活的方方面面,在某些层面上也反映了客观世界的规律(如语言学的“组合原理”——组合性) . 在学习无法解决的问题时,语言模型或许能给你一点启发。
参考
[1] Kottur、Satwik 等人。“Visual word2vec (vis-w2v):使用抽象场景学习基于视觉的词嵌入。” IEEE 计算机视觉和模式识别会议论文集。2016.
[2] 王,雪,等。“具有视觉监督的关系词的嵌入式表示。” 2019 第三届 IEEE 机器人计算国际会议 (IRC)。IEEE,2019 年。
[3] 卢,策乌,等.“使用语言先验的视觉关系检测。” 欧洲计算机视觉会议。施普林格,查姆,2016 年。
[4] Hahn、Meera、Andrew Silva 和 James M. Rehg。“Action2vec:一种用于动作学习的交叉模式嵌入方法。” arXiv 预印本 arXiv:1901.00484 (2019)。
[5] A. Karpathy、G. Toderici、S. Shetty、T. Leung、R. Sukthankar 和 L. Fei-Fei。使用卷积神经网络进行*敏*感*词*视频分类。在 CVPR,2014. 4
[6] Chuan, C.-H., Agres, K., & Herremans, D. (2018)。从上下文到概念:使用 word2vec 探索音乐中的语义关系。神经计算与应用。doi:10.1007/s00521-018 -3923-1
[7] Vijayakumar、Ashwin K.、Ramakrishna Vedantam 和 Devi Parikh。“Sound-word2vec:学习以声音为基础的单词表征。” arXiv 预印本 arXiv:1703.01720 (2017)。
[8] 马修斯、大卫等人。“从 Word2vec 到行为:形态有助于机器语言的基础。” arXiv 预印本 arXiv:1908.01211 (2019)。
分析师介绍:
这篇文章的作者是王自佳,目前正在帝国理工学院攻读人工智能硕*敏*感*词*。主要研究方向为NLP推荐等,喜欢前沿技术,喜欢奇思妙想。他是一个不走寻常路,立志做研究员的男人!