(本文转载自公众号“脑极体”,未经授权不允许二次转载)
前不久,Facebook一口气删除783个“水军”帐号,原因是存在虚假宣传和舆论攻击行为。其中356个Facebook帐户和162个Instagram帐户,早在2010年就开始在网络任性活动了。但由于他们很容易伪装自己,导致系统根本无法自动清理,最后还是靠手动审查才发现了蛛丝马迹。
看来,想要让机器像人一样精准识别网络行为背后的意图,以当前NLP的阅读理解能力,真的是想太多。
也因此,去年一篇利用人类眼动来提升NLP模型性能的论文,一经问世,就迅速受到关注,为与网络暴力斗智斗勇的程序员们打开了一扇新的技术之窗。
我们不妨就以这个最新研究成果为契机,来猜想一下,技术如何才能打赢这场争夺网络话语权的无声战争。
机器之殇:远不够完美的RNN
在了解这个新的RNN模型做了哪些创新之前,我想有必要先简单介绍一下,NLP的世界里一般是如何使用注意力机制来完成任务的。
以最为常用的序列对序列(sequence to sequence)模型为例,比如说我们要将中文翻译成英文,如果我们拥有大量的双语语料,就可以得到两个知识丰富而结构相似的编码和解码网络,从而训练出很有效的模型,来实现很好的机器翻译效果。
但序列模型对机器的记忆力提出了比较残酷的要求,需要先背诵全文再翻译,如果是长篇大论,机器就放飞自我了。
于是,注意力模型出现了。
试想一下,人类是如何翻译的(此处致敬高考英语老师):先完整地读完整个句子,结合上下文理解大概含义,然后对关键单词和短语重点思索,再着手进行翻译。
而注意力模型试图模仿的正是人类这种理解能力。它被设计成一个双向的RNN网络,每个单元由LSTM或GRU组成,能够向前和向后获取信息,通俗点说就是“联系上下文”。
每次翻译时,注意力模型会根据待翻译部分以及上下文,给予不一样的注意力(权重参数),接着循序渐进地翻译出整段话。
注意力机制解决了传统神经机器翻译中基于短语的生搬硬套,但并不意味着毫无缺陷。
它的不完美主要体现在三个方面:
1.需要大规模标注数据。
原始RNN在解码过程中,机器的焦点是分散在整个序列当中的,需要先对序列上的每个元素进行标记,再进行对齐操作。里面就包含了词性标注、CHUNK识别、句法分析、语义角色识别,甚至包括关键词抽取等很多子任务,显然不是一个小工程。
2.增加额外运算负担。
人类在阅读时,并不关注所有的字,往往会自动忽略掉不想关注或无意义的部分,只重点处理关注需要注意的那一部分。比如“Courage is like a muscle”中,“Courage”和“muscle”就会让人多看两眼。这样做不仅能够降低任务的复杂度,还能避免脑负荷过载。
而NLP的注意力机制虽然是在模仿人类行为,但机器必须对所有对象进行处理和计算,还要用一个矩阵去存储不同字节的权重,这些都增加了额外的运算压力和成本。
3.容易出现归纳偏置。
通俗点说,就是机器在遇到某种没有见过的东西时,会倾向于给出一个简单的预测或判断,以此来决定输出规则。
比如通过分析,它认为出现“but”“不”等单词,就说明对方会开始释放负面甚至攻击性的语言了。但要是遇上“我跳起来反手就是一个么么哒”之类玩梗的骚操作,可能就会误伤友军。
了解了注意力机制的基本工作方式,我们就赶紧来看看这项新的研究成果,究竟是凭什么惊艳了整个学界吧。
NLP希望之钥,还掌握在人类手中
一句话概括,就是论文作者Maria Barrett和她的同事们,将人类在阅读时的眼部动作引入了RNN网络的训练中,使其能够在标注型文本和人类注意力信息之间来回切换,以此获得性能更好的循环神经网络。
具体是怎么实现的呢?
首先,研究人员利用两个公开的眼动追踪语料库:Dundee Corpus和ZuCo Corpus来研究人类的注意力机制。
其中,Dundee Corpus包含了20篇报纸文章,共2368个句子,阅读屏幕可以感知眼部动作。ZuCo Corpus则包含了1000个单独的英语句子,有一部分来自斯坦福情感树库,通过红外染色仪来记录眼睛运动和面部情绪分析。
根据这些人类阅读语料时的眼睛动作追踪数据(比如注视持续时间MEAN FIX DUR),得到了一个“人类注意力”的数据集。
第二步,使用人类眼动数据集与标注好的序列数据集,来共同训练RNN模型。
从两个数据集中随机选择一个数据,让机器判断属于哪一个数据集。
如果属于序列数据集,则进一步判断该句子的类别,计算并预测标签blabla;如果属于人类眼动数据集,则计算每个单词的权重(即attention值),再进行归一化(最小平方差)处理。
那么,经受了人机双重挑战的新RNN网络效果如何呢?接下来,研究人员通过三个任务对其性能进行了测试:
任务一:句子情感分析。使用新RNN来检测机器是否能识别出数据集(SEMEVAL TWITTER POS | NEG)中的负面句子和非负面句子;
任务二:语法错误检测。让新的RNN阅读经专家注释的英语论文(数据集FCF),并找出其中的语法错误,与正确的句子区分开;
任务三:暴力语言检测。研究人员安排了20940条设计性别歧视和种族主义等辱骂型语言的推特(数据集Waseem和Hovy),来对新的RNN进行测试。
最终的实验结果显示,加入了人类注意力训练之后的RNN,找重点的能力,以及预测的精准程度,要远高于原本的序列模型。
这项研究成果很快就引起了反响,并获得了NLP顶会CoNLL 2018年度最佳研究论文特别奖。
那么,接下来请回答一道送分题:这项成果有何特别之处?
RNN的一小步,NLP的一大步
将人类注意力引入机器学习算法的训练,究竟有何意义?我来抢答一下:
首先,降低了对序列分类标注语料的依赖,让NLP模型的训练有了更多可能性。
让机器学习注意力函数需要非常大规模的数据,结果就是让开发者不得不陷入争夺计算资源的“金钱战争”。该项研究为 NLP 中的许多注意力函数提供一个不错的归纳偏置性能,同时还不要求目标任务数据带有眼睛跟踪信息,直接减少了数据需求量。
其次,是从语义到推理的性能跨越。
传统的序列到序列模型和RNN网络,只能解决语义理解问题,而该论文证明,使用人眼注意力来规范机器的注意力功能,可以让一系列NLP任务实现显著改善,甚至触及了常识、推理等认知能力。
机器能从“凝视”信息中获取对多重表达、情绪分析的精准判断,某种程度上已经学会了模拟人类的注意力。
以后机器也许就能够轻松挑战女朋友说“我没有不高兴”这样双重否定表否定的高难度阅读理解了。是不是很期待呢?
而最重要也最接地气的,则是新模型带来的网络冲浪体验革命了。
研究团队认为,该模型很快就能够在一些比较关键的实际应用中,判断网络文本的犯罪意图、评论信息和情感倾向。
比如通过帖子或推文的训练,帮助微博/推特/脸书等社交媒体精准识别出恶意评论的杠精和废话连篇的水军,并予以精准过滤和清楚,营造一个更美好的社区氛围;
再比如通过淘宝/亚马逊/Yelp,以及各种应用商店中不同类别的反馈,对特殊属性(衣服的尺寸、使用感受)和商品评价的不同反馈进行分类和提取,帮助商家优化经营,并精准打击刷单等欺骗行为。
除此之外,该模型还能根据意图对文本进行分类,比如在遇到紧急问题或检测到请求帮助的需求(发出带有自杀或发社会倾向的推文或聊天记录)时,能够及时通知执法人员,从而避免灾难性事件的发生。
这样一对比,是不是感觉一个“机器懂我、天下无杠”的美丽新世界在向你招手呢?
再说一点
由此延展到整个AI领域,或许可以发现,人类和智能机器,本质上在做着同样的事情,只不过AI的功能是将其抽象化并用新的逻辑演绎出来,然后人类给它投喂数据,它消化之后返还给我们或理想或智障的结果……
而机器的内化过程,一直遭遇着黑箱性的诟病,越来越庞大的神经网络层和数据需求量,也已经让研究者不堪重负。
前路在哪里?或许那张大家快看吐了的人类与机器人指尖对指尖的图,正印证着机器学习的未来,那就是:人机协同。
越来越多的研究者开始将人类推理和决策行为引入到机器训练之中,比如MIT和微软在训练无人驾驶汽车时,开始让它们从人类反馈中找到认知盲点,以此应对那些模糊决策情境。
DeepMind和OpenAI让没有技术经验的人类控制员来选择预期目标,并以此训练激励预期侧,让智能体根据人类的偏好改进自己的行为,最终完成复杂的任务目标,比如后空翻;基于人眼注意力的新RNN网络也是如此。
这种改变,可以被归结为深度学习的阶段性技术瓶颈,只能靠向人类借力来攻破。
但从某种意义上来说,与人类携手,将人类的抽象能力与计算机系统逻辑进行更高耦合度的融合,可能才是机器智能更现实也更有效的解决方案。
肯尼迪的那句话放在AI的世界里依然无比适合——不要问机器为你做了什么,要问你能为机器做些什么。相比于等待机器自我迭代到成熟的那一天来服务我们,参与“智能养成游戏”不是更令人期待吗?