近日 OpenAI 公布了一项新研究,介绍了一种可以学习情感表征的无监督式的系统,该系统可以预测亚马逊网站上评论文本中的下一个字符,而让人惊讶的是,该系统中还出现了意料之外的「情感神经元(sentiment neuron)」,其囊括了几乎所有的情感信号。OpenAI 官方博客刊文对这一研究进行了解读,机器之心对该解读文章和论文摘要进行了编译,原论文可点击文末「阅读原文」查阅。
论文地址:https://arxiv.org/abs/1704.01444
开源代码:https://github.com/openai/generating-reviews-discovering-sentiment
我们开发了一个可以学习到出色的情感(sentiment)表征的无监督式系统,尽管训练出的这个系统只能预测亚马逊评论文本中的下一个字符。
使用这种表征的一个线性模型在一个小却得到了广泛研究的数据集(Stanford Sentiment Treebank)上实现了当前最佳的情感分析准确度——91.8%,而之前的最高水平是 90.2%;而且该模型可以仅使用少 30-100 倍的有标注样本就能达到比肩之前的监督式系统的表现。我们的表征中也包含了一个明显的「情感神经元(sentiment neuron)」,其囊括了几乎所有的情感信号。
使我们的模型的两个变体(绿线和蓝线)的表现媲美完全监督式方法而所需的有标注样本的数量,其中每个变体都使用了 6920 个样本来进行训练(灰色虚线)。我们的 L1-regularized 模型(在亚马逊评论上以无监督的方式预训练过)可以仅使用 11 个有标注样本就能实现媲美多通道 CNN(multichannel CNN)的表现,且仅使用 232 个样本就能媲美当前最佳的 CT-LSTM Ensembles
我们的模型学习到了一个可解释的功能,而且这种对亚马逊评论中下一个字符的简单预测可以实现对情感概念(concept of sentiment)的发现;这让我们也非常惊讶。我们相信这个现象并不特定于我们的模型,而是被训练用来预测输入的下一步或下一个维度的特定大型神经网络的普遍性质。
方法
我们首先在一个有 8200 万条亚马逊评论的语料库上训练了一个有 4096 个单元的乘法 LSTM(multiplicative LSTM),以用来预测一段文本中的下一个字符。在我们的 4 块英伟达 Pascal GPU 上,我们的训练花了 1 个月时间——我们的模型每秒可以处理 12,500 个字符。
这 4096 个单元(它们只是浮点数的向量)可被看作是一种特征向量,表征了该模型所读取的字符串。在训练了该 mLSTM 之后,我们对这些单元进行了一种线性组合(linear combination)并通过可用的监督数据学习了该组合的权重,从而将该模型变成了一个情感分类器(sentiment classifier)。
情感神经元(sentiment neuron)
在使用 L1 regularization 训练该线性模型时,我们注意到其仅使用了极其少的学习过的单元。研究之后,我们发现其中存在一个单个的「情感神经元(sentiment neuron)」,其能很好地预测情感值(sentiment value)。
我们模型中的情感神经元可以将评论分类为负面(negative)或正面(positive),尽管该模型的训练目的只是为了预测文本中的下一个字符。
就像类似的模型一样,我们的模型也可被用于生成文本。但和那些模型不同的是,我们可以直接控制文本结果的情感:我们只需要简单修改情感神经元的值即可。
由训练好的模型所生成的合成文本例子。上面的文本是我们在固定了情感单元的值(以确定评论的情感)后从该模型所生成的样本中随机取出的。下面的文本是我们使用了固定前置「I couldn't figure out」后从模型生成的样本中选出的高似然度样本。
例子
下图一个字符接一个字符地展示了该情感神经元的值,其中负值用红色表示,正值用绿色表示。注意像「best(最好的)」和「horrendous(可怕的)」这样的有强烈指示性的词会导致颜色发生剧变。
该情感神经元在逐一字符地调整其值
值得注意的是,该系统在完成了句子或短语之后也会进行较大的更新。比如说,在句子「And about 99.8 percent of that got lost in the film」中,在「lost」之后会有一次负面更新,而在句子结束时还有一次更大的更新,尽管短语「in the film」本身并没有情感内容。
无监督学习
有标注数据是当今机器学习的燃料。收集数据很简单,但大规模地标注数据则很困难。只有带来的回报值得我们努力的重要问题才值得我们为其进行标注,比如机器翻译、语音识别或自动驾驶。
长久以来,机器学习研究者都一直梦想着开发出能自己学习数据集表征的无监督学习算法,然后将其用于解决仅有少量有标注样本的任务。我们的研究表明,简单地在大量数据上训练大型无监督下一步预测模型(unsupervised next-step-prediction model)可能是一种可用于创建优秀的表征学习系统的好方法。
未来研究
我们的研究向着通用型无监督表征学习的目标迈进了一步。我们通过探索我们能否在语言建模时附带学习到高质量的表征而发现了这个结果,并且在一个精心选择的数据集上扩展了一个已有的模型。然而该基本现象的神秘之处还是多于我们已了解的东西。
这些结果对长文档的数据集来说表现并不是很好。我们猜测我们的字符级的模型难以记忆数百乃至数千时间步骤的信息。我们认为应当尝试一下层次模型,其可以适应它们运行时的时间尺度。进一步扩展这些模型也许还能进一步提升表征保真度(representation fidelity)以及在情感分析和类似任务上的表现。
当输入文本和评论数据差别越大时,该模型的表现就越差。拓宽文本样本的语料库能否得到同等信息量的表征?该表征又能否用于更宽范围的领域?还有待验证。
我们的结果表明非常大型的下一步预测模型(next-step-prediction model)可以学习到出色的无监督表征。在一个大规模视频集上训练一个大型神经网络来预测下一帧有可能会得到对物体、场景和动作分类器的无监督表征。
总的来说,理解模型、训练方案和数据集的属性是很重要的,从而能可靠地得到这样出色的表征。
以下是对该研究相关论文的摘要介绍:
论文:学习生成评论和发现情感(Learning to Generate Reviews and Discovering Sentiment)
我们探索了字节级循环语言模型(byte-level recurrent language model)的性质。当具有足够的计算能力、训练数据和计算时间时,这些模型所学习到的表征会包含对应于高级概念的解开的特征(disentangled feature)。具体而言,我们发现了一个执行情感的单个单元。这些以无监督的形式学习到的表征在 Stanford Sentiment Treebank 的二元子集上达到了当前最佳。它们也非常具有数据效率。当仅使用少量有标注的样本时,我们的方法实现了可媲美在完全数据集上训练的强大基准的表现。我们还表明该情感单元可直接影响该模型的生成过程。只需将其值固定为正或负,就能生成对应于正面情感或负面情感的样本。
原文链接:https://blog.openai.com/unsupervised-sentiment-neuron/