0%

浅谈主题模型(四)—— 项目简介

承接“浅谈主题模型(三)”中的LDA模型的介绍,本文主要介绍我基于LDA模型的毕设和省创项目——UQA模型。

项目背景

在当今的互联网时代,医疗服务不再仅仅是停留在线下的医院诊所里,我们还可以通过互联网获取各式各样的医疗服务,而这其中以网络社区的问答系统最为流行。

为了充分发挥网络问答社区的优势,我本次毕设项目的研究目的就是实现网络问答社区的智能推荐。通过问答社区中的海量问答信息,利用主题模型进行分析处理,实现对新输入问题的最佳答案以及最佳专家的智能推荐。不仅仅保证了推荐专家和推荐答案的准确性,同时还保证用户能够在第一时间内获取答案,不必再耗费大量的时间等待专家来进行回答。

UQA模型简介

在 LDA 模型中,我们将文档视为一系列主题的分布,通过文档-主题以及主题-词这两个多项式分布实现了对文档中潜在主题的挖掘与分析。然而,结合我们的实验数据 (用户提问),我们得出结论:专家进行问题回答时是有一定的偏向性的,每位专家有着他们各自偏好的东西,不仅仅是他们擅长的话题领域,还可以包括用户的提问方式等等。因此,我们假定除了主题之外,文档 D 中还有着吸引着专家对用户提问进行回答的东西,在本文中我们将其称之为专家专长(expertise)。因此,我们将专家和专家专长这两个概念引入原有的 LDA 模型中,构建一个基于 LDA 模型的 UQA(USER- QUESTION-ANSWER)模型,利用这个模型,我们不仅仅可以实现对新问题的最佳答案智能推荐,同时还可以实现对新问题的最佳专家推荐。

如下图所示的 UQA 模型中,我们在 LDA 的基础上补充如下定义:

  1. 专家集U是所有回答专家的集合,表示为$U = {u_1, u_2, … , u_n}$
  2. x表示专家转成,专长数为E个

UQA模型为语料库D中的每个文档 w 假定以下生成过程:

  1. $\alpha, \beta, \gamma$分布为Dirichlet分布的先验参数: $\theta \sim Dir(\alpha) , \phi \sim Dir(\beta) , \psi \sim Dir(\gamma)$
  2. θ为文档-主题的多项式分布,ψ为文档-专长的多项式分布,φ为主题/专长-词的联合多项式分布。
  3. 对于某一文档 d 中的词 w,取主题 $z \sim Multi(θd) $,专长$ x \sim Multi(\psi_d)$ ,生成对应词 $w~Multi(\phi{z,x})$ (联合分布)

model 2

UQA模型中的文档-主题的多项式分布θ,文档-专长的多项式分布ψ,主题/专长-词的联合多项式分布φ都是通过Gibbs Sampling的方法得到,推导过程在论文中有详述。在这里只给出伪代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// zero all count variable NWZX, NZM, NXU, NS
// Initialize
foreach document m ∈ [1,D] do
get the author u of the this document m;
foreach word n ∈ [1, Nm] in document m do
sample topic index zm,n ~ Mult(1/K) for word wm,n;
sample expertise index xu,e ~ Mult(1/X) for word wm,n;
// Here m also refers to the author u
increment doc-topic count: NZM[zm,n][m]++;
increment user-expertise count: NXU[xu,e][u]++;
increment [topic,expertise]-word count: NWZX[wm,n][zm,n][xu,e]++;
increment [topic,expertise]-word sum: NS[zm,n][xu,e]++;
end
end
// Gibbs Sampling
while not finished do
foreach document m ∈ [1,D] do
get the author u of the this document m;
foreach word n ∈ [1, Nm] in document m do
NZM[zm,n][m]--;
NXU[xu,e][u]--;
NWZX[wm,n][zm,n][xu,e]--;
NS[zm,n][xu,e]--;
Sample topic and expertise index [z’m,n][x’u,e] according to Equ.32
// Because we have minused 1, so in Euq.32 we don’t need to -1
NZM[z’m,n][m]++;
NXU[x’u,e][u]++;
NWZX[wm,n][z’m,n][x’u,e]++;
NS[z’m,n][x’u,e]++;
end
if converged and L sampling iterations since last read out then
read out parameter set Θ, Φ, Ψ according to Equ.33, 34 and 35 in 2.2.2.3;
end
end
end

利用 UQA 模型,我们可以获得文档潜在主题的分布与潜在专家专长分布,并利用这些信息实现对新问题的最佳答案智能推荐以及最佳专家的推荐。

最终也是用朴素贝叶斯找到训练集中与新输入问题最匹配的问题,其对应的答案即是最佳推荐答案

通过上述这两个公式,我们可以获得训练集中一条提问在新问题下的匹配概率,通过遍历获取最大匹配概率,可以从训练集中获取最相似的问题,该最相似问题的答案即推荐答案。

对于 UQA 模型,我们可以利用贝叶斯定理得到新输入文档$d{new}$与训练集中的 某一位专家 u 的匹配概率$P(u|d{new})$(即在新文档发生的情况下,训练集中专家 u 的可能性),具体公式推导见下:

通过这个公式,我们可以获得训练集中一位专家在该新问题下的匹配概率,通过遍历获取最大匹配概率,可以从训练集答案中获取最匹配的推荐专家。

结果

以下通过图表简要介绍下项目结果。

下图是不同词典、不同主题数下,LDA模型得到的推荐答案的正确率:

下图是不同词典、不同主题数、不同专家专长数下,UQA模型得到的推荐答案的正确率:

下图是不同词典、不同主题数、不同专家专长数下,UQA模型得到的推荐专家的正确率:

在下一节我会将项目的reference以及项目代码展示出来。