1.一种结合网络拓扑特征和用户行为特征的朋友关系挖掘方法,其特征在于:所述挖掘方法包括以下步骤:S1:数据集提供包括朋友网络与就餐地点、口味信息,首先建立朋友关系网络图,随机选取其中设定比例的朋友关系连边数据为训练集,剩余部分作为测试集;
S2:根据训练集建立朋友关系无权无向图G1=(V,E1),图G1的邻接矩阵A=(aij)v×v,i,j∈{1,2,...,v},其中:
根据邻接矩阵Av×v=(aij)v×v,i,j∈{1,2,...,v}分别求出如下两种网络拓扑特征:资源分配指标(RA),Jaccard指标(J),分别得到下列各拓扑特征矩阵:RAv×v=(RAij)v×v,Jv×v=(Jij)v×v,i,j∈{1,2,...,v},如下为各特征矩阵元素表达式:
其中Γ(i)为节点i的邻居节点的集合,k(z)=|Γ(z)|为节点z的度,各特征矩阵RAv×v,Jv×v线性归一化分别为 上述矩阵中各元素表达式如下:
如上将朋友关系的无权无向图转化为有权无向图,该有权无向图的权值分别对应于上述归一化结果的其中之一,构建过程如下:保留用户节点,删除所有朋友连边,根据特征矩阵重新确定网络的连边,即连边权值等于特征相似度,权值为0时便是两者特征相似度为0,等价于两者没有连边,即不是朋友关系;
S3:通过用户已有的就餐地点与口味行为的记录数据,分别建立两类二分图,即用户-餐馆地区,用户-口味标签,过程如下:定义餐馆二分图G=(X,E,R),其中Xi={x1,x2,...,xv},i∈{1,2,...,v}表示v个用户,Ri={r1,r2,...,rn},i∈{1,2,...,n}表示n个餐馆,若用户xi,i∈{1,2,...,v}去过餐馆rj,j∈{1,2,...,n},则用有权连边表示该用户去了几次该餐馆,权值为dij,i∈{1,2,...,v},j∈{1,2,...,n},即去过的次数,同理,构建用户-口味标签二分图G(X,E',T),其中Xi={x1,x2,...,xv},i∈{1,2,...,v}表示v个用户,Ti={t1,t2,...,tm},i∈{1,2,...,m}表示m个口味标签,若用户xi选择口味tj,j∈{1,2,...,m},则用有权连边表示该用户选择了几次该口味,权值为di'j,i∈{1,2,...,v},j∈{1,2,...,m},即选择的次数;所述S3包括以下步骤:S3-1:分别根据用户-餐馆与用户-口味标签的二分图,计算出任意两个用户的节点相似度,用于表征两个用户之间的行为差异,其中dij表示用户xi去餐馆rj的次数,则用户xi去餐馆rj的概率为:
根据不相关熵的定义,餐馆rj的熵为:
其中,Ej值越大,表示餐馆rj越受用户欢迎;
用户xi,xj选择餐馆的特征相似度(RSIM)定义为:
特征矩阵 各元素线性归一化结果为:
同理,在用户-口味标签二分图中,d′ij表示用户xi尝过口味tj的次数,则用户去xi尝过口味tj的概率为:
根据不相关熵的定义,口味tj的熵为:
其中,E′ij值越大,表示口味tj越受用户欢迎;
则用户选择餐馆在口味上的相似度特征(TSIMij)定义为:
特征矩阵 各元素线性归一化结果为:
S3-2:根据上述两种用户行为特征的重新构建朋友网络,即有权无向图G2=(V,E2),过程如下:保留用户节点,删除所有朋友连边,两点之间是否有连边以及连边的权值取决于用户行为特征相似度,其中朋友网络的连边E2的权值分别取自于上述两个特征矩阵即S4:使用基于加权模块度的社团检测算法分别对上述两个有权无向图进行社团划分,如下为加权无向网络的模块度公式为:
其中,W是网络中所有边的权值之和,si是节点的强度,即与节点i相连的所有边的权重和,wij是网络中节点i与节点j之间的连边的权值,sisj/(2W)是相应的零模型中节点i与节点j之间的连边的期望的权值,Ci与Cj分别表示节点i与节点j在网络中所属的社团:如果这两个节点属于同一社团,则δ(Ci,Cj)=1;则值为0,所述S4包括以下步骤:S4-1:初始化:初始时假设每个节点就是一个独立的社团,即v个社团,选取基于 的有权无向图为对象,该网络所有边的权值之和为W1,此时模块度值Q=0,定义对称矩阵Fv×v,其中的元素fij表示连接社团和社团中的边权值占所有边权值的比例;定义行的加总它表示所有连接了社团中的节点的边权值占总权值的比例,矩阵F和辅助向量的元素为fij和ai,初始的fij、ai计算如下:
ai=si/(2W1)
其中,fij的非零值是根据所基于的不同特征即拓扑特征、行为特征的有权无向图对象决定,初始的模块度增量矩阵ΔQ的各元素计算如下:
得到初始模块增量矩阵以后,就能得到由它每一行的最大元素构成的最大堆H;
S4-2:从最大堆H中选择max{ΔQij},合并相应的社团Gi和Gj,标记合并后的社团标号为j;并更新模块度增量矩阵ΔQ、最大堆H和辅助向量S4-2-1:ΔQ的更新:删除第i行和第i列的元素,更新第j行和第j列的元素,得到
S4-2-2:最大堆H的更新:在更新ΔQ后,要更新最大堆中相应的行和列的最大元素;
S4-2-3:辅助向量 的更新如下:
aj←ai+aj,然后ai=0
并记录合并以后的模块度值:
Q←Q+max{ΔQij}
S4-2-4:重复步骤S4-2-2直到网络中所有的节点都归到一个社团内;
当模块度增量矩阵中最大的元素由正变为负,就停止合并,并认为此时的结果就是基于 的有权无向图网络的社区结构C1;
S4-3:选取基于 的有权无向网络为对象,重复S4-1过程,就能得到基于 的有权无向网络的社区结构C2,C3,C4;
S4-4:根据以上基于四种不同特征包括网络拓扑特征以及用户行为特征的网络社团结构,即C1,C2,C3,C4,如果任意两个用户两点在上述四种社团划分过程中至少有三次或以上被划为同一个社区,则认为这两个用户是朋友关系。