一种社交圈的挖掘方法和装置与流程

文档序号:16881177发布日期:2019-02-15 22:10阅读:282来源:国知局
一种社交圈的挖掘方法和装置与流程

本公开涉及网络技术领域,特别涉及一种社交圈的挖掘方法和装置。



背景技术:

社交关系的挖掘有着非常重要的作用以及广泛的应用场景,例如,可以将一个用户的社交关系作为衡量该用户的信用程度的其中一个维度,在信用贷款或者依据信用扩展的市场应用场景,如租房免押金、旅游等多种方面都可以使用。还例如,安全风控、营销推广等多个场景都可以考虑用户的社交关系。以往在做社交关系挖掘的时候,可以由关系对的粒度上去探索,比如,通过两个用户的转账次数判断是否是朋友关系,进而确定是否能作为场景应用的依据。



技术实现要素:

有鉴于此,本说明书一个或多个实施例提供一种社交圈的挖掘方法和装置,以提高社交关系挖掘的准确性。

具体地,本说明书一个或多个实施例是通过如下技术方案实现的:

第一方面,提供一种社交圈的挖掘方法,所述方法用于由人脉关系网络中挖掘目标用户的社交圈,所述目标用户是所述人脉关系网络的其中一个网络节点,所述方法包括:

由所述人脉关系网络中提取目标用户所属的局部网络;

对所述局部网络进行社区划分,得到至少一个社区网络;

对于每一个社区网络,将所述社区网络中的各个用户的基础特征进行聚合,得到所述社区网络对应的社区聚合特征;

将所述社区聚合特征作为输入参数,输入预先训练得到的类型判定模型,得到所述社区网络所属的社交圈类型。

第二方面,提供一种社交圈的挖掘装置,所述装置用于由人脉关系网络中挖掘目标用户的社交圈,所述目标用户是人脉关系网络的其中一个网络节点;所述装置包括:

网络提取模块,用于由所述人脉关系网络中提取目标用户所属的局部网络;

社区划分模块,用于对所述局部网络进行社区划分得到至少一个社区网络;

特征获得模块,用于对于每一个社区网络,将所述社区网络中的各个用户的基础特征进行聚合,得到所述社区网络对应的社区聚合特征;

类型判别模块,用于将所述社区聚合特征作为输入参数,输入预先训练得到的类型判定模型,得到所述社区网络所属的社交圈类型。

第三方面,提供一种社交圈的挖掘设备,所述设备包括存储器、处理器,以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行指令时实现以下步骤:

由人脉关系网络中提取目标用户所属的局部网络;所述目标用户是所述人脉关系网络的其中一个网络节点;

对所述局部网络进行社区划分,得到至少一个社区网络;

对于每一个社区网络,将所述社区网络中的各个用户的基础特征进行聚合,得到所述社区网络对应的社区聚合特征;

将所述社区聚合特征作为输入参数,输入预先训练得到的类型判定模型,得到所述社区网络所属的社交圈类型。

本说明书一个或多个实施例的社交圈的挖掘方法和装置,通过结合了网络结构特征,应用了社区发现、群体特征挖掘等技术,识别目标用户所在的社区网络,并根据社区网络的社区聚合特征来输入模型得到社交圈类型,从而依据社区的群体特征来识别得到用户的亲友、同事等各种类型的社交圈,使得社交关系的挖掘更加深入和具体,对用户社交圈的挖掘更加精确。

附图说明

为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书一个或多个实施例提供的一种社交圈挖掘方法的流程图;

图2为本说明书一个或多个实施例提供的目标用户的一度局部网络;

图3为本说明书一个或多个实施例提供的目标用户的二度局部网络;

图4为本说明书一个或多个实施例提供的重叠社区发现的示意图;

图5为本说明书一个或多个实施例提供的一种社交圈挖掘装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。

本说明书至少一个实施例提供了一种社交圈的方法,该方法可以用于挖掘出某个用户的社交圈,例如,该社交圈可以是用户的亲友圈,或者是用户的同事圈,或者是该用户的同学圈。至于挖掘得到的社交圈应用于何种场景,本说明书实施例并不限制,比如,可以将社交圈应用于对用户的信用评估,或者,也可以将该社交圈应用于向用户进行商品推荐或者好友推荐等。

图1示例了本说明书至少一个实施例提供的社交圈挖掘方法,可以包括:

在步骤100中,构建人脉关系网络。

本步骤中,人脉关系网络是指,用户和用户之间建立关联关系而形成的网络。用户之间的关联关系非常广泛,对于不同的公司以及不同的业务场景,用户之间关系的建立可以不同。例如,其中一种关联关系的建立可以是,用户之间进行了转账、发红包、加好友等操作,还可以是用户a给用户b的手机充值,这样也能建立起a和b之间的关联关系。

在构建人脉关系网络的过程中,尽量保证建立连接关系的用户之间是彼此认识的。关于如何判定用户之间是彼此认识的,可以根据不同的业务场景采取多种不同的识别方法,比如,对于转账关系的用户之间,可以认为转账次数大于一定数量阈值的用户之间才是彼此认识的。

此外,本步骤构建的人脉关系网络包括了相互之间具有关联关系的多个用户,每个用户都可以作为该人脉关系网络中的其中一个网络节点,如果两个网络节点之间能够通过连接边相连接,则表示节点对应的用户之间具有关联关系。

该人脉关系网络相当于一个关联关系的数据库,当要挖掘某个用户的社交圈时,只要该用户是上述的人脉关系网络中的一个网络节点,就可以基于该人脉关系网络挖掘该用户的社交圈。例如,假设本步骤构建的人脉关系网络中包括用户a、用户b和用户c,那么,当要挖掘用户a的社交圈以作为用户a的信用评价的一个依据时,可以基于该人脉关系网络挖掘用户a的社交圈;同理,当要挖掘用户b的社交圈时,也可以基于该人脉关系网络进行挖掘。

假设当前要挖掘用户c的社交圈,该用户c称为目标用户,继续执行如下的步骤102至步骤108,就可以基于人脉关系网络挖掘得到用户c的社交圈。

此外,该步骤的人脉关系网络作为社交圈挖掘的一个基础,可以不断的进行更新,以期更加完善。比如,可以对该人脉关系网络中错误的用户关联关系进行修正,或者,还可以将新发现的用户关联关系补充进网络中。

在步骤102中,由人脉关系网络中提取目标用户所属的局部网络。

本步骤中,目标用户是所述人脉关系网络的其中一个网络节点。

步骤100中构建的人脉关系网络可能非常庞大,比如包含上亿节点,百亿条边,如果直接在整张网络上进行社区划分,不仅资源消耗大,效果可能也不理想。因此,本步骤是由人脉关系网络中提取目标用户所属的局部网络,所述局部网络是包含目标用户的一个网络,该网络是人脉关系网络的一部分,并且,该网络中的任一网络节点都与目标用户对应的网络节点具有直接或间接的关联。

例如,该局部网络可以是目标用户的n度局部网络,n是自然数。所述n度局部网络中的边缘节点与起点节点之间经过连续的n条连接边相连,所述起点节点是所述目标用户对应的网络节点。

如下示例n=1和n=2时的局部网络,n大于2时同样方法以此类推。

图2示例了目标用户对应的网络节点21的一度局部网络,该一度局部网络的挖掘过程,以目标用户对应的网络节点21为起点,获取与起点直接连接的各个邻居节点,例如,该邻居节点可以包括节点22、节点23、节点24等,这些邻居节点作为起点的一度邻居节点。并且,该一度邻居节点与起点之间具有连接边,例如,节点22和节点21之间存在连接边l1,节点23和节点21之间存在连接边l2。此外,各个一度邻居节点相互之间也可以存在连接边,例如,节点22和节点23之间存在连接边l3。图2所示的由一度邻居节点和起点构成的网络,可以作为目标用户的一度局部网络。

图3示例了目标用户对应的网络节点21的二度局部网络,以各个一度邻居节点为起点,获取与所述一度邻居节点直接连接的各个邻居节点,作为所述目标用户的二度邻居节点。例如,节点25是一度邻居节点26直接连接的邻居节点,可以称为二度邻居节点。节点27是一度邻居节点23直接连接的邻居节点,也是一个二度邻居节点。网络节点21及其一度邻居节点和二度邻居节点构成的网络,可以称为目标用户的二度局部网络。

当n度局部网络中的n是大于2的自然数时,提取方式与上述一度和二度局部网络的提取类似,比如,当n=3时,那就在二度局部网络的基础上,获取各个二度邻居节点直接连接的邻居节点,得到三度邻居节点。在二度局部网络的基础上增加上这些三度邻居节点以及节点之间的连接边,就可以得到三度局部网络。其他n取值的局部网络的提取方式类似,不再赘述。

如上所述的,对于n大于1时的n度局部网络的生成,可以按照如下方式生成:当n=i时,i是大于1的自然数,那么在得到目标用户的i-1度局部网络之后,还包括:以各个i-1度邻居节点为起点,获取与所述i-1度邻居节点直接连接的各个邻居节点,作为所述目标用户的i度邻居节点;将所述i-1度局部网络和i度邻居节点构成的网络作为所述目标用户的i度局部网络。

在步骤104中,对所述局部网络进行社区划分,得到至少一个社区网络。

每个局部网络其实就是一个用户的联系人之间由于相互联系而形成的网络。每个用户在不同的人生阶段会认识不同的人,这里面有个规律:在同一阶段认识的人,他们之间往往也是认识的,比如,中学阶段认识的大都是同班同学,而同班同学之间大都是互相认识的;不同阶段认识的人,他们之间很少是认识的,比如中学阶段的同学和工作阶段的同事大都是不认识的。这个规律在网络结构上变现为,同一阶段的联系人往往成成一个社区,不同阶段的联系人分别属于不同的社区。

本步骤中,可以使用社区发现算法,来识别局部网络中包括的至少一个社区,每一个社区可以对应一个用户关系群体,比如,一个社区的各个用户之间是亲友关系,或者,一个社区的各个用户之间是同事关系,或者,一个社区的各个用户之间是同学关系。其中,社区发现(communitydetection)算法用来发现网络中的社区结构,也可以看做是一种聚类算法,社区发现算法可以有多种,例如,louvain聚类算法,fastunfolding算法等。

以生活常识来看,相邻的人生阶段中,往往有些联系人是重复的,比如用户a的高中同学b和a考入同一所大学,这样b既在a的高中同学社区中,也在a的大学同学社区中。这个现象在网络结构上表现为,一个节点属于多个社区。因此,对于识别得到的上述至少一个社区,还可以使用重叠社区发现算法,识别重复出现在多个社区中的重叠网络节点,并将所述重叠网络节点分配在所属的多个社区,得到至少一个社区网络。

例如,请参见图4,图4中的节点41既位于社区s1中,也位于社区s2中,该节点41可以称为一个重叠网络节点。可以使用重叠社区发现算法,识别出这种重叠网络节点,并可以将该重叠网络节点分配在其所属的多个社区中。例如,最终得到的社区网络s1中包括节点41,社区网络s2中也包括节点41。

重叠社区发现算法也有多种,例如,copra算法(gregory在2010年提出的一种基于标签传递的社区发现算法)等。如下使用一种重叠社区发现算法:

1)对于局部网络g中的每个网络节点u,可以使用连通图划分算法,对该局部网络g进行网络切割,形成多个子网络。针对每个子网络egonet_i,创建一个新的节点u_i,并和egonet_i中的所有节点进行连接,同时删除原节点u。

2)对新生成的网络使用连通图划分算法进行网络切割,形成多个连通子图。所述的“连通图划分”是将一个图g分隔成多个连通子图,保证对于任意两个节点i和j,当且仅当i和j之间有连通路径时,i和j在同一个子图中。

3)对于每个连通子图中的每个节点u_i,映射到其第一步之前的原节点u。这样每个连通子图即为一个社区网络。

在识别到各个社区网络后,可以继续进行社区网络的类型判定。

本例子中,类型判定可以使用类型判定模型来识别,该类型判定模型的输入是一个社区网络的社区聚合特征,输出是该社区网络所属的社交圈类型。

如下先说明类型判定模型的训练方法,该类型判定模型是一个多分类模型。例如,社区网络所属的社交圈类型可以包括:亲友圈、同学圈、同事圈,识别一个社区网络属于何种社交圈类型,就属于多分类问题。例如,该类型判定模型可以使用逻辑回归、随机森林等模型,本例子可以使用随机森林模型。

首先确定模型训练需要使用的样本和样本特征,然后就可以使用样本和样本特征进行模型训练,得到类型判定模型。因此,如下主要描述如何得到样本、以及如何得到样本特征。

1)样本生成:

所述的样本生成是要得到一个社交圈,比如,得到一个同学圈或者亲友圈。

例如,可以通过问卷调查的方式进行人工打标得到样本,通过问卷调查可以得到多个用户之间的关系,该关系可以是亲友,或者也可以是同学。

又例如,还可以基于一个假设得到样本。该假设可以是:如果用户和某个社交圈中大部分用户都是同事,则该社交圈是用户的同事圈,以此类推亲友圈和同学圈。基于该假设,只需要拿到关系对粒度的亲友、同事或同学关系,则可以生成关系圈粒度的样本。如何拿到关系类度关系类型数据,有很多不同的来源,以支付宝为例,亲密付业务中有很多亲友关系,校园卡充值业务中有很多同学关系等。

2)样本特征:

在得到社交圈样本后,可以按照如下方式得到样本特征:

第一、确定用于作为识别社交圈类型依据的至少一个基础特征。

例如,该用户的基础特征可以包括:年龄、性别、姓氏、学校、地址、户籍地等。每一个都可以称为一个基础特征,社交圈中的每一个用户都可以具有所述的基础特征,比如,用户的年龄。

第二、对于每一个所述基础特征,将所述社区网络中的各个用户的基础特征进行特征聚合,得到所述基础特征对应的用户聚合特征。

例如,在社交圈类型的判定上,可以提取社交圈粒度的群体特征。

比如,可以将社区网络中的各个用户的基础特征进行特征聚合,得到用户聚合特征。以年龄为例,可以将各个用户的年龄进行特征聚合,聚合的方式包括但不限于:众数、方差和信息熵。

众数:众数(mode)是统计学名词,在统计分布上具有明显集中趋势点的数值,代表数据的一般水平。

方差:方差是衡量随机变量或一组数据离散程度的度量。

信息熵:信息熵是系统混乱程度度量,通常,一个系统发送出什么符号是不确定的,衡量它可以根据其出现的概率来度量。概率大,出现机会多,不确定性小;反之就大。

以年龄age为例,一个社交圈中所有用户的年龄组成一个集合:

s={age1,age2,……..agen};

年龄的众数mode是指集合s中出现次数最多的年龄;

年龄的方差(variance)是指每个年龄值和年龄平均值之差的平方

年龄的信息熵entropy是指年龄的混乱程度,计算公式如下:

其中,pi是指集合s中每个年龄出现次数占比

上述的年龄的众数、年龄的方差、年龄的信息熵中的每一个都可以称为与基础特征“年龄”对应的一个“用户聚合特征”。一个基础特征对应的用户聚合特征的数量可以是至少一个,例如,上述例子中,基础特征“年龄”对应的用户聚合特征包括三个:年龄的众数、年龄的方差和年龄的信息熵。同理,其他的基础特征也可以对应至少一个用户聚合特征。

第三、将各个基础特征对应的用户聚合特征的集合,作为所述社区聚合特征。以基础特征包括“年龄”和“姓氏”为例,那么,年龄的众数、年龄的方差、年龄的信息熵、姓氏的众数、姓氏的方差和姓氏的信息熵这些用户聚合特征的集合,可以称为社区聚合特征。

该社区聚合特征就可以作为一个社交圈的样本特征,可以作为社交圈类型识别中的模型输入,据此训练模型。

类型判定模型可以是预先训练得到,训练完成的模型可以应用于对目标用户的社交圈挖掘过程中。在识别到各个社区网络后,可以利用该预先训练的类型判定模型来识别社区网络所属的社交圈类型。

在步骤106中,对于每一个社区网络,将所述社区网络中的各个用户的基础特征进行聚合,得到所述社区网络对应的社区聚合特征。

例如,可以确定用于作为识别社交圈类型依据的至少一个基础特征;对于每一个所述基础特征,将所述社区网络中的各个用户的基础特征进行特征聚合,得到基础特征对应的用户聚合特征;一个基础特征对应的用户聚合特征的数量是至少一个;将各个基础特征对应的用户聚合特征的集合,作为社区聚合特征。

在步骤108中,将所述社区聚合特征作为输入参数,输入预先训练得到的类型判定模型,得到所述社区网络所属的社交圈类型。

例如,假设目标用户的局部网络识别到三个社区网络,可以通过类型判定模型识别各个社区网络的类型,可以是亲友圈,或者同学圈等。

上述的社交圈挖掘方法,结合了网络结构特征,应用了社区发现、群体特征挖掘等技术,依据社区的群体特征来识别用户的亲友、同事等各种类型的社交圈,使得社交关系的挖掘更加深入和具体,对用户社交圈的挖掘更加精确。

与上述的社交圈的挖掘方法相对应的,图5为本说明书至少一个实施例提供的社交圈的挖掘装置的结构示意图,该装置用于由人脉关系网络中挖掘目标用户的社交圈,目标用户是人脉关系网络的其中一个网络节点;该装置可以包括:网络提取模块51、社区划分模块52、特征获得模块53和类型判别模块54。

网络提取模块51,用于由人脉关系网络中提取目标用户所属的局部网络;

社区划分模块52,用于对局部网络进行社区划分得到至少一个社区网络;

特征获得模块53,用于对于每一个社区网络,将所述社区网络中的各个用户的基础特征进行聚合,得到所述社区网络对应的社区聚合特征;

类型判别模块54,用于将所述社区聚合特征作为输入参数,输入预先训练得到的类型判定模型,得到所述社区网络所属的社交圈类型。

在一个例子中,网络提取模块51,具体用于由所述人脉关系网络中提取目标用户的n度局部网络,n是自然数;所述n度局部网络中的边缘节点与起点节点之间经过连续的n条连接边相连,所述起点节点是所述目标用户对应的网络节点。

在一个例子中,社区划分模块52,具体用于:利用社区发现算法,识别所述局部网络中包括的至少一个社区;对于识别得到的所述至少一个社区,使用重叠社区发现算法,识别重复出现在多个社区中的重叠网络节点;并将所述重叠网络节点分配在所属的多个社区,得到至少一个社区网络。

在一个例子中,特征获得模块53,具体用于:确定用于作为识别社交圈类型依据的至少一个基础特征;对于每一个所述基础特征,将所述社区网络中的各个用户的基础特征进行特征聚合,得到所述基础特征对应的用户聚合特征;一个基础特征对应的用户聚合特征的数量是至少一个;将各个基础特征对应的用户聚合特征的集合,作为所述社区聚合特征。

上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述图中所示流程中的各个步骤,其执行顺序不限制于流程图中的顺序。此外,各个步骤的描述,可以实现为软件、硬件或者其结合的形式,例如,本领域技术人员可以将其实现为软件代码的形式,可以为能够实现所述步骤对应的逻辑功能的计算机可执行指令。当其以软件的方式实现时,所述的可执行指令可以存储在存储器中,并被设备中的处理器执行。

例如,对应于上述方法,本说明书一个或多个实施例同时提供一种社交圈的挖掘设备。该设备可以包括处理器、存储器、以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器通过执行所述指令,用于实现如下步骤:

由人脉关系网络中提取目标用户所属的局部网络;所述目标用户是所述人脉关系网络的其中一个网络节点;

对所述局部网络进行社区划分,得到至少一个社区网络;

对于每一个社区网络,将所述社区网络中的各个用户的基础特征进行聚合,得到所述社区网络对应的社区聚合特征;

将所述社区聚合特征作为输入参数,输入预先训练得到的类型判定模型,得到所述社区网络所属的社交圈类型。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1