陌路茶色/

Doc2Cube: Automated Document Allocation to Text Cube via Dimension-Aware Joint Embedding

label:指的是维度标签,事先定义好的
term:指的是document对应维度的值,也就是文档中的短语

ABSTRACT

Data cube在结构数据集的多维度分析上是一个基石建筑,在文本语料上使用cube结构进行多维分析是非常可行的,比如在healthcare,business intelligence,social media analysis。构造text cube的瓶颈是自动将上百万的文档放到正确的cell中,以便于进行高质量的分析,人工分配或者依赖大量有标签的数据会非常昂贵。我们提出Doc2Cube,是一种从给定语料中使用无监督的方式构造text cube的方法,最初仅需要提供每一个维度对应的标签名(比如location维度对应的USA,China),而不需要任何有标签的数据。Doc2Cube利用标签名作为弱监督信号,反复执行labels,terms,documents的联合嵌入来发现他们的语义相似性,去生成区别于cube构造的联合嵌入,Doc2Cube通过选择性的关注每一个维度具有高度标签指示的terms来学习dimension-tailored的文档表示。Doc2Cube通过传播信息从标签名到其他术语来缓解标签的稀疏性,并丰富标签术语集。我们在一个真实的新闻语料上实验论证Doc2Cube明显优于存在的方法。

INTRODUCTION

Text cube construction:从文本语料中自动构造text cube仍旧被很大程度的忽视,给定一个语料集$D$和一个定义好的cube schema $C$,这个任务的目标是分配$D$中的document到$C$中正确的cell里,下图展示了该过程在新闻语料上的例子:
屏幕快照 2019-10-16 下午9.49.37.png
$C$是一个先定义好的有topic,location,time三个维度的cube schema,Text cube construction任务是通过沿着每个维度的一个标签来最大匹配文档内容,以分配给定语料中每一篇新闻文章到正确的cube cell中。

Text cube construction是一个多维度分类问题,类似于文档分类,它有两个独一无二的挑战以至于现存在的文档分类的方法无法被应用:
• 第一个挑战是缺乏标注数据
• 第二个挑战是从不同的维度中提取有区分的特征,存在的文档分类方法通常会提取句法特征,或者学习文档单元(words,sentences,documents)的分布表示来导出文档表示,不管什么方法,每一个文档都被表示为一个固定的特征向量。然而,在Text cube construction中,不同维度的分类任务通常需要相同文档的不同信息,如上图所示,location维度可能更加偏爱位置术语,比如“Chicago”和“China”作为特征,而topic维度可能更加偏爱语义叙事,比如“super bowl” 和“economy”作为特征。而存在的文本分类方法导出的是固定文档表示,且与维度无关,结果在这个表示中可能过分强调不相关的术语,这个经常会损害分类的表现。

Doc2Cube首先构建tripartite graph去加强labels,terms,documents之间的相关性,然后反复完善图结构,并生成labels,terms,documents的质量嵌入,以发现他们类型之间的相似性。在embedding迭代过程中,Doc2Cube 使用两个新颖的组件以获得有区别的联合嵌入:document focalization 和 label expansion。
屏幕快照 2019-10-16 下午10.27.26.png

document focalization组件通过强调有区分的term逐渐稀疏term-document 子图。如上图所示,初始化时将文档和在该文档中出现的全部术语进行连接,这样文档嵌入将会被过度表示,因为有很多与当前维度不相关的术语被编码进来,去解决这个问题,Doc2Cube为每个cube维度迭代评估term的区分性,注重有区分的术语来生成定制的文档嵌入表示,因此,一个文档可以有多个嵌入表示,通过凸显真正有区分的信息来为cube的每一个维度量身定制。

label expansion组件迭代压缩label-term子图来解决label稀疏的问题,如上图所示,每一个label在开始时仅仅和其surface name相连(图中最左边,每个label仅仅和该label名字相同的term相连),因此初始化的label embedding是欠表达的(under-represented),因为很多其他相关的terms被忽视了。去解决这个问题,Doc2Cube沿着不同维度计算label和term之间的相关性,并将label和正相关的term进行连接。通过这种方式,信息从label名传播到其他语义相关的term,缓解了label稀疏的问题。

RELATED WORK

从text cube analysis, text categorization, and embedding learning这三个方面来分析,这里主要分析一下embedding learning。

现有的学习words,sentences,documents的表示可以被广泛的使用在分类任务上作为特征向量,除了text embedding外,另外一条和我们相似的研究线是graph embedding,大部分的方法被提出去学习图中的同构和异构节点的向量表示,但是我们的方法和这些方法有明显的区别,这些方法为文档或图中的节点生成静态向量表示,像这样的嵌入表示是维度无关的,并非对所有cube维度都是最佳的,而我们的模型考虑到不同的维度有不同的特征,我们为每一个维度获取一个定制的文档向量。【这里面提到了很多embedding的论文,有时间细看一下】

PRELIMINARIES

Problem Definition

给定语料$D$,$D$的text cube是一个多维度的数据结构,这些多维度揭示了语料$D$的重要方面(比如topic,location,time),定义cube和cell:
屏幕快照 2019-10-16 下午11.13.47.png
屏幕快照 2019-10-16 下午11.14.15.png
定义问题 Text cube construction:
屏幕快照 2019-10-16 下午11.21.06.png

An Overview of Our Method

Doc2Cube初始化构建一个tripartite label-term-document图去编码不同维度labels, terms, documents之间的关系,并嵌入它们到一个相同的潜在空间中,当初始化embedding编码种子信息和documents中terms的共现时,会遭受两个缺点:第一个是document embedding会over-represented,第二个缺点是label embedding会under-represented。解决这两个问题,使用document focalization和label expansion(前面都有提到)。

GRAPH-BASED JOINT EMBEDDING

Label-Term-Document Graph

建模labels, terms , documents之间的关系,我们构造Label-Term-Document (L-T-D)相关图,因为不同的维度有不同的label空间,我们为每一个维度单独构建一个L-T-D图,如本文第二张图所示,对于每一个cube维度,有三个不同的节点类型:labels, terms , documents。初始化图:label names和terms的种子信息,terms和documents的共现信息。异构图定义如下:
屏幕快照 2019-10-16 下午11.44.10.png

Graph Embedding

我们学习初始化向量表示通过embedding图中所有节点到一个d维度的向量空间,其中d是一个明确的嵌入空间维度,比如d=200。
我们设计图embedding是为了保留label-term 边和term-document边的信息,基于这个目的,我们定义给定label $j$观测到term $i$的概率如下:
屏幕快照 2019-10-16 下午11.52.49.png
屏幕快照 2019-10-16 下午11.53.18.png
vocabulary比较大,因此上述目标函数优化成本很高,为了有效学习联合嵌入,我们使用SGD和negative sampling来优化公式(3)。

THE OVERALL ALGORITHM

合并了一下,首先介绍两个term相关的分数,然后讲如何使用这两个分数来更新原始embedding矩阵以解决Document Focalization和Label Expansion这两个问题,最后讲迭代更新embedding的算法。

label-focal score $f(t,l)$

$f(t,l)$值越大,term $t$越大概率属于label $l$
先给出公式如下:
屏幕快照 2019-10-18 上午11.26.44.png
屏幕快照 2019-10-18 上午11.28.35.png
屏幕快照 2019-10-18 上午11.28.42.png

在公式(4)中$U^D$表示的是document embedding矩阵,维度为$|D| \times d$,$U^L$表示的是label embedding矩阵,维度为$|L| \times d$,这样$R^{(D\ L)}$的维度就为$|D| \times |L|$,表示的是document embedding和label embedding之间的相关性。公式(5)中$A^{(T \ L)}$表示的是节点term和节点label之间的邻接矩阵(有边为1,无边为0),维度为$|T| \times |L|$,则$R^{(T\ L)}$的维度为$|T| \times |L|$。这个$R^{(T\ L)}$就是我们要求解的$f(t,l)$值,如公式(6)所示。

公式(6)中$R^{(T\ L)}_{ij}$表示的是所有包含term i的document embedding与label j的embedding之间相似度的和,document k的embedding和label j的embedding之间的相似度越高,说明document k和label j越相似,该分数定义认为如果document k和label j相似,说明document k中包含的term也与label j相似,这里存在一个问题,document k中每个term的权重,直观理解是term权重大,则该term和document越相关,该分数所认为的也更可靠

dimension-focal score $f(t_i,L)$

$f(t_i,L)$越高,term $t_i$对标签越有用,基于term $t_i$在$L$个label下的分布概率。
公式如下:
屏幕快照 2019-10-18 下午2.56.46.png

这个式子乍一看以为少了一个负号,而且按信息熵也说不通,仔细看一下log中多了一个$|L|$,分解为如下:
屏幕快照 2019-10-18 下午4.28.39.png

看最后一项红色部分,即为信息熵,越混乱,其值越大,按照信息熵的理解,该结果是term $t_i$在所有label的分布,也就是说如果term $t_i$对应的某一个$R^{(T\ L)}_{ij}$非常大,而其它的非常小,那么对应的信息熵会很小,对应着$f(t_i,L)$的值相应会大,就说明该term是有区分度的(有用的),因为信息熵越大,越混乱,term对label而言越没区分度。【至于为什么信息熵要除以类别数的对数,是为了归一化,因为信息熵的最大值就是类别数的对数】
个人觉得上式按信息熵的理解还是有些不妥,对于$R^{(T\ L)}_{ij}$应该要做归一化的,如下应该更合适也更容易理解:
屏幕快照 2019-10-18 下午4.44.58.png

如果按照term和term之间的比较,也就是说看中term的整体重要性(指标$R^{(T\ L)}_i$),可以如下写:
屏幕快照 2019-10-18 下午5.37.01.png

Document Focalization

Document Focalization需要解决的是document embedding over-represented 的问题,即有很多和该维度(label)不相关的term被编码进来,要解决这个问题,对document embedding矩阵$U^D$做如下更新:
屏幕快照 2019-10-18 下午3.28.14.png

$U^T$表示的是term embedding矩阵,其中$\circ $为hadamard乘积,即两个矩阵相同的位置对应相乘,第二个矩阵中重复了$|D|$次$f_L$,公式(8)中括号内的式子表示的是每一篇文档中每个term的区分度分数值,然后和term embedding矩阵相乘,直观理解就是将document中的term对应的embedding和其权重相乘求和作为document的embedding表示。

注意:前面提到了说每一个维度构建一个图,每一个维度有不同的label集,但是不同的维度对应的term集是相同的,通过上述方法我们对不同的维度生成了不同term权重,那么不同的维度下的document embedding就会受term权重的不同而不同,这就是论文中提到的dimension-aware

Label Expansion

Label Expansion解决的是label embedding的under-represented问题,考虑两个因素,term的label-focal score和popularity,论文中说有些term虽然label-focal score很高,但是在语料中出现的次数比较少,在embedding时会遭受没有充足训练集的问题,因此应该去掉低频词,如下所示:
屏幕快照 2019-10-18 下午6.08.42.png

df为document中term的频次,η为定义好的参数。在图中将$e(t_i,l_j)$值大于η的term $t_i$和对应的label $l_j$的边连接起来。然后根据邻接矩阵$A^{(L \ T)}$来更新label embedding:
屏幕快照 2019-10-18 下午6.12.40.png

Algorithm: The overall procedure of Doc2Cube

接下来就是迭代更新这些参数了,如下所示:
屏幕快照 2019-10-18 下午6.21.42.png

第一行表示构建了$L_n$个L-T-D图,第3行随机初始化三个embedding矩阵,第4-8行是迭代M次使用负采样更新三个embedding矩阵,第9行通过论文中的方法来更新$U^D,U^L$矩阵(Algorithm 2),第10-11行找出每篇文档(document)中和其最相似的标签(label)。
屏幕快照 2019-10-18 下午6.30.52.png

Algorithm 2中迭代T次更新$U^D,U^L$矩阵,由于$U^L$被更新导致公式(4)发生变化,这个变化会影响$f(t_i,l_j)$和$f(t_i,L)$的改变,而这两个参数又分别影响$U^D,U^L$矩阵。整个过程只有term embedding没有发生变化,这个是事先生成好的。

思考一下,Algorithm 2是为了寻找维度相关的document embedding,同时也得到了比较好的label embedding表示,这样我们就有该维度下的document embedding,label embedding,以及term embedding(事先生成的),而且是在一个向量空间中,那我们就能得到该维度下document对应的label,比如文中第一张图所示,Location维度中 ,ID为1的document的label可以被本论文中的算法预测为USA(理论上),Algorithm 1中的第10-11行,继续升入,因为我们有该维度下每个term和label的区分度分数($f(t_i,l_j)$),那么将其对应到每篇文档中取最高的那个term是不是能够发现ID为1的document的label对应的term是Chicago呢???

思考

。。。

留下一条评论

暂无评论