一种基于FFM深度神经网络的点击率预估方法与流程

文档序号:17790831发布日期:2019-05-31 20:11阅读:907来源:国知局
一种基于FFM深度神经网络的点击率预估方法与流程

本发明涉及计算广告和推荐系统的技术领域,尤其是指一种基于ffm深度神经网络的点击率预估方法。



背景技术:

大数据时代,我们生活中的方方面面都出现了信息过载的问题:电子商务、电影或者视频网站、个性化音乐网络电台、社交网络、个性化阅读、基于位置的服务、个性化邮件、个性化广告.......逛淘宝、订外卖、听网络电台、看剧等等。用户从大量的信息中寻找对自己感兴趣的信息也随之变得困难;而对于信息生产者而言,让自己生产的信息在众多信息中脱颖而出也变得越来越难。推荐系统就是在这样的前提下产生的。

推荐系统的主要任务就是联系用户与信息。对于用户而言,推荐系统能够帮助用户找到感兴趣的内容,帮忙进行决策与筛选,发现用户可能喜欢的新事物,推荐系统在你不知不觉中将你感兴趣的内容推送给用户,甚至有的时候,推荐系统比用户本人更了解用户。对于商家而言,推荐系统可以给用户提供个性化服务,提供用户的信任度和粘性,增加营收,或者精确投放对应的广告,提高收入。

在推荐系统中,ctr预估(click-throughrate)是非常重要的一个环节,判断一个商品是否进行推荐需要根据ctr预估的点击率来进行。ctr预估的场景中,绝大多数的特征都是大规模离散化的特征,而且交叉类的特征十分重要,如果利用简单的模型(比如lr),需要做大量的人工特征工程,任务繁重。哪怕是gbdt,fm等具有一定交叉特征能力的模型,模型的交叉能力也十分有限,也脱离不了特征工程。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提出了一种基于ffm深度神经网络的点击率预估方法,利用ffm深度神经网络模型表达能力强,能够自动组合特征的特点,学习出高阶非线性特征,解决了特征交叉与特征高阶表达的问题,从而更好地应用于工业和生活领域。

实现上述目的,本发明所提供的技术方案为:一种基于ffm深度神经网络的点击率预估方法,包括以下步骤:

1)将训练数据中的数据离散化;

2)对离散化的训练数据进行重新编码;

3)将重新编码后的训练数据通过ffm深度神经网络进行训练;

4)将需要预测的数据通过预处理;

5)将预处理过的数据通过训练过的神经网络实现点击率的预估。

在步骤1)中,由于数据中存在离散型数据和连续型数据,为了满足神经网络的输入要求,需将连续性型数据通过离散化操作变成离散型数据,离散型数据则不做处理,这样的处理不会影响神经网络的学习效果。

在步骤2)中,对离散化后的数据进行重新编码,包括改变数据的起始值和最大值,这样做能够提高模型的精度和训练效率,防止过拟合。

在步骤3)中,构造ffm神经网络并训练,对于点击率的预估,数据包括各个维度的数据,所以在训练网络时输入的是各个维度的离散化数据,标签根据用户是否产生点击行为标记为1或0,训练时,将训练数据通过embedding层,对输入的数据进行向量化操作,再分别经过线性层和深度神经网络层,其中深度神经网络层包括特征交叉层和全连接层,再将线性层的结果和深度神经网络层的结果相加并通过sigmoid函数,最后采用logloss作为代价函数;而后再采用反向传播算法训练神经网络。

在步骤4)中,在使用网络时,输入为要预测点击率的各个维度的数据,将各个维度的数据做相同的预处理,将数据离散化并重新编码。

在步骤5)中,将处理过的各个维度的数据正向传播通过训练过的ffm深度神经网络,实现点击率的预估。

本发明与现有技术相比,具有如下优点与有益效果:

1、本发明首次实现了基于ffm深度神经网络的点击率预估的功能,突破传统方法特征交叉的能力十分有限,需要做大量的人工特征工程,任务繁重的技术缺点。

2、本发明利用线性层和深度神经网络层让神经网络更容易训练。

3、本发明首次实现了基于ffm深度神经网络的点击率预估功能,通过神经网络实现了特征之间的自动交叉。突破了传统方法过于简单,不能自动提取交叉特征、不能提取特征高阶信息的缺点。

4、本发明首次实现了基于ffm深度神经网络的点击率预估功能,解决了特征低阶信息与特征高阶信息的组合问题。

5、本发明使用方法简单,速度快,在推荐系统和计算广告领域具有广泛的应用。

附图说明

图1为本发明ffm深度神经网络结构图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

本实施例所提供的基于ffm深度神经网络的点击率预估方法,其具体情况如下:

1)获取输入数据并离散化

获得训练数据,获得网上的点击率预估的数据集如criteo,company*数据集等。为了满足深度神经网络的输入要求,对得到的数据进行数据离散化操作。对于数据集中的数据,数据包括各个维度的离散数据和连续数据。对连续数据剔除异常值并进行分箱操作,从而实现数据的离散化,离散数据则保持不变。

2)对离散化后的数据重新编码

对于离散化后的数据,将数据进行重新编码。也就是改变离散型数据的最大值和最小值,使得最小值为0,特征范围达到该数据中的最小值。例如原本的离散型数据为2、33、234、999,离散化后的数据值变为0、1、2、3。将离散化后的数据进行重新编码,可以减少神经网络的复杂度,减少模型的运行时间,也可以增强模型的鲁棒性,防止过拟合。

3)深度神经网络的训练

3.1)对于线性神经网络部分,网络的结构如图1线性层所示。对每一组数据,我们先将数据正向传播通过网络,通过线性网络提取数据的低阶特征。然后将各个维度的数据做一个加和操作。

3.2)对于深度神经网络部分,网络结构如图1embedding层、特征交叉层和全连接层所示。对于每一组数据,我们先将数据正向传播通过网络,首先将数据通过embedding层,将数据从原本的特征空间映射到新的特征空间中,从而提取数据的潜在特征信息,增强数据的表达能力。然后将数据通过特征交叉层,特征交叉层可以实现特征的自动交叉,提取出特征的二阶信息,提升模型的表达能力。最后将数据通过全连接层,全连接层可以融合所有的二阶特征,从而提取出特征更高阶的信息,进一步提升模型的表达能力,使得模型的表现更加出色。

3.3)将3.1)、3.2)得到的结果相加并通过sigmoid层,从而获得最终的点击率输出,并与之前设定的标签进行比较,计算出logloss误差。然后通过反向传播算法,使用随机梯度下降优化算法调整网络的参数

3.4)我们把所有数据通过一次正向传播和反向传播成为一个epoch,可以通过gpu加速网络的训练过程。在每一个epoch,首先随机从数据集中抽取出n组数据,然后用步骤3.1)、3.2)、3.3)中的正向传播,反向传播算法优化网络参数。直到网络输出和标签的差异缩小速度不再明显变化或者达到规定迭代次数为止。

4)数据预处理

在使用网络时,输入为要预测点击率的各个维度的数据,将各个维度的数据做相同的预处理,将数据离散化并重新编码。

5)通过神经网络进行预估

将处理过的各个维度的数据正向传播通过训练过的ffm深度神经网络,实现点击率的预估。

以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

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