论文题目: Learning Music Helps You Read: Using Transfer to Study Linguistic Structure in Language Models
论文链接: https://www.aclweb.org/anthology/2020.emnlp-main.554.pdf
Github: https://github.com/toizzy/tilt-transfer
本文的主要假设是对于有结构性的语言,比如乐谱和代码,他们的潜在结构能被神经网络所编码,且有助于自然语言的学习。在此假设上,本文主要研究问题是:
当存在两种语言L1和L2时, 语言模型可以在多大程度上学习并迁移L1中的潜在结构到L2中,以帮助L2的学习?
文中对于语言的定义是比较宽泛的,包括我们日常用的自然语言,音乐,代码等。因为每一种语言有着不同的潜在结构,为探究不同L1对L2的影响,本文主要围绕3个方面对L1发问:
为了回答这3个问题,作者提出了一种叫做TILT (Test for Inductive Bias via Language Model Transfer)的测试方法。核心思想是,先用L1语言预训练一个LSTM语言模型,然后固定其参数,直接在L2语言上测试其困惑度。通过改变L1固定L2,来对比不同潜在结构对于自然语言学习的影响。结合文中的流程图更好理解(如下):
看图说话:
Q1: 怎么用语言模型训练Music数据呢?A1: 关键是将乐谱转换为线性序列。文中使用了MAESTRO数据集,包含了172个小时的经典的钢琴演奏曲。该数据集采用MIDI格式的音乐数据,每个MIDI文件,对应一个序列的音符的标注信息。因此一首曲子就可转换一个线性的序列,这样子乐谱就可以愉快的和LSTM玩耍了~ 比如对于下面的mid文件[1]:(哈哈,点不了哦~)
会被标注为音符"3/4 c4 d8 f g16 a g f#", 然后传递给模型。
Q2: 为什么②中LSTM的参数是固定的呢?A2: 这是为了保留使用不同L1训练时所捕捉的潜在结构呀~固定LSTM的参数可以防止L2的自身结构信息被编码。因为最终是在同一个L2上进行测试的,所以可以公平比较使用不同L1进行预训练对L2测试结果的影响啦。文中一个核心的观点是将不同L1中的潜在结构当成inductive bias, 并探究其是否可以被语言模型捕捉并迁移到L2上。
Q3: 乐谱的词表和西班牙语的词表都不一样,我要怎么在西语上测试呢?A3: 这还不简单,在测试前,使用西语语料对embedding层进行fine-tune就可以了嘛(上图③的功能)。
有没有用,还得看怎么对比了~哈哈~先看看文中使用了4组不同的L1语言的例子:
那他们各自的实验结果如何呢?首先来个直观的对比(横轴是不同的L1语言预训练,纵轴是在L2上测试的结果)。
最后,花椒还有个好奇的点。虽然文中的实验结果证明代码或者乐谱中的潜在对于LSTM语言模型的预训练是有帮助的,但是他们的帮助还是没有在自然语言(英语,意大利语)带来的收益大,那么如果我们用sequencial的pre-training 或者组合在每个L1上训练的语言模型会给L2带来更大的提升吗?🤔
论文读完啦,咱们回答下开头的问题:
这是一篇故事讲得很好且文笔十分好的文章,感兴趣的小伙伴可以去读一读原文,感受一下作者清晰而自洽的论述过程,一步步发问,一步步深入,是一个非常享受的过程~
[1] What is music21? http://web.mit.edu/music21/doc/about/what.html
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有