Topical Word Importance for Fast Keyphrase Extraction
Single TPR简介
Single TPR是2015年提出来的,是基于TPR的进一步改进,TPR论文解读可以参考Topical PageRank(TPR)论文解读_Trouble…的博客-CSDN博客。Single TPR主要是对TPR需要使用LDA算法在大量语料中获取主题信息进行改进,只需计算每个文档中的单个PageRank,而不用考虑模型的主题数量。Single TPR极大地提升了速度,可以使用在存在大量主题的文本集合中,并且算法的性能不会下降很多。
Single TPR实现
对于Topical PageRank算法,其计算需要对每个主题下的字进行PageRank随机游走,最终获得每个字的排名。其计算公式如下所示:
R
z
(
w
i
)
=
λ
∑
j
:
w
j
∈
w
i
(
e
(
w
j
,
w
i
)
O
(
w
j
)
⋅
R
z
(
w
j
)
)
+
(
1
−
λ
)
⋅
P
z
(
w
i
)
R_z(w_i)=\lambda \sum_{j:w_j \in w_i} (\frac{e(w_j,w_i)}{O(w_j)} \cdot R_z(w_j))+(1-\lambda) \cdot P_z(w_i)
Rz(wi)=λj:wj∈wi∑(O(wj)e(wj,wi)⋅Rz(wj))+(1−λ)⋅Pz(wi)
最终结合文档的主题情况,每个字的最终得分按照下式进行计算:
R
(
w
i
)
=
∑
z
=
1
k
R
z
(
w
i
)
⋅
P
(
z
∣
d
)
R(w_i)=\sum_{z=1}^k R_z(w_i) \cdot P(z|d)
R(wi)=z=1∑kRz(wi)⋅P(z∣d)
作者针对每个文档需要使用K个PageRank算法迭代的方式进行改进:使用字主题向量
P
⃗
(
w
i
∣
Z
)
=
(
P
(
w
i
∣
z
1
)
,
.
.
.
,
P
(
w
i
∣
z
k
)
)
\vec P(w_i|Z)=(P(w_i|z_1),...,P(w_i|z_k))
P(wi∣Z)=(P(wi∣z1),...,P(wi∣zk))和文档主题
P
⃗
(
Z
∣
d
)
=
(
P
(
z
1
∣
d
)
,
.
.
.
,
P
(
z
k
∣
d
)
)
\vec P(Z|d)=(P(z_1|d),...,P(z_k|d))
P(Z∣d)=(P(z1∣d),...,P(zk∣d))之间的余弦相似度,来确定每个字在文档中的权重,最终计算公式如下式所示。
W
(
w
i
)
=
P
⃗
(
w
i
∣
Z
)
⋅
P
⃗
(
Z
∣
d
)
∥
P
⃗
(
w
i
∣
Z
)
∥
⋅
∥
P
⃗
(
Z
∣
d
)
∥
W(w_i)=\frac{\vec P(w_i|Z) \cdot \vec P(Z|d)}{\parallel \vec P(w_i|Z) \parallel \cdot \parallel \vec P(Z|d) \parallel}
W(wi)=∥P(wi∣Z)∥⋅∥P(Z∣d)∥P(wi∣Z)⋅P(Z∣d)
最终将
W
(
w
i
)
W(w_i)
W(wi)被看成
w
i
w_i
wi在文档
d
d
d中“主题字的重要性”,如果
w
i
w_i
wi是主题
z
k
z_k
zk中的重要词,那么该字对该主题的贡献度应该更大。最终的Single TPR算法计算公式应该如下式所示:
R
(
w
i
)
=
λ
⋅
∑
j
:
w
j
→
w
i
(
e
(
w
j
,
w
i
)
O
(
w
j
)
⋅
R
(
w
j
)
)
+
(
1
−
λ
)
⋅
W
(
w
i
)
∑
w
∈
v
W
(
w
)
R(w_i)=\lambda \cdot \sum_{j:w_j \to w_i}(\frac{e(w_j,w_i)}{O(w_j)} \cdot R(w_j))+(1-\lambda) \cdot \frac{W(w_i)}{\sum_{w \in v} W(w)}
R(wi)=λ⋅j:wj→wi∑(O(wj)e(wj,wi)⋅R(wj))+(1−λ)⋅∑w∈vW(w)W(wi)
Single TPR评估
从上图1可以看出,作者提出的Single TPR算法在准确率和召回率上不输给TPR,但是Single TPR所需要消耗的时间将会大大减小。
Single TPR总结
Single TPR是一种无监督的关键词抽取算法,其实就是对TPR算法的改进,在减少时间的消耗情况下不降低精度。主要原理在于使用基于主题概率向量和文档主题概率之间的余弦相似度来替换在每个主题上计算每个字的重要性。也就是需要先计算每个字在每个主题上的得分和每个文档上每个主题的得分。