张新豪 陈知行
1(黄河科技学院现代教育技术中心 河南 郑州 450063)2(北京理工大学自动化学院 北京 100081)
在文本分类、信息检索或语言模型生成等文本处理应用中,词位置的表示是非常重要的。例如,n-Gram模型由于其简洁和高效而广受欢迎。n-Gram是一种基于统计语言模型的算法,其基本思想是将文本的内容按照字节进行大小为n的滑动窗口操作,形成长度为n的字节片段序列。每一个字节片段称为Gram,对所有Gram的出现频度进行统计,并按照事先设定好的阈值进行过滤,形成关键Gram列表,即这个文本的向量特征空间,列表中的每一种Gram就是一个特征向量维度。该模型基于马尔可夫假设,即假设在一段文本中,第n个词的出现只与前面n-1个词相关,与其他任何词都不相关。基于这样的假设,可以评估文本中每一个词出现的概率,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计n个词同时出现的次数得到,常用的有一元的Uni-Gram、二元的Bi-Gram和三元的Tri-Gram。具体来说,它对一个词建模是基于给定的先前n-1个词,即p(wi|wi-1,wi-2,…,wi-n+1),n越大,模型能够捕获的上下文就越长。与之相关的方法是围绕词建立对称窗口模型p(wi|wi+1,wi-1,wi+2,wi-2,…)[1]。
关于建模文档局部性的研究主要集中在n-Gram模型的变体上。文献[2]采用局部加权词袋(Locally Weighted Bag-of-Words,LWBOW)方法来扩展n-Gram,其在长度归一化文档上使用了核平滑,通过在一个文档的每个位置应用不同的权值并总计出靠近特定位置的词出现,扩展了局部依赖关系。该方法采用平滑核在概率单纯形中生成一条平滑曲线,该曲线代表文档的时间推进。LWBOW允许检查比n-Gram模型更大范围的依赖关系,还允许将词模式绑定到特定的文档位置。平滑核的带宽捕获估计偏差和估计方差之间的权衡。
文档模型如n-Gram和LWBOW存在固有的稀疏性,这是捕获大词汇序列中依赖关系的必然结果。依赖关系范围越大,估计依赖关系就越难,因为估计方差增大了。具体而言,n个连续词的可能组合数呈指数式增长,这使得每个组合的观测数极其稀疏,最终导致计算困难且误差较大。因此,在许多数据有限的情况下,n值较低的n-Gram模型的性能优于n值较高的n-Gram模型。
神经概率语言模型[3-4]试图解决文档模型存在的问题,其通过采用压缩参数空间的参数模型来捕获大词汇的大范围关系。由于这种模型估计的是压缩的参数向量,而不是呈指数式增长的n-Gram计数,因此可有效捕获词依赖关系。概率主题模型[5]和矩阵分解模型[6-7]估计词汇的压缩表示,通常称为潜在空间或主题。不同于神经概率语言模型,这两种模型通常是基于词袋表示或二元的Bi-Gram特征,限制了它们捕获顺序词依赖关系的潜力。文献[8]将稀疏主题编码(Sparse Topical Coding,STC)和概率主题模型进行了详细比较。STC是一种非概率的方法,被证明具有最先进的准确性以及相对较快的训练时间,不同于标准的矩阵分解方法如非负矩阵分解,STC完全采用稀疏约束。
文本分割和分解研究也集中在局部文档特征上。文献[9]采用分层主题模型引入了语义片段,不同于本文所关注的空间片段,这些研究侧重于语义片段,从而引出语义局部性概念。
时间主题模型[10-11]是基本潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)[12]的扩展,其对顺序词出现进行建模。这两种方法得到的主题因文档位置不同而有所变化。
本文定义了一个局部上下文的概念,其为一个给定词在文档中的位置的条件词概率,并采用一个平滑核来估计局部上下文,每个核带宽检查一个唯一的局部分辨率范围。由于模型中有大量的局部上下文,所以还采用了稀疏编码构想来压缩空间。
本文贡献如下:(1) 引入丰富的局部依赖关系,生成高度区分的特征;(2) 生成文档的稀疏和紧凑表示形式;(3) 利用模拟词的接近性生成局部连贯的主题。本文模型是分析文档主题流的有用工具。
本文模型与STC的不同之处在于两方面:(1) 采用局部上下文p(w|t),而不是单个词观测p(w),从而得到不同的损失函数;(2) 采用了一种新的基于贪婪坐标下降的更新规则,而不是采用路径坐标下降。本文模型也有别于基本的时间主题模型LDA,顺序转换是基于文档中特定的位置,例如在局部加权的词袋中,本文模型采用了从非参数统计数据中进行核平滑的思想。
大多数文档和主题建模研究都采用诸如一元的Uni-Gram或n-Gram等顺序特征来对文档进行建模,即将文档建模为词w与词位置t的联合分布p(w,t)进而模拟出一个词在文档中某个特定索引处出现的概率。尽管这种方法对文档序列的建模是有用的,但其不能模拟词的相对定位,而词与词位置之间的条件分布p(w|t)则可以对词的相对定位进行建模。
本文提出的局部上下文是指出现在一个特定文档位置附近的词的分布p(w|t),并用φ(t)来表示:
φ:N→R|V|
(1)
式中:|V|是词汇表的大小。
给定一个长度为L的文档x=[w1,w2,…,wL]和一个位置i,则可以使用一个平滑核k(i,j)来估计局部上下文φ(i),k(i,j)是一个在|i-j|中单调递减的实值归一化函数。直观地说,核定义了感兴趣的位置。
φ(i)=[φ1(i),φ2(i),…,φ|V|(i)]T
(2)
(3)
1.1.1k(i,j)的选择
平滑核k(i,j)=g(i-j)有几种标准的选择。我们采用高斯核,因为它是一个归一化高斯密度,但为了便于说明,采用下面的常数核(支持3个词):
(4)
这个核在窗口{wi-1,wi,wi+1}中测量一个词的存在,其不同于三元的Tri-Gram表示,因为忽略了窗口内的排序。非常数核允许强调靠近窗口中心的词,而认为较远的位置不重要。
1.1.2与n-Gram模型的比较
n-Gram模型及其变体与本文模型有根本的区别,因为n-Gram采用的是连续词的联合分布p(wi,…,wi-n+1),而不是词和它的位置之间的条件分布p(w|t)。当n-Gram模型的词汇量或窗口的大小(n)增加时,其事件空间的大小呈指数式增长。相比之下,本文模型的事件空间是不变的窗口大小(即核带宽),而且在词汇量大小上只是线性的。在实际中,当词汇量和n值都很大时,n-Gram模型的表现很差。
考虑一个文档的局部上下文袋Φ={φ(i)|i=1,2,…,L},这里L为文档的长度。由于直接估计局部上下文袋的统计值是很难的,故采用K码(或主题)词典中少数(稀疏)码的线性组合来近似每个φ(i),即:
φ(i)≈Dβ(i)D∈R|V|×K,β(i)∈RK
(5)
(6)
需要注意的是,词典可以跨多个文档共享,因此对应于不同的Φ(文档)的β是可比较的。
这里使用每个φ(i)和Dβ(i)之间的距离平方和来度量模型的近似质量,并在β(i)上加上一个L1罚值以加强稀疏性。这种做法相当于在高斯分布下利用与L1罚值相对应的Laplace先验p(β)∝e-λ|β|来最大化模型的罚值似然。这样,就可得到下列学习词典D和β参数的目标函数:
(7)
(8)
假设一个特定文档的主题赋值参数是正态分布β(i)|z~N(z,ρ-1I),并认为均值z是一个特定于文档的参数或者一个文档表示形式,得到目标函数:
(9)
(10)
上述方程假设单个文档,在多个文档的情况下,我们对它们进行求和,这时,D是跨文档共享的,β和z是特定于文档的。
1.2.1与概率主题模型的比较
本文所提出的局部上下文稀疏编码方法构成一个图形模型,如图1所示。图中z表示一个文档表示形式;φ表示长度为L的文档中的一个局部上下文;D为共享词典(主题);β是采用D的对应局部上下文的潜在表示形式。
图1 局部上下文稀疏编码模型的结构
在本文模型中的归一化可能与生成数据的真实分布不一致,这是由于参数位于一个受限域中,即:
(1) 词(或一个局部上下文)的局部概率服从以Dβ为中心的分布,其中D包含跨多个文档共享的主题,β包含相应的主题赋值。例如,假设是高斯分布,则有:
φ=p(w|t)~N(Dβ,σφI)
(11)
(2) 与一个特定文档相对应的主题赋值参数{β(i)|i=1,2,…,L}服从以z为中心的正态分布且具有Laplace先验,即:
(12)
1.2.2模型求解
本文模型的训练过程类似于标准稀疏编码模型的训练过程。假设有多个文档X=[x(1),x(2),…,x(N)],则可以最小化式(9)的累计损失函数:
(13)
且在共享词典D上满足下列约束条件:
(14)
这是一个双凸问题,可以迭代求解β、z和D。此外,为了更好地解释,还对β加上非负性约束条件。
(1) 求解β和z。通过对β每个维数的反复优化(坐标下降),这种最小绝对收缩与选择算子(Least Absolute Shrinkage and Selection Operator,LASSO)问题就可以在非负约束条件下以封闭的形式得到唯一的解。具体地,如果采用简记β(n)(i)→β、z(n)→z、φ(n)(i)→φ,则最小化β(n)(i)的单个分量得到如下结果:
(15)
相应的最优解为:
(16)
如果最小化z(n)与β(n)(1),β(n)(2),…,β(n)(L(n))之间的L2距离,则相应的文档表示形式z(n)也可以以封闭形式求解得到:
(17)
一般会按顺序j=1,2,…,K迭代β的维数,直至收敛,这被称为路径坐标下降,就像STC训练中所进行的那样。然而,贪婪坐标下降[14]是通过选择减少损失最大(Δl)的维度,一次更新一个维度,这就使得训练速度比具有相同精度水平的路径坐标下降法更快,故本文采用下降更快的贪婪坐标下降法。
算法1求解β和z的贪婪坐标下降法实现伪代码
1.Input:x(1),x(2),…,x(N)的局部上下文和D
2.for全部x∈{x(1),x(2),…,x(N)}do
//并行执行
3.Φ=[φ(1),φ(2),…,φ(L)]
//在x中的
4. [b(1),b(2),…,b(L)]=DTΦ
7.zt+1=zt
8.for全部i∈{1,2,…,L(n)}do
//并行执行
//等待其他完成更新z
15.endfor
16.endwhile
17.endfor
18.Output:全部局部上下文的z(1),z(2)…,z(N)和全部β
(18)
(19)
具体地,采用基于上述梯度的步骤,然后使用单纯形投影Π将其投影回单纯形,即:
Dt+1=Π(Dt-ηt▽)
(20)
现采用具有2种不同类型词局部性即(a,b)与(a,c)的4个文档的综合实例来说明本文算法模型的实现原理,即:
x1=[a,b,a,b,a,b,c,c,c],x2=[b,a,b,a,b,a,c,c,c]
x3=[a,c,a,c,a,c,b,b,b],x4=[c,a,c,a,c,a,b,b,b]
由于a和b在x1和x2中一起出现,a和c在x3和x4中一起出现,因此得到x1和x2的主题与x3和x4的主题是不同的。
词袋表示形式是主题模型的共同特征,它为全部文档生成完全相同的表示形式[3,3,3]或[0.33,0.33,0.33](规一化)。相比之下,二元的Bi-Gram模型能区分全部4个文档,尽管它同时严格地分离了两个局部相似对([a,b]和[b,a])。虽然严格的分离可能是一个更好的选择,但最终将导致特征空间的激增,特别是在试图解释大范围依赖关系时。
与n-Gram模型不同,本文方法很容易捕获与2种不同类型局部性相对应的2个主题。图2为本文方法在一个单纯形中得到的结果,使用了一个大小为K=2(主题数目)的词典和一个带宽为0.7的高斯平滑核。平滑核的有效宽度约为5个词。图中每个角表示对应字符之一的概率,填充形状(Dz)表示单纯形上的文档表示形式,未填充形状(φ)表示每个文档的局部上下文,填充方块为2个主题D1、D2,{Dz1,Dz2}和{Dz3,Dz4}之间是明显分离的。
图2 本文方法在单纯形中对于综合实例的结果
可以看出:2个主题D1和D2捕获2种不同类型的局部性,D1位于a和b之间,表示a和b的混合主题,D2位于a和c之间;单纯形上的文档表示形式(Dz)形成2个单独的组,第一组由Dz1和Dz2构成,第二组由Dz3和Dz4构成。文档表示形式的位置是根据它的局部词分布p(w|t)来区分文档的,而n-Gram模型不能实现这一点。
与传统的主题模型的主题相比,本文模型的主题反映了词的局部性。LDA无法捕捉到2.1节的综合实例中任何有意义的主题,因为全部4个文档都有相同的均匀词分布,与LDA不同,本文模型获得了与2种不同类型的局部性相对应的2个主题。此外,由于每个局部上下文都包含它的邻域信息,故本文模型最终形成了局部连贯的主题,这在实际应用中是有用的,因为大多数文本一般都有局部连贯的上下文。
将本文模型与LDA进行比较,实验数据来自维基百科(英文版)的一篇文章《Paris》[15],因为该文章包含了共同的知识,且结构良好。
图3为通过LDA和本文模型在《Paris》每个位置上的主题赋值(2种模型方法的K=15)。文档进程从左到右进行,每个位置对应一个词,最左边的边表示文档的开始,最右边的边表示结束,图下面的数字表示主题ID。从图3(上)可见,采用LDA模型方法没有显示出任何局部连贯结构,而是被分割成零碎的碎片;从图3(下)可见,采用本文模型,主题赋值是局部连贯的,而且显示出了文档的语义流。表1给出了每个主题的详细信息,它从城市介绍开始:一般信息(表1中的主题1)及其声誉(主题2),然后是巴黎的几个方面:历史(主题3,4)、展览会(主题5)、艺术(主题6)和教育(主题7)。另外,每个主题最前面的词的确是每个局部主题的高度陈述。可见,本文模型得到的主题比LDA技术得到的主题有更多的局部分布。
图3 通过LDA和本文模型方法的主题赋值比较
表1 《Paris》上采用本文模型选定主题最前面的词
为对本文模型在分类中生成的特征进行研究,采用支持向量机(Support Vector Machine,SVM)。SVM具有不同的特征集,具体来说,就是采用ν-SVM,其ν值是采用交叉验证从10个候选值中挑选出来的。
分类任务是标准的20个新闻组分类数据,采用正式的训练测试分割和标准的预处理:用小写字体书写、剥离非英文字符、标记句子和词,并删除稀有的特征和停止词。预处理得到18 845个文档、21个类别和大小为|V|=6 329的词汇表。为了检验参数的影响,处理数据集的一个子集(5个类别,comp.*),最后评价了数据集子集和整个数据集的总体性能。
2.3.1主题数量的影响
图4为对于不同模型和词典大小(从50~8 000)得到的测试集分类精度与主题数量K之间的关系曲线。在n-Gram模型下,从训练集中选择了最频繁的K个特征,对于LDA、STC和本文模型,将词典的大小指定为参数。本文模型方法的带宽固定为h=1,覆盖约7个词(±3h),并为剩下的参数尝试了一组候选值,并选择了性能最好的值,例如对于STC,λ={10-4,10-2,10-1,0.5,1}。
图4 不同模型和词典大小的测试集分类精度与主题数量K之间的关系比较
可以看见,本文模型的性能接近于小词典中的一元Uni-Gram,但能够在一个足够大的词典中获得更好的性能,即当K>|V|(K<|V|时,一元的Uni-Gram模型达到最大性能)时,本文模型的性能仍有提高;STC模型的性能对于相对较小的词典来说表现良好,但其最大性能不如其他模型好。
Bi-Gram、Tri-Gram和4-Gram模型即使对于大词典性能也较差,这是因为特征数量迅速增加(Bi-Gram生成23|V|个特征,Tri-Gram生成35|V|个特征,4-Gram生成37|V|个特征),从而将大大降低每个特征的观测次数。相反,尽管本文模型覆盖了大约7个相邻的词,但其似乎并没有受到稀疏性的影响,且表现出较好的性能。
2.3.2带宽的影响
图5为在其他参数不变时,本文模型对于不同带宽的测试集分类精度。可见,在h=1时获得了最好的性能,采用较窄的带宽(如h=0.5)会导致收敛速度更快,但性能变差,这是由于缺乏局部特征的可变性所引起;采用更宽的带宽(如h=4)减缓了收敛速度,也降低了性能,这是由于包含了该任务不必要的局部依赖关系。这种不同带宽的不同结果验证了局部性特征在分类性能上存在显著的差异。
图5 不同平滑带宽时的测试集分类精度
2.3.3总体性能比较
将本文模型的总体性能与其他模型进行比较,包括局部依赖关系模型n-Gram模型,非监督主题模型LDA和STC以及性能较好的监督主题模型[8]。
表2为20个新闻组数据集的5个类别(comp.*)和全部20个类别(*)对于不同模型的测试集分类精度的比较结果。可见,本文模型在子集和全部集合上都优于其他模型;n-Gram模型的性能增益表明,对大范围依赖关系的建模在分类中是有益的;与监督主题模型相比,本文模型的性能更好,因为监督主题模型直接优化其判别性能,而本文模型是一种纯粹的无监督编码方法。
表2 不同种模型的测试集分类精度比较 %
本文提出了一种用于局部词分布的非概率主题模型,采用核平滑来捕获序列信息,为处理大范围的局部信息提供了一种灵活有效的方法。提出的稀疏编码公式得到了有效的训练过程和稀疏表示形式,这种稀疏表示形式是局部连贯的,而且具有较强的识别能力。本文模型能够高效地发现主题和表示形式,对于发现局部主题和文档语义流以及构造预测模型都是有用的。