CN108491465A - 一种人群扩散方法及计算设备 - Google Patents

一种人群扩散方法及计算设备 Download PDF

Info

Publication number
CN108491465A
CN108491465A CN201810182825.8A CN201810182825A CN108491465A CN 108491465 A CN108491465 A CN 108491465A CN 201810182825 A CN201810182825 A CN 201810182825A CN 108491465 A CN108491465 A CN 108491465A
Authority
CN
China
Prior art keywords
bipartite graph
node
nodes
user terminal
probability vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810182825.8A
Other languages
English (en)
Other versions
CN108491465B (zh
Inventor
陈日涵
田永军
张夏天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Tengyun World Technology Co Ltd
Original Assignee
Beijing Tengyun World Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Tengyun World Technology Co Ltd filed Critical Beijing Tengyun World Technology Co Ltd
Priority to CN201810182825.8A priority Critical patent/CN108491465B/zh
Publication of CN108491465A publication Critical patent/CN108491465A/zh
Application granted granted Critical
Publication of CN108491465B publication Critical patent/CN108491465B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种人群扩散方法,在计算设备中执行,计算设备与数据存储装置连接,数据存储装置中存储有多个用户终端对多个应用的使用情况以及每个应用所属的类别,该方法包括:根据多个用户终端对多个应用的使用情况建立用户终端‑应用二分图,二分图中的节点包括用户终端节点和应用节点,二分图中的边表示用户终端对应用的使用关系;将属于同一个类别的至少两个应用作为种子应用,形成种子应用集合;根据二分图来确定与种子应用集合相关联的用户终端集合;将用户终端集合中的用户终端作为各种子应用的关联用户终端。本发明一并公开了相应的计算设备。

Description

一种人群扩散方法及计算设备
技术领域
本发明涉及数据挖掘技术领域,尤其涉及一种人群扩散方法及计算设备。
背景技术
人群扩散,即通过一群已有的用户发现并扩展出其他用户,从而找出具有相似的属性以及行为偏好的用户群体。例如,基于人群扩散算法,可以找出某一个应用(APP)的潜在用户或某一个广告的潜在受众,这些潜在用户或潜在受众倾向于对该应用、该广告产生相似的行为。进一步地,通过对同一个群体中的用户推送相似的信息,或利用相似用户来向目标用户来推送信息(协同过滤),可以实现个性化推荐和精准营销。
现有的人群扩散算法多基于二分类模型、正例和无标记样本学习(Learning fromPositive and Unlabled Example,简称PU Learning)以及一些启发式方法来找出与种子用户(即已有的用户)相似的用户。这些算法的复杂度以及对数据的要求都比较高,且实现起来较困难。在大规模的应用场景下,PU Learning难以实现,启发式方法效率过低。而二分类模型虽然在大规模的应用场景下较成熟,但其算法逻辑与人群扩散的基本思路有一些偏差。
发明内容
为此,本发明提供一种人群扩散及计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种人群扩散方法,在计算设备中执行,计算设备与数据存储装置连接,数据存储装置中存储有多个用户终端对多个应用的使用情况以及每个应用所属的类别,该方法包括:根据多个用户终端对多个应用的使用情况建立用户终端-应用二分图,二分图中的节点包括用户终端节点和应用节点,二分图中的边表示用户终端对应用的使用关系;将属于同一个类别的至少两个应用作为种子应用,形成种子应用集合;根据所述二分图来确定与种子应用集合相关联的用户终端集合;将用户终端集合中的用户终端作为各种子应用的关联用户终端。
可选地,在根据本发明的人群扩散方法中,二分图为无向无权图,二分图中的边表示用户终端对应用的安装关系。
可选地,在根据本发明的人群扩散方法中,二分图为无向加权图,二分图中的边表示用户终端对应用的安装关系,边的权重为用户终端对应用的活跃程度。
可选地,在根据本发明的人群扩散方法中,根据二分图来确定与种子应用集合相关联的用户终端集合的步骤包括:根据种子应用集合来确定概率向量,概率向量的长度为二分图中节点的数量n,概率向量中的每一个元素对应于二分图中的一个节点,其中,对应于种子应用节点的元素的值为1,其他元素的值均为0;根据二分图来确定各节点之间的转移矩阵;根据转移矩阵来循环更新概率向量,每更新一次概率向量后,将概率向量中值最大的j个元素所对应的节点构成中间节点集合Sj,j依次设置为预设数量k、k+1、k+2、…、n;判断中间节点集合Sj和当前的概率向量是否满足预设的终止条件,若是,则将中间节点集合Sj中的k个用户终端节点加入用户终端集合。
可选地,在根据本发明的人群扩散方法中,转移矩阵按照以下公式确定:
M=(BD-1+I)/2
其中,M为转移矩阵;B为二分图的邻接矩阵,当二分图为无向无权图时,B中的元素bij表示节点i与节点j之间是否有边相连,其取值相应地为1或0,当二分图为无向加权图时,B中的元素bij表示节点i与节点j的连边的权重;D为对角矩阵,D中的元素di为二分图中第i个节点的度,有di=∑jbij;I为单位矩阵。
可选地,在根据本发明的人群扩散方法中,更新概率向量的次数按照以下公式确定:
其中,tlast为更新概率向量的次数,l为中间常数,V为所述二分图的节点集合,vol(V)表示二分图中所有节点的度的和,为传导性阈值,c1为常数,表示向上取整。
可选地,在根据本发明的人群扩散方法中,按照以下步骤更新一次概率向量:用转移矩阵乘以当前的概率向量,以得到更新后的概率向量。
可选地,在根据本发明的人群扩散方法中,在用转移矩阵乘以当前的概率向量的步骤之前,还包括步骤:将当前的概率向量中小于预设阈值的元素值设置为0。
可选地,在根据本发明的人群扩散方法中,预设阈值按照以下公式确定:
ε=1/(c2(l+2)tlast2b)
fi=diε
其中,fi表示第i个元素对应的预设阈值,di表示第i个元素所对应的节点的度,ε为中间常数,c2、b为常数,且b为正整数。
可选地,在根据本发明的人群扩散方法中,终止条件包括以下中的一种或多种:中间节点集合Sj中所包括的用户终端节点的数量大于等于预设数量k;中间节点集合Sj中的所有节点的度的和大于等于第一阈值且小于等于第二阈值;当前概率向量中第j大的元素值与该元素值所对应的节点的度的比值大于等于第三阈值;中间节点集合Sj的传导性小于等于传导性阈值传导性按照公式来计算,其中,为二分图的节点集合V与中间节点集合Sj的差集,表示所述二分图中连接集合Sj中的一个节点和集合中的一个节点的边的数量,min{}表示取最小值,vol(Sj)、分别表示集合Sj中各节点的度的和。
可选地,在根据本发明的人群扩散方法中,第一阈值为2b,第二阈值为5vol(V)/6,第三阈值为(l+2)2b/c3,其中,c3为常数。
可选地,在根据本发明的人群扩散方法中,将中间节点集合Sj中的k个用户终端节点加入用户终端集合的步骤还包括:将k个用户终端节点按照在概率向量中所对应的元素值由大到小的顺序排列。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,程序指令被配置为适于由上述至少一个处理器执行,程序指令包括用于执行如上所述的人群扩散方法。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的人群扩散方法。
根据本发明的技术方案,根据多个用户终端对多个应用的使用情况建立用户终端-应用二分图,将属于同一个类别的至少两个应用作为种子应用,形成种子应用集合,根据二分图来确定与种子应用集合相关联的用户终端集合,用户终端集合中的用户终端即为各种子应用的关联用户终端。本发明将现有的各用户终端对各应用的使用情况抽象成一个二分图,基于该二分图中各节点的连接关系,以种子应用集合为初始状态进行随机游走,从而确定与种子应用集合相关联的用户终端集合,实现人群扩散。本发明的人群扩散方法效率高、耗时短、对数据的要求较低,且更符合人群扩散的逻辑,增加了人群扩散结果在业务层上的解释性。此外,本发明的人群扩散算法便于移植,从而可以实现不同应用场景下的人群扩散。
进一步地,本发明采用Parameter Server框架来实施上述人群扩散方法,该框架包括多个参数服务节点(parameter server)和多个计算节点(worker),在参数服务节点处存储概率向量,计算节点处存储转移矩阵,在更新概率向量时为多计算节点异步更新,从而保证了人群扩散方法的执行效率和可靠性。进一步地,转移矩阵在计算节点处以压缩的数据格式(例如CSRMatrix)存储,使得整个转移矩阵都可以放在计算节点的内存中,从而加快数据读取速度,提高人群扩散算法的执行效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的人群扩散分析系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的单体配置示意图;
图3示出了根据本发明一个实施例的人群扩散方法300的流程图;
图4A、4B示出了根据本发明两个实施例的用户终端-应用二分图的拓扑结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的人群扩散分析系统100的示意图。如图1所示,人群扩散分析系统100包括计算设备200和数据存储装置120。
计算设备200是具备通信、计算、存储功能的设备,其可以实现为服务器,例如应用服务器、Web服务器等,但不限于此。应当指出,计算设备200可以实现为一台服务器,也可以实现为由多台服务器所构成的集群或分布式系统;当其是多台服务器时,这多台服务器可以部署于同一地理位置,也可以分散布置于多个地理位置,本发明对计算设备200所包括的服务器的数量以及各服务器的部署位置均不做限制。
数据存储装置120可以是关系型数据库例如MySQL、ACCESS等,也可以是非关系型数据库例如NoSQL等;可以是驻留于计算设备200中的本地数据库,也可以作为分布式数据库例如HBase等设置于多个地理位置处,总之,数据存储装置120用于存储数据,本发明对数据存储装置120的具体部署、配置情况不做限制。计算设备200可以与数据存储装置120连接,并获取数据存储装置120中所存储的数据。例如,计算设备200可以直接读取数据存储装置120中的数据(在数据存储装置120为计算设备200的本地数据库时),也可以通过有线或无线的方式接入互联网,并通过数据接口来获取数据存储装置120中的数据。
数据存储装置120中存储有多个用户终端对多个应用的使用情况以及每个应用所属的类别。为便于理解本发明的技术方案,此处对用户终端进行说明。用户终端指的是用户所使用的终端设备,一个用户可以对应于一个或多个用户终端,一个用户终端通常对应于一个用户,但在一些特殊情况中,例如一个用户终端由多个用户所共用,或一个用户终端发生了买卖、丢失等情况时,用户终端可以对应于多个用户。用户终端例如可以是手机、平板电脑、多媒体设备、智能可穿戴设备等,但不限于此。数据存储装置120中存储有多个用户终端对多个应用的使用情况,例如,用户终端1上安装了应用A,用户终端2在某时刻使用了应用B,等等。此外,数据存储装置120中还存储有每个应用所属的类别,例如,贝贝网、蜜芽、宝贝格子、孩子王等应用属于母婴类;携程、去哪儿、飞猪等应用属于旅行类,等等。
计算设备200可以读取数据存储装置120中存储的数据,基于各用户终端对各应用的使用情况,来找出与同属于某一类别的几个种子应用相关联的用户终端,这些用户终端具有一定的共性,倾向于对种子应用产生类似的行为。这样,计算设备200便根据已经使用了各种子应用的用户终端,找出了有可能关注这些种子应用的用户终端,从而实现了人群扩散。计算设备200在完成了人群扩散分析后,种子应用所对应的应用服务器可以获取人群扩散的分析结果,也即获取种子应用的关联用户终端,并向这些关联用户终端推送信息,实现个性化推荐和精准营销。
图2示出了根据本发明一个实施例的计算设备200的单体配置示意图。在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,应用222包括人群扩散应用228,人群扩散应用228包括多条程序指令,而程序数据224可以包括由数据存储装置120中获取到的各用户终端对各应用的使用情况。应用228可以指示处理器204执行人群扩散方法300,对程序数据224进行分析处理,以实现快速、高效的人群扩散。
图3示出了根据本发明一个实施例的人群扩散方法300的流程图。方法300适于在计算设备(例如前述计算设备200)中执行。如图3所示,方法300始于步骤S310。
在步骤S310中,根据多个用户终端对多个应用的使用情况建立用户终端-应用二分图,二分图中的节点包括用户终端节点和应用节点,二分图中的边表示用户终端对应用的使用关系。
应当指出,用户终端-应用二分图有多种构建方式。根据一种实施例,二分图为无向无权图,二分图中的边表示用户终端对应用的安装关系。图4A示出了一个无向无权的二分图的拓扑结构示意图。如图4A所示,二分图中包括3个应用节点和5个用户终端节点,应用节点和用户终端节点之间的连边表示该用户终端上安装了该应用。根据另一种实施例,二分图为无向加权图,二分图中的边表示用户终端对应用的安装关系,边的权重为用户终端对应用的活跃程度。图4B示出了一个无向加权的二分图的拓扑结构示意图。图4B所示的二分图的拓扑结构与图4A相同,只不过图4B的二分图中的连边具有权重,边的权重根据用户终端对应用的活跃程度来确定,活跃程度越高,边的权重越大。应当指出,本发明对活跃程度的具体表示方法、以及活跃程度与权重之间的具体对应关系不做限制,例如,活跃程度可以用使用时长或使用频率来表示,相应地,权重可以根据用户终端对应用的使用时长乘以一定系数来确定,也可以根据用户终端对应用的使用频率来确定,还可以是使用时长与使用频率的加权求和。总之,本领域技术人员可以根据实际需要自行选择二分图的结构形式以及构建方法,本发明对此不做限制。
随后,在步骤S320中,将属于同一个类别的至少两个应用作为种子应用,形成种子应用集合。例如,贝贝网、蜜芽、宝贝格子、孩子王等应用属于母婴类,将贝贝网、蜜芽、宝贝格子作为种子应用,形成种子应用集合={贝贝网,蜜芽,宝贝格子}。应当指出,本领域技术人员可以自行选择种子应用的类别以及设置种子应用集合中所包括的种子应用的数量,本发明对种子应用所属的类别以及种子应用集合中所包括的种子应用的数量均不做限制。
随后,在步骤S330中,根据二分图来确定与种子应用集合相关联的用户终端集合。根据一种实施例,用户终端集合进一步按照以下步骤S332~S336来确定:
在步骤S332中,根据种子应用集合来确定概率向量q0,概率向量q0的长度为二分图中节点的数量n,概率向量q0中的每一个元素对应于二分图中的一个节点,其中,对应于种子应用节点的元素的值为1,其他元素的值均为0。例如,图4A所示的二分图包括8个节点,则概率向量q0的长度为8,q0中的各元素依次对应于节点1~节点8。选择应用1、应用2为种子应用,则概率向量q0=[1,1,0,0,0,0,0,0];选择应用2、应用3为种子应用,则概率向量q0=[0,1,1,0,0,0,0,0]。
随后,在步骤S334中,根据二分图来确定各节点之间的转移矩阵。转移矩阵M是一个n*n的矩阵,其中的元素mij表示从节点i出发,经过一步游走到达节点j的概率,也即节点i到节点j的转移概率。
应当指出,节点i到节点j的转移概率与预设的节点游走规则有关,相应地,不同节点游走规则下的转移矩阵M也不相同。根据一种实施例,将节点游走规则设置为:某个节点在下一时刻有1/2的概率停留在其本身,有1/2的概率随机游走至其相邻节点。例如,如图4A所示,节点1的相邻节点为节点4、6、8,则节点1在下一时刻停留在其本身的概率为1/2,游走至节点4、6、8的概率均为1/6。在这种节点游走规则下,转移矩阵M按照以下公式计算:
M=(BD-1+I)/2 (1)
其中,B为二分图的邻接矩阵,当二分图为无向无权图时,B中的元素bij表示节点i与节点j之间是否有边相连,其取值相应地为1或0(有边相连bij=1,无边相连bij=0);当二分图为无向加权图时,B中的元素bij表示节点i与节点j的连边的权重;D为对角矩阵,D中的元素di为二分图中第i个节点的度,有di=∑jbij;I为单位矩阵。
根据另一种实施例,将节点游走规则设置为:某个节点在下一个时刻有相同的概率游走至其相邻节点,例如,如图4A所示,节点1的相邻节点为节点4、节点6、节点8,则节点1在下一个时刻游走至节点4、6、8的概率均为1/3。在这种节点游走规则下,转移矩阵M按照以下公式计算:
M=BD-1 (2)
其中,公式(2)中各参数的含义与公式(1)中相同。
应当指出,以上仅列出节点游走规则以及转移矩阵M的两个示例,在其他实施例中,也可以设置其他的节点游走规则并设置相应的转移矩阵M。本领域技术人员可以根据实际需要自行设置节点游走规则以及转移矩阵M的计算方式,本发明对转移矩阵M的具体计算方式不做限制。
随后,在步骤S336中,根据转移矩阵来循环更新概率向量,每更新一次概率向量后,将概率向量中值最大的j个元素所对应的节点构成中间节点集合Sj,j依次设置为预设数量k、k+1、k+2、…、n;判断中间节点集合Sj和当前的概率向量是否满足预设的终止条件,若是,则将中间节点集合Sj中的k个用户终端节点加入用户终端集合。
根据一种实施例,更新概率向量的次数tlast按照以下公式确定:
其中,l为中间常数,V为二分图的节点集合,vol(V)表示二分图中所有节点的度的和,为传导性阈值,c1为常数,表示向上取整。应当指出,传导性阈值是一个预设的常数。的取值可以由本领域技术人员自行设置,本发明对二者的取值不做限制。例如,c1=200。
在按照上述公式(3)、(4)确定了更新概率向量的次数tlast后,根据转移矩阵M来循环更新tlast次概率向量。初始时刻的概率向量为q0,更新一次后的概率向量为q1,更新两次后的概率向量为q2,以此类推,更新tlast次后的概率向量为将经过t次更新后的概率向量记为qt,1≤t≤tlast,概率向量qt中的元素值均小于等于1。根据一种实施例,按照以下步骤更新一次概率向量:用转移矩阵M乘以当前的概率向量qt-1,以得到更新后的概率向量qt,即,按照以下公式更新概率向量:
qt=Mqt-1 (5)
也就是说,更新后的概率向量qt为上一时刻的概率向量qt-1经过一步随机游走而得出。
根据一种实施例,为了避免小值数据相乘所造成的时间和存储空间消耗,在采用公式(5)更新概率向量qt-1之前,还包括步骤:将当前的概率向量qt-1中小于预设阈值的元素值设置为0。即,按照以下公式更新概率向量:
rt-1=[qt-1]ε (6)
qt=Mrt-1 (7)
其中,rt-1为中间向量,[qt-1]ε表示根据中间常数ε来确定预设阈值,并将概率向量qt-1中小于预设阈值的元素值设置为0。
应当指出,概率向量qt-1中每一个元素所对应的预设阈值可以相同,也可以不同。根据一种实施例,概率向量qt-1中每一个元素所对应的预设阈值不尽相同,每一个元素所对应的预设阈值按照以下公式确定:
ε=1/(c2(l+2)tlast2b) (8)
fi=diε (9)
其中,fi表示第i个元素对应的预设阈值,di表示第i个元素所对应的节点的度,ε为中间常数,c2、b为常数,且b为正整数,式(8)中的l按照前述公式(3)来计算,tlast按照前述公式(4)来计算。应当指出,c2、b的具体取值可以由本领域技术人员自行设置,本发明对此不做限制,但是,c2、b的取值应当使得中间常数ε的值很小。例如,可以设置c2=1800,b=10。
每按照公式(5)或公式(6)(7)更新得到概率向量qt后,将概率向量qt中值最大的j个元素所对应的节点构成中间节点集合Sj,j依次设置为预设数量k、k+1、k+2、…、n,n为二分图中节点的数量。判断中间节点集合Sj和当前的概率向量qt是否满足预设的终止条件,若是,则将中间节点集合Sj中的k个用户终端节点加入用户终端集合。例如,对于概率向量qt,首先将其中值最大的k个元素所对应的节点构成中间节点集合Sj,此时中间节点集合Sj包括k个元素。判断该中间节点集合Sj以及概率向量qt是否满足预设的终止条件,若是,则将中间节点集合Sj中的k个用户终端节点加入用户终端集合,终止步骤S330。若否,则接下来将概率向量qt中值最大的k+1个元素所对应的节点构成中间节点集合Sj,此时中间节点集合Sj包括k+1个元素。判断该中间节点集合Sj以及概率向量qt是否满足预设的终止条件,若是,则将中间节点集合Sj中的k个用户终端节点加入用户终端集合,终止步骤S330。若否,则接下来将概率向量qt中值最大的k+2个元素所对应的节点构成中间节点集合Sj,…,以此类推。若直至中间节点集合Sj中包括二分图中的所有n个节点时,中间节点集合Sj以及概率向量qt仍不满足预设的终止条件,则将用户终端集合设置为空集,终止步骤S330。根据一种实施例,为了便于找到用户终端集合中与种子应用集合关联性更高的用户终端,将用户终端集合中的k个用户终端节点按照在概率向量qt中所对应的元素值由大到小的顺序排列,用户终端节点在概率向量qt中所对应的元素值越大,其与种子应用集合的关联性越高。
根据一种实施例,预设的终止条件包括以下四种中的一种或多种:
1、中间节点集合Sj中所包括的用户终端节点的数量大于等于预设数量k。该条件可以保证用户终端集合中包括至少k个用户终端,使得用户终端集合中的用户终端的数量满足预设数量k,而不至于太少。
2、中间节点集合Sj中的所有节点的度的和大于等于第一阈值且小于等于第二阈值。该条件可以保证中间节点集合中所包括的节点的度的和不至于太大,也不至于太小,相应地,用户终端集合中所包括的用户终端的数量也比较适中,不会因用户终端的数量过少而达不到人群扩散的目的,也不会因用户终端的数量过多而丧失人群扩散的准确性和目标性。应当指出,第一阈值、第二阈值的具体取值可以由本领域技术人员自行设置,本发明对此不做限制。根据一种实施例,第一阈值为2b,第二阈值为5vol(V)/6,也即,中间节点集合Sj中的所有节点的度的和应当满足以下不等式:
不等式(10)中的b与公式(8)中的b相同,vol(Sj)表示中间节点集合Sj中的所有节点的度的和,vol(V)表示二分图中所有节点的度的和。
3、当前概率向量qt中第j大的元素值与该元素值所对应的节点的度的比值大于等于第三阈值。该条件可以保证中间节点集合Sj中的节点具有较大的概率质量。应当指出,第三阈值的具体取值可以由本领域技术人员自行设置,本发明对此不做限制。根据一种实施例,第三阈值为(l+2)2b/c3,其中,c3为常数,c3的取值亦可以由本领域技术人员自行设置,例如,c3=140,也即,当前概率向量qt中第j大的元素值与该元素值所对应的节点的度的比值需满足以下不等式:
其中,qt(π(j))表示当前概率向量qt中第j大的元素值,d(π(j))表示概率向量qt中第j大的元素值所对应的节点的度,c3、l、b均为常数,其中,l按照前述公式(3)来计算,b与前述公式(8)、(10)相同。
4、中间节点集合Sj的传导性小于等于传导性阈值也即,中间节点集合Sj的传导性需满足以下不等式:
该条件可以保证中间节点集合Sj中的各节点联系紧密,而该集合Sj与该集合之外的其他节点的联系不紧密,从而保证集合Sj中的各节点关联性更高,且与集合Sj之外的节点区别性较大,对于Sj中的用户终端节点来说,这些用户终端节点的相似性更高,更容易对同一个或同一类应用产生相似的行为。
中间节点集合Sj的传导性按照以下公式来计算:
其中,为二分图的节点集合V与中间节点集合Sj的差集,表示二分图中连接集合Sj中的一个节点和集合中的一个节点的边的数量,min{}表示取最小值,vol(Sj)、分别表示集合Sj中各节点的度的和。
应当指出,步骤S330中的终止条件可以是以上1~4四种条件的任意组合,例如,将终止条件设置为上述条件1~3的组合,也就是说,在中间节点集合Sj以及概率向量qt同时满足上述条件1~3时,终止步骤S330。又例如,将终止条件设置为上述条件2~4的组合,也就是说,在中间节点集合Sj以及概率向量qt同时满足上述条件2~4时,终止步骤S330。当然,除这两种条件组合之外,本领域技术人员还可以根据实际需要选用其他条件组合,本发明对终止条件的具体设置不做限制。
根据一种实施例,步骤S330可以按照以下伪代码来表述:
输入:二分图G,种子应用集合Va,预设数量k,传导性阈值正整数b
输出:包括k个用户终端的用户终端集合
执行步骤:
随后,在步骤S340中,将用户终端集合中的用户终端作为各种子应用的关联用户终端。关联用户终端即有可能关注种子应用的用户终端,从而实现了人群扩散。在实现了人群扩散后,种子应用所对应的应用服务器可以获取种子应用的关联用户终端,并向这些关联用户终端推送信息,实现个性化推荐和精准营销。
以上详细介绍了人群扩散方法300的计算流程。由于用户终端的数量巨大,应用的数量也日益增加,相应地,概率向量qt中所包括的元素的数量巨大,高达十亿数量级,相应地,转移矩阵M的维数很大,且很稀疏。根据一种实施例,为了进一步提高人群扩散方法300的执行速度和执行效率,本发明也对实施方法300的计算设备200的组织架构做了一定优化。在本发明中,计算设备200实现为由多个节点所组成的Parameter Server架构的分布式系统。系统中包括两类节点:参数服务节点(parameter server)和计算节点(worker),计算节点负责对分配到自己本地的数据进行计算,并更新对应的参数;参数服务节点作为服务方接受计算节点的参数查询和更新请求。具体到本发明的人群扩散方法300,在参数服务节点处存储概率向量qt以及中间向量rt,在计算节点处存储转移矩阵M,qt、rt的更新由各计算节点合作完成,每个计算节点负责更新qt、rt的一部分,这样,实现了qt、rt的异步更新,减少了计算时间,提高了计算效率和可靠性。进一步地,转移矩阵M在计算节点处以压缩的数据格式(例如CSRMatrix等)存储,使得整个转移矩阵M都可以放在计算节点的内存中,从而加快数据读取速度,进一步提高人群扩散方法300的执行效率。
本发明可实现快速、高效的人群扩散分析。本发明对数据的要求较低,且更符合人群扩散的逻辑,增加了人群扩散结果在业务层上的解释性。此外,本发明的人群扩散算法便于移植,从而可以实现不同应用场景下的人群扩散。
A9:A8所述的方法,其中,所述预设阈值按照以下公式确定:
ε=1/(c2(l+2)tlast2b)
fi=diε
其中,fi表示第i个元素对应的预设阈值,di表示第i个元素所对应的节点的度,ε为中间常数,c2、b为常数,且b为正整数。
A10:A9所述的方法,其中,所述终止条件包括以下中的一种或多种:
中间节点集合Sj中所包括的用户终端节点的数量大于等于所述预设数量k;
中间节点集合Sj中的所有节点的度的和大于等于第一阈值且小于等于第二阈值;
当前概率向量中第j大的元素值与该元素值所对应的节点的度的比值大于等于第三阈值;
中间节点集合Sj的传导性小于等于所述传导性阈值所述传导性按照公式来计算,其中,为二分图的节点集合V与中间节点集合Sj的差集,表示所述二分图中连接集合Sj中的一个节点和集合中的一个节点的边的数量,min{}表示取最小值,vol(Sj)、分别表示集合Sj中各节点的度的和。
A11:A10所述的方法,其中,所述第一阈值为2b,所述第二阈值为5vol(V)/6,所述第三阈值为(l+2)2b/c3,其中,c3为常数。
A12:A4-11中任一项所述的方法,其中,所述将中间节点集合Sj中的k个用户终端节点加入用户终端集合的步骤还包括:将k个用户终端节点按照在概率向量中所对应的元素值由大到小的顺序排列。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的人群扩散方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.一种人群扩散方法,在计算设备中执行,所述计算设备与数据存储装置连接,所述数据存储装置中存储有多个用户终端对多个应用的使用情况以及每个应用所属的类别,所述方法包括:
根据多个用户终端对多个应用的使用情况建立用户终端-应用二分图,所述二分图中的节点包括用户终端节点和应用节点,所述二分图中的边表示用户终端对应用的使用关系;
将属于同一个类别的至少两个应用作为种子应用,形成种子应用集合;
根据所述二分图来确定与所述种子应用集合相关联的用户终端集合;
将所述用户终端集合中的用户终端作为各种子应用的关联用户终端。
2.如权利要求1所述的方法,其中,所述二分图为无向无权图,所述二分图中的边表示用户终端对应用的安装关系。
3.如权利要求1所述的方法,其中,所述二分图为无向加权图,所述二分图中的边表示用户终端对应用的安装关系,边的权重为用户终端对应用的活跃程度。
4.如权利要求1-3中任一项所述的方法,根据所述二分图来确定与所述种子应用集合相关联的用户终端集合的步骤包括:
根据所述种子应用集合来确定概率向量,所述概率向量的长度为所述二分图中节点的数量n,所述概率向量中的每一个元素对应于所述二分图中的一个节点,其中,对应于种子应用节点的元素的值为1,其他元素的值均为0;
根据所述二分图来确定各节点之间的转移矩阵;
根据所述转移矩阵来循环更新所述概率向量,每更新一次概率向量后,将概率向量中值最大的j个元素所对应的节点构成中间节点集合Sj,所述j依次设置为预设数量k、k+1、k+2、…、n;判断中间节点集合Sj和当前的概率向量是否满足预设的终止条件,若是,则将中间节点集合Sj中的k个用户终端节点加入用户终端集合。
5.如权利要求4所述的方法,其中,所述转移矩阵按照以下公式确定:
M=(BD-1+I)/2
其中,M为转移矩阵;B为所述二分图的邻接矩阵,当所述二分图为无向无权图时,B中的元素bij表示节点i与节点j之间是否有边相连,其取值相应地为1或0,当所述二分图为无向加权图时,B中的元素bij表示节点i与节点j的连边的权重;D为对角矩阵,D中的元素di为二分图中第i个节点的度,有di=∑jbij;I为单位矩阵。
6.如权利要求4或5所述的方法,其中,更新概率向量的次数按照以下公式确定:
其中,tlast为更新概率向量的次数,l为中间常数,V为所述二分图的节点集合,vol(V)表示二分图中所有节点的度的和,为传导性阈值,c1为常数,表示向上取整。
7.如权利要求6所述的方法,其中,按照以下步骤更新一次概率向量:用所述转移矩阵乘以当前的概率向量,以得到更新后的概率向量。
8.如权利要求7所述的方法,其中,在用所述转移矩阵乘以当前的概率向量的步骤之前,还包括步骤:将当前的概率向量中小于预设阈值的元素值设置为0。
9.一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-8中任一项所述的人群扩散方法。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-8中任一项所述的人群扩散方法。
CN201810182825.8A 2018-03-06 2018-03-06 一种人群扩散方法及计算设备 Active CN108491465B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810182825.8A CN108491465B (zh) 2018-03-06 2018-03-06 一种人群扩散方法及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810182825.8A CN108491465B (zh) 2018-03-06 2018-03-06 一种人群扩散方法及计算设备

Publications (2)

Publication Number Publication Date
CN108491465A true CN108491465A (zh) 2018-09-04
CN108491465B CN108491465B (zh) 2020-10-16

Family

ID=63341464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810182825.8A Active CN108491465B (zh) 2018-03-06 2018-03-06 一种人群扩散方法及计算设备

Country Status (1)

Country Link
CN (1) CN108491465B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160092774A1 (en) * 2014-09-29 2016-03-31 Pivotal Software, Inc. Determining and localizing anomalous network behavior
CN106156113A (zh) * 2015-04-03 2016-11-23 Tcl集团股份有限公司 一种视频推荐的方法、系统及电子设备
CN106326345A (zh) * 2016-08-08 2017-01-11 浙江工业大学 一种基于用户行为的社交网络中朋友关系挖掘方法
CN106570082A (zh) * 2016-10-19 2017-04-19 浙江工业大学 一种结合网络拓扑特征和用户行为特征的朋友关系挖掘方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160092774A1 (en) * 2014-09-29 2016-03-31 Pivotal Software, Inc. Determining and localizing anomalous network behavior
CN106156113A (zh) * 2015-04-03 2016-11-23 Tcl集团股份有限公司 一种视频推荐的方法、系统及电子设备
CN106326345A (zh) * 2016-08-08 2017-01-11 浙江工业大学 一种基于用户行为的社交网络中朋友关系挖掘方法
CN106570082A (zh) * 2016-10-19 2017-04-19 浙江工业大学 一种结合网络拓扑特征和用户行为特征的朋友关系挖掘方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
关雲菲: "改进的基于二部图网络结构的推荐算法", 《信息技术》 *
吴潇: "基于加权二分图模型的APP信息传播特性", 《吉林大学学报(工学版)》 *
王雅静: "基于二部图网络的协同过滤推荐算法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
陈天昊: "互联网电影推荐方法的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Also Published As

Publication number Publication date
CN108491465B (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN112085172B (zh) 图神经网络的训练方法及装置
CN107786943B (zh) 一种用户分群方法及计算设备
CN112085615B (zh) 图神经网络的训练方法及装置
US8990209B2 (en) Distributed scalable clustering and community detection
CN114048331A (zh) 一种基于改进型kgat模型的知识图谱推荐方法及系统
CN112214499B (zh) 图数据处理方法、装置、计算机设备和存储介质
TW201939366A (zh) 推薦系統構建方法及裝置
US11176217B2 (en) Taxonomy-based system for discovering and annotating geofences from geo-referenced data
CN113255798A (zh) 一种分类模型训练方法、装置、设备及介质
CN112348079B (zh) 数据降维处理方法、装置、计算机设备及存储介质
CN111695046B (zh) 基于时空移动数据表征学习的用户画像推断方法及装置
CN111611390B (zh) 一种数据处理方法及装置
CN114119123A (zh) 信息推送的方法和装置
CN114493674A (zh) 一种广告点击率预测模型及方法
CN116629984B (zh) 基于嵌入模型的产品信息推荐方法、装置、设备和介质
CN108491465B (zh) 一种人群扩散方法及计算设备
CN116720009A (zh) 一种社交机器人检测方法、装置、设备及存储介质
CN115238134A (zh) 用于生成图数据结构的图向量表示的方法及装置
CN111275176B (zh) 分布式计算方法及分布式计算系统
CN115659059A (zh) 基于图对比学习的推荐模型训练方法和装置
CN109460490B (zh) 社交网络中中心顶点的确定方法、装置、设备及存储介质
CN112036418A (zh) 用于提取用户特征的方法和装置
CN110033098A (zh) 在线gbdt模型学习方法及装置
EP4318375A1 (en) Graph data processing method and apparatus, computer device, storage medium and computer program product
WO2024114154A1 (zh) 噪声数据确定模型的训练、噪声数据的确定方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 100027 302, 3 / F, aviation service building, Dongzhimen street, Dongcheng District, Beijing

Patentee after: BEIJING TENDCLOUD TIANXIA TECHNOLOGY Co.,Ltd.

Address before: Room 2104, 2 / F, building 4, 75 Suzhou street, Haidian District, Beijing 100027

Patentee before: BEIJING TENDCLOUD TIANXIA TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A crowd diffusion method and computing equipment

Effective date of registration: 20220622

Granted publication date: 20201016

Pledgee: Beijing Yizhuang International Financing Guarantee Co.,Ltd.

Pledgor: BEIJING TENDCLOUD TIANXIA TECHNOLOGY CO.,LTD.

Registration number: Y2022980008462

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230721

Granted publication date: 20201016

Pledgee: Beijing Yizhuang International Financing Guarantee Co.,Ltd.

Pledgor: BEIJING TENDCLOUD TIANXIA TECHNOLOGY CO.,LTD.

Registration number: Y2022980008462

PC01 Cancellation of the registration of the contract for pledge of patent right