基金项目:国家自然科学基金(61303082); 厦门大学大学生创新创业训练计划项目(2016Y1131)
通信作者:robin@xmu.edu.cn
(1.厦门大学软件学院,福建 厦门 361005; 2.北京大学软件与微电子学院, 北京 102600; 3.厦门大学航空航天学院,福建 厦门 361005)
(1.Software School,Xiamen University,Xiamen 361005,China; 2.School of Software and Microelectronics,Peking University,Beijing 102600,China; 3.School of Aerospace Engineering,Xiamen University,Xiamen 361005,China)
micro-blog advertisement text; recognition; semi-supervised; label propagation algorithm
DOI: 10.6043/j.issn.0438-0479.201612030
大量的微博广告影响了微博数据分析模型的使用.针对微博广告文本识别问题,利用基于图的半监督的标签传播算法,指导计算机从大量的非结构化的微博文本中自动识别出微博广告.通过对实验数据的评测,结果显示,当已有标签样本较少时,基于图的半监督的标签传播算法能够获得比有监督的支持向量机和朴素贝叶斯算法更好的性能.
Many advertisements in micro-blog affected the use of micro-blog data analysis models.Aiming at implementing micro-blog advertisement text recognition,this paper investigates a graph-based semi-supervised learning algorithm,that is,the label propagation,to recognize micro-blog advertisement from a large number of micro-blog texts.Experimental results on the large-scale data shows that this method achieves a better performance than supervised learning algorithm,such as support vector machine and naive Bayes,do when only very few labeled examples are available.
微博是一个通过关注机制分享、传播、获取简短实时信息的广播式平台.由于其特有的简洁性和便捷性,微博已迅速成为目前最受欢迎的信息交流平台之一.正因为其拥有广大的用户群体,并具有高效传播等特点,许多企业以微博为平台进行产品推广,产生了大量的微博广告文本.这些数据充分反映了商家推介商品的信息,存在着“自动发送,信息重复率高,实效性强”的特点.然而,这些数据对于其他微博数据的分析并无太大用处,过多的微博广告文本反而影响了微博数据分析模型的准确率.如果能够事先识别并剔除微博广告文本,将提高相应模型的性能.因而,如何准确地从海量微博文本数据中识别出微博广告文本,对于微博研究具有着重要意义.
微博广告文本识别本质上是一个文本分类问题.文本分类的研究最早可追溯到20世纪50年代末期,这一时期主要是对文本分类理论的研究.到80年代,文本分类大多是采用知识工程的相关技术,根据专家规则手工建立分类器.这时的信息检索技术逐渐走向成熟,并为文本分类提供技术支撑,最著名的是SMART系统[1].90年代后,统计和机器学习方法被引入到文本分类,分类器在自主学习后对文本进行自动分类,不再需要人工干预,准确率和查全率也得到了有效提高.目前国外对文本自动分类的研究已经从实验性阶段进入到实用性阶段,并在邮件分类、电子会议等领域取得了较为广泛的应用[2].
文本分类发展到今天,相关技术日趋成熟,提出的算法也不计其数,比较经典的算法有k最近邻(k-nearest neighbor,k-NN)、朴素贝叶斯(naive bayes,NB)、支持向量机(support vector machine,SVM)以及决策树(decision tree,DT)等等.近期,随着深度学习的快速发展,使用神经网络(neural network,NN)[3-5]来进行文本分类也成为一种常见的方法.这些算法多为监督式学习方法,即需要利用大量的已知类别的训练样本进行学习.然而,随着数据收集和存储技术的不断发展,收集大量无标签数据的过程日益简单,而对收集到的数据进行标记却相对困难,因为这一过程往往需要耗费大量的人力物力.因此,利用大量的无标签数据来帮助提升在少量有标签数据上学到的模型在整个数据分布上的泛化能力的需求日益强烈,而传统的有监督式文本分类方法已经无法解决这一问题,所以,半监督学习方法逐渐成为了机器学习领域的热点.近年来,越来越多的学者针对基于图的半监督学习提出了各种各样的算法策略[6-11],包括随机游走、谱分析、图切割、直推式SVM机等.这些策略都建立在全局一致性假设的基础之上,主要区别在于一致性假设的实现方式有所不同.
本文中提出利用基于图的半监督的标签传播算法(label propagation algorithm,LPA),指导计算机从非结构化的微博文本中自动识别出微博广告,实现当有标签样本不足时利用大量的无标签样本来改善学习性能.
LPA是由Zhu等[12]提出的一种基于图的半监督学习方法,它的基本思路是利用少量有标签节点的标签信息进行指导并预测大量无标签节点的标签信息.由于其具有直观易理解、简单易实现、复杂度低且分类效果好等特点,LPA被广泛应用于文本信息分类和社交网络分析等领域.
标签传播的主要原理是利用少量的有标签节点,通过在密集的无标签区域中传播标签信息从而找到许多与有标签节点相似的无标签节点,并使用这些节点来增强系统的学习性能.首先需要根据样本之间的关系建立一个图模型,在这个图模型中,节点代表有标签样本数据和无标签样本数据,边则表示对应两个节点之间的相似性,每个节点的标签信息根据边的权重传播给相邻节点,边权重越大,该节点对其相邻节点的影响力越大,标签越容易传播.为了避免有标签节点的标签信息的影响力逐渐减弱,在标签迭代传播的过程中,要始终将有标记节点的标签保持不变,使其像一个源头一样把标签信息传播给未标记节点.最终,当迭代传播过程终止时,相似性较高的节点的概率分布也会趋于相似,就可以将这些节点划分为同一类型,从而结束标签传播过程[13].
基于图的学习方法通常是以这样一种假设为基础,即相似性较高的两个节点倾向于属于同一类型; 而文本分类任务的假设前提是若两篇文档的相似性较高,即特征词语相似,则这两篇文档倾向于属于同一类型.可以发现,微博广告文本识别问题的假设同基于图的学习方法的假设前提相吻合.因此,为了充分利用有标签样本数据和无标签样本数据的信息,实验中构造了一个基于图的微博广告文本识别模型,可以表示为G=(V,E).其中,顶点集合V由语料库中所有的有标签和无标签的微博文本构成,而任意两个节点间的边E则代表对应两条微博文本之间的相似性.
假设X={xi}ni=1 是经过预处理操作后所有微博样本数据的集合,n是微博样本总数.假设C={L0,L1}是所有类别标签的集合,L0表示非广告,L1表示广告.
假设X中的前l个样本(x1,y1),…,(xl,yl)为微博广告文本识别图模型中的有标签节点,则有YL={yi}li=1 ∈C; 令X中的剩余u(lu)个样本(xl+1,yl+1),…,(xl+u,yl+u)为无标签节点,则有YU={yi}l+ui=l+1.实验目标是根据样本数据X和有标签节点的类别标签YL预测出无标签节点的类别标签YU.
首先运用空间向量模型将微博文本表示成向量形式,主要包括特征选择[14]和计算TF-IDF(term frequency-inverse document frequency)特征值[15]两个步骤.然后利用余弦相似性计算出任意两个微博文本间的相似度.若给定文档di=(ωi1,…,ωin)T以及文档dj=(ωj1,…,ωjn)T,则di和dj之间的余弦相似性定义为:
sim(di,dj)=(∑nk=1ωik·ωjk)/((∑nk=1ω2ik)1/2(∑nk=1ω2jk)1/2).(1)
设sij为节点xi和xj间的相似度,则xi和xj之间的边的权重计算公式如下:
wij=exp(-(s2ij)/(α2)),(2)
其中α是调整控制权重wij大小的平衡因子.
结合顶点和边权重信息,可以构造出一个微博广告文本识别图模型.在这个完全图模型中,可能会存在一些权重较小的边,这些边对各个节点的标签信息的影响较小.若保留这些边,必然会增加模型的复杂程度,甚至可能会对结果产生干扰.因此,在依据相似度建立图模型时,需要设置一个相似度阈值,将相似度小于该阈值的边删除,从而降低标签传播过程的复杂性,提高算法效率.本文中将在实验中考察相似度阈值对方法效果的影响.
根据边的权重定义一个(l+u)×(l+u)的概率转换矩阵T:
Tij=P(j→i)=(wij)/(∑l+uk=1wkj),(3)
其中,Tij表示从微博文本xj传递到微博文本xi的概率,体现了微博文本xi对微博文本xj的影响.
此外,还需定义一个(l+u)×2的标签矩阵Y,yij表示微博文本yi拥有标签Lj的概率.若yi具有标签Lj,则yij=1; 否则,yij=0.
算法的具体过程[16]如下:
步骤1 初始化.
1)定义循环索引t,假设Yt是第t次迭代时的标签矩阵,令t的初始值为0.
2)假设YL和YU分别是矩阵Y的前l行和后u行,将Y0L 的值根据有标签样本数据的标签进行设置,Y0U 可以取任意值,但必须保证每行都是标准化的.
3)对概率转换矩阵进行行的规范化操作,得到矩阵(-overT),其中:
(-overT)ij=(Tij)/(∑k=1Tik).(4)
步骤2 将每个节点的标签信息根据概率转换矩阵传递给相邻节点,即
Yt+1=(-overT)Yt.(5)
步骤3 写回有标签节点的标签信息,即用Y0L 的值覆盖Yt+1L 的值.
步骤4 不断重复步骤2和步骤3,直到矩阵Y收敛.
步骤5 将无标签节点yi(l<i≤l+u)标注为矩阵Y中第i行的最大值对应的类别,设cj为节点yi的标签,则
cj=argmaxjYij.(6)
实验数据是以各种手机品牌为关键词从新浪微博上搜索到的关于手机评价的微博数据.表1所示的是实验数据的基本情况,包括广告与非广告、有标签和无标签数据的数量.
对收集到的数据进行预处理操作,包括使用NLPIR汉语分词系统进行分词,以及根据停用词表删除数据中不能表征文本内容的停用词.
SVM和NB是有监督的文本分类任务中常用的分类算法.为了更好地体现半监督的LPA在微博广告文本识别应用中的效果,本文中设置SVM和NB算法作为对比实验.对于SVM,本文中采用的是LIBSVM[17]工具; 对于NB,本文中使用其多项式模型进行分类.值得注意的是,随着深度学习的快速发展,越来越多的研究者开始使用NN来进行文本分类,所以本文中也和NN中最为常用的循环神经网络(recurrent neural network,RNN)进行对比.在具体实验中,本研究设置词嵌入表示向量大小为100,隐状态向量大小为100,信息丢失率(dropout)为0.15.
在实验中,本文中经验设定特征维数为6 000维,相似度阈值为0.16,并采用不同比例的样本大小来建立有标签的数据集,包括:1%,5%,10%,…,90%,95%,99%,同时将每一次得到的不同比例的有标签数据集作为SVM和NB算法的训练数据,剩余数据作为测试数据.表2所示的是在不同比例的有标签样本大小情况下4种算法进行微博广告文本识别的准确率的部分结果.从表2可以看出,对于任意比例的有标签数据集,LPA均获得了比SVM和NB算法更高的微博广告文本识别准确率.特别是,当有标签数据所占比例相对较小(≤25%)时,随着有标签样本数据数量增加,LPA的准确率不断提升,并且逐渐远远高于SVM和NB的准确率.当有标签样本数据的百分比从50%增加到95%时,随着有标签样本数量增加,SVM的准确率有所改善,但是LPA的准确率仍然显著高于SVM和NB分类器.同时,LPA和RNN相比,当标签数据较少时,LPA的性能更好,这主要是因为LPA更为有效地利用了未标注数据,而RNN仅能通过词向量预训练的方式来利用未标注数据; 而当标签数据增加时,两者的性能可比.需要说明的是,LPA和RNN两者可以互补:LPA利用未标注数据更充分,RNN的向量化表示方式可以有效缓解数据稀疏问题,因此,如何有效结合两者值得我们进一步探讨.
经过多次实验发现,特征维数和相似度阈值对LPA的分类准确率具有重要影响.因此,分别对特征维数和相似度阈值的不同取值的各种组合情况进行了实验,LPA的微博广告文本识别准确率见表3.
表3展示了LPA的微博广告文本识别准确率随相似度阈值改变的变化情况.根据表3可以发现,当特征维数固定时,LPA的微博广告文本识别准确率随着
相似度阈值的变化而变化.当相似度阈值较小时,LPA的准确率随着相似度阈值的增大而逐渐增大; 直到相似度阈值到达某一值时,算法的微博广告文本识别准确率达到最大值,此时的相似度阈值即为最优阈值; 当相似度阈值大于最优阈值时,随着相似度阈值的增大,算法的准确率反而会逐渐减小.此外,通过对比不同特征维数的情况可以发现,特征维数对最优相似度阈值有一定的影响,特征维数越小,最优阈值反而越大.
根据上述实验结果可以看出:对于微博广告文本识别问题,当有标签数据较少时,LPA能够获得远远高于有监督的SVM、NB和RNN算法的微博广告文本识别准确率.主要原因如下:基于图的半监督的LPA可以充分利用图模型来平滑无标签样本的标签信息.因此,在半监督的学习方法中,无标签样本的标签信息不仅由与其相邻的有标签样本决定,同时还由与其相邻的无标签样本决定.然而在有监督的学习方法中,无标签样本的标签信息完全取决于有标签样本.对于SVM而言,太少的有标签样本不足以揭示不同类别间的分类界限,同时算法又无法利用无标签样本来发现不同类型的结构信息,从而难以相对准确地学习出最优分割超平面; 对于NB而言,太少的有标签样本难以保证先验概率和类条件概率的准确性; 同样,对于RNN而言,有标签样本太少也会给NN模型参数学习带来困难,影响文本分类的准确性.基于以上原因,有标签样本不足会导致有监督的学习方法获得的微博广告文本识别效果不佳.
所以,基于图的半监督的LPA能够应用于微博广告文本识别,并在有标签样本不足时获得比有监督的SVM和NB算法更好的识别效果,而与现有RNN等NN模型相比两者具有互补性.
本文围绕微博广告文本识别问题,研究基于图的半监督的LPA在微博广告文本识别方面的应用,同时将有监督的SVM,NB和RNN算法作为对比,并对实验结果进行分析,从而证明在有标签样本较少的情况下,LPA能够取得比有监督算法更好的效果.LPA的主要原理在于标签的迭代传播,并在传播过程中始终保持有标签节点的标签信息不变,这确保了有标签节点的标签信息在整个标签传递过程中能够得到最充分的利用,因此,当存在模糊边界数据时,LPA能够获得更为精确的分类结果.
虽然LPA在文本分类上表现出很多优越的性能,但由于研究时间较短,算法目前仍然存在着一些不足,未来可以进行改进,具体如下:
1)该算法对数据的“纯净”度要求较高,对噪声数据相对比较敏感,抗干扰能力较差.然而在实际应用中,数据往往容易受到噪声干扰,通常难以获得绝对“纯净”的样本数据,因此可以向LPA中加入抗干扰技术,从而提高算法的鲁棒性.
2)该算法的相似度计算、迭代过程和判别概率等方面对算法的可适用性影响较大,因此可从以上角度出发,深入分析算法性能,完善算法结构,进而提高算法的执行效率和可扩展性,改善算法性能.
3)该算法的一大优势就是可以利用未标注数据,然而标注数据少导致的特征稀疏也在一定程度上影响算法性能,因此将LPA和RNN的向量化表示有效结合起来将是本研究未来工作的另外一个重点.