基于PU学习的建议语句分类方法

2019-07-31 12:14张璞刘畅李逍
计算机应用 2019年3期

张璞 刘畅 李逍

摘 要:建议挖掘作为一项新兴研究任务,具有重要的应用价值。针对传统建议语句分类方法所存在的规则复杂、标注工作量大、特征维度高、数据稀疏等问题,提出一种基于PU学习的建议语句分类方法。首先,使用简单规则从无标注评论集合中选择建议语句的正例集合;然后,为了降低特征维度,缓解数据稀疏性,在自编码神经网络(Autoencoder)特征空间中使用Spy技术划分可靠反例集合;最后,利用正例集合和可靠反例集合来训练多层感知机(MLP)对剩余的无标注样例进行分类。该方法在中文数据集上的F1值和准确率值分别达到81.98%和82.67%,实验结果表明,该方法能够有效地对建议语句进行分类,且不需要对数据进行人工标注。

关键词:建议挖掘;建议语句分类;PU学习;自编码神经网络器;多层感知机

中图分类号: TP391

文献标志码:A

文章编号:1001-9081(2019)03-0639-05

Abstract: As a new research task, suggestion mining has important application value. Since traditional suggestion sentence classification methods have problems like complex rules, large labeling workload, high feature dimension and data sparsity, a PU (Positive and Unlabeled)-based suggestion sentence classification method was proposed. Firstly, some suggestion sentences were selected from an unlabeled review set by using a simple rule to form a positive example set; then a reliable negative example set was constructed by Spy technique in the feature space of autoencoder neural network to reduce the feature dimension and alleviate data sparsity; finally, Multi-Layer Perceptron (MLP) was trained by the positive example set and the reliable negative example set to classify the remaining unlabeled samples. On a Chinese dataset, the F1 value and the accuracy of the proposed method, reached 81.98% and 82.67% respectively. The experimental results show that the proposed method can classify suggestion sentences effectively without manually labelling the data.

Key words: suggestion mining; suggestion sentence classification; PU (Positive and Unlabeled) learning; autoencoder; Multi-Layer Perceptron (MLP)

0 引言

隨着互联网的快速发展,网络上出现了海量的用户评论,人们不仅会在评论中传达积极或消极的情绪,有时也会对产品、服务等提出相应的建议。例如,在“希望三星手机能支持谷歌应用商店”这条评论中虽然并未包含情感极性,但明确提出了对产品功能的改进建议。这类建议信息可以帮助厂家有效地提升产品质量,也有助于商家有针对性地制定销售策略,具有重要的应用价值,建议挖掘[1]研究因此应运而生。

进行建议挖掘,首先需要对建议语句进行分类,即将评论语句分为建议语句或非建议语句。但由于人们对建议的判定存在比较大的主观性,导致建议语句的定义难以取得一致,这给语料标注和问题定义带来了很多困难[1]。本文采用和文献[1]类似的方案,将明确表达了期望或提出改进意见的语句定义为建议语句。目前,建议挖掘研究[2-7]虽然已经取得了一定的进展,但还存在以下问题:一方面,已有研究大多是在英文语料上开展的,在中文语料上的相关研究很少,而中文环境和英语环境中的网络文化和建议语句的表达方式存在较大差异,因此需要深入研究中文环境下的建议语句分类方法。另一方面,在已有研究中,用于建议语句分类的方法主要有规则方法[2-3]和有监督机器学习方法[4-7]。规则方法通过手工制定的规则来进行建议挖掘,需要提前建立复杂的规则模板,人工干预较多。而有监督机器学习方法虽然模型的精度较高,但模型训练过程中需要大量人工标注语料,标注工作量大,代价昂贵,并面临特征维度高、数据稀疏等问题。

针对以上问题,本文提出了一种综合利用简单语言规则和自编码器(Autoencoder)特征提取[8]能力的PU(Positive and Unlabeled)学习[9]方法来对中文建议语句进行分类。PU学习方法是一类利用少量正例和无标注样本进行学习的方法。该方法首先从无标注样本中获得部分可信反例,然后通过正例和可信反例训练分类器,并对剩余无标注样本进行分类,整个过程只需要少量标注的正例样本,节省了收集和标注反例的工作,适用于缺乏标注数据集的建议挖掘任务。在PU学习框架下,本文结合中文建议语句的表达特点,通过制定简单的语言规则,将满足规则的语句划分为正例集合,即建议语句集合,从而使得整个过程都不需要对数据进行手工标注。进一步地,本文使用自编码神经网络训练文档的Autoencoder特征向量并用在之后的学习过程中,与传统PU学习方法使用的词袋特征相比,Autoencoder特征包含了更深层次的语义信息,同时降低了特征维度,缓解了数据稀疏问题。在中文数据集上的实验结果表明了本文方法的有效性。

本文的主要贡献有以下几点:

1)在中文语料上开展建议挖掘研究,并提出一种适用于建议语句分类的无监督机器学习方法。就目前国内外文献查阅情况而言,已有研究绝大多数为监督学习方法,且主要在英文语料上开展研究。

2)首次将PU学习方法应用于建议语句分类问题中,实验结果验证了本文方法的有效性。

3)在PU学习框架下,综合利用简单语言规则和自编码神经网络特征提取能力,使整个过程不需要人工标注,并降低了特征维度并缓解了特征稀疏问题。

1 相关工作

1.1 建议挖掘

建议挖掘近年来刚起步,相关的文献还较少,主要方法分为基于规则的方法和有监督机器学习方法。基于规则的方法中,文献[2]利用语法、句法及情感极性词典制定规则,对产品评论中提出改进建议的语句进行挖掘;文献[3]基于“would”“should”等情态动词以及“hope”“wish”“needs to”等特殊搭配制定了一系列规则,对用户的购买意图和用户提出的改进建议同时进行挖掘,并将这两类语句统称为用户希望语句。有监督机器学习方法中,文献[4]发现在网络论坛中,通常由几条连续的语句来共同表达建议,这意味着连续的句子之间存在很强的依赖关系,所以将用户建议挖掘视为序列标注问题,并提出了一种改进的隐马尔可夫模型来进行序列标注。文献[5]在Twitter语料上使用词袋特征、建议语句表达模板和因子分解机(Factorization Machine,FM)进行建议语句分类,缓解了Twitter语料中建议语句类别不平衡的问题。近年来,深度学习方法在自然语言处理领域得到了广泛应用,文献[6]使用预先训练好的COMPOSES词向量和LSTM模型进行建议挖掘,与支持向量机(Support Vector Machine, SVM)和卷积神经网络(Convolutional Neural Network, CNN)相比,分类结果得到了进一步提升。文献[7] 标注了用于建议挖掘研究的中文数据集,并提出一种基于特征融合和集成学习的建议语句分类模型。

总体而言,基于规则的方法需要的人工干预较多,而有监督机器学习方法则面临标注工作量大、特征维度高、数据稀疏等问题。与已有研究不同,本文方法通过利用简单语言规则,无需进行语料的手工标注,并在低维特征空间上进行建议语句分类,可看作一种无监督机器学习方法。

1.2 PU学习方法

在使用有监督学习算法时,每个类别都需要足量的标注数据,标注通常需要手工完成,会耗费大量的人力和时间。因此,研究者们开始重视未标注数据来进行学习,而PU学习就是一种只使用少量正例样本和大量未标注样本进行学习的方法[9]。如今,PU学习方法已得到广泛应用。文献[10]中提出了一种整合LDA(Latent Dirichlet Allocation)、K-means和隐狄利克雷过程的PU学习框架来识别虚假评论,减小了错误标注造成的影响。文献[11]着重研究了PU学习中划分可信反例的方法,提出了一种基于聚类的半监督主动分类方法,通过使正反例的共享特征尽可能少,从未标注数据集中尽可能多地移除正例,从而获得更多的可信反例。文献[12]中使用改进的特征词权值提取方法和OB_PCZ算法划分可信反例,再結合支持向量机和改进的Rocchio算法来构建文本分类器。尽管PU学习方法已被用于上述的诸多任务中,但是目前尚未见到有将其用于建议挖掘任务的相关研究。

2 建议语句分类模型

考虑到PU学习方法需要的标注数据少,在只给定标注正例的情况下仍然能有效分类等特点[9],本文将其引入建议语句分类任务。在传统的PU学习方法中,一般是使用人工标注方式来标注正例集合P。不同于传统方法,本文首先结合网络上建议语句的表达特点,通过应用简单的语言规则来确定正例集合P,节省降低了手工标注正例的成本,再在使用自编码神经网络训练得到文档的特征空间上,使用Spy技术[13]划分出可信的反例集合RN,剩余的无标注集合记为Q。最后通过正例集合P、反例集合RN训练多层感知机MLP并对Q进行分类,从而得到Q中的正例集合PQ、反例集合NQ,最终得到建议语句集合P+PQ,模型的整体框架见图1。

2.1 使用规则选取正例

在传统的PU学习方法中,使用手工标注的样本作为正例集合,必然会耗费一定的人力和时间。由于目前缺乏可以用于建议挖掘的中文语料,本文通过编写网络爬虫来采集网络论坛中的评论数据,构建数据集。通过对数据的观察,发现建议语句通常会使用到“建议”“希望”等词语。因此,本文将评论中包含“建议”或者“希望”的评论选择出来,作为正例集合P,剩下的文档作为无标注集合U,U中既包含建议语句也包含非建议语句。

2.2 构建Autoencoder特征向量

传统PU方法使用词袋模型来构建文档的特征向量,而词袋模型采用的文本特征大多以词语特征为主,只是文本语义的表层形式,缺乏文本的深层语义信息,会面临特征稀疏、维度灾难等一系列问题,导致分类性能降低。

自编码网络作为一种非监督学习方法[8,14],通过设计编码和解码过程使输入和输出越来越接近,能通过具有隐藏层的神经网络的逐层特征变换获得原始数据的低维表示,从而显著降低数据的维数,并被广泛应用于跨语言情感分类[15]、短文本分类[16]、入侵检测[17]等任务中,因此,本文引入自编码神经网络来进行数据表示。

自编码神经网络的网络结构如图2所示,原始数据x经过加权映射之后得到低维隐藏层h=f(x)=s(w1x+b1),再经反向加权映射到y=g(h)=s(w2h+b2),其中w2=w1,经过反复训练使得误差函数最小,即尽可能保证y近似于x,实现对x的重构,当误差在限定范围内时,可认为编码过程是对原始数据的有效降维表达。图2中的“+1”表示加入偏置。

Autoencoder的目标函数如式(1)所示,M为样本数,N为输入维度,xij表示输入样本i的第j个分量,yij表示样本i对应的输出向量的第j个分量。

训练过程中通过反向传播梯度下降的方法更新参数w1、w2、b1、b2,使得目标函数减小。当输出误差L足够小时,表明输入样本数据可以通过隐藏层重构表达,此时,隐藏层输出即为提取的样本特征[18]。利用全部文档集合D训练自编码神经网络,得到相应的正例集合P的Autoencoder特征向量集合PA,无标注集合U的Autoencoder特征向量集合UA。

2.3 Spy划分可信反例

由于样本空间中只包含正例样本和未标注的样本,模型需要从中抽取一些可信的反例。本文利用Spy技术从UA中划分出可信反例RN,具体过程如下:首先从PA中随机选出一定比例的样本集合SP,这些选出来的样本被称为间谍样本“spies”。然后将PA-SP作为正例,UA+SP作为反例,利用Autoencoder特征向量训练逻辑回归(Logistic Regression, LR)分类器LR,并使用LR计算出UA+SP中每个样本属于正类的概率p(1|x)。然后根据SP中样本的p(1|x)确定一个阈值t,将UA中p(1|x)值小于t的样本作为可信的反例划入RN中,最后将UA中剩余的无标注样本集合记为Q。

算法1 Spy选取可信反例。

输入:正例集合P的Autoencoder特征向量集合PA,无标注集合U的Autoencoder特征向量集合UA;

输出:可信反例集合RN和剩余的无标注样本集合Q。

2.4 多层感知机分类

多层感知机(Multi-Layer Perceptron, MLP)是一种常见的神经网络模型,其前馈网络结构能映射一组输入向量到一组输出向量,其中每一个神经元都带有一个非线性激活函数,并使用反向传播算法来训练MLP。将P作为正例集合,RN作为反例集合训练MLP,然后使用训练好的MLP对Q中的每个样本分类,得到Q中的正例集合PQ、反例集合NQ,最终得到整个文档集合D中的建议语句集合P+PQ。

算法2 MLP分类。

输入:可信反例集合RN,正例集合P,剩余的无标注样本集合Q;

输出:PQ,NQ。

3 实验与结果

3.1 数据集

已有研究中,只有文献[5]公开了数据集,该数据集由3000条英文Tweet构成,其中属于建议语句的只有238条,不足8%。文献[7]中,本文作者发现在一般网络平台上的用户评论中,建议语句的比例是比较低的,想要获取一定量的建议语句所需要的数据量及标注工作量均比较大,而在部分网站专门设立的产品建议模块中的建议语句比例会比较高,因而从三星盖乐世社区(http://www.galaxyclub.cn)的产品建议模块中爬取数据并标注了中文数据集。本文采用文献[7]中的数据集,该数据集由15695条手机评论帖子构成,人工标注数据包括9000条评论,其中建议语句4513条,非建议语句4487条。

3.2 实验设置

使用scikit-learn(http://scikit-learn.org/stable)工具包調用朴素贝叶斯(Nave Bayes, NB)、LR、SVM等传统机器学习模型,使用gensim工具包(https://radimrehurek.com/gensim)调用Word2Vec和段落向量(Paragraph Vector, PV)[19]模型来训练对比实验的段落向量及词向量,训练过程中,PV模型及Word2Vec模型均使用默认参数,在15695条评论数据上使用Word2Vec训练得到128维词向量,并使用段落向量的分布记忆模型(Distributed Memory model of Paragraph Vector, PV-DM)方式训练得到128维的段落向量。自编码神经网络特征向量的维度为128维。实验结果的评价指标采用文本分类中常用的精确率(Precision)、召回率(Recall)、F1值和准确率(Accuracy, Acc)。

3.3 实验结果和分析

本节进行一系列实验来验证本文提出的建议语句分类方法的可行性和有效性。第1个实验将本文提出的方法(表1中的PU-MLP)和以下四个基线方法进行比较。本文方法不需要标注数据,可看成一种无监督学习方法,下述实验结果均指在整个数据集上进行一次实验的结果。

1)规则:使用2.1节中的简单规则来进行分类,即将含有“希望”或“建议”的评论作为建议语句,其余语句作为非建议语句。

2)S-EM:文献[9]中提出的PU分类方法,该方法第一步中使用Spy技术划分RN,第二步使用朴素贝叶斯分类器和期望最大化(Expectation-Maximum, EM)算法来进行分类。

3)I-EM:文献[9]中提出的PU分类方法,该方法第一步使用朴素贝叶斯分类器从未标注集合U中划分出RN,第二步使用EM算法来进行分类。

4)Roc-SVM:文献[20]中提出的PU分类方法,该方法第一步使用Rocchio算法划分出RN,第二步迭代使用SVM来进行分类。

为了与本文方法进行对比,其中,S-EM、I-EM、Roc-SVM等方法均使用规则方法来划分正例集合P,并用单词作为特征。本文方法与其他基线方法的实验结果见表1。

表1中的实验结果中,本文方法PU-MLP的F1值和准确率取得了最好效果,比S-EM的 F1值和准确率分别提升了6.85个百分点、13.9个百分点,比规则方法的 F1值和准确率则分别提升了4.17个百分点、2.01个百分点,验证了本文方法的有效性。

在S-EM 、I-EM、Roc-SVM等几种方法中,S-EM方法的效果最好,其原因在于S-EM方法使用了Spy技术来划分RN,因而结果明显好于没有使用Spy技术的I-EM和Roc-SVM方法。另一方面,S-EM、I-EM、Roc-SVM三个方法和本文方法相比而言,分类结果有较大差距,原因有如下两点:一方面,S-EM、I-EM、Roc-SVM这三个方法均使用词袋模型作为文本表示,特征维度高,数据稀疏问题严重。另一方面,上述三个方法在使用规则划分正例集合P时,P中包含了一定量的噪声数据,在仅使用浅层的单词特征进行分类时,可能受到噪声的影响较大,导致之后的分类效果变差。

为了验证Autoencoder特征的有效性,第2个实验对本文方法使用不同的文本特征来进行对比实验,包括词的Unigram特征、PV段落向量特征以及Word2Vec词向量特征,实验结果见表2。表2中Unigram指传统的单词特征,特征维度是20189维,PV指120维的段落向量特征,Word2Vec是指120维的词向量求平均得到的文档特征向量。

表2的实验结果表明,使用Autoencoder特征比使用另外三种特征向量的效果有明显的提升,F1值比使用Unigram、PV、Word2Vec特征分别提升了4个百分点、5.11个百分点、0.38个百分点,Accuracy值则分别提升了1.92个百分点、10.68个百分点、2.51个百分点,这说明利用自编码网络方法对高维、非线性的原始数据进行特征降维后,能有效地利用学习过程中获得最优的低维特征向量进行建议语句识别。

在传统PU学习方法的第二步中,一般会选择EM算法或者选择其他分类器进行迭代,而本文方法在第二步选择使用MLP的原因是由于EM算法对输入要求严格,需要标称型数据,不适用于Autoencoder特征向量。第3个实验将本文方法中的MLP分类器与其余迭代方法进行对比,其余步骤保持不变,实验结果见表3。

表3中SVM、LG是指在本文方法第二步中直接利用RN和P来分别训练SVM和LR分类器并对Q分类;SVM-I则指迭代地训练SVM分类器,每次训练完成后对Q进行分类,并将Q中的反例划分到RN中,然后进行下一次迭代,直至Q中分不出反例。LG-I则将迭代步骤中的分类器替换成逻辑回归分类器,其余步骤与SVM-I相同。

对比表3中SVM与SVM-I的结果可以发现,迭代的分类效果并不一定比只分类一次的效果好,因为使用规则划分正例集合P,导致P和RN中存在一些噪声,如果在迭代过程中误将Q中的正例划分到RN中,会导致不断迭代后的分类效果越来越差,而且很难确定迭代过程中表现最好的分类器,这也是使用迭代方法的一个缺点。MLP通过自身的网络结构能够实现对信息的记忆,而所记忆的信息存储在神经元之间的权值中,这种分布式的信息存储方式使得网络具有良好的容错性,根据表3中的分类结果,PU-MLP分类一次的效果比迭代使用SVM、LG和仅使用一次SVM、LG都要好,表明MLP更适用于本文任务。

文献[13]指出正例集合P的大小对PU学习方法的效果影响较大,为了分析P的大小对本文方法的影响,因此进行第4个实验,通过修改规则来改变P集合的大小,并与使用不同数量标注正例的实验结果进行对比,实验结果见表4。表4中,20%~80%表示使用相應比例的手工标注正例作为P,Pos in P指P中包含的正例数量,Neg in U指U中包含的反例数量。

观察表4中使用标注正例的实验结果,可以发现使用标注正例样本(从20%变化到80%)时,随着P集合的增大,分类效果逐步提升,而随着P集合的减小,分类效果逐步降低。在单独使用“建议”或者“希望”关键词来选择正例集合P时,P的规模明显减小,F1值和准确率下降明显,均下降了10%以上,与使用标注正例集合实验结果的变化趋势相同。此外,使用规则时的PU-MLP模型的分类效果介于使用20%~40%手工标注正例之间,其原因在于规则方法所选取的正例样本中存在噪声数据,例如,“我的9350升级后2天,屏幕右有条红线怎么处理,希望大神回复。”,“三星都有那几款,准备花4000~5500之间买个三星,求建议!”这两条评论虽然符合本文所提的简单语言规则,但却是噪声数据,这些噪声数据会对后续分类过程产生不利影响。

4 结语

本文在中文数据集上开展建议挖掘研究,提出了一种基于PU学习方法的无监督建议语句分类方法。首先通过规则来选择正例集合,接着使用Spy技术划分出可信反例,然后利用选择出来的正例集合和可信反例训练多层感知机MLP,最后使用MLP进行分类。实验结果表明本文方法具有良好的分类性能,能有效地进行建议语句分类任务。

未来工作中,将探索新的可靠反例划分方法,将其用于建议语句分类中。此外,本文实验只是在手机评论领域下进行的探索研究,今后将在其他领域的语料上来分析本文方法的有效性。

参考文献 (References)

[1] NEGI S. Suggestion mining from opinionated text [C] // Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics-Student Research Workshop. Stroudsburg, PA: Association for Computational Linguistics, 2016: 7-12.

[2] BRUN C, HAGEGE C. Suggestion mining: detecting suggestions for improvement in users comments [J]. Research in Computing Science, 2013, 70: 171-181.