system: [SYSTEM]

user: 3. 基于贝叶斯网络学习的用户相似度建模 3.1. 用户相似度贝叶斯网络模型的定义 V = { V 1 ， V 2 ， ⋯ ， V m } 、 和 T = { T 1 ， T 2 ， ⋯ ， T m } 分别为用户集合(即该社交网络中的所有作者集合)、实物集合(即该社交网络中的论文标题集合)和与实物有交互关系的用户集合，其中 T i = { T i 1 ， T i 2 ， ⋯ ， T i l i } ， T i j ∈ K ， 1 ≤ i ≤ n ， 1 ≤ j ≤ l i ， T i j 表示属于用户 V i 所著的某篇论文，用户 V i 的所有文章以一个二元组 A i = 〈 V i ， Q i 〉 ， Q i = { T i j | i = 1 ， 2 ， ⋯ ， l i } 表示用户与论文之间的关系。 依据在定义2.1中我们给出一般性的贝叶斯网络的定义，此处给出用户相似度贝叶斯网络模型的定义的内容。 定义3.1 USBN用一个二元组 G = ( G B ， W ) 表示，其中： 1) G B = ( V ， E ) 为USBN的DAG结构，每个用户对应网络结构的一个节点，用户 V = { V 1 ， V 2 ， ⋯ ， V m } 为 G B 的节点集， V i 的取值为1或0，表示用户 V i 是否著有文章。E为网络结构中的有向边集合，表示用户间的相似性，若用户节点之间存在相似性，则用有向边 V i → V i 表示，并称 是 V i 的一个父节点， V i 是 V j 的一个子节点， V i 的所有父节点集合为 P a ( V i ) 。 2) W = { p ( V i | P a ( V i ) | V i ∈ V ) } 为网络结构中条件概率分布的集合，由各结点相对应的CPT中的值构成， p ( V i | P a ( V i ) ) 表示结点 V i 在其父结点发生情况下的条件概率，用来表示 P a ( V i ) 的值对 V i 的值的影响。 3.2. 用户相似性贝叶斯网络模型的构建 从给定的用户集合构建用户相似性贝叶斯网络，就是要构建用户相似性贝叶斯网络的DAG结构和计算每个节点的条件概率参数表CPT。由2.3节可知，USBN构建的关键是构建其图结构，即有向无环图的构建，这也是USBN构建的最困难的地方。一旦图结构构建成功后，便可以基于最大似然估计方法，利用USBN的有向无环图结构相对容易地计算各个关键词节点的条件概率参数表。所以我们接下来讨论图结构的构建，这包括如下两方面问题： 1) 首先需要确定判断用户是否相似，则能够明确两个用户节点间是否存在边； 2) 当明确用户节点之间存在相似关系时，接下来就需要确定用户节点之间有向边的指向。 针对问题1，判断两个用户间是否相似，对于任何两个用户，我们首先计算出与两个用户共同著作的文章数占他们各自所著全部文章数的比例，该比例越高，则表明这两个用户在社交网络中的行为相似性就越高。依据复杂网络中对于节点相似性的定义，当我们设定好阈值时，若该比值高于预先设定的阈值，则表示这两个用户是相似的，即在这两个关键词之间存在一条无向边。下面给出基于对过去所著作论文情况已知的用户相似度计算方法，用户 V i 和 V j 间的相似度为： sim ( V i ， V j ) = N ( Q i ∩ Q j ) / N ( Q i ∪ Q j ) (3.1) 其中 Q i ∩ Q j 表示用户 V i 和 V j 共同著作的文章， N ( Q i ∩ Q j ) 表示共同著作的文章数，同理 N ( Q i ∪ Q j ) 表示用户 V i 和 V j 著作的所有文章数， N ( Q i ∩ Q j ) 和 N ( Q i ∪ Q j ) 可基于 T i 计算得出。假设相似性阈值为 δ ，当 sim ( V i ， V j ) > δ 时，可认为用户节点 V i 和 V j 之间存在一条无向边。 针对问题2，考虑任意两个存在无向边的用户节点，比较两个用户所著文章数分别占他们各自所著全部文章数的比例，我们可以通过比较这两个比例的大小来确定指向关系。 L ( V i | V j ) 表示用户 对用户 V i 的影响程度， L ( V j | V i ) 表示用户 V i 对用户 V j 的影响程度，则： L ( V i | V j ) = N ( Q i ∩ Q j ) / N ( Q j ) ， L ( V j | V i ) = N ( Q i ∩ Q j ) / N ( Q i ) (3.2) 其中 N ( Q j ) 表示用户 V j 所著全部文章数， N ( Q i ) 表示用户 V i 所著全部文章数。 若 L ( V i | V j ) > L ( V j | V i ) ，则表示用户 V j 对用户 V i 的影响程度低于用户 V i 对用户 V j 的影响程度，则节点之间的边的指向为由 V j 指向 V i 。 3.3. 基于概率推理的用户相似性贝叶斯网络模型的构建 上节中，我们给出用户间相似度度量函数，可以得到相邻用户间的直接相关性，但是实际的情况是，对于网站的任一用户而言，与其相邻用户还存在一定程度的间接相似关系，所以本文中我们打算利用USBN的概率推理来获取节点间的间接相似关系，增加模型预测的准确性。由前文可知，贝叶斯网的精确推理具有指数计算时间，不能够支持高效的发现大量存在于用户之间的相似关系。目前，马尔可夫链蒙特卡罗(MCMC)算法作为一种重要的近似推理方法，已经被广泛应用于贝叶斯网推理计算，Gibbs采样是其中一种重要的马尔可夫链蒙特卡罗算法，它总是产生一条马尔科夫链，也是MCMC方法中最简单，使用最广泛的一种。基于Gibbs釆样的贝叶斯网近似推理，能够高效的计算各个关键词节点的条件概率和后验概率为高效的近似推理提供了理论基础。因此我们给出一种基于釆样的贝叶斯网近似推理的算法进行推断所有可能值的概率分布。在这里为了简化计算，对于每次的用户釆样节点，我们只考虑采样用户节点的马尔科夫覆盖中的用户节点对它的影响，即考虑采样节点的父节点，釆样节点的子节点及釆样节点子节点的其他父节点对采样节点的影响。 3.4. USBN模型构建效率测试 为了验证模型的最终效果，我们利用公式3.1和公式3.2，对于DBLP数据集 [ 14 ] 进行了试验，分别从原始数据中选择 100 ， 200 ， 300 ， ⋯ ， 1000 个用户，分别测试USBN的构建执行时间。对于每一个USBN，我们记录了20次测试的平均执行时间。每次DAG构建执行时间，计算执行时间和总共执行时间都记录在图1~2中。 图1. USBN构建效率示意图 图2. USBN收敛效果示意图 见图1，DAG构建的时间远小于CPT计算的时间，同时USBN构建的总执行时间主要取决于CPT计算执行时间。这是与实际情况一致的，节点的CPT的计算执行的时间是随着父节点的增加而呈现指数增长。从实验结果可以分析出，对于小规模数据集，在当前计算机环境条件下(类似本文实验环境)，本文所提出的方法用于DAG的构建是可行的。基本上，USBN的构建执行时间随着节点数量的增加而增加。 因此，从效率的角度来看，我们可以得知通过合并数据，减少节点个数，密集型计算聚合查询处理技术在未来进一步改善构建将是可行的，这也正是我们下一步的工作。 3.5. USBN收敛性测试 为了测试算法的效率和收敛性，我们采用由部分数据集作为测试数据集生成的。随着采样次数的增多，我们记录了在不同用户个数情形下，算法每次执行时间和推理结果，并分别记录在图中。见图2，在近5000次采样以后，近似推理结果收敛于一个相对稳定的值，所以说明算法近似推理在一定程度上是有效的并且是收敛的。 在本文中，针对社交网络数据中的用户相似性发现问题，提出了一种有效的社交网络用户相似性发现方法。为了发现社交网络用户之间的直接相似性，我们通过对社交网络数据进行分析提出了一种基于贝叶斯网络的社交用户贝叶斯网构建方法。为了发现社交网络用户之间的间接相似性，我们同时考虑了USBN结构以及USBN中包含的不确定语义对社交网络用户相似性的影响，最终结合结构相似性和并行推理提出了一种基于贝叶斯网络的社交网络用户相似性度量方法。为了支持基于贝叶斯网的用户相似性度量方法的高效性和高的可扩展性，使算法更适合于海量分布式数据，我们提出利用对贝叶斯网络进行加权的方法作为改进的方向。为了测试本文所提出社交网络用户相似性发现算法的执行性能，我们利用Python执行了相关的实验，通过对实验结果分析发现本文提出的基于的社交网络用户相似性发现方法具有良好的可扩展性和较高的精确度。