CN110869943B - Gpu增强的图形模型构建和评分引擎 - Google Patents
Gpu增强的图形模型构建和评分引擎 Download PDFInfo
- Publication number
- CN110869943B CN110869943B CN201880046597.XA CN201880046597A CN110869943B CN 110869943 B CN110869943 B CN 110869943B CN 201880046597 A CN201880046597 A CN 201880046597A CN 110869943 B CN110869943 B CN 110869943B
- Authority
- CN
- China
- Prior art keywords
- communities
- community
- merged
- graphics processing
- processing units
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2323—Non-hierarchical techniques based on graph theory, e.g. minimum spanning trees [MST] or graph cuts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种用于使用多个图形处理单元(GPU)加快机器学习的方法,其涉及接收图形数据以生成多个随机样本以及跨多个GPU分布所述随机样本。所述方法可包括:使用由每个GPU执行的无监督学习根据所述随机样本确定多个社区。多个样本群组可以从所述社区生成,并且可以跨所述GPU分布,其中每个GPU通过收敛到最优相似度来合并每个样本群组中的社区。另外,所述方法还可包括:从所述被合并社区生成多个子图;将每个子图划分成多个重叠簇;跨所述多个GPU分布所述多个重叠簇;以及对所述多个重叠簇中的每个簇评分以训练AI模型。
Description
相关申请交叉引用
本申请要求2017年6月30日提交的第15/639,094号美国专利申请的提交日的权益,所述申请以引用的方式并入本文中。
技术领域
背景技术
在当今的技术环境中,机器学习仍然是一种越来越普遍的用来解决问题的工具。具体地说,机器学习可以是对数据进行预测的强大工具。随着大数据的出现,趋势很容易被发现,并且为了随着时间的推移更容易地解决问题,可以通过训练建立机器学习模型。
但是,有关机器学习的许多问题仍然存在。具体地说,训练过程通常极其耗时且冗长。对于为学习模型而必须处理大量数据的问题,例如为了进行实时推荐等等,可能需要训练数周来生成准确模型。即便如此,模式和趋势也会经常发生变化,因此长时间的训练对当前预测毫无用处。本领域中需要的是一种更快速的用于构建和训练机器学习模型的方法。
本发明的实施例单独地且共同地解决这些问题和其它问题。
发明内容
各个实施例涉及用于使用多个图形处理单元(GPU)加快机器学习的方法。所述方法可包括:由中央处理单元从多个初始已知数据集生成初始图形;根据所述初始图形确定多个子图;以及将所述多个子图输入到多个图形处理单元中。所述方法还可包括:在所述多个图形处理单元中的每一个中对子图执行学习过程以标识所述子图内的社区;由所述中央处理单元将所述社区分布给所述多个图形处理单元;以及基于相似性,在所述多个图形处理单元中的每一个中执行由所述图形处理单元接收的社区的合并过程以产生被合并社区集合,所述被合并社区或所述被合并社区的衍生物用于对未知数据集进行分类。
在一个实施例中,所述衍生物是由被合并社区形成的树,并且所述方法还包括在图形处理单元中的每一个中由每个被合并社区形成树。在一个实施例中,所述方法还包括:在所述多个图形处理单元中的每一个中计算两个或更多个社区之间的归一化重叠分数,并基于所述归一化重叠分数合并所述两个或更多个社区;以及由所述中央处理单元从所述多个图形处理单元中的每一个搜集所述被合并社区。另外,所述方法还可包括:由所述中央处理单元评估所述被合并社区的文件大小;以及基于所评估的所述被合并社区的文件大小,停止或重复所述合并过程。
在另一实施例中,所述方法还包括:向所述被合并社区或其衍生物应用所述未知数据集以对所述未知数据集进行分类;基于所述被合并社区和来自所述多个初始已知数据集与多个新的已知数据集的更新后的图形的比较,在所述多个图形处理单元中的所述每一个中计算所述被合并社区的向量相似性分数,其中所述多个初始已知数据集和多个新的已知数据集包括通过网络实施的交易的历史。
其它实施例涉及与本文中所描述的方法相关联的系统、中央处理单元、图形处理单元、服务器计算机、客户端计算机、便携式消费装置和计算机可读介质。
参考以下详细描述和附图,可以更好地理解本发明的实施例的本质和优点。
附图说明
图1示出描绘机器学习过程的高级图。
图2示出根据实施例的使用多个GPU构建机器学习模型的框图。
图3示出根据实施例的多个GPU的合并结果的框图。
图4示出根据实施例的跨GPU对模型评分的框图。
图5示出根据实施例的图形分片(sharding)的绘图。
图6示出根据实施例的通过网络收集的用户数据的实例。
图7示出根据实施例的服务器计算机的框图。
图8示出从多个数据集生成的图形的实例。
术语
术语“人工智能模型”或“AI模型”可以指可用于预测结果以便达成预定义目标的模型。AI模型可以使用学习算法来开发,其中训练数据基于已知的或推断的模式来分类。AI模型还可被称为“机器学习模型”或“预测性模型”。
“图形处理单元”或“GPU”可以指设计用于创建旨在用于输出到显示装置的图像的电子电路。显示装置可以是屏幕,且GPU可以通过迅速地操控和变更存储器来加快帧缓冲器中图像的创建。GPU可具有并行结构,这种结构使得GPU比用于并行完成较大数据块的处理的算法的通用CPU更有效。GPU的实例可包括RadeonTMHD 6000系列、PolarisTM11、NVIDIAGeForceTM900系列、NVIDIA PascalTM等。
“拓扑图”可以指在具有由边线连接的不同顶点的平面中的图的表示。拓扑图中的不同顶点可以被称为“节点”。每个节点可以表示事件的特定信息,或者可以表示实体或对象的简档的特定信息。节点可通过一组边线E彼此相关。“边线”可被描述为由作为图形G=(V,E)的子集的两个节点构成的无序对,其中G是包括由一组边线E连接的顶点(节点)集V的图。例如,拓扑图可以表示交易网络,在此网络中,表示交易的节点可通过边线连接到与交易相关的一个或多个节点,例如表示装置的信息、用户、交易类型等的节点。边线可与被称为“权重”的数值相关联,所述数值可被指派给两个节点之间的成对连接。边线权重可以被标识为两个节点之间的连接强度和/或可以与成本或距离相关,因为它常常表示从一个节点移动到下一个节点所需的量。
“模拟退火”可以指通过在退火的物理过程(加热材料然后慢慢降低它的温度的冶金过程)之后对系统建模来逼近给定函数的全局最优解的概率技术。在模拟退火中,搜索空间中的解的每种配置都可以表示系统的不同内部能量。从搜索空间获取的样本的验收准则的放宽可类似于加热,而样本验收准则的缩小可类似于冷却。一旦系统充分“冷却”,配置就可以表示处于或接近全局最优解的样本。更多信息请参阅:
P.和Jaszkiewicz,A.(1998年),帕雷托模拟退火——用于多目标组合优化的元启发式技术(Pareto simulated annealing—a metaheuristic technique formultiple-objective combinatorial optimization),多准则决策分析杂志(J.Multi-Crit.Decis.Anal.),7:34-47.doi:10.1002/(SICI)1099-1360(199801)7:1<34::AID-MCDA161>3.0.CO;2-6。
“图形分片”可以指通过将大图形分成更小的且更快/更容易管理的部分来将数据图形分区。图形可以基于数据点彼此的关系来分片,例如通过使用无监督学习来分片。例如,可以使用k均值聚类或k核算法将图形划分成多个重叠树,每个重叠树包括图形中的节点和边线子集。树可以形成为使得每个树都包括彼此高度连接的节点。
“子图”可以指由较大图形的元素的子集形成的图形。所述元素可包括顶点和连接边线,并且所述子集可以是在较大图形的节点和边线的整个集合当中选择的节点和边线的集合。例如,多个子图可以通过对图形数据随机采样来形成,其中每个随机样本都可以是子图。每个子图可以与由相同的较大图形形成的另一个子图重叠。
“社区”可以指图形中的节点群组,群组内的节点密集连接。社区可以是子图或其部分/衍生物,且子图可以是也可以不是社区和/或包括一个或多个社区。可以使用图形学习算法从图形标识社区,所述图形学习算法例如是用于绘制蛋白质复合物的图形学习算法。使用历史数据标识出的社区可以用于对新数据进行分类,以进行预测。例如,标识社区可以用作机器学习过程的一部分,在此部分中可以基于信息元素彼此的关系来对信息元素进行预测。
“数据集”可以指由单独的元素构成的相关信息集的集合,这些单独的元素可作为整体由计算机操控。数据集可包括已知数据,已知数据可被视为过往数据或“历史数据”。还未被收集的数据可被称为未来数据或“未知数据”。当在稍后时间点接收未来数据并加以记录时,所述未来数据可被称为“新的已知数据”或“最近已知的”数据,并且可以与初始已知数据组合来形成更大的历史。
“无监督学习”可以指用于通过标记输入和/或输入群组而对数据集中的信息进行分类的机器学习算法类型。一种无监督学习方法可以是聚类分析,它可用于查找数据中的隐藏模式或分组。簇可以使用相似性量度来建模,所述相似性量度可以使用一个或度量来定义,例如欧几里得距离。
“重叠分数”可以指测量所比较的两个集合之间的相似性的量。每个集合可以是元素集合,例如图形的一组节点和边线。例如,集合可以是拓扑图的社区,它们可以通过确定两个社区之间的重叠(即,这两个社区之间共享的节点和边线)来比较。
“样本群组”可以指群体子集。群体可以是一个数据集、多个数据集或数据集的表示。例如,可以使用概率分布从图形生成随机样本。每个样本群组都可以是子图,其中每个样本群组包括所采样的初始图形的子集。
具体实施方式
本发明的实施例涉及一种用于使用图形处理单元(GPU)加快机器学习的方法。在先前的方法中,图形模型构建和评分可能是比较缓慢且资源密集的。本文中所描述的本发明的实施例描述一种可以缩短模型构建和评分时间的方法。可以使用多个GPU来加快模型构建、评分和树遍历。
根据一些实施例,图形的数据可以使用随机重采样器来拆分。每个样本都可以跨所述多个GPU分布,这些GPU可以分别对其局部样本采用图形学习算法来开始模型构建过程。图形学习的输出结果可以是例如由每个GPU生成的一系列社区。此外,多个GPU的结果可以使用模拟退火处理来合并,在此处理中可以将归一化重叠分数用作合并准则。合并模型结果可包括一系列图形数据库,所述一系列图形数据库包括模型的子图。子图可以进行分片来生成一系列树,这些树可以跨GPU分布以对模型结果评分。
图1示出描绘机器学习过程的高级图。根据过程100,模型130可使用训练数据来训练,使得模型可用于进行准确预测。例如,预测可以是图像的分类(例如标识因特网上的猫的图像),或者作为另一实例,预测可以是推荐(例如,用户可能喜欢的电影或消费者可能喜欢的餐厅)。
训练数据可以被收集作为现有记录110。现有记录110可以是可用来确定模式的任何数据。接着,这些模式可在稍后时间点应用于新数据以进行预测。现有记录110可以是例如通过网络收集的用户数据,例如用户浏览器历史或用户支出历史。通过将现有记录110用作训练数据,训练可通过学习模块120来执行。学习模块120可包括学习算法,它可用于构建模型130。
模型130可以是统计模型,它可用于根据已知信息预测未知信息。例如,学习模块120可以是用于从训练数据生成回归线(监督学习)的指令集或用于基于相似性、连接性和/或数据点之间的距离将数据分组成多簇不同数据分类(无监督学习)的指令集。接着,回归线或数据簇可用作用于根据已知信息预测未知信息的模型。一旦从学习模块120构建了模型130,就可使用模型130从新请求140生成预测输出150。新请求140可以是对与呈现的数据相关联的预测的请求。例如,新请求140可以是对将图像分类或为用户推荐的请求。
新请求140可包括请求预测的数据。例如,新请求140可包括待分类图像的像素数据,或者可包括可用于确定适当推荐的用户信息(例如,名字、位置、用户历史等)。为了从新请求140生成预测输出150,包括在新请求140中的数据可以与模型130进行比较。例如,在新请求140中接收的数据在图形上的位置可与回归线进行比较,以预测它的下一状态(即,根据趋势)。在另一实例中,标绘在拓扑图上的数据的位置可用于确定它的分类(例如,基于用户的线上交互预测他或她的口味和偏好)。
根据本发明的实施例,可以使用多个图形处理单元(GPU)加快图1所示的机器学习过程。这可以通过像本文中描述得那样在GPU上执行模型构建、结果合并和模型评分来实现。
图2示出根据实施例的使用多个GPU构建机器学习模型的框图。模型构建200可在处理装置上执行,所述处理装置包括中央处理单元(CPU)210和多个多核图形处理单元220,例如GPU-1 220a、GPU-2 220b和GPU-N220c。根据实施例,用于实施本发明的GPU的数目可以发生变化(例如,1到N个GPU)。合适的处理装置的实例可包括多处理器服务器计算机,所述多处理器服务器计算机可包括服务器图形芯片,例如NVIDIA Tesla和AMD FirePro。处理装置还可包括共享存储器230,所述共享存储器230可包括将在模型构建期间由多核GPU 220读取的数据。
模型构建过程可以在CPU 210处开始。在步骤201处,CPU可以为构建过程准备数据结构。这可包括从多个初始已知数据集生成初始图形。所述多个初始已知数据集可以是例如网络中的用户或用户装置的数据(例如,用户交易数据和/或装置位置数据)。所述初始图形可以是例如拓扑图,在拓扑图中,用户/装置表示为节点,它们在网络中的交互表示为边线。
为了参考,图8示出从多个数据集生成的图形的实例。图8示出在交易网络中接收的数据的图形。交易网络可包括用户节点,例如用户X 801、用户Y 802和用户Z 803。用户节点可以通过边线连接到交易数据节点,所述交易数据例如是商家名称、商家类别等等的数据。边线可以表示节点之间的关系,这种关系可以基于包括与物理世界中的节点有关的信息的交易(例如,金融交易)和/或基于从关于现实世界的已知信息指派的标记(例如,商家类别代码、商家位置、用户地址等)。
根据实施例,由边线表示的关系可以进一步通过所指派的权重和/或通过计算出的长度/距离来量化,由此评估两个节点之间的相关性水平。图形的节点可以进一步一起分类为社区,每个社区由不同特征定义,针对所述不同特征,每个社区内的节点可具有一些共性。例如,在距离方面彼此接近且形成密集簇的多个节点可以被分类为‘社区A:位置-加利福尼亚州旧金山教会区’810。同时,其它密集节点群组可以分类为其它社区,例如‘社区B:喜欢墨西哥食物’820和‘社区C:批发/杂货’850。在实施例中,图形的社区可以使用学习算法来标识。
返回到图2,用于使用来自初始图形的数据执行学习算法的指令可以通过CPU 210存储在共享存储器230中。学习算法可以是例如将图形数据分类成密集连接的社区的图形学习算法。除了用于执行学习的指令之外,额外属性也可以存储在共享存储器230中。这可包括可用于偏置/调整学习结果的节点属性。例如,针对表示交易网络的图形,相比于表示用户和小型本地餐厅之间的交易的边线,表示用户和沃尔玛之间的交易的边线对于分类来说没那么重要。为了实现更好的模型,这些边线的权重可以通过存储在共享存储器230中的节点属性来调整和考量。例如,节点属性可包括陈述对于连接到‘节点X’的边线将权重减小20%的逻辑。
在已经从多个初始已知数据集生成初始图形之后,CPU 210可以在步骤202处生成多个子图。子图可以通过任何合适方式生成。例如,子图可以从初始图形中随机地、伪随机地或系统地选择。子图优选的是与至少一个剩下的子图重叠。在一些情况下,重叠子图的随机样本可以根据初始图形来确定。
在一些实施例中,可以生成任何数目个子图来适应特定问题。例如,可以从包括旧金山的交易数据的初始图形生成1000个子图,同时可以从包括针对加利福尼亚的整个状态收集的交易数据的初始图形生成10,000个子图。在一个实施例中,子图可具有重叠元素,并且每个子图可含有一些与所生成的另一子图相同的信息。在一个实施例中,子图可以系统地生成(例如,将初始图形划分成均匀划分的片段)。在另一实施例中,所生成的子图可以使用随机采样来生成(例如,根据泊松分布(Poisson distribution))。例如,为了生成子图,可以针对初始图形中的每个边线生成离散概率值的泊松分布曲线。给定边线的每个分布可基于它的权重,使得较高的加权边线可以与较高的预期出现次数相关联。每个分布可另外进行下采样,使得极低的加权边线和/或极高的加权边线可以包括在比它的初始泊松分布所给定的样本更少的样本中。
例如,公式:可用于生成每个边线的概率曲线。k可以是区间(即,样本的可能数目,例如,在样本大小为10的情况下的0到10)。λ可以是所述区间中的预期出现次数(即,出现率),它可以设置为与边线权重成正比。例如,给定10个样本的区间,权重9可以被指派为预期出现9次,而具有权重1的边线可以被指派为预期出现在10个样本中的1个中,即,10个子图中的1个中。接着,Pr可表示边线被包括在任何给定样本(即,任何给定子图)中的概率,它取决于k和λ。然后,为了将边线包括在所生成的给定样本中,可以从均匀分布获取离散随机数‘X’并将其应用于边线的概率曲线。例如,首先可获取/生成在0和10之间的随机数。接着可将随机数‘X’用作k的值,使得边线被包括在样本中的概率可以被计算出(例如,对于具有权重9的边线,可以随机获取数字5并将其用作‘k’的值,以产生概率/>)。如果概率大于预定阈值,那么边线可以被包括到给定子图中(例如,预定阈值可以是0.05,那么边线可以被包括)。
对于要生成的每个样本(每个子图),可以针对每个边线生成随机数,以便确定所述边线是否被包括到样本中。例如,为了使用每个边线的泊松分布生成样本,可以首先为要生成的10个所要子图分配10个空阵列。在构建给定阵列时(即,在生成一个子图时),可以针对每个边线生成随机数X并将其应用于公式:其中k等于X,且λ是边线的下采样后的权重(降低的权重)。接着,可以将根据这一公式确定的概率与预定截止阈值相比较。如果概率大于预定截止阈值,那么边线的标识符可以作为阵列的元素放置(即,边线因此被包括在子图中)。这个过程可以针对每个边线不断执行,以构建给定子图。要构建所有10个子图,此过程可接着另外再执行9次。例如,可以使用嵌入式‘for’环路,其中第一个‘for’环路生成每个边线‘j’的随机数,以确定边线是否被包括到子图‘i’中,并且其中第二个‘for’环路可用于针对10个阵列中的每一个重复第一个‘for环路’并构建每个子图。因此,可以生成10个子图,其中每个子图包括初始图形中的不同边线子集(基于每个边线的加权出现概率而随机选择)。因此,在这些实施例中,子图可以通过从初始图形中去除不同边线组合来生成。
一旦子图已经生成,子图就可以跨多个多核GPU 220(例如,随机)分布。在步骤203a、步骤203b和203c处,可分别由GPU-1 220a、GPU-2 220b和GPU-N 220c结合存储在共享存储器230中的数据对多个子图执行学习。在一个实施例中,学习算法可以是无监督学习算法,它可用于将数据分组成不同信息的不同社区,如多个节点和边线所表示。在实施例中,无监督学习算法可以是图形学习算法,它可以基于距离将节点分组成密集簇。例如,学习指令可如下:
1)通过将边沿的连接性和总计数用作权重来创建排序的边线列表。
2)对于每个边线,将上方定义的权重用作排序依据来生成以降序排序的相邻边线集合。
3)对于每个相邻边线,生成相邻和目标边线之间的距离。
4)如果距离大于截止值,那么将相邻边线添加到社区。
5)一直重复到所有边线都与社区相关联为止。
用于标识社区的合适的学习算法的实例可包括:Fastgreedy、Spinglass、Walktrap、边介数(Edge Betweenness)、Infomap、标签传播(Label Propagation)、最优模块度(Optimal Modularity)和多层级(Multilevel)。此外,图形学习算法可以是标识彼此重叠(即,共享节点)的社区的算法。例如,通常用于基于重叠簇来标识蛋白质复合物的图形学习算法还可用于对任何交互网络中的节点进行分类(例如,将交易网络的节点分组)。图形学习算法可包括:基于计算出的每个边线的权重来计算拓扑图中的每个节点的权重,以及生成包括呈权重降序的节点的队列。可以从队列顶部选择种子节点来生成社区。接着,可以使用计算出的节点之间的交互概率以迭代方式将节点添加到社区。然后,可以从队列中去除所添加的节点,并且留在队列顶部的节点可用作下一社区的种子。然后可以重复此过程,直到队列被清空为止,从而生成多个社区。
更多信息请参阅:
Li M、Chen J、Wang J、Hu B、Chen G.修改DPClus算法以基于新拓扑结构标识蛋白质复合物(Modifying the DPClus algorithm for identifying protein complexesbased on new topological structures).BMC生物信息学(BMC Bioinformatics),2008年,9:398。
一旦多个多核GPU 220中的每一个都已经对它们的每一个局部子图执行过学习算法来标识子图内的社区,就可以在步骤204中在CPU处搜集所标识的社区。在一个实施例中,这可包括聚合从在每个GPU上执行的每个学习器(learner)输出的社区。
在步骤205处,可以生成模型构建过程的输出。在一个实施例中,这可包括从图形学习发现的聚合社区列表,以及组成每个社区的节点和边线。在一个实施例中,每个社区可以由社区ID标识。社区可以另外由学习器ID标识,学习器ID标识学习器或上面生成社区的GPU(例如,ID:1=GPU-1 220a,ID:2=GPU-2 220b,等等)。此外,包括在每个社区中的节点可以被标识为与社区ID相联系的唯一节点标识符(节点ID)的列表。例如,社区‘A’可以与节点‘123512’、节点‘125923’、节点‘402415’等等相联系,这些节点可以表示包括在社区‘A’中的数据(例如,分类为共享特征且属于社区‘A’的用户、商家、内容等)。在实施例中,社区可以重叠,且任何给定节点可以属于超过一个社区。
图3示出根据实施例的多个GPU的合并结果的框图。根据实施例,一旦多个多核GPU220已经通过学习生成社区,结果就可以进一步合并以压缩模型的文件大小,因此只保存不同且必需的信息,并因此使得模型的训练可以更快速地进行。在实施例中,由图2所示的模型构建过程产生的社区可以基于相似性在多个多核GPU上合并在一起。
类似于图2所示的模型构建过程,合并结果过程300可以使用CPU 310、多个多核GPU 320和共享存储器330来执行。在步骤301处,可以准备数据结构。在此步骤处,在模型构建阶段中标识出的社区列表可以进行格式化以供多核GPU 320处理。另外,节点属性和合并指令可以由CPU 310加载到共享存储器330中。
在步骤302处,所标识的社区列表可以由CPU 310划分成随机样本群组,以用于分布给多个多核GPU 320。例如,可以使用泊松分布来从社区列表生成重叠样本群组,这些群组可以分别加载到GPU-1 320a、GPU-2 320b、GPU-N330c等等中,用于合并相似社区。这样做可以使得多核GPU 320中的每个GPU都可以处理和合并彼此不同的具有社区群组的样本群组。在步骤303a、303b和303c处,可以分别在GPU-1 320a、320b、320c处接收从CPU 310中分布的样本群组,并且可以从共享存储器330读取合并指令和节点属性。
在步骤304a、304b和304c处,GPU-1 320a、GPU-2和GPU-N可以分别计算它接收的样本群组中的社区群组之间的距离。在一个实施例中,社区群组之间计算出的距离可以是反映样本群组中的两个社区群组之间的相似性的归一化重叠分数。例如,归一化重叠分数可以计算为:
其中A是样本群组中的第一社区群组,B是样本群组中的第二社区群组。A∩B可以是A和B之间共享的元素。Min(A,B)可以是A和B之间的社区中的最小元素量。根据实施例,可以针对在多个多核GPU 320中的给定GPU(GPU-1 320a、GPU-2 320b、GPU-N 320c等)处接收的样本群组中的每对社区计算距离(例如,重叠分数)。
在步骤305a、305b和305c处,GPU-1 320a、GPU-2 320b和GPU-N可以基于计算出的它接收的样本群组中的社区之间的距离(例如,基于重叠分数)来合并社区。例如,如果两个社区之间计算出的重叠分数高于截止阈值,那么社区可以合并,并且可以表示为具有新社区ID的单个社区。在一个实施例中,新社区ID可以从被合并社区的社区ID衍生出来。例如,新社区ID可以通过将已经合并的两个社区的社区ID串接而衍生出来(例如,社区‘A’+社区‘B’=社区‘AB’)。在实施例中,所合并的两个社区可以是包括一个或多个相同节点的重叠社区,并且单个新社区可包括这两个被合并社区的所有元素(即,这两个社区之间的所有重叠节点和边线以及所有不重叠节点和边线)。例如,参考图8,‘社区A:位置-加利福尼亚州旧金山教会区’810可以与‘社区B:喜欢墨西哥食物’820合并来形成‘社区AB:位置-教会区,喜欢墨西哥食物’830。然后,社区AB 830可包括社区A 810和社区B820的节点和边线,例如用户X 801、用户Y 802、用户Z 803的节点以及它们的直接连接。在实施例中,一旦已经由被合并社区形成新社区,所合并的原始社区就可以从存储器中去除或擦除。
返回到图3,在步骤306处,可以在CPU处搜集多核GPU 320的包括被合并社区的输出。例如,可以在多核GPU 320中的每一个GPU处执行过合并过程之后聚合更新后的社区列表。在步骤307处,CPU可以评估合并结果过程的停止准则。如果满足停止准则,那么CPU 310可以执行步骤302以从更新后的社区列表生成新样本群组,然后再将其重新分布给多核GPU320用于距离计算和合并。在一个实施例中,停止准则可以是被合并社区集合可以收敛达到的最优文件大小。例如,合并过程可以一直迭代地重复到更新后的社区列表被压缩到最优文件大小(例如,1GB到2GB)为止,同时保持多个初始已知数据集的不同且准确的信息。
一旦满足停止准则,就可以由CPU 310输出所得社区集合。接着可以使用所得社区集合或其衍生物来对未知数据集进行分类。未知数据集可包括在预测请求中接收的数据。例如,未知数据集可包括对符合用户的口味和偏好的推荐(例如,电影、餐厅等)的一个或多个请求。然后,可以通过将未知数据集与在合并过程之后产生的社区集合进行比较来生成预测,以便对数据进行分类(例如,用户‘X’生活在旧金山且属于社区‘Y’:推荐餐厅‘Z’)。在未知数据集已经应用于社区集合或其衍生物以对未知数据集进行分类之后,可以通过将社区与更新后的包括新数据的图形进行比较来对模型评分。这样,模型可以训练成使得评分更高的社区可以优先于评分更低的社区得到推荐。
图4示出根据实施例的跨GPU对模型评分的框图。根据实施例,在请求预测期间,可以将未知数据应用于机器学习模型,所述机器学习模型包括用于对未知数据进行分类的社区。为训练模型,可执行评分,其中对照包括多个初始已知数据集和多个新的已知数据集的更新后的图形来对产生的社区集合评分。例如,对于用于生成用户推荐的机器学习模型,使用初始用户数据(例如,用户交易历史)生成的模型可用于生成所请求的推荐,并且接着可以通过将模型与在稍后时间点接收的新用户数据(例如,包括在已经生成所请求的推荐之后实施的交易的更新后的用户交易历史)进行比较来对模型评分。
如在图2的模型构建200和图3的合并结果过程300中,模型评分过程400可以使用CPU 410、多核GPU 420和共享存储器430来实施。多核GPU 420可包括多个GPU,例如GPU-1420a、GPU-2 420b、GPU-N 420c等。
在步骤401处,CPU可以准备数据结构用于评分。社区集合可以由CPU格式化以用于多核GPU 420的加载、分布和评分。另外,可以获得评分指令和节点属性并将其加载到共享存储器430中。在一个实施例中,准备数据结构还可包括执行图形分片,它可用于使树遍历过程运行得更快。
为了参考,图5示出根据实施例的图形分片的绘图。来自机器学习模型的子图501(包括被合并社区)可以跨GPU分片。子图501可包括节点501a、501b、501c、501d、501e和501f。图形分片可涉及划分子图的各部分以产生被合并社区的衍生物,所述衍生物包括更少节点,并因此包括更小的树用于树遍历。
在一个实施例中,分片可基于子图中社区群组之间的每次计算的重叠(per-calculate overlap),例如通过K均值聚类。在另一实施例中,图形分片可基于节点之间的连接强度来执行,从而减少了弱边线集合,例如使用K核算法的分片。所选择的K核算法还可以是旨在产生更好结果的迭代下采样K核过程。例如,通过在K核算法每次迭代时对边线权重进行下采样,子图的所有节点都可以基于节点之间的连接而形成到至少一个树中。在执行图形分片过程时,子图可以划分成从子图衍生的多个重叠树。例如,第一树502可包括节点502a、502d和502e,它们可分别对应于子图501的节点501a、501d和501e。第二树503可包括节点503b和503d,它们可分别对应于子图501的节点501b和501d。
返回到图4,一旦数据结构已经准备好,就可以将分片后的子图分布给多核GPU420用于树遍历。在步骤402a、402b和402c处,树遍历可分别由GPU-1 420a、GPU-2 420b和GPU-N 420c执行。根据实施例,当在预测请求中接收到未知数据时,可以在多个多核GPU420中的一个GPU(例如,GPU-1420a、GPU-2 420b等)处将未知数据应用于模型(即,社区)。
在使用模型对未知数据进行分类期间,可以基于未知数据到附近节点的距离和连接性来比较数据与社区。例如,对于用户推荐请求,可以在表示交易网络中的交互的图形上绘制用户数据(例如,用户历史、用户位置等)。接着,可以通过遍历与用户数据相联系的节点(即,用户输入节点)的树来使用树遍历将用户数据应用于社区列表,直到确定合适的预测(即,包括在潜在的用户社区中的合适的输出节点)为止。例如,参考图8,用户‘Y’802可以请求推荐位于加利福尼亚州旧金山的教会区的咖啡厅。用户‘Y’802可属于社区‘A’810,可以遍历社区‘A’890的树来找到合适的推荐。遍历可以从用户‘Y’802的节点开始,并且可以沿着树890继续,直到到达与‘咖啡厅’805相联系的输出节点为止,所述输出节点例如是‘Atlas咖啡厅’804的节点。节点804接着可作为预测输出到所请求的推荐(例如,可以确定节点的标识符,并且可以将包括所述标识符的消息从服务器计算机发送到请求推荐的用户装置)。
随时间推移,可以接收多个预测请求,并且可以针对每个请求生成多个预测。可以将每个请求转发到多个多核GPU中的给定GPU,并且可以通过在给定GPU处(即,在GPU-1420a、GPU-2 420b、GPU-N等等中的一个处)遍历树来针对每个请求生成预测。在已经确定多个预测之后,可以比较预测/分类与新的已知数据集来对模型的准确性评分。
在图4的步骤403a、403b和403c处,可以分别在GPU-1 420a、GPU-2420b和GPU-N420c处计算社区和包括初始已知数据集和新的已知数据集的更新后的图形之间的向量相似性分数,以便对模型评分。在一个实施例中,向量相似性分数可以计算为:
分数向量相似性=α*分数1+(1-α)*分数
其中A是包括新的已知数据集的更新后的子图,B是所生成的模型的社区,Min(A,B)是A和B之间的最小元素数目(例如,如果A具有5个元素,B具有10个元素,那么最小值将为5),Max(A,B)是A和B之间的最大元素数目(例如,10个元素),且α是可调整参数。
在一个实施例中,每个包括新的已知数据集的更新后的子图的向量相似性分数都可以与每个社区比较。例如,在包括实施多个交互(例如,交易、内容视图等)的多个用户的网络中,可以针对每个用户的历史(例如,支出历史、查看历史等)生成子图,这些子图可以对照每个包括用户数据的社区(例如,包括用户的地理区域中的商家的多个社区或包括与用户偏好相关联的内容标签的多个社区)来评分。在一个实例中,可以从通过网络实施的历史交易生成更新后的图形,并且可以从更新后的图形生成多个子图。子图可各自包括给定用户的更新后的交易历史。接着,可由多核GPU 420通过将包括给定用户节点的社区与给定用户的子图的节点进行比较来对社区评分。这可包括商家节点,商家与用户的连接可能已经成为推荐结果。
在步骤404a、404b和404c处,可以在GPU-1 420a、GPU-2 420b和GPU-N420c上累积社区的分数。在一个实施例中,为给定社区计算的一组分数可以通过对计算出的分数取平均值(例如,加权平均值)来累积。例如,社区‘B’(表示商家群组)可以得到与子图‘A’(表示用户‘A’的交易数据)对照的向量相似性分数‘10’,且社区‘B’可以得到与子图‘C’(表示用户‘C’的交易数据)对照的向量相似性分数‘6’。接着,可通过对计算出的社区的分数取平均值来累积社区‘B’的分数(例如,‘[10+6]/2=8’)。分数可以进一步跨GPU取平均值。例如,给定社区的超过一个分数可以由GPU-1 420a、GPU-2 420b、GPU-N 420c等计算,并且社区的分数可以通过对GPU-1 420a、GPU-2 420b和GPU-N 420c之间计算出的分数取平均值来累积。
在步骤405处,可以向CPU 410输出、由CPU 410接收并由CPU 410最终确定在多核GPU 420处确定的分数。在一个实施例中,最终确定分数可包括校准分数以处于预定范围内。在另一实施例中,最终确定分数可包括将预定规则应用于计算出的分数。例如,可以应用硬编码规则,其中社区‘A’的分数将乘以‘1.32’倍。
在步骤406处,CPU 410可以生成用于评分过程的输出。输出可以是更新后的社区列表(由唯一社区ID标识,并且与包括在每个社区中的节点的多个节点ID相关联),其中每个社区与最终确定的每个社区的分数相联系。在一个实施例中,评分最高的社区可以保存并在未来预测中用于对数据进行分类,而评分最低的社区可以被擦除,或者可以不那么频繁地用于预测。例如,对于训练成为用户提供推荐的机器学习模型,只有与用户数据相关联的前3个评分最高的社区(例如,含有附近餐厅的前3个评分最高的社区)可以用于为用户生成推荐。
本发明的实施例提供优于现有技术的数个技术优势。实施例通过在图形处理单元(GPU)上执行的并行处理加快了模型构建和模型评分。此外,实施例提供一种用于合并在单独处理器上执行的图形学习的结果的方法,并且以压缩文件大小的方式进行,同时使准确预测所需的重要且不同的信息的损失降到最低。模型数据的压缩以及模型构建、合并和评分过程的并行性质使得大型数据集可以更快速地处理,其中在CPU上执行的模型构建和训练原本会耗费过长时间来达到所要结果。
图6示出根据实施例的通过网络收集的用户数据的实例。数据收集600可包括多个用户,例如第一用户605和第n用户606。多个用户可以通过使用一个或多个装置经由网络640建立连接来访问由服务器计算机600A或服务器计算机600A的实体提供的服务,所述一个或多个装置例如是第一用户装置601、第二用户装置602、第三用户装置603和第n用户装置604。
根据实施例,服务器计算机600A可以是媒体内容提供商、交易处理服务或任何其它用户服务提供商的服务器计算机,所述其它用户服务例如是交通/拼车服务、送餐服务、社交媒体平台等。多个用户装置可以是能够通过网络接收、存储和发送数据的任何处理装置,例如笔记本电脑、移动电话、台式电脑、平板电脑、可穿戴装置、POS终端等。网络640可以是用于向多个用户装置传输数据和从多个用户装置接收数据的任何网络,例如因特网或交易处理网络(例如,VisaNet)。
在实施例中,当用户访问由服务提供者提供的服务时,服务器计算机600A收集、记录并存储用户数据。例如,服务器计算机600A可以收集在第n用户装置604上通过网络640上载、下载或流式传输的视频的元数据,它可包括标题、描述、内容标签、标注等。在另一实例中,当第n用户606在商家处进行交易时,服务器计算机600A可以记录交易ID、交易金额、交易时间戳和商家类别代码并使其与用户的支付账户相关联。在又一实例中,服务器计算机600A可以是为移动应用程序提供后端支持的服务器计算机,并且服务器计算机600A可以收集和存储从来自移动电话的GPS数据接收的用户位置数据,例如来自第二用户装置602。
在一个实施例中,用户数据可以由服务器计算机600A存储在聚合数据数据库600B中。例如,聚合数据数据库600B可以是集中式数据库,它包括用户简档、用户交易历史、用户查看历史等。根据实施例,服务器计算机600A可以使用存储在聚合数据数据库中的数据来构建和训练用于生成预测的机器学习模型。例如,服务器计算机600A可以是音频或视频流服务的服务器计算机,它可以使用用户的流历史来构建模型。接着,模型可用于根据用户的口味和偏好对用户进行分类,并且可以使用用户的分类生成推荐来流式传输其它内容。
在一个实施例中,由服务器计算机600A生成的模型可以通过在多个图形处理单元上执行的图形学习来生成,例如通过图2的模型构建200、图3的合并结果过程300和图4的模型评分400来生成。在实施例中,图形学习可用于生成包括社区的子图,这些子图可以存储在图形数据库600C中。利用由服务器计算机600A的实体提供的服务的用户(例如,第一用户605)可以基于用户数据在他或她的装置(例如,第二用户装置602)上接收一个或多个推荐(即,预测),所述用户数据例如是用户历史和用户位置数据。在实施例中,推荐可以通过将用户数据应用于存储在图形数据库600C的子图中的一个或多个社区来生成。例如,第一用户605可以请求推荐附近餐厅,服务器计算机600A可以比较第一用户605的位置数据(由第二用户装置602提供)以及第一用户605的交易历史和与对照第一用户605的数据(位置和交易历史)的高重叠分数或高向量相似性分数相关联的社区。接着,可遍历社区或其衍生物的节点,找到符合预定准则的输出节点,所述输出节点可具有在附近且在与第一用户605相似的用户当中受欢迎的商家。
图7示出根据实施例的服务器计算机的框图。服务器计算机700A可以是例如图6的服务器计算机600A。服务器计算机700A可包括用于处理所接收的数据的中央处理器710。中央处理器710可以是图2的CPU 210、图3的CPU 310和/或图4的CPU 410。
服务器计算机700A还可包括用于并行处理的多核GPU 720。多核GPU 720可以是图2的多核GPU 220、图3的多核GPU 320和/或图4的多核GPU 420。根据实施例,多核GPU 720可包括可以并行地处理数据和执行计算的多个图形处理单元,例如GPU-1 720A、GPU-2 720B和GPU-N 720C。多核GPU 720还可包括共享存储器730,共享存储器730可包括在执行数据处理和计算期间可由多个图形处理单元读取的数据。
服务器计算机700A还可包括用于通过网络接收数据的网络接口740,所述网络例如是图6的网络640。服务器计算机700A还可包括用于存储可由中央处理器710执行的指令(例如,代码)的模块的计算机可读介质750。计算机可读介质705可包括一个或多个模块,例如通信模块750A、图形生成模块750B、GPU接口模块750C、采样模块750D、格式化模块750E、GPU指令模块750F、输出模块750G、图形分片模块750H、分数最终确定模块750I和数据库访问模块750J。服务器计算机700A可另外耦合到一个或多个数据库,例如聚合数据数据库700B和图形数据库700C,它们分别可以是图6的聚合数据数据库600B和图形数据库600C。聚合数据数据库700B可包括通过网络收集的数据,例如用于构建和训练机器学习模型的用户数据。图形数据库700C可包括从聚合的数据和/或学习生成的多个图形和/或子图。
通信模块750A可包括可由中央处理器710执行的用于通过网络接口740接收、传输、格式化和重新格式化消息的指令。例如,通信模块750A可包括用于通过因特网从用户装置(例如,图6的第二用户装置602)接收用户数据和用于向用户装置发送可基于用户数据到机器学习模型的应用的推荐的代码。
图形生成模块750B可包括可由中央处理器710执行的用于从接收的数据生成图形的指令。例如,图形生成模块750B可包括用于基于通过网络接口740接收的用户数据而生成节点和边线的拓扑图的代码。
GPU接口模块750C可包括可由中央处理器710执行的用于与多核GPU 720介接的指令。例如,GPU接口模块750C可包括用于发起将由多核GPU 720中的多个GPU并行执行的过程和用于向GPU-1 720A、GPU-2 720B、GPU-3 730c和共享存储器730发送实施所述过程所需的数据的代码。
采样模块750D可包括可由中央处理器720执行的用于生成数据样本以用于分布给多核GPU 720的指令。例如,采样模块750D可包括用于基于泊松分布从初始拓扑图生成多个随机重叠子图的代码。
格式化模块750E可包括可由中央处理器710执行的用于格式化一个或多个过程和/或计算的数据的指令,所述一个或多个过程和/或计算包括由多核GPU 720进行的过程和/或计算。例如,格式化模块750E可包括用于在模型构建、结果合并和模型评分之前以一种使得所述过程可由GPU-1 720A、GPU-2 720B和GPU-N 720C并行执行的方式准备数据结构的代码。
GPU指令模块750F可包括可由中央处理器710执行的用于指示多核GPU实施一个或多个过程的指令。例如,GPU指令模块750F可包括用于将由GPU-1 720A、GPU-2 720B和GPU-N720C执行的图形学习算法的代码。GPU指令模块750F还可包括用于计算将由多核GPU执行的合并过程的重叠分数的代码和用于计算将由多核GPU执行的模型评分过程的向量相似性分数的代码。另外,GPU指令模块750F还可包括用于指示多核GPU中的一个或多个GPU使用树遍历向模型应用用户数据的代码。
输出模块750G可包括可由中央处理器710执行的用于生成一个或多个过程的输出的指令。例如,输出模块750G可包括用于基于由多核GPU 720执行的图形学习的结果而生成与节点标识符相关联的社区ID的列表的指令。输出模块750G还可包括用于在由多核GPU720执行的合并过程期间评估停止准则(例如,评估最优文件大小)和用于生成被合并社区的列表的代码。另外,输出模块750G还可包括用于生成每个被合并社区的分数的列表的代码,这些分数可以是对机器学习模型的准确性的评定,并且可用于确定在预测请求期间要使用的社区。
图形分片模块750H可包括可由中央处理器710执行的用于对图形分片的指令。例如,图形分片模块750H可包括用于对多个子图执行迭代下采样k核算法以生成多个树的代码。接着,可在未知数据集应用于机器学习模型期间遍历树。
分数最终确定模块750I可包括可由中央处理器710执行的用于在评分过程期间最终确定分数的指令。例如,分数最终确定模块750I可包括用于对由多个GPU生成的多个社区分数取平均值的代码。
数据库访问模块750J可包括可由中央处理器710执行的用于查询和更新数据库的指令,所述数据库例如是聚合数据数据库700B和/或图形数据库700C。例如,数据库访问模块750J可包括用于从聚合数据数据库700B检取交易数据以生成拓扑图的代码。另外,数据库访问模块可包括用于在图形数据库700C中查询多个子图的代码。接着,所述多个子图可用于结果合并和/或模型评分过程。
本文提到的任何计算机系统都可以利用任何合适数目个子系统。在一些实施例中,计算机系统包括单个计算机设备,其中子系统可以是计算机设备的组件。在其它实施例中,计算机系统可以包括具有内部组件的多个计算机设备,每个计算机设备都是子系统。计算机系统可包括台式电脑和笔记本电脑、平板电脑、移动电话和其它移动装置。
本文中所描述的子系统可以通过系统总线互连。示出了耦合到显示适配器的额外子系统,例如打印机、键盘、存储装置、监视器等。耦合到输入/输出(I/O)控制器的外围设备和I/O装置可以通过本领域已知的任何数目个如输入/输出(I/O)端口(例如,USB、)的连接而连接到计算机系统。例如,I/O端口或外部接口(例如,以太网、Wi-Fi等)可用于将计算机系统连接到例如因特网的广域网、鼠标输入装置或扫描仪。通过系统总线的互连允许中央处理器与每个子系统进行通信,并控制来自系统存储器或存储装置(例如,固定盘,如硬盘驱动器,或光盘)的多个指令的执行,以及子系统之间的信息交换。系统存储器和/或存储装置可以体现计算机可读介质。另一子系统是数据收集装置,例如相机、麦克风、加速度计等等。本文所提及的任何数据都可以从一个组件输出到另一组件,并且可以输出给用户。
计算机系统可包括例如通过外部接口或通过内部接口连接在一起的多个相同组件或子系统。在一些实施例中,计算机系统、子系统或设备可以通过网络通信。在此类情况下,一个计算机可以被视为客户端,且另一计算机可以被视为服务器,其中每台计算机可以是同一计算机系统的部分。客户端和服务器可以各自包括多个系统、子系统或组件。
实施例的各方面可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或以模块化或集成方式借助大体上可编程处理器使用计算机软件以控制逻辑的形式实施。如本文中所使用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本文中所提供的公开内容和教示内容,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实施本发明的实施方案的其它方式和/或方法。
本申请中描述的任何软件组件或功能可以实施为将由处理器使用任何适当的诸如Java、C、C++、C#、Objective-C、Swift的计算机语言或诸如Perl或Python的脚本语言并使用例如传统的或面向对象的技术来执行的软件代码。软件代码可以存储为计算机可读介质上的一系列指令或命令以供存储和/或传输。适合的非瞬态计算机可读介质可包括随机存取存储器(RAM)、只读存储器(ROM)、诸如硬盘或软盘的磁介质或诸如光盘(CD)或数字通用盘(DVD)的光介质、快闪存储器等等。计算机可读介质可以是此类存储或传输装置的任何组合。
此类程序还可使用适于通过包括因特网的符合多种协议的有线、光学和/或无线网络传输的载波信号来编码和传输。因此,可以使用以此类程序编码的数据信号来创建计算机可读介质。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开提供(例如,通过因特网下载)。任何此类计算机可读介质都可以驻留在单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)之上或之内,并且可存在于系统或网络内的不同计算机产品之上或之内。计算机系统可包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其它合适的显示器。
本文所描述的任何方法可以完全或部分地用计算机系统执行,所述计算机系统包括一个或多个可配置成执行步骤的处理器。因此,实施例可涉及配置成执行本文中所描述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管呈现为带编号的步骤,但本文中的方法的步骤可以同时或以不同顺序执行。另外,这些步骤的部分可以与来自其它方法的其它步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤都可以用模块、单元、电路或用于执行这些步骤的其它构件来执行。
特定实施例的具体细节可以按任何适合的方式组合而不脱离本发明的实施例的精神和范围。不过,本发明的其它实施例可涉及与每个单独的方面有关的特定实施例,或者这些单独的方面的特定组合。
上文对本发明的示例实施例的描述已经出于说明和描述的目的呈现。它并不旨在是详尽的,或将本发明局限于所描述的精确形式,根据上文的教示,许多修改和变化是可能的。
除非具体地指示相反情况,否则“一(a/an)”或“所述(the)”的叙述旨在表示“一个或多个”。除非具体地指示相反情况,否则“或”的使用旨在表示是“包括性的或”,而不是“排他性的或”。提到“第一”组件并不一定要求提供第二组件。此外,除非明确指出,否则提到“第一”或“第二”组件并不将提到的组件局限在特定位置。
本文所提及的所有专利、专利申请、公开案和描述都出于所有目的以全文引用的方式并入。不承认它们是现有技术。
Claims (19)
1.一种用于使用多个图形处理单元加快机器学习的方法,所述方法包括:
a)由中央处理单元从多个初始已知数据集生成初始图形;
b)由所述中央处理单元根据所述初始图形确定多个子图;
c)将所述多个子图输入到所述多个图形处理单元中;
d)在所述多个图形处理单元中的每一个中对子图执行学习过程以标识所述子图内的社区,每个社区包括多个节点和边线,其中所述每个社区中的所述节点共享一个或多个共同特征;
e)由所述中央处理单元将在步骤d)中标识的所述社区分布给所述多个图形处理单元;以及
f)基于相似性,在所述多个图形处理单元中的每一个中执行针对由所述图形处理单元接收的包括共同节点的社区的合并过程以从被合并社区中产生新的社区,所述新的社区至少包括所述共同节点,所述被合并社区或所述被合并社区在所述新的社区中的衍生物用于对未知数据集进行分类。
2.根据权利要求1所述的方法,其中所述学习过程是无监督学习过程。
3.根据权利要求1所述的方法,其中所述衍生物是由所述被合并社区形成的树,并且其中所述方法还包括:
在所述图形处理单元中的每一个中由每个所述被合并社区形成树。
4.根据权利要求3所述的方法,其中所述多个子图是使用泊松分布生成的随机重叠样本。
5.根据权利要求3所述的方法,其中f)还包括:
在所述多个图形处理单元中的每一个中计算两个或更多个社区之间的归一化重叠分数;
基于所述归一化重叠分数,在所述多个图形处理单元中的每一个中合并所述两个或更多个社区;
由所述中央处理单元从所述多个图形处理单元中的每一个搜集所述被合并社区;
由所述中央处理单元评估所述被合并社区的文件大小;以及
基于所评估的所述被合并社区的文件大小,停止或重复f)。
6. 根据权利要求5所述的方法,还包括:
由所述中央处理单元将所述被合并社区分布给所述多个图形处理单元;以及
重复f)。
7.根据权利要求6所述的方法,其中根据泊松分布将所述被合并社区分布给所述多个图形处理单元。
8.根据权利要求1所述的方法,还包括:
将所述未知数据集应用于所述被合并社区或其衍生物,以对所述未知数据集进行分类。
9.根据权利要求8所述的方法,还包括:
基于以下两项的比较,在所述多个图形处理单元中的所述每一个中计算所述被合并社区的向量相似性分数:所述被合并社区、以及来自所述多个初始已知数据集和多个新的已知数据集的更新后的图形。
10.根据权利要求9所述的方法,其中所述多个初始已知数据集和多个新的已知数据集包括通过网络实施的交易的历史。
11.一种用于使用多个图形处理单元加快机器学习的系统,所述系统包括:
中央处理单元,其编程成:
从多个初始已知数据集生成初始图形;
根据所述初始图形确定多个子图;
将所述多个子图输入到所述多个图形处理单元中;以及
将包括多个节点和边线的社区分布给所述多个图形处理单元;以及
所述多个图形处理单元,其与所述中央处理单元通信,所述多个图形处理单元中的至少一个图形处理单元被编程成用于:
从所述中央处理单元接收来自由所述中央处理单元生成的所述初始图形的所述多个子图;
对子图执行学习过程以标识所述子图内的社区,每个社区包括多个节点和边线,其中所述每个社区中的所述节点共享一个或多个共同特征;以及
基于相似性,执行针对所接收的包括共同节点的社区的合并过程以从被合并社区中产生新的社区,所述新的社区至少包括所述共同节点,所述被合并社区或所述被合并社区在所述新的社区中的衍生物用于对未知数据集进行分类。
12.根据权利要求11所述的系统,其中所述学习过程是无监督学习过程。
13.根据权利要求11所述的系统,其中所述衍生物是由所述被合并社区形成的树,并且其中所述图形处理单元另外编程成:
由每个所述被合并社区形成树。
14.根据权利要求13所述的系统,其中所述多个子图是由所述中央处理单元使用泊松分布生成的随机重叠样本。
15.根据权利要求13所述的系统,其中所述图形处理单元另外编程成:
计算两个或更多个社区之间的归一化重叠分数;
基于所述归一化重叠分数,合并所述两个或更多个社区;以及
其中所述中央处理单元另外编程成:
从所述多个图形处理单元中的每一个搜集所述被合并社区;
评估所述被合并社区的文件大小;以及
基于所评估的所述被合并社区的文件大小,停止或重复所述合并过程。
16. 根据权利要求15所述的系统,其中所述中央处理单元另外编程成:
将所述被合并社区分布给所述多个图形处理单元;以及
重复所述合并过程。
17.根据权利要求16所述的系统,其中所述中央处理单元另外编程成:
根据泊松分布将所述被合并社区分布给所述多个图形处理单元。
18.根据权利要求11所述的系统,其中所述多个图形处理单元另外编程成:
基于以下两项的比较,计算所述被合并社区的向量相似性分数:所述被合并社区、以及来自所述多个初始已知数据集和多个新的已知数据集的更新后的图形。
19.根据权利要求18所述的系统,其中所述多个初始已知数据集和多个新的已知数据集包括通过网络实施的交易的历史。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/639,094 | 2017-06-30 | ||
US15/639,094 US11138516B2 (en) | 2017-06-30 | 2017-06-30 | GPU enhanced graph model build and scoring engine |
PCT/US2018/038968 WO2019005606A1 (en) | 2017-06-30 | 2018-06-22 | GPU ENHANCED GRAPH MODEL CONSTRUCTION AND SCANNING ENGINE |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110869943A CN110869943A (zh) | 2020-03-06 |
CN110869943B true CN110869943B (zh) | 2023-09-05 |
Family
ID=64738177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880046597.XA Active CN110869943B (zh) | 2017-06-30 | 2018-06-22 | Gpu增强的图形模型构建和评分引擎 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11138516B2 (zh) |
EP (1) | EP3646254A4 (zh) |
CN (1) | CN110869943B (zh) |
SG (1) | SG11201913401WA (zh) |
WO (1) | WO2019005606A1 (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
US11138516B2 (en) * | 2017-06-30 | 2021-10-05 | Visa International Service Association | GPU enhanced graph model build and scoring engine |
US10546393B2 (en) | 2017-12-30 | 2020-01-28 | Intel Corporation | Compression in machine learning and deep learning processing |
US11200502B2 (en) * | 2018-03-23 | 2021-12-14 | International Business Machines Corporation | Streaming atomic link learning based on socialization and system accuracy |
US11176488B2 (en) * | 2018-03-30 | 2021-11-16 | EMC IP Holding Company LLC | Online anomaly detection using pairwise agreement in heterogeneous model ensemble |
KR102495793B1 (ko) * | 2018-05-01 | 2023-02-06 | 구글 엘엘씨 | 가속화된 대규모 유사성 계산 |
US10956132B1 (en) * | 2018-06-11 | 2021-03-23 | Amazon Technologies, Inc. | Unified code and data management for model development |
US11698930B2 (en) * | 2018-06-21 | 2023-07-11 | Intel Corporation | Techniques for determining artificial neural network topologies |
WO2020019315A1 (zh) * | 2018-07-27 | 2020-01-30 | 浙江天猫技术有限公司 | 一种基于图数据的计算运行调度方法、系统、计算机可读介质及设备 |
US11424910B2 (en) * | 2018-07-31 | 2022-08-23 | EMC IP Holding Company LLC | Enterprise storage of customer transaction data using a blockchain |
US11714992B1 (en) * | 2018-12-13 | 2023-08-01 | Amazon Technologies, Inc. | Neural network processing based on subgraph recognition |
WO2020118377A1 (en) * | 2018-12-14 | 2020-06-18 | Newsouth Innovations Pty Limited | Apparatus and process for monitoring network behaviour of internet-of-things (iot) devices |
US10817157B2 (en) | 2018-12-20 | 2020-10-27 | Nutanix, Inc. | User interface for database management services |
US11010336B2 (en) | 2018-12-27 | 2021-05-18 | Nutanix, Inc. | System and method for provisioning databases in a hyperconverged infrastructure system |
US11816066B2 (en) | 2018-12-27 | 2023-11-14 | Nutanix, Inc. | System and method for protecting databases in a hyperconverged infrastructure system |
US11188454B2 (en) * | 2019-03-25 | 2021-11-30 | International Business Machines Corporation | Reduced memory neural network training |
WO2020198566A1 (en) * | 2019-03-27 | 2020-10-01 | F0Cal, Inc. | Systems and methods for analyzing computational architectures |
US11475318B2 (en) | 2019-05-29 | 2022-10-18 | Kyndryl, Inc. | Automated resolution of over and under-specification in a knowledge graph |
US10884755B1 (en) | 2019-07-31 | 2021-01-05 | International Business Machines Corporation | Graph rewriting for large model support using categorized topological sort |
CN112561051A (zh) * | 2019-09-26 | 2021-03-26 | 中兴通讯股份有限公司 | 一种对深度学习模型进行并行处理的方法及装置 |
US11663241B2 (en) * | 2019-10-25 | 2023-05-30 | Nutanix, Inc. | System and method for catalog service |
US20210191765A1 (en) * | 2019-12-18 | 2021-06-24 | Deep Vision Inc. | Method for static scheduling of artificial neural networks for a processor |
EP4116841A4 (en) * | 2020-03-03 | 2023-03-22 | Fujitsu Limited | MACHINE LEARNING PROGRAM, MACHINE LEARNING METHOD AND MACHINE LEARNING DEVICE |
JP7498393B2 (ja) * | 2020-06-05 | 2024-06-12 | 富士通株式会社 | 情報処理装置、情報処理方法、プログラム及び情報処理システム |
US11556636B2 (en) * | 2020-06-30 | 2023-01-17 | Microsoft Technology Licensing, Llc | Malicious enterprise behavior detection tool |
US11604705B2 (en) | 2020-08-14 | 2023-03-14 | Nutanix, Inc. | System and method for cloning as SQL server AG databases in a hyperconverged system |
US11907167B2 (en) | 2020-08-28 | 2024-02-20 | Nutanix, Inc. | Multi-cluster database management services |
US11604806B2 (en) | 2020-12-28 | 2023-03-14 | Nutanix, Inc. | System and method for highly available database service |
JP2022118555A (ja) * | 2021-02-02 | 2022-08-15 | 富士通株式会社 | 最適化装置、最適化方法、及び最適化プログラム |
US20220284268A1 (en) * | 2021-03-08 | 2022-09-08 | X Development Llc | Distributed processing of synaptic connectivity graphs |
US11892918B2 (en) | 2021-03-22 | 2024-02-06 | Nutanix, Inc. | System and method for availability group database patching |
US11782706B1 (en) | 2021-06-29 | 2023-10-10 | Amazon Technologies, Inc. | Reconfigurable neural network processing based on subgraph recognition |
CN113535745B (zh) | 2021-08-09 | 2022-01-18 | 威讯柏睿数据科技(北京)有限公司 | 一种层次化数据库操作加速系统和方法 |
CN113609310B (zh) * | 2021-08-25 | 2023-08-08 | 上海交通大学 | 单机大规模知识图谱嵌入系统及方法 |
CN114741528B (zh) * | 2022-03-31 | 2024-08-02 | 同济大学 | 一种高效构建人类蛋白质复合物图谱的方法与系统 |
CN114925243B (zh) * | 2022-05-06 | 2024-07-19 | 支付宝(杭州)信息技术有限公司 | 图网络中节点属性的预测方法和装置 |
WO2024123805A1 (en) * | 2022-12-06 | 2024-06-13 | Data.Ai Inc. | Graph augmentation for new applications using machine learning techniques |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7092941B1 (en) | 2002-05-23 | 2006-08-15 | Oracle International Corporation | Clustering module for data mining |
US20050243087A1 (en) * | 2004-04-30 | 2005-11-03 | Shmuel Aharon | GPU-based Finite Element |
US9087161B1 (en) | 2004-06-28 | 2015-07-21 | Nvidia Corporation | Asymmetrical scaling multiple GPU graphics system for implementing cooperative graphics instruction execution |
US20070288602A1 (en) * | 2006-06-09 | 2007-12-13 | Ebay Inc. | Interest-based communities |
US8473431B1 (en) | 2010-05-14 | 2013-06-25 | Google Inc. | Predictive analytic modeling platform |
US8438122B1 (en) | 2010-05-14 | 2013-05-07 | Google Inc. | Predictive analytic modeling platform |
US9292933B2 (en) * | 2011-01-10 | 2016-03-22 | Anant Madabhushi | Method and apparatus for shape based deformable segmentation of multiple overlapping objects |
US8533222B2 (en) | 2011-01-26 | 2013-09-10 | Google Inc. | Updateable predictive analytical modeling |
US8489632B1 (en) | 2011-06-28 | 2013-07-16 | Google Inc. | Predictive model training management |
US20150324690A1 (en) * | 2014-05-08 | 2015-11-12 | Microsoft Corporation | Deep Learning Training System |
WO2015179632A1 (en) * | 2014-05-22 | 2015-11-26 | Scheffler Lee J | Methods and systems for neural and cognitive processing |
US9747551B2 (en) * | 2014-09-29 | 2017-08-29 | Pivotal Software, Inc. | Determining and localizing anomalous network behavior |
US10242374B2 (en) * | 2014-12-09 | 2019-03-26 | Facebook, Inc. | Providing insights to a merchant |
US10255358B2 (en) * | 2014-12-30 | 2019-04-09 | Facebook, Inc. | Systems and methods for clustering items associated with interactions |
US10097973B2 (en) * | 2015-05-27 | 2018-10-09 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
EP4242845A1 (en) * | 2015-10-28 | 2023-09-13 | Google LLC | Modifying computational graphs |
US11151446B2 (en) * | 2015-10-28 | 2021-10-19 | Google Llc | Stream-based accelerator processing of computational graphs |
EP3705994B1 (en) * | 2015-10-28 | 2023-10-04 | Google LLC | Processing computational graphs |
EP4202782A1 (en) * | 2015-11-09 | 2023-06-28 | Google LLC | Training neural networks represented as computational graphs |
US20170206276A1 (en) * | 2016-01-14 | 2017-07-20 | Iddo Gill | Large Scale Recommendation Engine Based on User Tastes |
CN106446124B (zh) | 2016-09-19 | 2019-11-15 | 成都知道创宇信息技术有限公司 | 一种基于网络关系图的网站分类方法 |
CN110313150B (zh) * | 2017-02-20 | 2021-02-05 | 华为技术有限公司 | 网络分析工具测试 |
US10810210B2 (en) * | 2017-05-12 | 2020-10-20 | Battelle Memorial Institute | Performance and usability enhancements for continuous subgraph matching queries on graph-structured data |
US11138516B2 (en) * | 2017-06-30 | 2021-10-05 | Visa International Service Association | GPU enhanced graph model build and scoring engine |
-
2017
- 2017-06-30 US US15/639,094 patent/US11138516B2/en active Active
-
2018
- 2018-06-22 SG SG11201913401WA patent/SG11201913401WA/en unknown
- 2018-06-22 EP EP18822779.7A patent/EP3646254A4/en active Pending
- 2018-06-22 CN CN201880046597.XA patent/CN110869943B/zh active Active
- 2018-06-22 WO PCT/US2018/038968 patent/WO2019005606A1/en active Application Filing
-
2021
- 2021-08-30 US US17/460,919 patent/US11847540B2/en active Active
Non-Patent Citations (1)
Title |
---|
left-right oscillate algorithm for community detection usde in e-learning system;Jan Martinovic等;《International Federation for Information Processing 2012》;20121231;278-289页 * |
Also Published As
Publication number | Publication date |
---|---|
EP3646254A1 (en) | 2020-05-06 |
CN110869943A (zh) | 2020-03-06 |
US11847540B2 (en) | 2023-12-19 |
US20190005407A1 (en) | 2019-01-03 |
SG11201913401WA (en) | 2020-01-30 |
US20210390461A1 (en) | 2021-12-16 |
EP3646254A4 (en) | 2020-07-15 |
WO2019005606A1 (en) | 2019-01-03 |
US11138516B2 (en) | 2021-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110869943B (zh) | Gpu增强的图形模型构建和评分引擎 | |
US11232152B2 (en) | Efficient processing of neighborhood data | |
US20210256320A1 (en) | Machine learning artificialintelligence system for identifying vehicles | |
US11562179B2 (en) | Artificial intelligence system for inspecting image reliability | |
CN116261731A (zh) | 基于多跳注意力图神经网络的关系学习方法与系统 | |
CN106537422A (zh) | 用于捕获信息内的关系的系统和方法 | |
CN110995459A (zh) | 异常对象识别方法、装置、介质及电子设备 | |
CN114298122B (zh) | 数据分类方法、装置、设备、存储介质及计算机程序产品 | |
CN111429161B (zh) | 特征提取方法、特征提取装置、存储介质及电子设备 | |
CN113268656A (zh) | 一种用户推荐方法、装置、电子设备及计算机存储介质 | |
CN116664173B (zh) | 一种基于大数据模型的竞品分析方法、终端及存储介质 | |
CN107909087A (zh) | 生成机器学习样本的组合特征的方法及系统 | |
Nagaraj et al. | Automatic and Adaptive Segmentation of Customer in R framework using K-means Clustering Technique | |
US20170236226A1 (en) | Computerized systems, processes, and user interfaces for globalized score for a set of real-estate assets | |
CN110737805A (zh) | 图模型数据的处理方法、装置和终端设备 | |
US20220222934A1 (en) | Neural network construction method and apparatus, and image processing method and apparatus | |
CN112055038B (zh) | 生成点击率预估模型的方法及预测点击概率的方法 | |
Nazir et al. | Toddler nutritional status classification using C4. 5 and particle swarm optimization | |
CN110705889A (zh) | 一种企业筛选方法、装置、设备及存储介质 | |
CN113837843B (zh) | 产品推荐方法、装置、介质及电子设备 | |
CN113762298B (zh) | 相似人群扩展方法和装置 | |
CN115169637A (zh) | 社交关系预测方法、装置、设备和介质 | |
Vaddi et al. | House Price Prediction via Visual Cues and Estate Attributes | |
CN111459990A (zh) | 对象处理方法、系统及计算机可读存储介质和计算机设备 | |
Huang et al. | Web usage prediction and recommendation based on Web session graph embedded analysis |
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 |