CN110019989B - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN110019989B
CN110019989B CN201910276296.2A CN201910276296A CN110019989B CN 110019989 B CN110019989 B CN 110019989B CN 201910276296 A CN201910276296 A CN 201910276296A CN 110019989 B CN110019989 B CN 110019989B
Authority
CN
China
Prior art keywords
vertex
target
outgoing
history
determining
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.)
Active
Application number
CN201910276296.2A
Other languages
English (en)
Other versions
CN110019989A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910276296.2A priority Critical patent/CN110019989B/zh
Publication of CN110019989A publication Critical patent/CN110019989A/zh
Priority to PCT/CN2020/079459 priority patent/WO2020207197A1/zh
Priority to EP20786716.9A priority patent/EP3955133A4/en
Priority to US17/372,099 priority patent/US11450042B2/en
Application granted granted Critical
Publication of CN110019989B publication Critical patent/CN110019989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Computing Systems (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例公开了一种数据处理方法及装置,该方法包括:获取与目标游走顶点相邻的历史游走顶点的出边信息;根据历史游走顶点的出边信息,确定目标游走顶点与第一出邻集合中的每个顶点的边转移概率;根据边转移概率在第一出邻集合中确定待游走顶点;基于所述第一出邻集合生成目标游走顶点对应的出边信息,并将目标游走顶点对应的出边信息发送至待游走顶点所属的设备,将目标游走顶点确定为待游走顶点相邻的历史游走顶点,将待游走顶点确定为目标游走顶点;若目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成目标游走顶点对应的随机游走序列。采用本发明实施例,可动态计算每个顶点对应的边转移概率,节省了系统的内存容量。

Description

一种数据处理方法及装置
技术领域
本发明涉及数据处理的技术领域,尤其涉及一种数据处理方法及装置。
背景技术
图(Graph)在现实应用中无处不在,图能够有效地表达实体之间的关联性,比如社交媒体网络中不同账号之间的关联性、电商平台中商品与客户之间的关联性、万维网的网页信息之间的关联性。但是,图往往对应有大量的顶点与大量的边,并且边与顶点又会关联大量的元数据,比如用户的性别、年龄、地理位置等。因此,对能够快速准确地进行图计算提出了更高的要求。
现有技术中,在对图中所有顶点通过随机游走的算法进行图计算之前,会预先将图中顶点与顶点之间的边转移概率基于边转移概率矩阵进行存储,因此,在对图中顶点进行随机游走时,可以直接从边转移概率矩阵中获取顶点与顶点之间的边转移概率以实现随机游走。但是,由于图包含的顶点数量巨大,图对应的边转移概率矩阵占系统的容量也非常大。
发明内容
本发明实施例提供了一种数据处理方法及装置,可在图计算任务中节省系统的内存容量。
本发明实施例一方面提供了一种数据处理方法,包括:
获取与目标游走顶点相邻的历史游走顶点对应的出边信息;所述历史游走顶点对应的出边信息是由所述历史游走顶点传递到所述目标游走顶点的;
根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;所述第一出邻集合是指所述目标游走顶点对应的出邻集合;
根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息传递至所述待游走顶点,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;
若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;所述初始游走顶点是所述随机游走序列中的起始顶点。
其中,所述初始游走顶点是在目标图中的顶点;其特征在于,还包括:
获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为原始顶点;
分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;
在已触发所述随机游走任务的原始顶点中确定所述初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点。
其中,所述根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率,包括:
根据所述历史游走顶点对应的出边信息确定目标出边信息;
获取所述第一出邻集合;
根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;所述第二出邻集合是指所述历史游走顶点对应的出邻集合;
在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
根据所述转移权重以及缩放倍数确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的初始概率;
将所述初始概率归一化,基于归一化之后的初始概率确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率。
其中,若所述历史游走顶点对应的出边信息包括所述第二出邻集合、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数,则所述目标出边信息为所述历史游走顶点对应的出边信息。
其中,所述历史游走顶点对应的出边信息中包括图划分标识信息、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数;所述图划分标识信息用于区分在目标图中划分的不同子图所属的顶点;
所述根据所述历史游走顶点对应的出边信息确定目标出边信息,包括:
当根据所述图划分标识信息确定所述历史游走顶点与所述目标游走顶点同属于一个子图中的顶点时,获取所述第二出邻集合;
将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息。
其中,所述历史游走顶点对应的出边信息中包括指示信息、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数;所述指示信息用于表征所述历史游走顶点为非首次访问且属于高频访问类型的顶点;
所述根据所述历史游走顶点对应的出边信息确定目标出边信息,包括:
基于所述指示消息在哈希表中获取与所述历史游走顶点的标识信息对应的所述第二出邻集合;
将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息。
其中,所述根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数,包括:
根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型;
根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数。
其中,所述顶点类型包括第一类型顶点、第二类型顶点以及第三类型顶点;所述根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型,包括:
将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;
将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;
将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点。
其中,还包括:
当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的出度值;
当所述出度值达到第一度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第一度量值阈值是基于系统的内存容量、目标图中所有顶点的出度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,还包括:
当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的入度值;
当所述入度值达到第二度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第二度量值阈值是基于系统的内存容量、目标图中所有顶点的入度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,还包括:
当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的访问次数值;
当所述访问次数值达到第三度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第三度量值阈值是基于系统的内存容量、目标图中所有顶点的访问次数值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,所述根据所述边转移概率在所述第一出邻集合中确定所述目标游走顶点的待游走顶点,包括:
根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数分别确定所述第一出邻集合中的每个顶点的权重累积和;
根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;
基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;
根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点。
其中,所述根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数分别确定所述第一出邻集合中的每个顶点的权重累积和,包括:
在所述第一出邻集合中确定目标待处理顶点;
根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和;
根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和;
根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和确定所述目标待处理顶点的权重累积和;
将所述第一出邻集合中的每个顶点确定为所述目标待处理顶点,确定所述第一出邻集合中的每个顶点的权重累积和。
其中,所述根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和,包括:
基于顶点的标识信息的数值,对所述第一类型顶点与所述第二类型顶点进行排序,并根据排序之后的第一类型顶点与第二类型顶点生成第一顶点数组;
基于所述第一顶点数组中每个顶点的排序关系、根据所述目标游走顶点与所述第一顶点数组中的每个顶点之间的转移权重以及缩放倍数,确定所述第一顶点数组中的每个顶点的权重累积和,并根据所述第一顶点数组中的每个顶点的权重累积和生成权重数组;
在所述第一顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的顶点,将查找到的所有顶点确定为所述第一待处理顶点;
在所述权重数组中获取所述第一待处理顶点中顶点的标识信息的数值最大的顶点对应的权重累积和,将获取到的权重累积和确定为所述第一待处理顶点的权重累积和。
其中,所述根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和,包括:
基于顶点的标识信息的数值,对所述第一出邻集合中的所有顶点进行排序,并根据排序之后的所有顶点生成第二顶点数组;
在所述第二顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的所有顶点,将查找到的所有顶点确定为待选择顶点,并将所述待选择顶点中除所述第一待处理顶点之外的所有顶点确定为所述第二待处理顶点;
根据所述目标游走顶点与所述第二待处理顶点中的每个顶点的转移权重以及缩放倍数确定所述第二待处理顶点的权重累积和。
本发明实施例一方面提供了一种数据处理装置,包括:
第一获取模块,用于获取与目标游走顶点相邻的历史游走顶点对应的出边信息;所述历史游走顶点对应的出边信息是由所述历史游走顶点传递到所述目标游走顶点的;
概率获取模块,用于根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;所述第一出邻集合是指所述目标游走顶点对应的出邻集合;
顶点确定模块,用于根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
第一游走模块,用于基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息传递至所述待游走顶点,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;
序列生成模块,用于若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;所述初始游走顶点是所述随机游走序列中的起始顶点。
其中,所述初始游走顶点是在目标图中的顶点;所述数据处理装置还包括:
第二获取模块,用于获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为原始顶点;
触发模块,用于分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;
第二游走模块,用于在已触发所述随机游走任务的原始顶点中确定所述初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点。
其中,所述概率获取模块,包括:
第一确定单元,用于根据所述历史游走顶点对应的出边信息确定目标出边信息;
第一获取单元,用于获取所述第一出邻集合;
第二确定单元,用于根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;所述第二出邻集合是指所述历史游走顶点对应的出邻集合;
第二获取单元,用于在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
概率确定单元,用于根据所述转移权重以及缩放倍数确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的初始概率;
第三确定单元,用于将所述初始概率归一化,基于归一化之后的初始概率确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率。
其中,若所述历史游走顶点对应的出边信息包括所述第二出邻集合、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数,则所述目标出边信息为所述历史游走顶点对应的出边信息。
其中,所述历史游走顶点对应的出边信息中包括图划分标识信息、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数;所述图划分标识信息用于区分在目标图中划分的不同子图所属的顶点;
所述第一确定单元,包括:
第一获取子单元,用于当根据所述图划分标识信息确定所述历史游走顶点与所述目标游走顶点同属于一个子图中的顶点时,获取所述第二出邻集合;
第一确定子单元,用于将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息。
其中,所述历史游走顶点对应的出边信息中包括指示信息、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数;所述指示信息用于表征所述历史游走顶点为非首次访问且属于高频访问类型的顶点;
所述第一确定单元,还包括:
第二获取子单元,用于基于所述指示消息在哈希表中获取与所述历史游走顶点的标识信息对应的所述第二出邻集合;
第二确定子单元,用于将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息。
其中,所述第二确定单元,包括:
类型确定子单元,用于根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型;
第三确定子单元,用于根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数。
其中,所述顶点类型包括第一类型顶点、第二类型顶点以及第三类型顶点;所述类型确定子单元,包括:
第四确定子单元,用于将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;
第五确定子单元,用于将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;
第六确定子单元,用于将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点。
其中,所述数据处理装置还包括:
第一检测模块,用于当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的出度值;
第一缓存模块,用于当所述出度值达到第一度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第一度量值阈值是基于系统的内存容量、目标图中所有顶点的出度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,所述数据处理装置还包括:
第二检测模块,用于当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的入度值;
第二缓存模块,用于当所述入度值达到第二度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第二度量值阈值是基于系统的内存容量、目标图中所有顶点的入度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,所述数据处理装置还包括:
第三检测模块,用于当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的访问次数值;
第三缓存模块,用于当所述访问次数值达到第三度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第三度量值阈值是基于系统的内存容量、目标图中所有顶点的访问次数值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,所述顶点确定模块,包括:
第四确定单元,用于根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数分别确定所述第一出邻集合中的每个顶点的权重累积和;
第五确定单元,用于根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;
生成单元,用于基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;
第六确定单元,用于根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点。
其中,所述第四确定单元,包括:
第七确定子单元,用于在所述第一出邻集合中确定目标待处理顶点;
第八确定子单元,用于根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和;
第九确定子单元,用于根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和;
第十确定子单元,用于根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和确定所述目标待处理顶点的权重累积和;
第十一确定子单元,用于将所述第一出邻集合中的每个顶点确定为所述目标待处理顶点,确定所述第一出邻集合中的每个顶点的权重累积和。
其中,所述第八确定子单元,包括:
第一排序子单元,用于基于顶点的标识信息的数值,对所述第一类型顶点与所述第二类型顶点进行排序,并根据排序之后的第一类型顶点与第二类型顶点生成第一顶点数组;
数组生成子单元,用于基于所述第一顶点数组中每个顶点的排序关系、根据所述目标游走顶点与所述第一顶点数组中的每个顶点之间的转移权重以及缩放倍数,确定所述第一顶点数组中的每个顶点的权重累积和,并根据所述第一顶点数组中的每个顶点的权重累积和生成权重数组;
第一查找子单元,用于在所述第一顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的顶点,将查找到的所有顶点确定为所述第一待处理顶点;
第三获取子单元,用于在所述权重数组中获取所述第一待处理顶点中顶点的标识信息的数值最大的顶点对应的权重累积和,将获取到的权重累积和确定为所述第一待处理顶点的权重累积和。
其中,所述第九确定子单元,包括:
第二排序子单元,用于基于顶点的标识信息的数值,对所述第一出邻集合中的所有顶点进行排序,并根据排序之后的所有顶点生成第二顶点数组;
第二查找子单元,用于在所述第二顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的所有顶点,将查找到的所有顶点确定为待选择顶点,并将所述待选择顶点中除所述第一待处理顶点之外的所有顶点确定为所述第二待处理顶点;
第十二确定子单元,用于根据所述目标游走顶点与所述第二待处理顶点中的每个顶点的转移权重以及缩放倍数确定所述第二待处理顶点的权重累积和。
本发明一方面提供了一种数据处理装置,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如本发明实施例中一方面中的方法。
本发明实施例另一方面提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述一方面中的方法。
本发明实施例通过获取与目标游走顶点相邻的历史游走顶点对应的出边信息;根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;根据所述边转移概率在所述第一出邻集合中确定待游走顶点;基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息发送至所述待游走顶点所属的设备,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列。由此可见,本发明实施例基于目标游走顶点对应的设备接收历史游走顶点发送的出边信息,从而实时动态地计算目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,最后确定待游走顶点,此间过程中无需预先存储目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,节省了系统的内存容量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种分布式图计算的架构示意图;
图1b是本发明实施例提供的一种顶点游走过程的场景示意图;
图2是本发明实施例提供的一种数据处理方法的流程示意图;
图3是本发明实施例提供的一种获取边转移概率方法的流程示意图;
图4a是本发明实施例提供的一种创建哈希表的场景示意图;
图4b是本发明实施例提供的一种获取出邻集合的架构示意图;
图5是本发明实施例提供的一种确定目标出边信息的场景示意图;
图6是本发明实施例提供的另一种数据处理方法的流程示意图;
图7是本发明实施例提供的一种确定待游走顶点方法的流程示意图;
图8是本发明实施例提供的一种计算权重累积和的场景示意图;
图9是本发明实施例提供的一种数据处理装置的结构示意图;
图10是本发明实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1a,是本发明实施例提供的一种分布式图计算的架构示意图。如图1a所示,分布式图处理平台可以与设备s1、设备s2、设备s3、设备s4进行通信,且设备s1、设备s2、设备s3、设备s4之间可以互相通信,设备s1至设备s4中每个设备均存储有目标图中各个顶点所关联的数据。这里以4个设备为例进行说明,设备的具体个数根据实际应用场景决定,此处不做限制。其中,上述设备s1中关联有图数据z1,图数据z1中可以有多个顶点;上述设备s2中关联有图数据z2,图数据z2中可以有多个顶点;上述设备s3中关联有图数据z3,图数据z3中可以有多个顶点;上述设备s4中关联有图数据为z4,图数据z4中可以有多个顶点。上述设备s1、设备s2、设备s3、设备s4关联的所有顶点可以构成一个目标图,后续可以在该目标图中进行二阶随机游走。例如,上述每个顶点可以对应于一个用户账号,即所述每个顶点所关联的数据可以是一个用户账号对应的数据信息,比如用户身份信息、位置信息等;又例如,上述每个顶点可以对应于一类商品,即所述每个顶点所关联的数据可以是一类商品对应的数据信息,比如销量信息、产地信息等。
请一并参见图1b,是本发明实施例提供的一种顶点游走过程的场景示意图。由于针对分布式图计算系统上的二阶游走过程中,当前顶点若是二阶随机游走任务中的初始顶点,则当前顶点的下一顶点是由当前顶点的相关信息决定的。若当前顶点不是二阶随机游走任务中的初始顶点,则当前顶点的下一个顶点是由当前顶点的上一个顶点的相关信息与当前顶点的相关信息决定的。因此,本发明实施例以历史游走顶点b1、目标游走顶点b2、待游走顶点b3为例来说明整个二阶随机游走任务。在分布式图计算系统中,针对一个目标图进行处理,所述目标图中包含若干个顶点,每一个顶点对应于一个设备,一个设备可对应于多个顶点,即历史游走顶点b1、目标游走顶点b2、待游走顶点b3分别都对应于一个设备,且历史游走顶点b1对应的设备、目标游走顶点b2对应的设备、待游走顶点b3对应的设备可以是同一设备,也可以是不同设备。其中,目标游走顶点b2不是二阶随机游走任务的初始顶点,历史游走顶点b1与目标游走顶点b2为相邻游走顶点。具体的,如图1b所示,游走顶点序列a1是以初始游走顶点b4为起始点并进行二阶随机游走任务所生成的一个顶点序列,其中,对于一个包含若干个顶点的目标图的二阶随机游走任务,所述目标图中的每一个顶点都可以作为初始游走顶点,且每个初始游走顶点都对应于一个独立的二阶随机游走任务,上述每一个初始游走顶点对应的二阶随机游走任务可以同时并行进行,上述每一个初始游走顶点对应的二阶随机游走任务都是以自身为起始点进行的,上述每一个初始游走顶点对应的二阶随机游走任务分别对应有一个确定步数,上述目标图中每一个初始游走顶点对应的二阶随机游走任务一起构成了所述目标图的随机游走任务。上述每一个初始游走顶点对应的二阶随机游走任务的游走规则一致,这里以上述初始游走顶点b4对应的游走顶点序列a1为例进行说明。
此处,假设上述历史游走顶点b1对应的设备是设备s1,上述目标游走顶点b2对应的设备是设备s2,上述待游走顶点b3对应的设备是设备s3。上述设备s1可以生成顶点b1对应的出边信息,所述顶点b1对应的出边信息中包括初始游走顶点b4的标识信息、上述历史游走顶点b1的标识信息、基于上述历史游走顶点b1的位置所述初始游走顶点b4对应的二阶随机游走任务的剩余步数、所述历史游走顶点b1的出邻集合。其中,上述出邻集合中包含若干个顶点,例如,顶点b1的出邻集合中包括顶点1、顶点2和顶点3,则表明所述顶点b1的下一个可能会游走到的顶点为所述顶点1、顶点2和顶点3中某一个顶点。上述设备s1发送顶点b1对应的出边信息至目标游走顶点b2对应的设备s2,即表示从上述历史游走顶点b1游走至所述目标游走顶点b2。每个顶点对应的设备可以从分布式图计算系统关联的图计算平台f中获取自己的出邻集合,所述设备s2可以从分布式图计算系统关联的图计算平台中获取所述目标游走顶点b2的出邻集合a2。所述设备s2通过接收到的历史游走顶点b1的出边信息获得顶点b1的出邻集合,并根据顶点b1的出邻集合与目标游走顶点b2的出邻集合,确定在所述出邻集合a2中每个顶点的缩放倍数,根据所述缩放倍数分别对出邻集合a2中每一个顶点与目标游走顶点b2之间的权重进行缩放,将缩放后的出邻集合a2中每个顶点对应的权重归一化,得到出邻集合a2中每个顶点对应与上述目标游走顶点之间的边转移概率。所述边转移概率是指顶点对应的边之间的转移概率,例如出邻集合a2中某个顶点与所述目标游走顶点之间的边转移概率是指,所述历史游走顶点与目标游走顶点构成的边到所述目标游走顶点与所述出邻集合a2中某个顶点构成的边之间的转移概率。根据出邻集合a2中每个顶点对应的边转移概率得到概率分布,根据所述概率分布在出邻集合a2中确定所述目标游走顶点的下一个顶点,即确定待游走顶点b3。其中,所述目标游走顶点到所述待游走顶点的边转移概率即是指:上述顶点b1与顶点b2所构成的边到所述顶点b2与上述顶点b3所构成的边之间的转移概率。即上述设备s2将所述目标游走顶点b2的出边信息发送至所述待游走顶点b3对应的设备s3,此时,将所述待游走顶点b3确定为新的目标游走顶点b3,所述目标游走顶点b2为新的目标游走顶点b3的历史游走顶点,根据上述描述的方法,基于所述设备s3,根据所述设备s2发送的出边信息中顶点b2的出邻集合与目标游走顶点b3的出邻集合确定所述目标游走顶点b3的待游走顶点,并持续上述游走过程,后续游走至的每一个顶点依次确定自己的待游走顶点,即下一个顶点,以完成上述初始游走顶点b4对应的随机游走任务,且后续每一个顶点确定自己的下一个顶点的规则与上述确定目标游走顶点的下一个顶点的规则一致。上一个顶点对应的设备可以向下一个顶点对应的设备发送相应的出边信息,下一个顶点对应的设备可以基于上一个顶点发送的出边信息,实时动态地计算自己的待游走顶点与自己的出邻集合中的每个顶点之间的边转移概率,从而确定自己的待游走顶点,此间过程中不需要预先将顶点与顶点之间的边转移概率通过边转移概率矩阵缓存下来,节省了系统容量。当上述目标图的随机游走任务完成之后,所述图处理平台f会生成每一个初始游走顶点对应的随机游走序列,所述每个随机游走序列包括了游走过的各个顶点之间的关联性,其中,一个顶点可以是关联的一个用户账号,用户账号的类型可以是购物账号、通信账号、时事新闻账号等,可以基于所述随机游走序列中包含的顶点与顶点之间的关联性向关联的用户账号推荐商品、好友、新闻等。
请参见图2,是本发明实施例提供的一种数据处理方法的流程示意图;为方便描述,本发明实施例以目标图中的某一个顶点为初始游走顶点,且以所述某一个顶点对应的初始游走顶点的二阶随机游走任务为例进行说明,可以理解的是,上述目标图中的每一个初始游走顶点对应的二阶随机游走任务相互独立,上述目标图中的每一个初始游走顶点对应的二阶随机游走任务中的游走规则与所述某一个顶点对应的初始游走顶点的二阶随机游走任务中的游走规则一致。
如图2所示,所述方法可以包括:
步骤S101,获取与目标游走顶点相邻的历史游走顶点对应的出边信息;所述历史游走顶点对应的出边信息是由所述历史游走顶点传递到所述目标游走顶点的;
具体的,获取与所述目标游走顶点相邻的历史游走顶点对应的出边信息,所述历史游走顶点即是所述目标游走顶点的上一个已经游走过的顶点,即所述目标游走顶点对应的设备接收由所述历史游走顶点对应的设备发送的历史游走顶点的出边信息。所述历史游走顶点对应的出边信息是由所述历史游走顶点对应的设备生成的,所述历史游走顶点对应的出边信息中包括当前二阶随机游走任务的初始游走顶点的标识信息、上述历史游走顶点的标识信息、基于上述历史游走顶点的位置当前二阶随机游走任务的剩余步数、上述历史游走顶点的出邻集合。所述历史游走顶点的出邻集合中包括多个顶点,所述历史游走顶点的下一个游走顶点(也可以称之为所述历史游走顶点的待游走顶点)为所述历史游走顶点的出邻集合中的某个顶点,所述历史游走顶点的出邻集合中每个顶点分别与所述历史游走顶点之间具有不同的边转移概率,即游走概率,也可以称之为访问概率。
步骤S102,根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;所述第一出邻集合是指所述目标游走顶点对应的出邻集合;
具体的,所述目标游走顶点对应的设备基于接收到的历史游走顶点对应的出边信息中所述历史游走顶点的出邻集合与所述目标游走顶点的出邻集合,确定所述目标游走顶点的出邻集合中的每个顶点的顶点类型,根据每个顶点的顶点类型分别确定所述每个顶点的缩放倍数,根据每个顶点的缩放倍数对所述每个顶点与目标游走顶点之间的权重进行缩放,将缩放后的每个顶点对应的权重进行归一化,得到每个顶点与所述目标游走顶点之间的边转移概率。其中,上述目标游走顶点的出邻集合中所有顶点对应的边转移概率之和为1,上述目标游走顶点对应的出邻集合也可以称之为第一出邻集合,所述第一出邻集合是基于所述目标游走顶点对应的设备在关联的图计算平台中直接获取得到的,每个顶点对应的设备可以在关联的图计算平台中获取每个顶点自己的出邻集合。由于,一个完整的目标图中的顶点数以及边数往往都异常巨大,所以顶点与顶点之间的边转移概率构成的边转移概率矩阵的数据量也非常多,通过在二阶随机游走任务中实时动态地计算顶点与顶点之间的边转移概率,可以不用保存顶点与顶点之间的边转移概率构成的边转移概率矩阵,解决了单机式图计算中需要保存数据量巨大的边转移概率矩阵的挑战,节省了图计算系统的内存容量。
步骤S103,根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
具体的,基于上述第一出邻集合中每个顶点与所述目标游走顶点之间通过缩放倍数进行缩放后的权重,根据均匀分布产生一个随机数,所述随机数的数值范围为0至1之间。通过上述第一出邻集合中每个顶点对应的边转移概率生成所述每个顶点的边转移概率累积和。通过比较上述随机数与每个顶点之间的边转移概率累积和的大小关系确定待游走顶点。例如,上述第一出邻集合中包括顶点1、顶点2、以及顶点3,所述顶点1与所述目标游走顶点之间的边转移概率为0.2,所述顶点2与所述目标游走顶点之间的边转移概率为0.3,所述顶点3与所述目标游走顶点之间的边转移概率为0.5。上述顶点1对应的标识信息(即顶点1的ID信息)为18,上述顶点2的标识信息为9,上述顶点3的标识信息为22,可以将上述顶点1、顶点2、顶点3进行任意排序,例如排序为顶点2、顶点1、顶点3,又例如排序为顶点3、顶点2、顶点1,其中,此处针对所述顶点1、顶点2、顶点3的排序规则没有限定,可以是任意顺序,之后在计算每个顶点对应的边转移概率累积和时,是基于排序后的顶点1、顶点2、顶点3对应计算得到;当上述顶点1、顶点2、顶点3排序为顶点2、顶点1、顶点3时,所述顶点2、顶点1、顶点3的边转移概率累积和依次为顶点2的边转移概率0.3,、顶点2与顶点1的边转移概率之和0.5、顶点2与顶点1以及顶点3的边转移概率之和1。可以理解为,按照上述顶点2、顶点1、顶点3分别对应的边转移概率累积和将长度为1的线段划分为3段子线段,假设上述顶点2、顶点1、顶点3对应的子线段的长度分别为L2、L1、L3,则顶点2对应的子线段长度L2的范围为0<L2≤0.3,顶点1对应的子线段长度L1的范围为0.3<L3≤0.5,顶点3对应的子线段长度L3的范围为0.5<L1≤1。当上述随机数为0.6时,则可以判断出所述随机数落在顶点3对应的子线段长度L3的范围0.5<L1≤1内,则将所述顶点3确定为所述目标游走顶点的待游走顶点。其中,上述随机数落在边转移概率累积和的哪一段数值范围内可以通过二分查找的方式确定,由于上述第一出邻集合中排序之后的每个顶点对应的边转移概率累积和为递增的数列,因此基于二分查找可以快速、准确地判断上述随机数落在边转移概率累积和的哪一段数值范围内,从而根据该段数值范围确定待游走顶点对应的边转移概率,进而确定出待游走顶点。
步骤S104,基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息传递至所述待游走顶点,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;
具体的,上述目标游走顶点对应的设备可以生成所述目标游走顶点的出边信息,所述出边信息中包括当前二阶随机游走任务的初始游走顶点的标识信息、上述目标游走顶点的标识信息、基于上述目标游走顶点的位置当前二阶随机游走任务的剩余步数、上述目标游走顶点的出邻集合。基于所述目标游走顶点对应的设备将所述目标游走顶点对应的出边信息发送至上述待游走顶点对应的设备,即表明游走至了所述待游走顶点。将所述目标游走顶点称之为所述待游走顶点的历史游走顶点,将所述待游走顶点称之为新的目标游走顶点,再次循环执行上述步骤S101-步骤S103所描述的过程,确定新的目标游走顶点的下一个顶点,即确定新的目标游走顶点的待游走顶点。
步骤S105,若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;所述初始游走顶点是所述随机游走序列中的起始顶点;
具体的,上述目标图中的每一个顶点都对应有一个确定步数的二阶随机游走任务,所述每一个顶点的二阶随机游走任务对应的确定步数根据游走过程中具体使用的游走算法决定,此处,将所述初始游走顶点对应的二阶随机游走任务的游走次数称之为所述游走步数阈值,当从所述初始游走顶点开始,基于上述描述的顶点之间的游走规则,持续游走次数达到所述游走步数阈值时,则表示所述初始游走顶点对应的二阶随机游走任务已经完成,根据随机游走时游走至的顶点的游走先后顺序,生成所述目标游走顶点对应的随机游走序列,即生成以所述初始游走顶点为起点的随机游走序列。
其中,实现上述目标图的随机游走任务的图处理平台可以是GraphLite(同步图计算框架)平台、GAS(分布式图计算)类型的图处理平台。
本发明实施例通过获取与目标游走顶点相邻的历史游走顶点对应的出边信息;根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;根据所述边转移概率在所述第一出邻集合中确定待游走顶点;基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息发送至所述待游走顶点所属的设备,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列。由此可见,本发明实施例基于目标游走顶点对应的设备接收历史游走顶点发送的出边信息,从而实时动态地计算目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,最后确定待游走顶点,此间过程中无需预先存储目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,节省了系统的内存容量。
请参见图3,是本发明实施例提供的一种获取边转移概率方法的流程示意图;图3中还描述了三种并列的获取目标出边信息的方法,即三种并列的获取历史游走顶点的出邻集合的方法,可以根据实际应用场景决定使用何种方法去获取所述历史游走顶点的出邻集合。下述步骤S201描述了第一种获取目标出边信息的方法,步骤S202-步骤S203描述了第二种获取目标出边信息的方法,步骤S204-步骤S206描述了第三种获取目标出边信息的方法。
如图3所示,所述方法可以包括:
步骤S201,若所述历史游走顶点对应的出边信息包括第二出邻集合,则所述目标出边信息为所述历史游走顶点对应的出边信息;
具体的,所述目标游走顶点对应的设备可以接收由上述历史游走顶点对应的设备发送的上述历史游走顶点对应的出邻集合,其中,所述历史游走顶点对应的出邻集合也可以称之为第二出邻集合,即上述历史游走顶点发送的出边信息中携带有所述历史游走顶点的出邻集合,将携带有所述历史游走顶点的出邻集合的出边直接作为所述目标出边信息。
步骤S202,当所述历史游走顶点对应的出边信息中包括指示信息时,基于所述指示消息在哈希表中获取与所述历史游走顶点的标识信息对应的所述第二出邻集合;
具体的,当在上述历史游走顶点对应的出边信息中包括所述指示信息时,表明此时,所述历史游走顶点对应的出边信息中没有所述历史游走顶点的出邻集合,所述指示信息表明在哈希表中缓存有所述历史游走顶点的出邻集合,所述指示信息用于指示所述目标游走顶点对应的设备可以在哈希表中获取所述历史游走顶点的出邻集合,所述历史游走顶点对应的出邻集合可以称之为第二出邻集合。通过在历史游走顶点对应的出边信息中添加所述指示信息替换所述历史游走顶点的出邻集合,可以减少所述历史游走顶点对应的设备与所述目标游走顶点对应的设备之间的通信代价,即上述历史游走顶点对应的设备向上述目标游走顶点的设备发送历史游走顶点的出边信息时,无需发送所述历史游走顶点的出邻集合,而是发送了一个数据量极小的指示信息,所述指示信息可以是一个特殊的标识符。上述目标游走顶点对应的设备可以基于上述指示信息,通过上述历史游走顶点的标识信息(即上述历史游走顶点的ID信息),在创建的哈希表中获取所述历史游走顶点的出邻集合。下述描述了在三种不同的缓存策略下创建所述哈希表。
请参见图4a,为本发明实施例提供的一种创建哈希表的场景示意图;如图4a所示,描述了创建所述哈希表的三种方法,即三种基于哈希表缓存顶点的出邻集合的缓存机制。其中,第一种创建哈希表的方法具体为,目标图P中包括了若干个顶点,预先获取目标图P中每一个顶点的出度,一个顶点的出度在一定程度上可以表明该个顶点预计会被访问的次数,一个顶点的出度越大表明该个顶点预计被访问的次数越多。根据系统的内存容量(即哈希表能缓存的出邻集合的数据量的大小)确定能缓存的最多数量的出邻集合的数据量,优先缓存出度值更大的顶点对应的出邻集合,将能被缓存的多个出邻集合中出度值最小的顶点对应的出度值称之为所述第一度量值阈值。在上述目标图中的所有顶点对应的二阶随机游走任务中,通过某个初始游走顶点游走至某个顶点时,判断所述某个顶点是否初次被访问,一次游走对应于一次访问,即在上述某个初始游走顶点对应的随机游走任务中初次游走至所述某个顶点,且在上述目标图中的除所述某个初始游走顶点之外的所有其他顶点对应的二阶随机游走任务中均未访问过所述某个顶点时,判断所述某个顶点为初次被访问。进而判断所述某个顶点的出度值是否不小于上述第一度量值阈值,当判断出所述某个顶点的出度值不小于上述第一度量值阈值时,将所述某个顶点对应的出邻集合缓存至上述哈希表。对上述目标图中的每一个顶点都进行上述是否被初次访问的判断,将判断为初次被访问且出度值不小于上述第一度量值阈值的顶点对应的出邻集合缓存至所述哈希表,即通过上述判断为初次被访问且出度值不小于上述第一度量值阈值的顶点对应的出邻集合创建所述哈希表,得到基于最大出度的顶点优先的缓存策略得到哈希表f1。
第二种创建哈希表的方法具体为,目标图P中包括了若干个顶点,预先获取目标图P中每一个顶点的入度,一个顶点的入度在一定程度上可以表明该个顶点预计会被访问的次数,一个顶点的入度越大表明该个顶点预计被访问的次数越多。根据系统的内存容量(即哈希表能缓存的出邻集合的数据量的大小)确定能缓存的最多数量的出邻集合的数据量,优先缓存入度值更大的顶点对应的出邻集合,将能被缓存的多个出邻集合中入度值最小的顶点对应的入度值称之为所述第二度量值阈值。在上述目标图中的所有初始游走顶点对应的二阶随机游走任务中,通过某个初始游走顶点游走至某个顶点时,判断所述某个顶点是否初次被访问,一次游走对应于一次访问,即在上述某个初始游走顶点对应的随机游走任务中初次游走至所述某个顶点,且在上述目标图中的除所述某个初始游走顶点之外的所有其他顶点对应的二阶随机游走任务中均未访问过所述某个顶点时,判断所述某个顶点为初次被访问。进而判断所述某个顶点的入度值是否不小于上述第二度量值阈值,当判断出所述某个顶点的入度值不小于上述第二度量值阈值时,将所述某个顶点对应的出邻集合缓存至上述哈希表。对上述目标图中的每一个顶点都进行上述是否被初次访问的判断,将判断为初次被访问且入度值不小于上述第二度量值阈值的顶点对应的出邻集合缓存至所述哈希表,即通过上述判断为初次被访问且入度值不小于上述第二度量值阈值的顶点对应的出邻集合创建所述哈希表,得到基于最大入度的顶点优先的缓存策略得到哈希表f2。
第三种创建哈希表的方法具体为,目标图P中包括了若干个顶点,预先获取目标图P中每一个顶点的被访问次数。根据系统的内存容量(即哈希表能缓存的出邻集合的数据量的大小)确定能缓存的最多数量的出邻集合的数据量,优先缓存被访问次数更大的顶点对应的出邻集合,将能被缓存的多个出邻集合中被访问次数最小的顶点对应的被访问次数称之为所述第三度量值阈值。在上述目标图中的所有初始游走顶点对应的二阶随机游走任务中,通过某个初始游走顶点游走至某个顶点时,判断所述某个顶点是否初次被访问,一次游走对应于一次访问,即在上述某个初始游走顶点对应的随机游走任务中初次游走至所述某个顶点,且在上述目标图中的除所述某个初始游走顶点之外的所有其他顶点对应的二阶随机游走任务中均未访问过所述某个顶点时,判断所述某个顶点为初次被访问。进而判断所述某个顶点的被访问次数值是否不小于上述第三度量值阈值,当判断出所述某个顶点的被访问次数值不小于上述第三度量值阈值时,将所述某个顶点对应的出邻集合缓存至上述哈希表。对上述目标图中的每一个顶点都进行上述是否被初次访问的判断,将判断为初次被访问且被访问次数值不小于上述第三度量值阈值的顶点对应的出邻集合缓存至所述哈希表,即通过上述判断为初次被访问且被访问次数值不小于上述第三度量值阈值的顶点对应的出邻集合创建所述哈希表,得到基于最大被访问次数的顶点优先的缓存策略得到哈希表f3。
其中,可以通过在上述哈希表中缓存键值对创建所述哈希表,一个键值对由一个顶点的标识信息与其对应的出邻集合构成,基于目标图中的所有初始游走顶点对应的随机游走任务创建上述哈希表,可以使得创建哈希表的计算量基于每一个初始游走顶点对应的随机游走任务得到均摊,提高了创建哈希表的效率。
请参见图4b,是本发明实施例提供的一种获取出邻集合的架构示意图。图4b中图处理平台f为图1a中的目标图的二阶游走任务所关联的图处理平台f,s1、s2分别为图1a中图处理平台f所关联的2个设备。将创建的哈希表L缓存至所述图处理平台f所关联的缓存系统中。如图4b所示,在设备s1对应的随机游走任务中,当游走至所述设备s1对应的顶点1,且所述图处理平台f检测到所述顶点1为初次被访问时,图处理平台f会将所述顶点1对应的出邻集合缓存在所述哈希表L中,上述顶点1的标识信息为13,所述顶点1的出邻集合中包括的顶点的标识信息分别为14、15、16,如图4b所示,以键值对的形式将所述顶点1的出邻集合缓存在上述哈希表L中。当设备s2接收到其他关联在所述图处理平台f上的设备发送的出边信息,且所述出边信息中包括所述顶点1(即历史游走顶点为所述顶点1)的标识信息以及上述指示信息时,所述设备s2会发送顶点1对应的标识信息至上述图处理平台f,图处理平台f从哈希表中获取到所述顶点1对应的出邻集合,并将所述顶点1对应的出邻集合返回至设备s2。
步骤S203,将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息;
具体的,将上述在哈希表中获取到的第二出邻集合添加至所述历史游走顶点对应的出边信息中,可以选择是否将上述指示信息丢弃,将包含了上述第二出邻集合的出边信息称之为所述目标出边信息。
步骤S204,当根据所述图划分标识信息确定所述历史游走顶点与所述目标游走顶点同属于一个子图中的顶点时,获取所述第二出邻集合;
具体的,上述目标图可以划分为多个子图,每个子图包括多个顶点,同一个子图内的顶点对应的设备可以互相获取到所属子图内的任意顶点对应的出邻集合。上述图划分标识信息用于标识所述目标游走顶点与所述历史游走顶点同属于一个子图。其中,上述一个子图可以指一个设备,即属于同一个设备的顶点同属于一个子图。其中,上述目标图的子图划分是在所述目标图的随机游走任务开始之前就已经划分完成。当根据上述图划分标识信息判断出上述历史游走顶点与上述目标游走顶点同属于一个子图时,基于所述目标游走顶点对应的设备在关联的图计算平台中获取所述历史游走顶点对应的出邻集合。
步骤S205,将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息;
具体的,将上述获取到的第二出邻集合添加至上述历史游走顶点对应的出边信息中,可以选择是否丢弃上述图划分标识信息,将包含上述历史游走顶点对应的出边信息称之为所述目标出边信息。
请参见图5,是本发明实施例提供的一种确定目标出边信息的场景示意图;如图5所示,提供了三种获取目标出边信息的方式,对应于历史游走顶点对应的设备发送的3种历史游走顶点对应的出边信息。其中,e1、e2、e3分别为上述历史游走顶点对应的设备发送给上述目标游走顶点对应的设备的所述历史游走顶点的出边信息。将已经包括所述历史游走顶点对应的出邻集合的出边信息e1直接称之为所述目标出边信息e4。其中,上述出边信息e2中包括图划分标识信息,当根据所述图划分标识信息判断出上述历史游走顶点与上述目标游走顶点所属于同一个子图,则基于所述目标游走顶点对应的设备在关联的图计算平台中获取所述历史游走顶点的出邻集合,将获取到的所述历史游走顶点对应的出邻集合添加至上述出边信息e2中,将包含所述历史游走顶点对应的出邻集合的出边信息e2称之为所述目标出边信息e4。其中,上述出边信息e3包括指示信息,基于所述指示信息通过历史游走顶点对应的标识信息在哈希表中获取所述历史游走顶点对应的出邻集合,将获取到的所述历史游走顶点对应的出邻集合添加至所述出边信息e3中,将包含所述历史游走顶点对应的出邻集合的出边信息e3称之为所述目标出边信息e4。
步骤S206,获取所述第一出邻集合;
具体的,所述目标游走顶点对应的设备在关联的图计算平台中获取所述目标游走顶点对应的出邻集合,所述目标游走顶点对应的出邻集合也可以称之为所述第一出邻集合。其中,每一个顶点对应的设备可以在关联的图计算平台中静态获取自己的出邻信息。
步骤S207,根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;
具体的,上述出邻集合中包括了出邻集合中的每个顶点的标识信息(即顶点的ID),根据上述历史游走顶点的标识信息、上述目标游走顶点的标识信息、上述第一出邻集合中顶点的标识信息以及上述第二出邻集合中顶点的标识信息之间的关系判断上述第一出邻集合中的每个顶点的顶点类型,根据所述每个顶点的顶点类型确定所述每个顶点与所述目标游走顶点之间的缩放倍数。
步骤S208,在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
具体的,在目标图中获取上述目标游走顶点分别与上述第一出邻集合中的每个顶点之间的转移权重,所述转移权重可以表征顶点与顶点之间的关联关系,关联关系越大,一个顶点与另一个顶点之间的关联关系越大,表明该两个顶点之间的游走概率越大。比如所述第一出邻集合中包括顶点1和顶点2,所述目标游走顶点与所述顶点1之间的转移权重为2,所述目标游走顶点与所述顶点2之间的转移权重为3。
步骤S209,根据所述转移权重以及缩放倍数确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的初始概率;
具体的,根据上述第一出邻集合中每个顶点对应的缩放倍数分别对所述每个顶点对应的转移权重进行缩放,即将每个顶点对应的转移权重与缩放倍数相乘,将进行缩放的转移权重称之为所述初始概率;所述初始概率的数值范围可以大于1。
步骤S210,将所述初始概率归一化,基于归一化之后的初始概率确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率;
具体的,将上述每个顶点对应的初始概率进行归一化处理,得到所述每个顶点与所述目标游走顶点之间的边转移概率,所述每个顶点对应的边转移概率之和为1。
请参见图6,是本发明实施例提供的另一种数据处理方法的流程示意图;如图6所示,所述方法可以包括:
步骤S301,获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为原始顶点;
具体的,获取所述目标图中的所有顶点,将所述所有顶点中的每个顶点称之为原始顶点。
步骤S302,分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;
具体的,基于随机游走任务中具体使用的随机游走算法分别确定目标图中每个原始顶点的目标游走步数,并根据每个原始顶点对应的目标游走步数同时对所述每个原始顶点触发以自身为起始顶点且游走步数为其分别所对应的目标游走步数的随机游走任务,每个原始顶点对应的随机游走任务相互独立,同时并行进行。上述随机游走算法可以是Node2Vec(一种对于图中的节点使用向量建模的算法)算法、二阶PageRank(一种链接分析算法)算法、二阶SimRank(一种协同过滤推荐算法)算法、二阶RWR(一种重启随机游走算法)算法中的任意一种确定的二阶随机游走算法。
步骤S303,在已触发所述随机游走任务的原始顶点中确定所述初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点;
具体的,在已触发所述随机游走任务的原始顶点中确定所述初始游走顶点,可以将已触发所述随机游走任务的每个原始顶点都确定为所述初始游走顶点。当从所述初始游走顶点游走至所述目标游走顶点时,可以将所述初始游走顶点作为上述目标游走顶点的相邻的历史游走顶点。
步骤S304,获取与目标游走顶点相邻的历史游走顶点对应的出边信息;所述历史游走顶点对应的出边信息是由所述历史游走顶点传递至所述目标游走顶点的;
具体的,即获取上述初始游走顶点的设备发送的所述初始游走顶点对应的出边信息。
步骤S305,根据所述历史游走顶点对应的出边信息确定目标出边信息,获取所述第一出邻集合;
其中,所述步骤S305的具体实现方式可以参见图3对应的实施例中对步骤S201-步骤S207的描述,这里不再进行赘述。
步骤S306,将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点;
具体的,上述第一出邻集合中包括目标游走顶点可能会游走的所有顶点的标识信息,上述第二出邻集合中包括历史游走顶点可能会游走的所有顶点的标识信息。将上述第一出邻集合中顶点的标识信息与历史游走顶点的标识信息一致的顶点称之为第一类型顶点,即上述第一出邻集合中包括所述历史游走顶点,将为所述历史游走顶点的顶点确定为第一类型顶点。将上述第一出邻集合中顶点的标识信息与第二出邻集合中顶点的标识信息相同的公共顶点称之为第二类型顶点,即将上述第一出邻集合与第二出邻集合中包含的相同顶点(公共顶点)确定为第二类型顶点。将所述出邻集合中除上述第一类型顶点与第二类型顶点之外的顶点称之为第三类型顶点。
步骤S307,根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数;
具体的,针对第一出邻集合中不同类型的顶点对应有不同的缩放倍数,根据上述第一出邻集合中每个顶点的顶点类型确定所述每个顶点的缩放倍数。比如上述第一类型顶点对应的缩放倍数为1,上述第二类型顶点对应的缩放倍数为1/2,上述第三类型顶点对应的缩放倍数为1/5。
步骤S308,在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
步骤S309,根据所述转移权重以及缩放倍数确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的初始概率;
步骤S310,将所述初始概率归一化,基于归一化之后的初始概率确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率;
其中,上述步骤S308-步骤S310的具体实现方式可以参见图3对应的实施例中对步骤S209-步骤S211的描述,这里不再进行赘述。
步骤S311,基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息传递至所述待游走顶点,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;
步骤S312,若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;所述初始游走顶点是所述随机游走序列中的起始顶点;
其中,上述步骤S311-步骤S312的具体实现方式可以参见图2对应的实施例中对步骤S104-步骤S105的描述,这里不再进行赘述。
本发明实施例通过获取与目标游走顶点相邻的历史游走顶点对应的出边信息;根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;根据所述边转移概率在所述第一出邻集合中确定待游走顶点;基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息发送至所述待游走顶点所属的设备,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列。由此可见,本发明实施例基于目标游走顶点对应的设备接收历史游走顶点发送的出边信息,从而实时动态地计算目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,最后确定待游走顶点,此间过程中无需预先存储目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,节省了系统的内存容量。
请参见图7,是本发明实施例提供的一种确定待游走顶点方法的流程示意图;如图7所示,所述方法可以包括:
步骤S401,在所述第一出邻集合中确定目标待处理顶点;
具体的,在所述第一出邻集合中确定所述目标待处理顶点,所述目标待处理顶点可以是所述第一出邻集合中任意一个顶点。
步骤S402,基于顶点的标识信息的数值,对所述第一类型顶点与所述第二类型顶点进行排序,并根据排序之后的第一类型顶点与第二类型顶点生成第一顶点数组;
具体的,根据顶点的标识信息的数值,按照从小到大的顺序,将上述第一出邻集合中的第一类型顶点对应的标识信息与第二类型顶点对应的标识信息进行排序,将排序之后的第一类型顶点与第二类型顶点的标识信息构成的序列称之为上述第一顶点数组。从上述第一顶点数组中的第一个标识信息开始,给每个标识信息增加索引,所述索引用于在所述第一顶点数组中查找对应的标识信息。比如第一顶点数组中包括顶点1、顶点2、顶点3,顶点1、顶点2、顶点3在所述第一顶点数组中排序为顶点2、顶点1、顶点3,从0开始给排序之后的每个顶点添加索引,即所述顶点2、顶点1、顶点3的索引值分别为0、1、2。
步骤S403,基于所述第一顶点数组中每个顶点的排序关系、根据所述目标游走顶点与所述第一顶点数组中的每个顶点之间的转移权重以及缩放倍数,确定所述第一顶点数组中的每个顶点的权重累积和,并根据所述第一顶点数组中的每个顶点的权重累积和生成权重数组;
具体的,根据上述第一顶点数组中每个顶点对应的缩放倍数对所述每个顶点对应的转移权重进行缩放,即将每个顶点对应的缩放倍数分别与其对应的转移权重相乘,将与缩放倍数进行相乘之后的转移权重称之为每个顶点对应的新转移权重。基于所述第一顶点数组中每个顶点的排序关系,根据每个顶点对应的所述新转移权重得到第一顶点数组中每个顶点的权重累积和,根据所述第一顶点数组中每个顶点的排序关系以及每个顶点的权重累积和生成所述权重数组。例如第一顶点数组中包括顶点1、顶点2、顶点3,顶点1、顶点2、顶点3在所述第一顶点数组中排序为顶点2、顶点1、顶点3,所述顶点2对应的转移权重和缩放倍数分别为1和0.5,所述顶点1对应的转移权重和缩放倍数分别为2和0.8,所述顶点3对应的转移权重与缩放倍数分别为2和0.5,则上述顶点2、顶点1、顶点3对应的新转移权重分别为0.5、1.6、1,则上述顶点2、顶点1、顶点3对应的权重累积和分别为顶点2的新转移权重0.5、顶点2与顶点1的新转移权重之和2.1、顶点2与顶点1以及顶点3的新转移权重之后3.1,得到的权重数组为0.5、2.1、3.1。
步骤S404,在所述第一顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的顶点,将查找到的所有顶点确定为所述第一待处理顶点;
具体的,在所述第一顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的顶点,将查找到的所有顶点确定为所述第一待处理顶点。即在上述第一数组中查找标识信息不大于所述目标待处理顶点的标识信息的所有顶点作为所述第一待处理顶点。
步骤S405,在所述权重数组中获取所述第一待处理顶点中顶点的标识信息的数值最大的顶点对应的权重累积和,将获取到的权重累积和确定为所述第一待处理顶点的权重累积和;
具体的,在所述权重数组中获取上述查找到的第一待处理顶点中顶点的标识信息数值最大的顶点对应的权重累积和,将获取到的第一待处理顶点中顶点的标识信息的数值最大的顶点对应的权重累积和确定为所述第一待处理顶点的权重累积和,其中,通过确定所述第一待处理顶点的权重累积和对应的索引值,进而可以根据确定的索引值在所述权重数组中查找到所述第一待处理顶点的权重累积和。比如将上述权重数组表示为aws[k],其中k为每个标识信息的索引值,k的取值范围依次为0,1,2...n。在上述第一待处理顶点中的顶点的标识信息的数值最大的顶点为第三个点,即确定所述第一待处理顶点的权重累积和对应的索引值为2,因此在所述权重数组中获取到的所述第一待处理顶点的权重累积和为aws[2]。
步骤S406,基于顶点的标识信息的数值,对所述第一出邻集合中的所有顶点进行排序,并根据排序之后的所有顶点生成第二顶点数组;
具体的,根据第一出邻集合中的每个顶点的标识信息的数值大小,按照从小到大的递增顺序进行排序,将排序之后的所述每个顶点基于所述每个顶点的标识信息表示出来,将排序之后的每个顶点的标识信息构成的数组称之为上述第二顶点数组。
步骤S407,在所述第二顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的所有顶点,将查找到的所有顶点确定为待选择顶点,并将所述待选择顶点中除所述第一待处理顶点之外的所有顶点确定为所述第二待处理顶点;
具体的,在所述第二顶点数组中查找标识信息的数值不大于所述目标游走顶点的标识信息的数值的所有顶点,将查找到的所有顶点称之为上述待选择顶点,将待选择顶点中除上述第一待处理顶点之外的所有其他顶点称之为上述第二待处理顶点。
步骤S408,根据所述目标游走顶点与所述第二待处理顶点中的每个顶点的转移权重以及缩放倍数确定所述第二待处理顶点的权重累积和;
具体的,上述获取到的第二待处理顶点中的每个顶点都是上述描述的第三类型顶点,所述第二待处理顶点中的每个顶点对应的缩放倍数均相同,根据所述每个顶点对应的缩放倍数分别对所述每个顶点对应地转移权重进行缩放,将进行缩放之后的每个顶点对应的转移权重称之为每个顶点对应的新转移权重,将得到的每个顶点对应的新转移权重之和称之为上述第二待处理顶点的权重累积和。
步骤S409,根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和确定所述目标待处理顶点的权重累积和;
具体的,将上述得到的第一待处理顶点的权重累积和以及上述第二待处理顶点的权重累积和之和,称之为上述目标待处理顶点的权重累积和。
步骤S410,将所述第一出邻集合中的每个顶点确定为所述目标待处理顶点,确定所述第一出邻集合中的每个顶点的权重累积和;
具体的,将上述第一出邻集合中的每个顶点都作为上述目标待处理顶点,通过步骤S401-步骤S409所描述的方式,分别得到第一出邻集合中每个顶点对应的权重累积和。
步骤S411,根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;
具体的,根据上述目标游走顶点与上述第一出邻集合中每个顶点之间的边转移概率分别确定所述第一出邻集合中的每个顶点的边转移概率累积和。例如所述第一出邻集合中排序之后的顶点为顶点1、顶点2、顶点3,其中,所述顶点1与所述目标游走顶点之间的边转移概率为0.3,所述顶点2与所述目标游走顶点之间的边转移概率为0.4,所述顶点3与所述目标游走顶点之间的边转移概率为0.3,则所述顶点1、顶点2、顶点3分别对应的边转移概率累积和分别为顶点1对应的边转移概率0.3、顶点1与顶点2对应的边转移概率之和0.7、顶点1与顶点2以及顶点3对应的边转移概率之和1。
步骤S412,基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;
具体的,通过上述第一出邻集合中的每个顶点的权重累积和所决定的概率分布,根据均匀分布生成所述随机数,所述随机数的取值范围为0至1。
步骤S413,根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点;
具体的,根据上述随机数与第一出邻集合中每个顶点对应的边转移概率累积和的大小关系,确定所述待游走顶点。例如,上述第一出邻集合中包括顶点1、顶点2、以及顶点3,则所述顶点1、顶点2、顶点3的边转移概率累积和依次为0.3、0.7、1。可以理解为,按照上述顶点1、顶点2、顶点3分别对应的边转移概率累积和将长度为1的线段划分为3段子线段,假设上述顶点1、顶点2、顶点3对应的子线段的长度分别为L1、L2、L3,则顶点1对应的子线段长度L1的范围为0<L1≤0.3,顶点2对应的子线段长度L2的范围为0.3<L2≤0.7,顶点3对应的子线段长度L3的范围为0.7<L3≤1。当上述随机数为0.3时,则可以判断出所述随机数落在顶点1对应的子线段长度L1的范围0<L1≤0.3内,则将所述顶点1确定为所述目标游走顶点的待游走顶点。
请参见图8,是本发明实施例提供的一种计算权重累积和的场景示意图。如图8所示,数组c1为第一出邻集合中的所有顶点的标识信息按照从小到大排列成的数组,可以称之为上述第二顶点数组,所述第二顶点数组c1中包括8个顶点,所述8个顶点的标识信息分别为2、5、8、17、23、64、77、98。其中,所述8个顶点中的每一个顶点分别对应于一个索引k,如图8所示,索引集合d1为数组c1中每个顶点分别对应的索引的集合,标识信息为2的顶点的索引为0,标识信息为5的顶点的索引为1,标识信息为8的顶点的索引为2,标识信息为17的顶点的索引为3,标识信息为23的顶点的索引为4,标识信息为64的顶点的索引为5,标识信息为77的顶点的索引为6,标识信息为98的顶点的索引为7。数组c2为数组c1中的第一类型顶点与第二类型顶点的标识信息按照从小到大排列成的数组,可以称之为上述第一顶点数组。所述第一顶点数组中包括3个顶点,所述3个顶点的标识信息分别为8、23、64。其中标识信息为8的顶点为所述第一类型顶点,标识信息为23的顶点与标识信息为64的顶点为所述第二类型顶点。第一顶点数组c2中每个顶点对应有一个索引k,如图8所示,索引集合d2为数组c2中每个顶点分别对应的索引,在第一顶点数组c2中,标识信息为8的顶点的索引为0,标识信息为23的顶点的索引为1,标识信息为64的顶点的索引为2。数组c3是数组c2中每个顶点分别对应的权重累积和,可以将数组c3称之为上述权重数组,其中,假设上述第一出邻集合中每个顶点与所述目标游走顶点之间的转移权重都为1,上述第一类型顶点与目标游走顶点之间的缩放倍数为1/p,上述第二类型顶点与目标游走顶点之间的缩放倍数为1,上述第三类型顶点与目标游走顶点之间的缩放倍数为1/q。因此,上述数组c2中标识信息为8的顶点对应的权重累积和为1/p,上述数组c2中标识信息为23的顶点对应的权重累积和为1+1/p,上述数组c2中标识信息为64的顶点对应的权重累积和为1+2/p。其中,数组c3中每一个权重对应于一个索引,如图8所示,索引集合d3为数组c3中每个顶点分别对应的权重累积和的索引的集合,标识信息为8的顶点对应的权重累积和为1/p的索引为0,标识信息为23的顶点对应的权重累积和为1+1/p的索引为1,标识信息为64的顶点对应的权重累积和为1+2/p的索引为2。将上述第二顶点数组c1表示为O[k],将上述第一顶点数组c2表示为node[i],将上述权重数组c3表示为aws[j]。在第二顶点数组c1中选中待处理顶点为标识信息为17的顶点O[3],在第一顶点数组c2中查找标识信息不大于17的顶点,查找到是标识信息为8的顶点node[0],在权重数组中查找标识信息为8的顶点对应的权重累积和1/p,即aws[0],将查找到的aws[0]对应的1/p作为上述第一待处理顶点对应的权重累积和。用上述标识信息为17的顶点在数组c1中的索引值减去标识信息为8的顶点在数组c2中的索引值,减出来的结果为3,即标识信息为17的顶点在上述第一出邻集合中标识信息小于17的还有另外三个顶点,该三个顶点为第三类型顶点,将这三个顶点称之为上述第二待处理顶点,则所述第二待处理顶点的权重累积和为3/q,则上述目标待处理顶点17的权重累积和为所述第一待处理顶点的权重累积和与第二待处理顶点的权重累积和,为1/p+3/q。其中,上述第一顶点数组c1与权重数组c3是用于计算第一待处理顶点对应的权重累积和与第二待处理顶点对应的权重累积和的中间数组。
本发明实施例通过获取与目标游走顶点相邻的历史游走顶点对应的出边信息;根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;根据所述边转移概率在所述第一出邻集合中确定待游走顶点;基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息发送至所述待游走顶点所属的设备,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列。由此可见,本发明实施例基于目标游走顶点对应的设备接收历史游走顶点发送的出边信息,从而实时动态地计算目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,最后确定待游走顶点,此间过程中无需预先存储目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,节省了系统的内存容量。
请参见图9,是本发明实施例提供的一种数据处理装置的结构示意图。如图9所示,该数据处理装置1可以包括:第一获取模块101、概率获取模块102、顶点确定模块103、第一游走模块104、序列生成模块105;
第一获取模块101,用于获取与目标游走顶点相邻的历史游走顶点对应的出边信息;所述历史游走顶点对应的出边信息是由所述历史游走顶点传递到所述目标游走顶点的;
概率获取模块102,用于根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;所述第一出邻集合是指所述目标游走顶点对应的出邻集合;
顶点确定模块103,用于根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
第一游走模块104,用于基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息传递至所述待游走顶点,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;
序列生成模块105,用于若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;所述初始游走顶点是所述随机游走序列中的起始顶点。
其中,所述第一获取模块101、概率获取模块102、顶点确定模块103、第一游走模块104、序列生成模块105的具体功能实现方式请参见图2对应的实施例中的步骤S101-步骤S105,这里不再进行赘述。
其中,所述初始游走顶点是在目标图中的顶点;所述数据处理装置1还包括第二获取模块106、触发模块107、第二游走模块108:
第二获取模块106,用于获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为原始顶点;
触发模块107,用于分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;
第二游走模块108,用于在已触发所述随机游走任务的原始顶点中确定所述初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点。
其中,所述第二获取模块106、触发模块107、第二游走模块108的具体功能实现方式请参见图6对应的实施例中的步骤S301-步骤S303,这里不再进行赘述。
其中,所述概率获取模块102,包括第一确定单元1021、第一获取单元1022、第二确定单元1023、第二获取单元1024、概率确定单元1025、第三确定单元1026:
第一确定单元1021,用于根据所述历史游走顶点对应的出边信息确定目标出边信息;
第一获取单元1022,用于获取所述第一出邻集合;
第二确定单元1023,用于根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;所述第二出邻集合是指所述历史游走顶点对应的出邻集合;
第二获取单元1024,用于在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
概率确定单元1025,用于根据所述转移权重以及缩放倍数确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的初始概率;
第三确定单元1026,用于将所述初始概率归一化,基于归一化之后的初始概率确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率。
其中,所述第一确定单元1021的具体功能实现方式请参见图3对应的实施例中的步骤S201-步骤S206,所述第一获取单元1022、第二确定单元1023、第二获取单元1024、概率确定单元1025、第三确定单元1026的具体功能实现方式请参见图3对应的实施例中的步骤S206-步骤S210,这里不再进行赘述。
其中,若所述历史游走顶点对应的出边信息包括所述第二出邻集合、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数,则所述目标出边信息为所述历史游走顶点对应的出边信息。
其中,所述历史游走顶点对应的出边信息中包括图划分标识信息、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数;所述图划分标识信息用于区分在目标图中划分的不同子图所属的顶点;
所述第一确定单元1021,包括第一获取子单元10211、第一确定子单元10212:
第一获取子单元10211,用于当根据所述图划分标识信息确定所述历史游走顶点与所述目标游走顶点同属于一个子图中的顶点时,获取所述第二出邻集合;
第一确定子单元10212,用于将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息。
其中,所述第一获取子单元10211、第一确定子单元10212的具体功能实现方式请参见图3对应的实施例中的步骤S204-步骤S205,这里不再进行赘述。
其中,所述历史游走顶点对应的出边信息中包括指示信息、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数;所述指示信息用于表征所述历史游走顶点为非首次访问且属于高频访问类型的顶点;
所述第一确定单元1021,还包括第二获取子单元10213、第二确定子单元10214:
第二获取子单元10213,用于基于所述指示消息在哈希表中获取与所述历史游走顶点的标识信息对应的所述第二出邻集合;
第二确定子单元10214,用于将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息。
其中,所述第二获取子单元10213、第二确定子单元10214的具体功能实现方式请参见图3对应的实施例中的步骤S202-步骤S203,这里不再进行赘述。
其中,所述第二确定单元1023,包括类型确定子单元10231、第三确定子单元10232:
类型确定子单元10231,用于根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型;
第三确定子单元10232,用于根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数。
其中,所述类型确定子单元10231、第三确定子单元10232的具体功能实现方式请参见图6对应的实施例中的步骤S306-步骤S307,这里不再进行赘述。
其中,所述顶点类型包括第一类型顶点、第二类型顶点以及第三类型顶点;所述类型确定子单元10231,包括第四确定子单元102311、第五确定子单元102312、第六确定子单元102313:
第四确定子单元102311,用于将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;
第五确定子单元102312,用于将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;
第六确定子单元102313,用于将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点。
其中,所述第四确定子单元102311、第五确定子单元102312、第六确定子单元102313的具体功能实现方式请参见图6对应的实施例中的步骤S306,这里不再进行赘述。
其中,所述数据处理装置1还包括第一检测模块109、第一缓存模块110:
第一检测模块109,用于当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的出度值;
第一缓存模块110,用于当所述出度值达到第一度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第一度量值阈值是基于系统的内存容量、目标图中所有顶点的出度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,所述第一检测模块109、第一缓存模块110的具体功能实现方式请参见图3对应的实施例中的步骤S202,这里不再进行赘述。
其中,所述数据处理装置1还包括第二检测模块111、第二缓存模块112:
第二检测模块111,用于当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的入度值;
第二缓存模块112,用于当所述入度值达到第二度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第二度量值阈值是基于系统的内存容量、目标图中所有顶点的入度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,所述第二检测模块111、第二缓存模块112的具体功能实现方式请参见图3对应的实施例中的步骤S202,这里不再进行赘述。
其中,所述数据处理装置1还包括第三检测模块113、第三缓存模块114:
第三检测模块113,用于当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的访问次数值;
第三缓存模块114,用于当所述访问次数值达到第三度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第三度量值阈值是基于系统的内存容量、目标图中所有顶点的访问次数值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
其中,所述第三检测模块113、第三缓存模块114的具体功能实现方式请参见图3对应的实施例中的步骤S202,这里不再进行赘述。
其中,所述顶点确定模块103,包括第四确定单元1031、第五确定单元1032、生成单元1033、第六确定单元1034:
第四确定单元1031,用于根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数分别确定所述第一出邻集合中的每个顶点的权重累积和;
第五确定单元1032,用于根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;
生成单元1033,用于基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;
第六确定单元1034,用于根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点。
其中,所述第四确定单元1031的具体功能实现方式请参见图7对应的实施例中的步骤S401-步骤S410,所述第五确定单元1032、生成单元1033、第六确定单元1034的具体功能实现方式请参见图7对应的实施例中的步骤S4011-步骤S413,这里不再进行赘述。
其中,所述第四确定单元1031,包括第七确定子单元10311、第八确定子单元10312、第九确定子单元10313、第十确定子单元10314、第十一确定子单元10315:
第七确定子单元10311,用于在所述第一出邻集合中确定目标待处理顶点;
第八确定子单元10312,用于根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和;
第九确定子单元10313,用于根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和;
第十确定子单元10314,用于根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和确定所述目标待处理顶点的权重累积和;
第十一确定子单元10315,用于将所述第一出邻集合中的每个顶点确定为所述目标待处理顶点,确定所述第一出邻集合中的每个顶点的权重累积和。
其中,所述第七确定子单元10311的具体功能实现方式请参见图7对应的实施例中的步骤S401,所述第八确定子单元10312的具体功能实现方式请参见图7对应的实施例中的步骤S402-步骤S405,所述第九确定子单元10313的具体功能实现方式请参见图7对应的实施例中的步骤S406-步骤S408,所述第七确定子单元10311、第七确定子单元10311的具体功能实现方式请参见图7对应的实施例中的步骤S409-步骤S410,这里不再进行赘述。
其中,所述第八确定子单元10312,包括第一排序子单元103121、数组生成子单元103122、第一查找子单元103123、第三获取子单元103124:
第一排序子单元103121,用于基于顶点的标识信息的数值,对所述第一类型顶点与所述第二类型顶点进行排序,并根据排序之后的第一类型顶点与第二类型顶点生成第一顶点数组;
数组生成子单元103122,用于基于所述第一顶点数组中每个顶点的排序关系、根据所述目标游走顶点与所述第一顶点数组中的每个顶点之间的转移权重以及缩放倍数,确定所述第一顶点数组中的每个顶点的权重累积和,并根据所述第一顶点数组中的每个顶点的权重累积和生成权重数组;
第一查找子单元103123,用于在所述第一顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的顶点,将查找到的所有顶点确定为所述第一待处理顶点;
第三获取子单元103124,用于在所述权重数组中获取所述第一待处理顶点中顶点的标识信息的数值最大的顶点对应的权重累积和,将获取到的权重累积和确定为所述第一待处理顶点的权重累积和。
其中,所述第一排序子单元103121、数组生成子单元103122、第一查找子单元103123、第三获取子单元103124的具体功能实现方式请参见图7对应的实施例中的步骤S402-步骤S405,这里不再进行赘述。
其中,所述第九确定子单元10313,包括第二排序子单元103131、第二查找子单元103132、第十二确定子单元103133:
第二排序子单元103131,用于基于顶点的标识信息的数值,对所述第一出邻集合中的所有顶点进行排序,并根据排序之后的所有顶点生成第二顶点数组;
第二查找子单元103132,用于在所述第二顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的所有顶点,将查找到的所有顶点确定为待选择顶点,并将所述待选择顶点中除所述第一待处理顶点之外的所有顶点确定为所述第二待处理顶点;
第十二确定子单元103133,用于根据所述目标游走顶点与所述第二待处理顶点中的每个顶点的转移权重以及缩放倍数确定所述第二待处理顶点的权重累积和。
其中,所述第二排序子单元103131、第二查找子单元103132、第十二确定子单元103133的具体功能实现方式请参见图7对应的实施例中的步骤S406-步骤S408,这里不再进行赘述。
本发明实施例通过获取与目标游走顶点相邻的历史游走顶点对应的出边信息;根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;根据所述边转移概率在所述第一出邻集合中确定待游走顶点;基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息发送至所述待游走顶点所属的设备,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列。由此可见,本发明实施例基于目标游走顶点对应的设备接收历史游走顶点发送的出边信息,从而实时动态地计算目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,最后确定待游走顶点,此间过程中无需预先存储目标游走顶点与第一出邻集合中每个顶点之间的边转移概率,节省了系统的内存容量。
请参见图10,是本发明实施例提供的另一种数据处理装置的结构示意图。如图10所示,所述数据处理装置1000可以包括:处理器1001,网络接口1004和存储器1005,此外,所述数据处理装置1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的数据处理装置1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文图2、图6中任一个所对应实施例中对所述数据处理方法的描述。
应当理解,本发明实施例中所描述的数据处理装置1000可执行前文图2、图6中任一个所对应实施例中对所述数据处理方法的描述,也可执行前文图9所对应实施例中对所述数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图2、图6中任一个所对应实施例中对所述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖范围。

Claims (18)

1.一种数据处理方法,其特征在于,包括:
获取与目标游走顶点相邻的历史游走顶点对应的出边信息;所述历史游走顶点对应的出边信息是由所述历史游走顶点传递到所述目标游走顶点的;所述出边信息包括作为起始点的用户账号的标识信息、所述历史游走顶点所关联的用户账号的标识信息以及所述历史游走顶点的出邻集合,所述历史游走顶点的出邻集合包括所述历史游走顶点所关联的用户账号在下一个预期所游走到的用户账号对应的顶点;
根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;所述第一出邻集合是指所述目标游走顶点对应的出邻集合;所述边转移概率是指所述目标游走顶点所关联的用户账号游走转移到所述第一出邻集合中的顶点所关联的用户账号的概率;
根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息传递至所述待游走顶点,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;
若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;所述初始游走顶点是所述随机游走序列中的起始顶点;所述随机游走序列包括游走过的各个顶点之间的关联性,其中,一个顶点关联一个用户账号;所述随机游走序列中包含的各个顶点之间的关联性用于向关联的用户账号进行数据推荐。
2.根据权利要求1所述的方法,其特征在于,所述初始游走顶点是在目标图中的顶点;还包括:
获取所述目标图中的所有顶点,并将所述目标图中的每个顶点确定为原始顶点;
分别确定每个原始顶点的目标游走步数,并基于所述目标游走步数对所述每个原始顶点同步触发相互独立的随机游走任务;
在已触发所述随机游走任务的原始顶点中确定所述初始游走顶点,从所述初始游走顶点游走至所述目标游走顶点,并将所述初始游走顶点确定为所述目标游走顶点相邻的历史游走顶点。
3.根据权利要求1所述的方法,其特征在于,所述根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率,包括:
根据所述历史游走顶点对应的出边信息确定目标出边信息;
获取所述第一出邻集合;
根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数;所述第二出邻集合是指所述历史游走顶点对应的出邻集合;
在目标图中获取所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的转移权重;
根据所述转移权重以及缩放倍数确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的初始概率;
将所述初始概率归一化,基于归一化之后的初始概率确定所述目标游走顶点分别与所述第一出邻集合中的每个顶点之间的边转移概率。
4.根据权利要求3所述的方法,其特征在于,若所述历史游走顶点对应的出边信息包括所述第二出邻集合、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数,则所述目标出边信息为所述历史游走顶点对应的出边信息。
5.根据权利要求3所述的方法,其特征在于,所述历史游走顶点对应的出边信息中包括图划分标识信息、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数;所述图划分标识信息用于区分在目标图中划分的不同子图所属的顶点;
所述根据所述历史游走顶点对应的出边信息确定目标出边信息,包括:
当根据所述图划分标识信息确定所述历史游走顶点与所述目标游走顶点同属于一个子图中的顶点时,获取所述第二出邻集合;
将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息。
6.根据权利要求3所述的方法,其特征在于,所述历史游走顶点对应的出边信息中包括指示信息、所述初始游走顶点的标识信息、所述历史游走顶点的标识信息、基于所述历史游走顶点的剩余游走次数;所述指示信息用于表征所述历史游走顶点为非首次访问且属于高频访问类型的顶点;
所述根据所述历史游走顶点对应的出边信息确定目标出边信息,包括:
基于所述指示消息在哈希表中获取与所述历史游走顶点的标识信息对应的所述第二出邻集合;
将所述第二出邻集合添加至所述历史游走顶点对应的出边信息中,将包含所述第二出邻集合的所述历史游走顶点对应的出边信息确定为所述目标出边信息。
7.根据权利要求3所述的方法,其特征在于,所述根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述目标游走顶点与所述第一出邻集合中的每个顶点之间的缩放倍数,包括:
根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型;
根据所述顶点类型分别确定所述第一出邻集合中的每个顶点的缩放倍数。
8.根据权利要求7所述的方法,其特征在于,所述顶点类型包括第一类型顶点、第二类型顶点以及第三类型顶点;所述根据所述目标游走顶点的标识信息、所述第一出邻集合、所述目标出边信息中的所述历史游走顶点的标识信息、所述初始游走顶点的标识信息以及第二出邻集合,分别确定所述第一出邻集合中的每个顶点的顶点类型,包括:
将所述第一出邻集合中为所述历史游走顶点的顶点确定为第一类型顶点;
将所述第一出邻集合中与所述第二出邻集合中的顶点为公共出邻顶点的顶点确定为第二类型顶点;
将所述第一出邻集合中除所述第一类型顶点以及所述第二类型顶点之外的顶点确定为第三类型顶点。
9.根据权利要求6所述的方法,其特征在于,还包括:
当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的出度值;
当所述出度值达到第一度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第一度量值阈值是基于系统的内存容量、目标图中所有顶点的出度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
10.根据权利要求6所述的方法,其特征在于,还包括:
当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的入度值;
当所述入度值达到第二度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第二度量值阈值是基于系统的内存容量、目标图中所有顶点的入度值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
11.根据权利要求6所述的方法,其特征在于,还包括:
当检测到所述历史游走顶点为初次被访问时,获取所述历史游走顶点的访问次数值;
当所述访问次数值达到第三度量值阈值时,确定所述历史游走顶点属于高频访问类型的顶点,并基于所述历史游走顶点的标识信息将所述第二出邻集合缓存至所述哈希表;所述第三度量值阈值是基于系统的内存容量、目标图中所有顶点的访问次数值确定得到的;所述哈希表中缓存有目标图中多个被频繁访问的顶点对应的多个出邻集合。
12.根据权利要求8所述的方法,其特征在于,所述根据所述边转移概率在所述第一出邻集合中确定所述目标游走顶点的待游走顶点,包括:
根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数分别确定所述第一出邻集合中的每个顶点的权重累积和;
根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的边转移概率分别确定所述第一出邻集合中的每个顶点的边转移概率累积和;
基于均匀分布、所述第一出邻集合中的每个顶点的权重累积和生成随机数;
根据所述随机数与所述第一出邻集合中的每个顶点的边转移概率累积和的数值范围,确定所述待游走顶点。
13.根据权利要求12所述的方法,其特征在于,所述根据所述目标游走顶点与所述第一出邻集合中的每个顶点之间的转移权重以及缩放倍数分别确定所述第一出邻集合中的每个顶点的权重累积和,包括:
在所述第一出邻集合中确定目标待处理顶点;
根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和;
根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和;
根据所述第一待处理顶点的权重累积和以及所述第二待处理顶点的权重累积和确定所述目标待处理顶点的权重累积和;
将所述第一出邻集合中的每个顶点确定为所述目标待处理顶点,确定所述第一出邻集合中的每个顶点的权重累积和。
14.根据权利要求13所述的方法,其特征在于,所述根据所述目标待处理顶点的标识信息、所述第一类型顶点的标识信息和缩放倍数、所述第一类型顶点与所述目标游走顶点之间的转移权重、所述第二类型顶点的标识信息和缩放倍数、所述第二类型顶点与所述目标游走顶点之间的转移权重,确定第一待处理顶点的权重累积和,包括:
基于顶点的标识信息的数值,对所述第一类型顶点与所述第二类型顶点进行排序,并根据排序之后的第一类型顶点与第二类型顶点生成第一顶点数组;
基于所述第一顶点数组中每个顶点的排序关系、根据所述目标游走顶点与所述第一顶点数组中的每个顶点之间的转移权重以及缩放倍数,确定所述第一顶点数组中的每个顶点的权重累积和,并根据所述第一顶点数组中的每个顶点的权重累积和生成权重数组;
在所述第一顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的顶点,将查找到的所有顶点确定为所述第一待处理顶点;
在所述权重数组中获取所述第一待处理顶点中顶点的标识信息的数值最大的顶点对应的权重累积和,将获取到的权重累积和确定为所述第一待处理顶点的权重累积和。
15.根据权利要求13所述的方法,其特征在于,所述根据所述第三类型顶点的标识信息和缩放倍数、所述第三类型顶点与所述目标游走顶点之间的转移权重,确定第二待处理顶点的权重累积和,包括:
基于顶点的标识信息的数值,对所述第一出邻集合中的所有顶点进行排序,并根据排序之后的所有顶点生成第二顶点数组;
在所述第二顶点数组中查找标识信息的数值不大于所述目标待处理顶点的标识信息的数值的所有顶点,将查找到的所有顶点确定为待选择顶点,并将所述待选择顶点中除所述第一待处理顶点之外的所有顶点确定为所述第二待处理顶点;
根据所述目标游走顶点与所述第二待处理顶点中的每个顶点的转移权重以及缩放倍数确定所述第二待处理顶点的权重累积和。
16.一种数据处理装置,其特征在于,包括:
获取模块,用于获取与目标游走顶点相邻的历史游走顶点对应的出边信息;所述历史游走顶点对应的出边信息是由所述历史游走顶点所属设备生成并发送的;所述出边信息包括作为起始点的用户账号的标识信息、所述历史游走顶点所关联的用户账号的标识信息以及所述历史游走顶点的出邻集合,所述历史游走顶点的出邻集合包括所述历史游走顶点所关联的用户账号在下一个预期所游走到的用户账号对应的顶点;
概率确定模块,用于根据所述历史游走顶点对应的出边信息,确定所述目标游走顶点与第一出邻集合中的每个顶点之间的边转移概率;所述第一出邻集合是指所述目标游走顶点对应的出邻集合;所述边转移概率是指所述目标游走顶点所关联的用户账号游走转移到所述第一出邻集合中的顶点所关联的用户账号的概率;
顶点确定模块,用于根据所述边转移概率在所述第一出邻集合中确定待游走顶点;
游走模块,用于基于所述第一出邻集合生成所述目标游走顶点对应的出边信息,从所述目标游走顶点游走至所述待游走顶点,并将所述目标游走顶点对应的出边信息发送至所述待游走顶点所属的设备,将所述目标游走顶点确定为所述待游走顶点相邻的历史游走顶点,将所述待游走顶点确定为所述目标游走顶点;
序列生成模块,用于若所述目标游走顶点对应的游走次数达到初始游走顶点对应的游走步数阈值,则生成所述目标游走顶点对应的随机游走序列;所述初始游走顶点是所述随机游走序列中的起始顶点;所述随机游走序列包括游走过的各个顶点之间的关联性,其中,一个顶点关联一个用户账号;所述随机游走序列中包含的各个顶点之间的关联性用于向关联的用户账号进行数据推荐。
17.一种数据处理装置,其特征在于,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-15任一项所述的方法。
18.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-15任一项所述的方法。
CN201910276296.2A 2019-04-08 2019-04-08 一种数据处理方法及装置 Active CN110019989B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910276296.2A CN110019989B (zh) 2019-04-08 2019-04-08 一种数据处理方法及装置
PCT/CN2020/079459 WO2020207197A1 (zh) 2019-04-08 2020-03-16 一种数据处理方法、装置、电子设备及存储介质
EP20786716.9A EP3955133A4 (en) 2019-04-08 2020-03-16 DATA PROCESSING METHOD AND APPARATUS, ELECTRONIC DEVICE, AND STORAGE MEDIA
US17/372,099 US11450042B2 (en) 2019-04-08 2021-07-09 Data processing for generating a random walk sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910276296.2A CN110019989B (zh) 2019-04-08 2019-04-08 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN110019989A CN110019989A (zh) 2019-07-16
CN110019989B true CN110019989B (zh) 2023-11-03

Family

ID=67190708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910276296.2A Active CN110019989B (zh) 2019-04-08 2019-04-08 一种数据处理方法及装置

Country Status (4)

Country Link
US (1) US11450042B2 (zh)
EP (1) EP3955133A4 (zh)
CN (1) CN110019989B (zh)
WO (1) WO2020207197A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019989B (zh) 2019-04-08 2023-11-03 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN111049809A (zh) * 2019-11-27 2020-04-21 深圳壹账通智能科技有限公司 风险用户识别方法、装置、计算机设备及存储介质
CN112417247B (zh) * 2020-11-22 2022-04-05 同济大学 基于随机游走的动态流图数据顶点重要性更新方法和装置
WO2023155992A1 (en) * 2022-02-17 2023-08-24 Huawei Technologies Co., Ltd. Fast record attachment to a directed acyclic graph based distributed ledger system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012051583A1 (en) * 2010-10-15 2012-04-19 Ness Computing, Inc. A computer system and method for analyzing data sets and providing personalized recommendations
CN106777284A (zh) * 2016-12-29 2017-05-31 南京邮电大学 一种基于标签信息的图游走表示方法
CN107590243A (zh) * 2017-09-14 2018-01-16 中国人民解放军信息工程大学 基于随机游走和多样性图排序的个性化服务推荐方法
CN108021610A (zh) * 2017-11-02 2018-05-11 阿里巴巴集团控股有限公司 随机游走、基于分布式系统的随机游走方法、装置以及设备
CN109002856A (zh) * 2018-07-20 2018-12-14 西安交通大学 一种基于随机游走的流量特征自动生成方法与系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380723B2 (en) * 2010-05-21 2013-02-19 Microsoft Corporation Query intent in information retrieval
US8719211B2 (en) * 2011-02-01 2014-05-06 Microsoft Corporation Estimating relatedness in social network
US8903824B2 (en) * 2011-12-09 2014-12-02 International Business Machines Corporation Vertex-proximity query processing
US9195941B2 (en) * 2013-04-23 2015-11-24 International Business Machines Corporation Predictive and descriptive analysis on relations graphs with heterogeneous entities
US10643140B2 (en) * 2014-05-01 2020-05-05 International Business Machines Corporation Method, system and computer program product for automating expertise management using social and enterprise data
US10635986B2 (en) * 2014-05-12 2020-04-28 Hitachi, Ltd. Information processing system and information processing method
JP6757913B2 (ja) * 2016-02-26 2020-09-23 国立研究開発法人情報通信研究機構 画像クラスタリングシステム、画像クラスタリング方法、画像クラスタリングプログラム、および、コミュニティ構造検出システム
CN107943934A (zh) * 2017-11-23 2018-04-20 北京天广汇通科技有限公司 关系强度确定方法和装置
CN108108407B (zh) * 2017-12-11 2020-10-27 南京师范大学 基于出租车时空轨迹的群体运动移动簇模式排序方法
US11281964B2 (en) * 2018-06-27 2022-03-22 National Technology & Engineering Solutions Of Sandia, Llc Devices and methods for increasing the speed and efficiency at which a computer is capable of modeling a plurality of random walkers using a particle method
CN110019989B (zh) * 2019-04-08 2023-11-03 腾讯科技(深圳)有限公司 一种数据处理方法及装置
US11334567B2 (en) * 2019-08-16 2022-05-17 Oracle International Corporation Efficient SQL-based graph random walk

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012051583A1 (en) * 2010-10-15 2012-04-19 Ness Computing, Inc. A computer system and method for analyzing data sets and providing personalized recommendations
CN106777284A (zh) * 2016-12-29 2017-05-31 南京邮电大学 一种基于标签信息的图游走表示方法
CN107590243A (zh) * 2017-09-14 2018-01-16 中国人民解放军信息工程大学 基于随机游走和多样性图排序的个性化服务推荐方法
CN108021610A (zh) * 2017-11-02 2018-05-11 阿里巴巴集团控股有限公司 随机游走、基于分布式系统的随机游走方法、装置以及设备
CN109002856A (zh) * 2018-07-20 2018-12-14 西安交通大学 一种基于随机游走的流量特征自动生成方法与系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Asztalos, A等.Network discovery by generalized random walks.《EPL》.2011,第92卷(第5期),第1-6页. *
Efficient Graph Computation for Node2Vec;Dongyan Zhou等;《arxiv.org》;第1-13页 *
Seiji Ueda等.A Contextual Random Walk Model for Automated Playlist Generation.《2018 IEEE/WIC/ACM International Conference on Web Intelligence (WI)》.2019,第367-374页. *
蔡腾远.基于网络图模型的学术论文及其标签推荐方法研究.《中国优秀硕士学位论文全文数据库信息科技辑》.2018,I138-2938. *
陈丽等.基于边采样的网络表示学习模型.《软件学报》.2018,第29卷(第3期),第756-771页. *

Also Published As

Publication number Publication date
WO2020207197A1 (zh) 2020-10-15
EP3955133A1 (en) 2022-02-16
US11450042B2 (en) 2022-09-20
EP3955133A4 (en) 2022-05-18
CN110019989A (zh) 2019-07-16
US20210335025A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
CN110019989B (zh) 一种数据处理方法及装置
CN112352234B (zh) 用于处理并发属性图查询的系统
Wehmuth et al. Daccer: Distributed assessment of the closeness centrality ranking in complex networks
CN105677765B (zh) 给用户推荐期望的功能序列的方法及系统
CN110555172B (zh) 用户关系挖掘方法及装置、电子设备和存储介质
CN107895038A (zh) 一种链路预测关系推荐方法及装置
CN112580789B (zh) 训练图编码网络、预测交互事件的方法及装置
CN112214677B (zh) 一种兴趣点推荐方法、装置、电子设备及存储介质
CN110704754B (zh) 一种由用户终端执行的推送模型优化方法和装置
CN111461826B (zh) 信息推送方法和装置、存储介质和电子装置
CN112738756B (zh) 一种物联网设备数据收集方法及装置
CN111860655B (zh) 用户的处理方法、装置和设备
JP5555238B2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
CN110795631B (zh) 一种基于因子分解机的推送模型优化、预测方法和装置
CN114254204A (zh) 数据处理方法、装置、介质及电子设备
CN113327154A (zh) 基于大数据的电商用户讯息推送方法及系统
Cui et al. A new technique for influence maximization on social networks using a moth-flame optimization algorithm
CN112884614A (zh) 基于频繁序列的路线推荐方法、装置和电子设备
Nishio et al. Trigger detection using geographical relation graph for social context awareness
Ríos et al. On the impact of neighborhood selection strategies for recommender systems in LBSNs
CN115860570A (zh) 基于图的移动运营商潜在流失客户的评分方法
CN113761308A (zh) 物品标识的特征提取方法、装置、设备及存储介质
Rana et al. Using Gaussian based Bayesian Optimization in Recommender Systems
CN113763081A (zh) 一种物品的召回方法和装置
CN115905847A (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