TripleRank: An unsupervised keyphrase extraction algorithm
TripleRank简介
Triple是2021年吉林大学提出的一种无监督关键词抽取算法,在四个数据集上实现了SOTA。其实也就是模型集成。(EmbedRank、TopicRank、PositionRank)
作者使用了关键词语义多样性、关键词覆盖率和位置信息来构建TripleRank。通过它们三者的混合得分得出最终的分数。不像传统的图迭代算法,TripleRank不需要迭代。
本文的主要贡献:
- 我们解决了一个常见问题,其中几个提取的短语包含相同的高分单词。语意重复问题
- 提出并分析了解决该问题的两个概念:关键词覆盖和关键词语义多样性的原因和意义。
- 我们提出了TripleRank,一种基于关键词覆盖率、关键词语义多样性和位置信息的方法,与最新模型相比,该方法具有更好的精度。
- 我们提出了一个计算效率高的模型,该模型是部分预先训练的,在主体中没有典型的迭代过程。
TripleRank实现
关键词覆盖分数评估提取的关键词可以表示文档内容的广度。我们发现,候选词和文档其他词的相似性对关键词覆盖率的评分有效,因为相似性越高,代表越好。为了去衡量这种相似性,我们将词嵌入到字向量,该向量拥有通常关联的相邻单词的语义信息。因此,我们使用字向量来衡量候选词和其他词的接近程度,从而评估其覆盖程度。关键词语义多样性得分通过涉及更多主题来提高关键词的准确性,以避免短语涉及排名表中相同的意义加权词的情况。我们使用主题模型LDA,来评估关键词的语义多样性。尽管针对关键词语义多样性有充分可行的主题模型和解决方案,但它们相对更复杂。LDA模型是一个研究得很好、适用性很广的模型,可以最好地提高我们模型的性能。关键词语义得分是根据候选人所属主题的概率来计算的。利用LDA输出的主题分布,我们可以提高主题在提取结果中的影响,以避免语义相似的短语。位置信息得分由位置顺序获得,位置顺序受PositionRank的启发;然而,我们没有使用PageRank过程,只保留了位置权重。最后的分数是通过合并三个特征的归一化分数来计算的。
关键词覆盖
使用word2vec模型将字转化成向量的形式。word2vec存在两个方式:Continue bag-of-words(CBOW)和skip-gram。CBOW通过上下文来预测中间词,在小型数据集效果更好;skip-gram使用中间词来预测上下文,在大型数据集表现更好。
当输入一系列的词
w
1
,
w
2
,
.
.
.
,
w
t
w_1,w_2,...,w_t
w1,w2,...,wt被输入到skip-gram模型进行训练,目的是最大化平均概率:
1
T
∑
t
=
t
−
c
≤
j
≤
c
,
j
≠
0
T
∑
l
o
g
p
(
w
t
+
j
∣
w
t
)
\frac{1}{T} \sum _{t=t-c \le j \le c,j \ne 0} ^T \sum log p(w_{t+j}|w_t)
T1t=t−c≤j≤c,j=0∑T∑logp(wt+j∣wt)
单词的后验分布通过输出层上的softmax函数进行输出:
p
(
w
o
∣
w
1
)
=
e
x
p
(
v
w
0
′
T
v
w
1
)
∑
w
=
1
W
e
x
p
(
v
w
′
T
v
w
1
)
p(w_o|w_1)=\frac{exp(v_{w0}'Tv_{w1})}{\sum_{w=1}^W exp(v_{w}'Tv_{w1})}
p(wo∣w1)=∑w=1Wexp(vw′Tvw1)exp(vw0′Tvw1)
通过共享相同的权重矩阵面板,在输出层上计算出
C
C
C个后验分布,或者是
C
C
C个上下文文字的预测。为了最大化公式(1)和(2),最大化
l
o
g
p
(
w
w
+
j
∣
w
t
)
log p(w_{w+j}|w_t)
logp(ww+j∣wt)的表示。然而,skip-gram通过softmax公式要求更多计算资源来计算
d
e
l
t
a
s
l
o
g
p
(
w
0
∣
w
1
)
deltas logp(w_0|w_1)
deltaslogp(w0∣w1)。
使用余弦相似度来计算所有关键词对的相似度:
C
o
v
e
r
a
g
e
(
w
⃗
)
=
∑
j
=
1
v
S
i
m
i
l
a
r
i
t
y
(
w
⃗
i
,
w
⃗
j
¬
i
)
Coverage(\vec w)=\sum_{j=1}^v Similarity(\vec w_i,\vec w_{j \neg i})
Coverage(w)=j=1∑vSimilarity(wi,wj¬i)
C
o
v
e
r
a
g
e
(
)
Coverage()
Coverage()是这个覆盖得分,
S
i
m
i
l
a
r
i
t
y
(
)
Similarity()
Similarity()是余弦相似度来计算两个字向量,
w
⃗
j
¬
i
\vec w_{j \neg i}
wj¬i是文档中除了
w
i
w_i
wi的其他字向量。
位置信息
位置信息是一个重要信息,最初被提出从PositionRank。PositionRank主要分成以下三个步骤:
- 字水平的图的构建。
- 基于位置的PageRank算法。
- 候选词的构成。
定义以下信息。
P
P
P是文档
d
d
d中单词出现的字数总和。位置信息的得分为计算如下:让文档
d
d
d成为包含单词
w
i
w_i
wi的关键字提取文档,则
p
w
i
p_{w_i}
pwi的权重值被计算按照出现位置的倒数累计和:
p
w
i
=
1
p
o
s
i
t
i
o
n
1
+
1
p
o
s
i
t
i
o
n
2
+
.
.
.
+
1
p
o
s
i
t
i
o
n
α
p_{w_i}=\frac{1}{position \ 1}+\frac{1}{position \ 2 }+...+\frac{1}{position\ \alpha}
pwi=position 11+position 21+...+position α1
p
o
s
i
t
i
o
n
α
position \ \alpha
position α是词
w
i
w_i
wi是
α
t
h
\alpha_{th}
αth出现的位置。
最终每个词的位置得分计算如下:
P
o
s
i
t
i
o
n
(
w
i
)
=
p
w
i
Position(w_i)=p_{w_i}
Position(wi)=pwi
关键词语义多样性
关键词多样性有LDA进行评估,LDA是一种用于离散数据集合的生成概率模型,采用三级贝叶斯模型。LDA模型可以生成文档和单词的主题分布。LDA模型在TripeRank中是用于描述三个重要特征之一,关键字语义多样性。作者的目标是最大限制地提高主题多样性,并对提取结果中消除具有相似语义的不同形式的短语。因此,单词和短语的主题概率被打分,并在最终得分中排名。
LDA模型通过模板、主题模板、文档模板和但此模板的采样过程来生成单词。假设语料库
W
W
W包括
V
V
V个单词、
M
M
M个带有
N
m
N_m
Nm单词的文档和
K
K
K个主题。上述过程可用Dirichlet多项式单图模型描述,该模型基于以下理论:
P
o
s
t
e
r
i
o
r
=
l
i
k
e
l
i
h
o
o
d
⋅
p
r
i
o
r
e
v
i
d
e
n
c
e
Posterior=\frac{likelihood \cdot prior}{evidence}
Posterior=evidencelikelihood⋅prior
α
⃗
\vec \alpha
α和
β
⃗
\vec \beta
β是超参数,
θ
⃗
\vec \theta
θ是文档
m
m
m的主题混合比例,
φ
⃗
k
\vec \varphi _k
φk是主题
k
k
k的混合组成部分,
z
m
n
z_{mn}
zmn是文档
m
m
m中的第
n
n
n个单词选择主题的混合指示符,
w
m
n
w_{mn}
wmn是文档
m
m
m中的第
n
n
n个单词的术语指示符。
网络是由两个Dirichlet多项式单图模型构成的生成过程。:
α
⃗
→
θ
⃗
∼
D
i
r
(
α
⃗
)
→
M
u
l
t
(
θ
⃗
M
)
\vec \alpha \to \vec \theta \sim Dir(\vec \alpha) \to Mult(\vec \theta_M)
α→θ∼Dir(α)→Mult(θM)
β ⃗ → φ ⃗ K → D i r ( β ⃗ ) → M u l t ( φ Z ⃗ m n ) \vec \beta \to \vec \varphi_K \to Dir(\vec \beta) \to Mult(\varphi_{\vec Z_{mn}}) β→φK→Dir(β)→Mult(φZmn)
→
\to
→表示采样处理。联合分布可以考虑因素。吉布斯采样是马尔可夫蒙特卡洛模拟的一个特例,它被用作LDA中近似推理的一种方法。
p
(
z
i
=
k
∣
z
¬
i
,
w
)
∞
n
m
,
¬
i
(
k
)
+
α
k
∑
k
=
1
K
(
n
m
,
¬
i
(
k
)
+
α
k
)
⋅
n
k
,
¬
i
(
t
)
+
α
t
∑
k
=
1
K
(
n
k
,
¬
i
(
t
)
+
α
t
)
p(z_i=k|z \neg i,w) \infty \frac{n_{m,\neg i}^{(k)}+\alpha_k}{\sum_{k=1}^K(n_{m,\neg i}^{(k)}+\alpha_k) } \cdot \frac{n_{k,\neg i}^{(t)}+\alpha_t}{\sum_{k=1}^K(n_{k,\neg i}^{(t)}+\alpha_t) }
p(zi=k∣z¬i,w)∞∑k=1K(nm,¬i(k)+αk)nm,¬i(k)+αk⋅∑k=1K(nk,¬i(t)+αt)nk,¬i(t)+αt
i
=
(
m
,
n
)
i=(m,n)
i=(m,n)对应文档
m
m
m的第
i
i
i个词,
t
t
t是
w
m
n
w_{mn}
wmn的术语,
n
m
(
k
)
n_m^{(k)}
nm(k)和
n
k
(
t
)
n_k^{(t)}
nk(t)是计数统计。
需并联的过程很短暂。我们随机将主题提示符 z z z随机分配给语料库的每个单词 w w w。随后,我们使用公式(10)对主题进行采样,知道吉布斯收敛。主题词共现矩阵是LDA模型的结果。输出是单词词典和主题概率分布。单词的最高概率主题被视为这个单词的主题。
关键词语义多样性的得分是候选词的可能性:
D
i
v
e
r
s
i
t
y
(
w
i
)
=
p
(
z
i
∣
w
i
)
Diversity(w_i)=p(z_i|w_i)
Diversity(wi)=p(zi∣wi)
其中
w
i
w_i
wi和
z
i
z_i
zi分别代表候选主题和
w
i
w_i
wi所属主题。
排名机制
合并三个特征得分,针对覆盖度和位置信息,使用归一化操作:
C
i
=
C
o
v
e
r
a
g
e
(
w
i
)
∑
i
=
1
v
C
o
v
e
r
a
g
e
(
w
i
)
C_i=\frac{Coverage(w_i)}{\sum_{i=1}^vCoverage(w_i)}
Ci=∑i=1vCoverage(wi)Coverage(wi)
P i = P o s i t i o n ( w i ) ∑ i = 1 v P o s i t i o n ( w i ) P_i=\frac{Position(w_i)}{\sum_{i=1}^v Position(w_i)} Pi=∑i=1vPosition(wi)Position(wi)
w i w_i wi是关键词, C i C_i Ci是归一化的关键词覆盖度得分, v v v是候选词的数量, P i P_i Pi是归一化的位置得分。由于关键词的语义多样性已经归一化处理,所以不需要再次归一化。
结合策略被分成两个部分:
- 关键词语义多样性得分和关键词覆盖率得分之间的加权和。
- 使用1中的结果和位置得分之间进行加权求和。
两者的权重求和如下式所示:
D
i
=
(
0.3
⋅
C
i
+
0.7
⋅
D
i
v
e
r
s
i
t
y
(
w
i
)
)
⋅
N
z
i
v
∑
i
=
1
v
(
0.3
⋅
C
i
+
0.7
⋅
D
i
v
e
r
s
i
t
y
(
w
i
)
)
⋅
N
z
i
v
D_i=\frac{(0.3 \cdot C_i+0.7 \cdot Diversity(w_i))\cdot \frac{N_{z_i}}{v}}{\sum_{i=1}^v (0.3 \cdot C_i+0.7 \cdot Diversity(w_i))\cdot \frac{N_{z_i}}{v}}
Di=∑i=1v(0.3⋅Ci+0.7⋅Diversity(wi))⋅vNzi(0.3⋅Ci+0.7⋅Diversity(wi))⋅vNzi
N
z
i
N_{z_i}
Nzi在相同主题下词的数量,
v
v
v是候选词数。
D
i
D_i
Di是关键词覆盖度和语义多样性的合并得分。
最终再结合位置信息,按照以下公式进行加权得到最后的得分:
S
i
=
0.16
⋅
D
i
⋅
P
i
0.8
⋅
D
i
+
0.2
⋅
P
i
S_i=\frac{0.16 \cdot D_i \cdot P_i}{0.8 \cdot D_i +0.2 \cdot P_i}
Si=0.8⋅Di+0.2⋅Pi0.16⋅Di⋅Pi
TripleRank实验
实验数据集:Knowledge Discovery、Data Mining(KDD)
、World Wide Web Conference(WWW)(参考文献1)、Inspec(参考文献2)
、Document Understanding Conference(DUC)。
TripleRank总结
TripleRank是一个新的SOTA在无监督关键词抽取任务中,它不像传统图的随机游走迭代更新权重算法,它不需要构建图进行迭代。文章主要提出了三个特征,主要是语义覆盖度、语义多样性、位置信息。分别借鉴了EmbedRank、TopicRank和Position的思想。LDA模型可以去尝试了解一番。
参考文献
-
S.D. Gollapalli, C. Caragea, Extracting keyphrases from research papers using citation networks, in: Presented at the Twenty-eighth Aaai Conference on Artificial Intelligence, 2014.
-
A. Hulth, Improved automatic keyword extraction given more linguistic knowledge, in: Proceedings of the 2003 Conference on Empirical Methods in Natural Language Processing, 2003, pp. 216–223.