PositionRank: An Unsupervised Approach to Keyphrase Extraction from Scholarly Documents
PositionRank思想
PositionRank是2017年提出的论文,是一种用于从学术文档中提取关键短语的无监督模型,它将单词出现的所有位置的信息合并到有偏置的PageRank中。
在无监督的研究中,关键短语提取被描述为一个排序问题,基于图的排序技术被认为是最优的。基于图的排序算法有PageRank和HITS。
作者总结的三个贡献:
1、提出了一种无监督图模型(PositionRank),将每个单词出现的位置添加到PageRank中,然后再进行计算每个关键词的得分和排名。
2、发现使用词的所有位置信息比仅仅使用词的第一次出现的位置信息效果要更好。
3、试验结果表明PositionRank效果会比PageRank效果好很多。
PositionRank实现
PositionRank实现的三个步骤:
- 在词水平上图的构建。
- 设计基于位置偏置的PageRank算法。
- 生成候选关键字。
图的构建
使用分词工具对文档 d d d进行分词,最终仅保留名字和形容词。为文档 d d d构建一个词图 G = ( V , E ) G=(V,E) G=(V,E),其中文档保留的词均在图 G G G中作为一个节点且出现一次。如果在文档 d d d中这些节点同时出现在一个窗口 w w w中,那么 v i v_i vi和 v j v_j vj两个节点通过一条边 ( v i , v j ) ∈ E (v_i,v_j) \in E (vi,vj)∈E进行连接。边的权重由两个词共现的次数来决定。(据研究表明,文本图的类型(有向图/无向图)不会影响图的性能[1])。
基于位置的PageRank算法
构建好无向图 G G G,让 M M M作为图的邻接矩阵。如果节点 v i v_i vi和 v j v_j vj之间存在边,那边的权重 m i j m_{ij} mij就为 ( v i , v j ) (v_i,v_j) (vi,vj);反之,如果不存在边,那么 m i j m_{ij} mij就为0。
原始PageRank计算公式如下所示:
P
R
(
p
i
)
=
α
∑
p
j
∈
M
p
i
P
R
(
p
j
)
L
(
p
j
)
+
(
1
−
α
)
N
PR(p_i)=\alpha \sum_{p_j \in M_{p_i}} \frac{PR(p_j)}{L(p_j)}+\frac{(1-\alpha)}{N}
PR(pi)=αpj∈Mpi∑L(pj)PR(pj)+N(1−α)
其中
P
R
(
p
i
)
PR(p_i)
PR(pi)表示节点
p
i
p_i
pi的值,
M
p
i
M_{p_i}
Mpi表示以节点
p
i
p_i
pi为入节点的所有节点,
L
(
p
j
)
L(p_j)
L(pj)表示节点
p
j
p_j
pj的出度,
(
1
−
α
)
N
\frac{(1-\alpha)}{N}
N(1−α)代表的是让被个节点最终的值都不等于0。
S
S
S代表每个节点PageRank的得分,对任一节点
v
i
∈
V
v_i \in V
vi∈V,每个节点最初始的值为
1
∣
V
∣
\frac{1}{|V|}
∣V∣1。PageRank的每个时刻的计算公式如下所示:
S
(
t
+
1
)
=
M
~
⋅
S
(
t
)
S(t+1)=\widetilde M \cdot S(t)
S(t+1)=M
⋅S(t)
其中矩阵
M
~
\widetilde M
M
是归一化的矩阵
M
M
M,如下式所示:
m
~
i
j
=
{
m
i
j
/
∑
j
=
1
∣
V
∣
m
i
j
i
f
∑
j
=
1
∣
V
∣
m
i
j
≠
0
0
o
t
h
e
r
w
i
s
e
\widetilde m_{ij}=\left \{ \begin{array} {l} {\rm{m_{ij} / \sum_{j=1}^{|V|}m_{ij} \ \ \ if \ \sum_{j=1}^{|V|}m_{ij} \ne 0}} \\ {\rm{0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ otherwise}} \end{array} \right.
m
ij={mij/∑j=1∣V∣mij if ∑j=1∣V∣mij=00 otherwise
为了防止PageRank进入闭环中,会添加一个阻尼因子,最终的PageRank计算公式如下所示:
S
(
t
+
1
)
=
α
⋅
M
~
⋅
S
(
t
)
+
(
1
−
α
)
⋅
p
~
S(t+1)=\alpha \cdot \widetilde M \cdot S(t) + (1- \alpha) \cdot \widetilde p
S(t+1)=α⋅M
⋅S(t)+(1−α)⋅p
p
~
\widetilde p
p
表示向量的
∣
V
∣
|V|
∣V∣的长度,并且所有的元素都为
1
∣
V
∣
\frac{1}{|V|}
∣V∣1。向量
p
~
\widetilde p
p
表示节点
v
i
v_i
vi随机游走都是等概率的。有研究学者发现,通过偏置
p
~
\widetilde p
p
随机游走将优先选择图中概率较高的节点。
作者想的是将前面出现的词赋予更高概率,如在同一文档第2个单词出现的词应该比第50个出现的单词概率更高。所以在向量
p
~
\widetilde p
p
将会被更改为下式:
p
~
=
[
p
1
p
1
+
p
2
+
.
.
.
+
p
∣
V
∣
,
p
2
p
1
+
p
2
+
.
.
.
+
p
∣
V
∣
,
.
.
.
,
p
∣
V
∣
p
1
+
p
2
+
.
.
.
+
p
∣
V
∣
]
\widetilde p = [\frac{p_1}{p_1+p_2+...+p_{|V|}}, \frac{p_2}{p_1+p_2+...+p_{|V|}},..., \frac{p_{|V|}}{p_1+p_2+...+p_{|V|}}]
p
=[p1+p2+...+p∣V∣p1,p1+p2+...+p∣V∣p2,...,p1+p2+...+p∣V∣p∣V∣]
其中
p
i
p_i
pi代表的是单词
i
i
i的位置值,如果单词
i
i
i在文档的第2、5、10个位置出现,那么
p
i
=
1
2
+
1
5
+
1
10
=
4
5
=
0.8
p_i=\frac{1}{2}+\frac{1}{5}+\frac{1}{10}=\frac{4}{5}=0.8
pi=21+51+101=54=0.8,最终PositionRank算法计算每个关键词的计算公式如下式所示:
S
(
v
i
)
=
(
1
−
α
)
⋅
p
i
~
+
α
⋅
∑
v
j
∈
A
d
j
(
v
i
)
w
j
i
O
(
v
j
)
S
(
v
j
)
S(v_i)=(1- \alpha) \cdot \widetilde {p_i} +\alpha \cdot \sum_{v_j \in Adj(v_i)} \frac{w_{ji}}{O(v_j)}S(v_j)
S(vi)=(1−α)⋅pi
+α⋅vj∈Adj(vi)∑O(vj)wjiS(vj)
其中
O
(
v
j
)
=
∑
v
k
∈
A
d
j
(
v
j
)
w
j
k
O(v_j)=\sum_{v_k \in Adj(v_j)} w_{jk}
O(vj)=∑vk∈Adj(vj)wjk,
p
~
i
\widetilde p_i
p
i是向量
p
~
\widetilde p
p
中的节点
v
i
v_i
vi的表示。
格式化候选词
文档中具有连续位置的候选词被连接成短语,考虑以下正则表达式“(形容词)*(名词)+”来匹配候选短语,长度为1~3。最终对组成后的短语进行单个关键字求和在排名。
PositionRank实验
数据集:
-
第一、二个数据集来自Gollapalli and Caragea http://www.cse.unt.edu/∼ccaragea/keyphrases.html
-
第三个数据集来自Nguyen and Kan [2]
评价指标:mean reciprocal rank (平均倒数排名,MRR)、precision、recall、F-score。
M
R
R
=
1
∣
D
∣
∑
d
∈
D
1
r
d
MRR=\frac{1}{|D|} \sum_{d \in D}\frac{1}{r_d}
MRR=∣D∣1d∈D∑rd1
其中
D
D
D是文档集合,
r
d
r_d
rd是找到文档
D
D
D的第一个正确关键字短语的等级。
实验结果展示:
Reference
[1] Rada Mihalcea and Paul Tarau. 2004. Textrank: Bringing order into text. In Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing. pages 404–411.
[2] Thuy Dung Nguyen and Min-Y en Kan. 2007. Keyphrase extraction in scientific publications. In Asian Digital Libraries. Springer, pages 317–326.