2022.9.11 更新
补充了作为文科生与编程初次接触的经历和在爱丁堡大学语音和自然语言处理(Speech and Language Processing, or SLP)专业学习的体会。
面向正在申请爱丁堡 SLP 专业、想要转码的同学或是文转码国内找码工的同学,酌情提供有偿简历修改和面试指导服务,详情请发送简历至 me@sasugaSeika.com 联系我!
2022.4.23 更新
说真的,我从未料想到,这个回答“太监”至今,我竟已经不再主要从事 NLP 相关的工作了。
目前是一家大型美企的后端开发,上手没多久,谈不及太多的感悟。
不管怎样,还是会以把这个回答补充完整的形式,来记录自己过去四年间坎坷曲折的 NLP 求学和从业经历。只是没有给自己设时间限制罢了。只是不知道,把这样的拖延症说成是“不给人生设限”的 rosy speech,会不会涉嫌欺诈(自欺欺人)?哈哈。
<hr/>受到前同事邀请,诚惶诚恐地在这里占个坑发个言。求学经历有写在个人主页(虽然不是语言学背景出身,但多多少少也在学习语言的过程中受到了语言学的熏陶),目前在一家创业公司的 NLP 工程师一职上摸爬滚打(已离职),希望这样的身份和经历符合回答这个问题的基本条件。
0. Introduction
从抛开文科生身份正式系统地学习 NLP 之始,我便一直在思考这样一个问题,亦是楼主所措辞的“纯文科背景转 NLP 成功”这一状态的定义到底为何?
- 是会写代码会调包?
- 是知道什么是语言模型,什么是神经网络?
- 还是能在导师的指导下完成一份 NLP 领域话题的论文的撰写?
- 还是在竞争激烈的求职市场上找到一份 NLP 工程师的工作?
- 还是能在学术界潜心研究、在顶会上发表成果?
- 还是能在工业界开源创新算法,成为技术翘楚?
- ……
我幻想过很多很多种转行之后可能的自己的模样,但很可惜没有一种自己敢斗胆定义为“转行成功”的状态。因为所追求的目标似乎一直在变化、在推进,变化多端永无止境。深知这样的目标定位不适宜自身发展,所以在一次次询问身边科班出身的同学和同事们的经验建议以及自我的一番上下求索之后,养成了不断为当前阶段的自己重新定义“转行/专业成功”的习惯。
虽然不知道未来还会有多少个阶段将要铺开,但回顾至今已经经历过或正在经历中的阶段,分别以以下几种状态为“转行/专业成功”的理想目标(括号中为所花费的大致时间):
1. 能理解掌握 NLP 学科基本的概念和知识,能通过考试,能融会贯通并灵活应用(半年)。
2. 能培养严谨的科学思维和实验思维,在导师的指导下完成学术论文的撰写(半年)。
3. 能在任何一个求职市场找到一份 NLP 相关的工作,esp. 工业界(一到三个月)。
4. 能在工作中运用所学知识,维持 NLP 的基本 sense,磨练工程能力,参与有一定规模的工程项目(一到一年半,初级工程师)。
5. 能拥有 business-oriented mindset,能把业务抽象成模型,定义指标,对齐业务目标(一到三年,高级工程师)。
以下我会尽力地详述每一个阶段的初始状态、所采取的步骤、花费的时间、任何中间状态和最终状态。虽然经历都很个人,但仍然希望能给读者带来些许启发和参考
1.1 从纯正的文科生慢慢踏入计算语言和计算机科学的大门
从高三分科开始一直到本科毕业一直是纯纯正正、根正苗红的文科生,高中毕业后跟数理唯一的缘分大概也就是大一学了一年的文科高数,想着此后数理便与我无“瓜”了吧,没想到大四时一方面偶然通过吴军博士的《数学之美》[1](想必躺在很多人的入门书单里)接触到计算语言学(当初还一直傻傻地以为 computational linguistics 译作计算机语言学),另一方面曾经在国外接触过一阵子纯语言学的学习(印象比较深刻的是语言学课程的学习),不禁就对语言学产生了兴趣。那时候还不明白传统语言学和计算语言学的关系,以为计算语言学纯粹就是语言学的一个分支(牛津大学 Master of Studies in General Linguistics and Comparative Philology 的招生页面也曾带给我很大的误导),事实上如果提出计算语言学的别名——自然语言处理(当然,两者也许是存在微妙区别的),或许困惑会少很多,后者带给我的印象更多是把语言文字当作研究对象和实验材料,而所使用的手段则完全是统计学或是计算机科学的手段,因此和传统语言学有着本质上的区别。离一样事物愈远,就愈战战兢兢,但一旦决心揭开它神秘的面纱,随之而来的惊喜也是无可比拟的。
意料之中地,大四那年我陆陆续续收到了所申请的所有国外高校语言学研究生的 offer。申请之路比自己想象得要简单得多,但是仿佛从来没有好好想过这到底是在遂愿还是随缘。曾以为自己应当全情扑在语言学这个学科上,可是没想那一场偶然的邂逅就这么将自然语言处理的小苗苗于我心中扎根发芽。
说来也是话长。从大四的寒假说起,当时我正在准备日语系毕业论文的开题报告。由于先前和大学里的小伙伴们结伴申请海外硕士项目时,结识了几位计算机专业的同学,所以当时对一些诸如 Git(以及 GitHub)、Terminal(iTerm)、Python 等之类的工具和平台都有了入门级的听闻和了解。在组里计算机专业同学的带动下,从来没写过代码的我也码下了人生第一行代码,从来没有提交过代码的我也第一次体验了 Git 的使用(尽管是用 Git 往 GitHub 的 repo 里提交了一些 Word 文档 )。利用了大四寒假的整块时间,开始在 Codecademy、Udacity 等等平台上开始正式从编程语言的语法开始学起。之后申请爱丁堡大学(the University of Edinburgh)语音和语言处理硕士项目(MSc in Speech and Language Processing)(下称 SLP)时的经历,彻底证明这段时间的努力不仅没有白费,且是正确和及时的。这段经历曾经被很多人问过,不论是工作中遇到的科班出身的同事们,还是同样也有转码念头的学妹学弟们,借此良机,按照时间顺序赘述几句。寒假学完最最基础的 Python 语法和一些 Shell 命令,一开学就进入到了毕业论文的撰写中。也不知道是谁给的勇气,在一个很普通的下午看到了几篇自然语言处理方向的论文,竟也想试试做做日语方面的课题。也可能是先前阅读的吴军博士的《数学之美》写得实在是太过于深入浅出,自信心爆棚,便开始思考寻找一个至少可以用上些统计学习方法的课题。抛弃了导师心心念念希望我着手试试的上海话与日语的关系的课题,我把视线落到了曾经一闪而过脑海的歌词当字(当て字)。当字是一种日语独特的语言现象,或许说像古汉语中的通假字可以帮助理解,在汉字上注上本不属于它的发音,使得词语拥有更丰富的含义,也是一种修辞手法。比如在日语当代歌词中,会给“明天”注上“未来”的发音,甚至是矛盾地给词语注上其反义词的发音等等,使得词语的含义灵动饱满富有深意。有了这个想法后,我便开始验证这个课题的可行性,事实上关于当字的研究并非少数,但于我而言,能否找到一个歌词当字的语料库是重中之重,如果没有研究的材料,研究也就无从谈起。几番搜索之后,得出了需要自己写爬虫爬取歌词和当字对(汉字和其注音的 pair)的结论。这对我来说是一个挑战,因为在短短一周的时间里,我需要首先找到一个网站,它拥有丰富海量的日与当代歌曲歌词资源,不 block 爬虫,不需要我采用对于当时的我而言听着十分复杂的 IP 池等等手段,并且学会基本的爬虫写法,结合歌词网页的 HTML 结构,能真的获取到我想要的信息。在度过了几个浏览器里打开无数个 Google、StackOverflow、YouTube tabs 的白天和黑夜、以及请教了身边当时能接触到的所有计算机同学后,我终于能从网页上开始爬取歌词当字对了!由于决定不采用任何优化方法(更何况任何所谓的优化方法对我来说都存在实现不了或是摸索时间过长的风险),在程序单线程、使用单个 IP 地运行了一天有余之后,终于从数十万首歌曲中得到了数万对有效的当字对。而后的 data cleansing 则是使用 Python 进行了简单的处理,最后把当字对灌入 Excel,于我来说已是一个十分鼓舞人心的里程碑了——短短一周的时间里,作为编程新手的我,也可以完成这样一个功能清晰的程序,虽然过程中不免充满自我怀疑,但每当回想起那段时光,还是很感谢自己没有在五花八门的 error messages 迎面袭来时有过任何放弃。
毕业论文顺利完成后迎来了大学时代最后一个暑假,我去了一家叫英语流利说(后称流利说)的公司实习,任务是为 AI 工程师们提供高质量的有标注数据。除了手动给数据打标这样听起来有些机械化的工作之外(毕竟“人工”智能),还利用了自己的 Python 所学,帮助组里不会编程的同事们编写了一些提升工作效率的小程序。在流利说,我第一次跟 AI 工程师合作,看见他们的指下飞舞出与我完完全全不在一个水平上的代码,第一次了解到原来还有面向对象的编程范式,还假模假样地在自己桌上放了一个小黄鸭玩偶 。而这份实习最大的收获,绝对是认识了曾就读过 SLP 的学姐(以后看情况要不要 @ 这位的知乎出来~俨然已经是位工业界的语音学 AI 大牛啦)。原以为要和文科生身份杠到底的自己,在听说了这样一个“梦中情专”之后,果断地进行了申请,过程中附上了先前写毕业论文时编写的代码样例,最后飞速且顺利地在那年生日当天得到了 Unconditional Offer。我至今还是很感谢在流利说的那个夏天、那段实习、那些人们,让我得到了发掘全新自我的机会。
关于申请上述专业的细节和经验:我的情况比较特别,几乎是卡着申请通道快要关闭的六七月时才开始申请,而那时候大多数人的去向应该早就已经尘埃落定了。正常来讲,每年九月份,不少学校就已经开始了申请通道,爱大也是比较早就开始招生工作的那批学校之一。因此,it&#39;s never too early to start preparing for application! 大三的暑假便可开始写申请文书(Proposal Statement)和找老师写推荐信(Reference Letter)以及其他材料。爱大多数专业对雅思的要求不算太高(不像牛剑大多数专业基本都要求小分 7,总分 7.5),因此拿到 Conditional Offer 之后再刷雅思分数也是来得及的,最不济则是先于项目开始前念一到两个月的语言班,通过了语言班的考验等同于达到了语言要求。虽然确实是一笔额外的花销,但是对于初来乍到英国的同学来讲,也是一个熟悉土地、语言、文化的好机会。
此处打个小广告,鉴于过去几年里帮不少学妹学弟修改过简历的经验,以及本人比较强迫症和完美主义的脾性,我可以酌情为想要申请上述专业的同学进行有偿简历修缮和面试建议,欢迎将你的简历发送到我的个人邮箱:me@sasugaSeika.com,并附上你的联系方式(微信、电邮、电报等皆可)。如果我的初步评估是 potential/even promising candidate,会与你建立进一步联系交流。
p.s. 工作比较忙,尽量不辜负不弃坑 >w< |
|