CN110399979B - 一种基于现场可编程门阵列的点击率预估的系统及方法 - Google Patents

一种基于现场可编程门阵列的点击率预估的系统及方法 Download PDF

Info

Publication number
CN110399979B
CN110399979B CN201910522648.8A CN201910522648A CN110399979B CN 110399979 B CN110399979 B CN 110399979B CN 201910522648 A CN201910522648 A CN 201910522648A CN 110399979 B CN110399979 B CN 110399979B
Authority
CN
China
Prior art keywords
module
calculation
data
result
neural network
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
CN201910522648.8A
Other languages
English (en)
Other versions
CN110399979A (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.)
Shenzhen University
Original Assignee
Shenzhen University
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 Shenzhen University filed Critical Shenzhen University
Priority to CN201910522648.8A priority Critical patent/CN110399979B/zh
Publication of CN110399979A publication Critical patent/CN110399979A/zh
Application granted granted Critical
Publication of CN110399979B publication Critical patent/CN110399979B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)

Abstract

本申请提供了一种基于现场可编程门阵列的点击率预估的系统及方法。一种基于现场可编程门阵列的点击率预估的系统包括数据接口模块、模型参数存储模块、计算控制模块、因子分解机计算模块和神经网络计算模块,数据接口模块用于获取模型参数,获取待预估数据,输出点击率预估结果;模型参数存储模块用于存储模型参数;计算控制模块用于从数据接口模块中获取待预估数据,从模型参数存储模块中获取模型参数;因子分解机计算模块用于计算待预估数据的因子分解机表达式;神经网络计算模块用于计算待预估数据的神经网络前向传播结果;计算控制模块还用于得到点击率预估结果。本申请实施例的技术方案,降低了点击率预估的计算时延,提升了计算速度。

Description

一种基于现场可编程门阵列的点击率预估的系统及方法
技术领域
本申请涉及互联网广告技术领域,尤其涉及一种基于现场可编程门阵列的点击率预估的系统及方法。
背景技术
随着互联网的飞速发展,互联网广告也随之兴起,与传统的广告相比,互联网广告是实施现代营销媒体战略的重要部分之一。广告的点击率预估(PCTR,Predict Click-Through Rate)是互联网广告领域的核心问题,广告的点击率预估即预测特定用户对推送广告点击的概率。
目前,常用的广告点击率预估算法需要占用大量的计算机内存资源以及计算时间,并且,对于一些大规模的网站或者数据库,拥有千万级别的用户特征数据,需要在基于大规模用户特征数据下预估广告点击率,通过中央处理器实现广告点击率预估算法存在计算时延高、计算速度慢的问题。
发明内容
本申请实施例提供基于现场可编程门阵列的点击率预估的系统及方法,以降低点击率预估的计算时延,以及提升计算速度。
本申请第一方面提供一种基于现场可编程门阵列的点击率预估的系统,所述系统应用于点击率预估模型,所述点击率预估模型包括模型参数,所述系统包括数据接口模块、模型参数存储模块、计算控制模块、因子分解机计算模块和神经网络计算模块,其中,所述因子分解机计算模块与所述神经网络计算模块并行计算;
所述数据接口模块,用于获取所述模型参数,将所述模型参数发送给所述模型参数存储模块,获取待预估数据,输出点击率预估结果;
所述模型参数存储模块,用于存储所述模型参数;
所述计算控制模块,用于从所述数据接口模块中获取所述待预估数据,从所述模型参数存储模块中获取所述模型参数,将所述待预估数据和所述模型参数发送给所述因子分解机计算模块和所述神经网络计算模块;
所述因子分解机计算模块,用于根据所述模型参数计算所述待预估数据的因子分解机表达式;
所述神经网络计算模块,用于根据所述模型参数计算所述待预估数据的神经网络前向传播结果;
所述计算控制模块还用于根据所述因子分解机表达式和所述神经网络前向传播结果得到点击率预估结果。
基于本申请第一方面,在第一种可能的实施方式中,所述数据接口模块具体包括:
一致性加速接口模块,用于基于所述现场可编程门阵列与中央处理器共享相干加速器处理器接口来传输所述模型参数、待预估数据和点击率预估结果;
数据缓存模块,用于缓存从计算机内存中读取的所述待预估数据和写回所述计算机内存的所述点击率预估结果;
状态机模块,用于控制读取所述待预估数据和写回所述点击率预估结果。
基于本申请第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述状态机模块每次以预设大小数据块为单位进行数据的读写,直到所述数据缓存模块中的数据读写完成,在其中任意一次读写过程中,所述状态机模块具体用于:
所述状态机模块清零内部寄存器,进入初始化状态;
当所述数据缓存模块中的数据有效时,所述状态机模块进入开始状态;
所述状态机模块对预设大小数据块进行读写,进入执行状态;
当所述预设大小数据块读写完成时,所述状态机模块进入完成状态。
基于本申请第一方面或者基于本申请第一方面的第一种可能的实施方式或者基于本申请第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述神经网络计算模块包括L个处理引擎计算模块,其中,L为所述神经网络计算模块中神经网络前向传播的层数;
所述L个处理引擎计算模块中第i个处理引擎计算模块包括累乘加模块、偏置加模块、激活函数计算模块,其中,i为小于L的正整数;
当所述第i个处理引擎计算模块计算完成时,将所述第i个处理引擎计算模块的计算结果传递到第(i+1)个处理引擎计算模块进行计算,直到所述L个处理引擎计算模块全部计算完成,以得到所述神经网络前向传播结果。
基于本申请第一方面的第三种可能的实施方式,在第四种可能的实施方式中,输入所述第i个处理引擎计算模块的数据为M维特征向量,其中,M为正整数,所述第i个处理引擎计算模块具体包括:
N个累乘加模块,用于并行计算所述M维特征向量与M行N列矩阵的乘运算,以得到N维第一输出结果,其中,N为正整数,所述M行N列矩阵属于所述模型参数,所述N个累乘加模块中第j个累乘加模块用于计算所述M维特征向量与所述M行N列矩阵中第j列的乘加运算,j为不大于N的正整数;
偏置加模块,用于将所述N维第一输出结果分别与N个偏置参数进行偏置项相加,以得到N维第二输出结果,其中,所述N个偏置参数属于所述模型参数;
激活函数计算模块,用于通过线性整流函数对所述N维第二输出结果进行计算,以得到N维第三输出结果,所述N维第三输出结果为所述第i个处理引擎计算模块的计算结果。
本申请第二方面提供了一种基于现场可编程门阵列的点击率预估的方法,所述方法应用于点击率预估模型,所述点击率预估模型包括模型参数,所述方法包括:
获取待预估数据;
根据所述模型参数计算所述待预估数据的因子分解机表达式;
根据所述模型参数计算所述待预估数据的神经网络前向传播结果,其中,计算所述待预估数据的因子分解机表达式与计算所述待预估数据的神经网络前向传播结果并行执行;
根据所述因子分解机表达式和所述神经网络前向传播结果得到点击率预估结果。
可以看到,通过本申请提供的基于现场可编程门阵列的点击率预估的系统及方法,通过数据接口模块、模型参数存储模块、计算控制模块、因子分解机计算模块和神经网络计算模块实现点击率预估,开始进行计算时,获取模型参数并将模型参数存储起来供后续计算调用,中央处理器对用户特征数据预处理后得到待预估数据,将待预估数据传输到现场可编程门阵列中,通过因子分解机计算模块和神经网络计算模块对待预估数据进行计算,最后得到点击率预估结果,在计算过程中,因子分解机计算模块与神经网络计算模块并行计算,降低了点击率预估的计算时延,提升了计算速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的系统的结构示意图;
图2为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的系统中数据接口模块的结构示意图;
图3为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的系统中神经网络计算模块的结构示意图;
图4为本申请实施例提供的一种神经网络计算模块中第i个处理引擎计算模块的结构示意图;
图5为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的系统中累乘加模块的结构示意图;
图6为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的方法的流程图;
图7为本申请实施例提供的另一种基于现场可编程门阵列的点击率预估的方法的流程图。
具体实施方式
本申请实施例提供基于现场可编程门阵列的点击率预估的系统及方法,以降低点击率预估的计算时延,提升计算速度。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
以下对本申请实施例进行详细说明。
本申请实施例提供的基于现场可编程门阵列的点击率预估的系统中,开始进行计算时,将点击率预估模型训练得到的模型参数存储起来,供后续计算调用,当输入一条待预估的用户特征数据时,中央处理器先对该用户特征数据进行预处理,其中,预处理包括独热码编码处理和嵌入处理,使得原始的用户特征数据转化为待预估数据,将该待预估结果输入现场可编程门阵列,然后并行计算待预估数据的因子分解机表达式和神经网络前向传播结果,最终得到点击率预估结果,将点击率预估结果传输到计算机内存中。在计算过程中采用并行计算,降低了点击率预估的计算时延,提升了计算速度,同时,中央处理器将待预估数据传输到现场可编程门阵列中即可进行点击率预估计算,无需中央处理器进行计算,减少了占用中央处理器的内存资源和时间。
首先参见图1,图1为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的系统100的结构示意图,该系统应用于点击率预估模型,点击率预估模型包括模型参数。其中,如图1所示,本实施例提供的基于现场可编程门阵列的点击率预估的系统100可以包括:数据接口模块101、模型参数存储模块102、计算控制模块103、因子分解机计算模块104和神经网络计算模块105,因子分解机计算模块104和神经网络计算模块105并行计算;
其中,数据接口模块101,用于获取模型参数,将模型参数发送给模型参数存储模块102,获取待预估数据,输出点击率预估结果;
模型参数存储模块102,用于存储模型参数;
计算控制模块103,用于从数据接口模块101中获取待预估数据,从模型参数存储模块102中获取模型参数,将待预估数据和模型参数发送给因子分解机计算模块104和神经网络计算模块105;
因子分解机计算模块104,用于根据模型参数计算待预估数据的因子分解机表达式;
神经网络计算模块105,用于根据模型参数计算待预估数据的神经网络前向传播结果;
计算控制模块103还用于根据因子分解机表达式和神经网络前向传播结果得到点击率预估结果。
具体的,开始进行计算时,点击率预估模型训练得到的模型参数通过数据接口模块101传输到模型参数存储模块102中存储起来,供后续计算调用,其中,模型参数包括模型训练得到的网络结构、网络层参数值、偏置值等;
当输入一条待预估的用户特征数据时,中央处理器先对该用户特征数据进行预处理,其中,预处理包括独热码编码处理和嵌入处理,使得原始的用户特征数据转化为待预估数据,数据接口模块101获取该待预估数据;
计算控制模块103控制读取该待预估数据,以及控制从模型参数存储模块102中获取模型参数,将待预估数据和模型参数传输给因子分解机计算模块104和神经网络计算模块105;
因子分解机计算模块104根据模型参数对待预估数据进行计算,得到因子分解机表达式,将因子分解机表达式传输到计算控制模块103;
神经网络计算模块105根据模型参数对待预估数据进行计算,得到神经网络前向传播结果,将神经网络前向传播结果传输到计算控制模块103;
其中,因子分解机计算模块104和神经网络计算模块105并行计算;
计算完成后,计算控制模块103根据因子分解机表达式和神经网络前向传播结果得到点击率预估结果,再通过数据接口模块101将点击率预估结果传输到计算机内存中。
在一种可能的示例中,数据接口模块101基于相干加速器处理器接口(CAPI,Coherent Accelerator Processor Interface)技术实现了中央处理器与现场可编程门阵列的通信框架,实现了中央处理器与现场可编程门阵列共享虚拟地址空间,同时降低了数据访问延时,用于模型参数、待预估数据和点击率预估结果的传输,数据接口模块101具体包括一致性加速接口模块、数据缓存模块和状态机模块。
在一种可能的示例中,模型参数缓存模块102,具体用于保存点击率预估模型训练得到的模型参数,中央处理器传输到现场可编程门阵列的模型参数需要存储到现场可编程门阵列中供后续计算调用,具体存储的模型参数是模型训练得到的网络结构、网络层参数值、偏置值等。
在一种可能的示例中,计算控制模块103,具体用于获取因子分解机计算模块104和神经网络计算模块105的执行状态,根据两者执行状态进行计算调度,即当输入待预估数据时,计算控制模块103根据因子分解机计算模块104和神经网络计算模块105当前的执行状态读取对应的模型参数,并将模型参数输入到因子分解机计算模块104和神经网络计算模块105中进行计算,当计算完成时,读取下一个待预估数据进行计算,当现场可编程门阵列计算完成时,控制数据写回到计算机内存。
在一种可能的示例中,因子分解机计算模块104,具体用于计算待预估数据的因子分解机表达式,计算公式如下:
Figure BDA0002097202010000071
其中,向量Vi和Vj是待预估数据中每一个特征所对应的隐向量,由点击率预估模型训练得到,并且存储在模型参数存储模块102中,w是点击率预估模型的训练参数,n为待预估数据的维度。因子分解机计算模块104计算完成时,输出结果为一个数值。
在一种可能的示例中,神经网络计算模块105,具体用于并行计算神经网络前向传播。神经网络计算模块105包括L个处理引擎计算模块,其中,L为神经网络前向传播的层数,每一个处理引擎计算模块完成一个网络层传播的计算,当一个处理引擎计算模块计算完成时,该处理引擎计算模块的计算结果传输到下一个处理引擎计算模块进行计算,一直到整个网络层计算完成。
可见,在本实施例中,通过数据接口模块、模型参数存储模块、计算控制模块、因子分解机计算模块和神经网络计算模块实现点击率预估,开始进行计算时,获取模型参数并将模型参数存储起来供后续计算调用,中央处理器对用户特征数据预处理后得到待预估数据,将待预估数据传输到现场可编程门阵列中,通过因子分解机计算模块和神经网络计算模块对待预估数据进行计算,根据因子分解机计算模块的计算结果和神经网络计算模块的计算结果得到点击率预估结果。在计算过程中,因子分解机计算模块与神经网络计算模块并行计算,降低了点击率预估的计算时延,提升了计算速度。
参见图2,图2为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的系统中数据接口模块200的结构示意图。其中,如图2所示,本实施例提供的一种数据接口模块200可以包括:读缓存模块201、读状态机模块202、写缓存模块203和写状态机模块204;
其中,读缓存模块201,用于缓存从计算机内存中读取的数据;
读状态机模块202,用于控制从读缓存模块201中读取数据;
写缓存模块203,用于缓存写回计算机内存的数据;
写状态机模块204,用于控制将写缓存模块203中的数据写回计算机内存。
具体的,数据接口模块200基于相干加速器处理器接口(CAPI,CoherentAccelerator Processor Interface)技术实现了中央处理器与现场可编程门阵列的通信框架,实现了中央处理器与现场可编程门阵列共享虚拟地址空间,同时降低了数据访问延时,用于模型参数、待预估数据和点击率预估结果的传输;
当数据从中央处理器传输到现场可编程门阵列时,数据先缓存到读缓存模块201中,同时通过读状态机模块202控制数据的读取;
当数据从现场可编程门阵列传输到中央处理器时,数据先缓存到写缓存模块203中,同时通过写状态机模块204控制数据的写回。
在一种可能的示例中,读缓存模块201的缓存深度为512,宽度为8;
读状态机模块202包括初始化状态、开始状态、执行状态、完成状态,读状态机模块202每次以预设大小数据块为单位读取数据,直到读缓存模块201中的数据读取完成,在其中任意一次读取数据的过程中,当读缓存模块201不为空且允许读时,读状态机模块202清零内部寄存器,进入初始化状态,下一个时钟周期,读状态机模块202进入开始状态,开始进行数据的读取,在读取数据时,读状态机模块202以预设大小数据块为单位进行读取,进入执行状态,当预设大小数据块读取完成时,读状态机模块202进入完成状态。接下来开始读取下一个预设大小数据块,直到所有数据读取完毕。
在一种可能的示例中,写缓存模块203的缓存深度为512,宽度为8,用于缓存从现场可编程门阵列中写回计算机内存的数据;
写状态机模块204包括初始化状态、开始状态、执行状态、完成状态,写状态机模块204每次以预设大小数据块为单位写回数据,直到写缓存模块203中的数据写回完成,在其中任意一次写回数据的过程中,当写缓存模块203不为满且允许写时,写状态机模块204清零内部寄存器,进入初始化状态,下一个时钟周期,写状态机模块204进入开始状态,开始进行数据的写回,在写回数据时,写状态机模块204以预设大小数据块为单位进行写回,进入执行状态,当预设大小数据块写回完成时,写状态机模块204进入完成状态。接下来开始写回下一个预设大小数据块,直到所有数据写回完毕。
参见图3,图3为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的系统中神经网络计算模块300的结构示意图。其中,如图3所示,本实施例提供的一种神经网络计算模块300可以包括L个处理引擎计算模块,其中,L为所述神经网络计算模块300中神经网络前向传播的层数;
所述L个处理引擎计算模块中第i个处理引擎计算模块包括累乘加模块、偏置加模块、激活函数计算模块,其中,i为小于L的正整数;
当第i个处理引擎计算模块计算完成时,将第i个处理引擎计算模块的计算结果传递到第(i+1)个处理引擎计算模块进行计算,直到L个处理引擎计算模块全部计算完成,以得到神经网络前向传播结果。
例如,L为4,当待预估数据为a维特征向量时,将a维特征向量输入第一个处理引擎计算模块,计算得到b维特征向量,b小于a,将b维特征向量输入第二个处理引擎计算模块,计算得到c维特征向量,c小于b,将c维特征向量输入第三个处理引擎计算模块,计算得到d维特征向量,d小于c,将d维特征向量输入第四个处理引擎计算模块,计算得到一维特征向量,即为神经网络前向传播结果。
参见图4,图4为本申请实施例提供的一种神经网络计算模块中第i个处理引擎计算模块400的结构示意图,输入第i个处理引擎计算模块的数据为M维特征向量,M为正整数。其中,如图4所示,本实施例提供的第i个处理引擎计算模块400可以包括:N个累乘加模块401、偏置加模块402和激活函数计算模块403;
其中,N个累乘加模块401,用于并行计算M维特征向量与M行N列矩阵的乘运算,以得到N维第一输出结果,其中,N为正整数,M行N列矩阵属于模型参数,N个累乘加模块中第j个累乘加模块用于计算M维特征向量与M行N列矩阵中第j列的乘加运算,j为不大于N的正整数;
偏置加模块402,用于将N维第一输出结果分别与N个偏置参数进行偏置项相加,以得到N维第二输出结果,其中,N个偏置参数属于模型参数;
激活函数计算模块403,用于通过线性整流函数对N维第二输出结果进行计算,以得到N维第三输出结果,N维第三输出结果为第i个处理引擎计算模块的计算结果。
具体的,将M维特征向量输入第一个处理引擎计算模块时,该M维特征向量即为获取的待预估数据,将M维特征向量输入除了第一个处理引擎计算模块之外的其他处理引擎计算模块时,该M维特征向量为上一个处理引擎计算模块的输出结果;
N个累乘加模块401中第j个累乘加模块用于计算M维特征向量与M行N列矩阵中第j列的乘加运算,第(j+1)个累乘加模块用于计算M维特征向量与M行N列矩阵中第(j+1)列的乘加运算,N个累乘加模块401并行计算,直到M维特征向量与M行N列矩阵中所有列都计算完成,得到N维第一输出结果;
偏置加模块402将N维第一输出结果分别与N个偏置参数进行偏置项相加,以得到N维第二输出结果;
激活函数计算模块403通过线性整流函数对N维第二输出结果进行计算,如果N维第二输出结果中存在小于0的数据,则将该数据更新为0,如果数据不小于0,则该数据保持不变,以得到N维第三输出结果。
当第i个处理引擎计算模块400计算完成时,将第i个处理引擎计算模块400的计算结果传递到第(i+1)个处理引擎计算模块进行计算,直到L个处理引擎计算模块全部计算完成,以得到所述神经网络前向传播结果,最终得到的神经网络前向传播结果为一维数据。
参见图5,图5为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的系统中累乘加模块500的结构示意图。
其中,如图5所示,本实施例提供的一种累乘加模块500中,在一个时钟周期收到M维特征向量中的一个元素与M行N列矩阵中第j列的一个元素时,对两个元素先进行乘法计算,然后将中间结果保存在Cbuf寄存器中,当下一个时钟周期收到M维特征向量中的下一个元素与M行N列矩阵中第j列的下一个元素时,先对两个元素进行乘法运算,并将结果与Cbuf寄存器中的数据进行累加,将累加结果保存到Cbuf寄存器中,依次累加,直到M维特征向量中的所有元素与M行N列矩阵中第j列的所有元素全部计算完成。其中,每一个M维特征向量的元素被M行N列矩阵的N列共享,N个累乘加器并行计算。
参见图6,图6为本申请实施例提供的一种基于现场可编程门阵列的点击率预估的方法的流程图,该方法应用于点击率预估模型,点击率预估模型包括模型参数。其中,如图6所示,本实施例提供的一种基于现场可编程门阵列的点击率预估的方法可以包括:
601、获取待预估数据。
在获取待预估数据之前,将点击率预估模型训练得到的模型参数存储起来,供后续计算调用,模型参数是模型训练得到的网络结构、网络层参数值、偏置值等。当输入一条待预估的用户特征数据时,中央处理器先对该用户特征数据进行预处理,其中,预处理包括独热码编码处理和嵌入处理,使得原始的用户特征数据转化为待预估数据。
在一种可能的示例中,获取待预估数据的方法可以是:
通过现场可编程门阵列从计算机内存中读取待预估数据;
具体的,基于相干加速器处理器接口技术实现中央处理器与现场可编程门阵列的通信框架,实现中央处理器与现场可编程门阵列共享虚拟地址空间,同时降低了数据访问延时,用于模型参数、待预估数据和点击率预估结果的传输。
602、根据所述模型参数计算所述待预估数据的因子分解机表达式。
在一种可能的示例中,根据模型参数计算待预估数据的因子分解机表达式的计算公式如下:
Figure BDA0002097202010000111
其中,向量Vi和Vj是待预估数据中每一个特征所对应的隐向量,由点击率预估模型训练得到,w是点击率预估模型的训练参数,n为待预估数据的维度。
603、根据所述模型参数计算所述待预估数据的神经网络前向传播结果,其中,计算所述待预估数据的因子分解机表达式与计算所述待预估数据的神经网络前向传播结果并行执行。
在一种可能的示例中,根据模型参数计算待预估数据的神经网络前向传播结果的方法可以是:
通过L个处理引擎计算模块对待预估数据进行计算,其中,L为神经网络前向传播的层数,每一个处理引擎计算模块完成一个网络层传播的计算;
当第i个处理引擎计算模块计算完成时,将第i个处理引擎计算模块的计算结果传递到第(i+1)个处理引擎计算模块进行计算,直到L个处理引擎计算模块全部计算完成,以得到神经网络前向传播结果,其中,i为小于L的正整数。
例如,L为4,当待预估数据为a维特征向量时,将a维特征向量输入第一个处理引擎计算模块,计算得到b维特征向量,b小于a,将b维特征向量输入第二个处理引擎计算模块,计算得到c维特征向量,c小于b,将c维特征向量输入第三个处理引擎计算模块,计算得到d维特征向量,d小于c,将d维特征向量输入第四个处理引擎计算模块,计算得到一维特征向量,即为神经网络前向传播结果。
在一种可能的示例中,输入第i个处理引擎计算模块的数据为M维特征向量,其中,M为正整数,将第i个处理引擎计算模块的计算结果传递到第(i+1)个处理引擎计算模块进行计算之前,还包括:
并行计算M维特征向量与M行N列矩阵的乘运算,以得到N维第一输出结果,其中,N为正整数,M行N列矩阵属于模型参数;
将N维第一输出结果分别与N个偏置参数进行偏置项相加,以得到N维第二输出结果,其中,N个偏置参数属于模型参数;
通过线性整流函数对N维第二输出结果进行计算,如果N维第二输出结果中存在小于0的数据,则将该数据更新为0,如果数据不小于0,则该数据保持不变,以得到N维第三输出结果,N维第三输出结果为第i个处理引擎计算模块的计算结果。
当第i个处理引擎计算模块计算完成时,将第i个处理引擎计算模块的计算结果传递到第(i+1)个处理引擎计算模块进行计算,直到L个处理引擎计算模块全部计算完成,以得到所述神经网络前向传播结果,最终得到的神经网络前向传播结果为一维数据。
604、根据所述因子分解机表达式和所述神经网络前向传播结果得到点击率预估结果。
在一种可能的示例中,根据因子分解机表达式和神经网络前向传播结果得到点击率预估结果之后,还包括:
通过现场可编程门阵列将点击率预估结果写回计算机内存中。
可见,在本实施例中,通过数据接口模块、模型参数存储模块、计算控制模块、因子分解机计算模块和神经网络计算模块实现点击率预估,开始进行计算时,获取模型参数并将模型参数存储起来供后续计算调用,中央处理器对用户特征数据预处理后得到待预估数据,将待预估数据传输到现场可编程门阵列中,通过因子分解机计算模块和神经网络计算模块对待预估数据进行计算,根据因子分解机计算模块的计算结果和神经网络计算模块的计算结果得到点击率预估结果。在计算过程中,因子分解机计算模块与神经网络计算模块并行计算,降低了点击率预估的计算时延,提升了计算速度。
参见图7,图7为本申请实施例提供的另一种基于现场可编程门阵列的点击率预估的方法的流程图。其中,如图7所示,本实施例提供的另一种基于现场可编程门阵列的点击率预估的方法可以包括:
701、将点击率预估模型训练得到的模型参数传输到现场可编程门阵列中的模型参数存储模块。
702、判断模型参数传输是否完毕,如果是则进入步骤703,否则进入步骤701。
703、中央处理器进行数据预处理,将预处理得到的特征向量存入内存中,以供现场可编程门阵列读取。
704、现场可编程门阵列从内存中读取特征向量。
705、在因子分解机计算模块中计算特征向量的因子分解机表达式。
706、在神经网络计算模块中计算特征向量的神经网络前向传播结果。
707、根据因子分解机表达式和神经网络前向传播结果得到点击率预估结果,并输出点击率预估结果。
其中,根据因子分解机表达式和神经网络前向传播结果得到点击率预估结果的计算公式如下:
y=sigmoid(yFM+ydnn)
其中,yFM是因子分解机表达式,ydnn是神经网络前向传播结果。
708、判断数据是否处理完毕,如果是则计算结束,否则进入步骤704。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (8)

1.一种基于现场可编程门阵列的点击率预估的系统,其特征在于,所述系统应用于点击率预估模型,所述点击率预估模型包括模型参数,所述系统包括数据接口模块、模型参数存储模块、计算控制模块、因子分解机计算模块和神经网络计算模块,其中,所述因子分解机计算模块与所述神经网络计算模块并行计算;
所述数据接口模块,用于获取所述模型参数,将所述模型参数发送给所述模型参数存储模块,获取待预估数据,输出点击率预估结果;
所述模型参数存储模块,用于存储所述模型参数;
所述计算控制模块,用于从所述数据接口模块中获取所述待预估数据,从所述模型参数存储模块中获取所述模型参数,将所述待预估数据和所述模型参数发送给所述因子分解机计算模块和所述神经网络计算模块;
所述因子分解机计算模块,用于根据所述模型参数计算所述待预估数据的因子分解机表达式;
所述神经网络计算模块,用于根据所述模型参数计算所述待预估数据的神经网络前向传播结果,其中,所述神经网络计算模块包括L个处理引擎计算模块,其中,L为所述神经网络计算模块中神经网络前向传播的层数;所述L个处理引擎计算模块中第i个处理引擎计算模块包括累乘加模块、偏置加模块、激活函数计算模块,其中,i为小于L的正整数;当所述第i个处理引擎计算模块计算完成时,将所述第i个处理引擎计算模块的计算结果传递到第(i+1)个处理引擎计算模块进行计算,直到所述L个处理引擎计算模块全部计算完成,以得到所述神经网络前向传播结果;
所述计算控制模块还用于根据所述因子分解机表达式和所述神经网络前向传播结果得到点击率预估结果。
2.根据权利要求1所述的系统,其特征在于,所述数据接口模块具体包括:
一致性加速接口模块,用于基于所述现场可编程门阵列与中央处理器共享相干加速器处理器接口来传输所述模型参数、待预估数据和点击率预估结果;
数据缓存模块,用于缓存从计算机内存中读取的所述待预估数据和写回所述计算机内存的所述点击率预估结果;
状态机模块,用于控制读取所述待预估数据和写回所述点击率预估结果。
3.根据权利要求2所述的系统,其特征在于,所述状态机模块每次以预设大小数据块为单位进行数据的读写,直到所述数据缓存模块中的数据读写完成,在其中任意一次读写过程中,所述状态机模块具体用于:
所述状态机模块清零内部寄存器,进入初始化状态;
当所述数据缓存模块中的数据有效时,所述状态机模块进入开始状态;
所述状态机模块对预设大小数据块进行读写,进入执行状态;
当所述预设大小数据块读写完成时,所述状态机模块进入完成状态。
4.根据权利要求1所述的系统,其特征在于,输入所述第i个处理引擎计算模块的数据为M维特征向量,其中,M为正整数,所述第i个处理引擎计算模块具体包括:
N个累乘加模块,用于并行计算所述M维特征向量与M行N列矩阵的乘运算,以得到N维第一输出结果,其中,N为正整数,所述M行N列矩阵属于所述模型参数,所述N个累乘加模块中第j个累乘加模块用于计算所述M维特征向量与所述M行N列矩阵中第j列的乘加运算,j为不大于N的正整数;
偏置加模块,用于将所述N维第一输出结果分别与N个偏置参数进行偏置项相加,以得到N维第二输出结果,其中,所述N个偏置参数属于所述模型参数;
激活函数计算模块,用于通过线性整流函数对所述N维第二输出结果进行计算,以得到N维第三输出结果,所述N维第三输出结果为所述第i个处理引擎计算模块的计算结果。
5.一种基于现场可编程门阵列的点击率预估的方法,其特征在于,所述方法应用于点击率预估模型,所述点击率预估模型包括模型参数,所述方法包括:
获取待预估数据;
根据所述模型参数计算所述待预估数据的因子分解机表达式;
根据所述模型参数计算所述待预估数据的神经网络前向传播结果,具体包括:通过L个处理引擎计算模块对所述待预估数据进行计算,其中,L为神经网络前向传播的层数;当第i个处理引擎计算模块计算完成时,将所述第i个处理引擎计算模块的计算结果传递到第(i+1)个处理引擎计算模块进行计算,直到所述L个处理引擎计算模块全部计算完成,以得到所述神经网络前向传播结果,其中,i为小于L的正整数;其中,计算所述待预估数据的因子分解机表达式与计算所述待预估数据的神经网络前向传播结果并行执行;
根据所述因子分解机表达式和所述神经网络前向传播结果得到点击率预估结果。
6.根据权利要求5所述的方法,其特征在于,所述获取待预估数据包括:
通过所述现场可编程门阵列从计算机内存中读取所述待预估数据。
7.根据权利要求5所述的方法,其特征在于,输入所述第i个处理引擎计算模块的数据为M维特征向量,其中,M为正整数,所述将所述第i个处理引擎计算模块的计算结果传递到第(i+1)个处理引擎计算模块进行计算之前,还包括:
并行计算所述M维特征向量与M行N列矩阵的乘运算,以得到N维第一输出结果,其中,N为正整数,所述M行N列矩阵属于所述模型参数;
将所述N维第一输出结果分别与N个偏置参数进行偏置项相加,以得到N维第二输出结果,其中,所述N个偏置参数属于所述模型参数;
通过线性整流函数对所述N维第二输出结果进行计算,以得到N维第三输出结果,所述N维第三输出结果为所述第i个处理引擎计算模块的计算结果。
8.根据权利要求7所述的方法,其特征在于,所述根据所述因子分解机表达式和所述神经网络前向传播结果得到点击率预估结果之后,还包括:
通过所述现场可编程门阵列将所述点击率预估结果写回计算机内存中。
CN201910522648.8A 2019-06-17 2019-06-17 一种基于现场可编程门阵列的点击率预估的系统及方法 Active CN110399979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910522648.8A CN110399979B (zh) 2019-06-17 2019-06-17 一种基于现场可编程门阵列的点击率预估的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910522648.8A CN110399979B (zh) 2019-06-17 2019-06-17 一种基于现场可编程门阵列的点击率预估的系统及方法

Publications (2)

Publication Number Publication Date
CN110399979A CN110399979A (zh) 2019-11-01
CN110399979B true CN110399979B (zh) 2022-05-13

Family

ID=68324163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910522648.8A Active CN110399979B (zh) 2019-06-17 2019-06-17 一种基于现场可编程门阵列的点击率预估的系统及方法

Country Status (1)

Country Link
CN (1) CN110399979B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110889759A (zh) * 2019-11-21 2020-03-17 北京三快在线科技有限公司 信用数据的确定方法、装置及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223228A (zh) * 2011-05-11 2011-10-19 北京航空航天大学 基于fpga的aes加密芯片设计方法及嵌入式加密系统
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN106339510A (zh) * 2016-10-28 2017-01-18 北京百度网讯科技有限公司 基于人工智能的点击预估方法及装置
CN106846044A (zh) * 2016-12-29 2017-06-13 新浪网技术(中国)有限公司 一种展示广告线上投放方法及装置
CN108038541A (zh) * 2017-12-07 2018-05-15 百度在线网络技术(北京)有限公司 Ctr预估的方法、装置、设备及计算机可读介质
CN108280514A (zh) * 2018-01-05 2018-07-13 中国科学技术大学 基于fpga的稀疏神经网络加速系统和设计方法
CN108665059A (zh) * 2018-05-22 2018-10-16 中国科学技术大学苏州研究院 基于现场可编程门阵列的卷积神经网络加速系统
CN108681915A (zh) * 2018-04-18 2018-10-19 北京奇艺世纪科技有限公司 一种点击率预估方法、装置及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223228A (zh) * 2011-05-11 2011-10-19 北京航空航天大学 基于fpga的aes加密芯片设计方法及嵌入式加密系统
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN106339510A (zh) * 2016-10-28 2017-01-18 北京百度网讯科技有限公司 基于人工智能的点击预估方法及装置
CN106846044A (zh) * 2016-12-29 2017-06-13 新浪网技术(中国)有限公司 一种展示广告线上投放方法及装置
CN108038541A (zh) * 2017-12-07 2018-05-15 百度在线网络技术(北京)有限公司 Ctr预估的方法、装置、设备及计算机可读介质
CN108280514A (zh) * 2018-01-05 2018-07-13 中国科学技术大学 基于fpga的稀疏神经网络加速系统和设计方法
CN108681915A (zh) * 2018-04-18 2018-10-19 北京奇艺世纪科技有限公司 一种点击率预估方法、装置及电子设备
CN108665059A (zh) * 2018-05-22 2018-10-16 中国科学技术大学苏州研究院 基于现场可编程门阵列的卷积神经网络加速系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DeepFM: A Factorization-Machine based Neural Network for CTR Prediction;Huifeng Guo et al;《arXiv:1703.04247v1 [cs.IR]》;20170313;第1-8页 *
FPGA异构计算平台及其应用;胡雷钧 等;《北塔软件》;20161231;第6-11页 *
High performance in the cloud with FPGA groups;Anca Iordache et al;《2016 IEEE/ACM 9th International Conference on Utility and Cloud Computing》;20161231;第1-10页 *
卷积神经网络的FPGA并行加速方案设计;方睿 等;《计算机工程与应用》;20151231;第51卷(第8期);第32-36页 *

Also Published As

Publication number Publication date
CN110399979A (zh) 2019-11-01

Similar Documents

Publication Publication Date Title
WO2021047593A1 (zh) 推荐模型的训练方法、预测选择概率的方法及装置
WO2022037337A1 (zh) 机器学习模型的分布式训练方法、装置以及计算机设备
US20180260709A1 (en) Calculating device and method for a sparsely connected artificial neural network
CN111897579B (zh) 图像数据处理方法、装置、计算机设备和存储介质
WO2020073211A1 (zh) 运算加速器、处理方法及相关设备
EP3380993B1 (en) Systems and methods for robust large-scale machine learning
US20170116530A1 (en) Generating prediction models in accordance with any specific data sets
CN109857744B (zh) 稀疏张量计算方法、装置、设备及存储介质
CN108431832A (zh) 利用外部存储器扩增神经网络
CN110489622B (zh) 对象信息的分享方法、装置、计算机设备和存储介质
CN111767986A (zh) 一种基于神经网络的运算方法及装置
US10515378B2 (en) Extracting relevant features from electronic marketing data for training analytical models
CN111898698B (zh) 对象的处理方法及装置、存储介质和电子设备
WO2019019926A1 (zh) 系统参数的优化方法、装置及设备、可读介质
US20210350230A1 (en) Data dividing method and processor for convolution operation
CN110399979B (zh) 一种基于现场可编程门阵列的点击率预估的系统及方法
CN115186192A (zh) 信息处理方法、装置、存储介质及设备
CN112055038A (zh) 生成点击率预估模型的方法及预测点击概率的方法
CN112000873B (zh) 基于会话的推荐系统、方法、设备及存储介质
CN111489196B (zh) 基于深度学习网络的预测方法、装置、电子设备及介质
CN112989182A (zh) 信息处理方法、装置、信息处理设备及存储介质
CN110442616B (zh) 一种针对大数据量的页面访问路径分析方法与系统
WO2020252634A1 (zh) 一种基于现场可编程门阵列的点击率预估的系统及方法
CN117223005A (zh) 加速器、计算机系统和方法
CN114298329A (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