一种推荐模型的训练方法及装置、一种推荐方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种推荐模型的训练方法及装置、一种推荐方法及装置、一种计算设备及计算机可读存储介质。
背景技术
在一些互联网产品中,为了便于用户快速找到自己想要的商品(例如APP),需要进行个性化推荐,将用户最可能点击购买的APP推荐给待推荐用户。
目前,一些平台在进行APP推荐的时候简单的根据用户及APP的标签,使用传统的机器学习模型(例如:LR或GBDT模型)进行推荐,这种利用标签进行推荐的方式需要花费大量人力来建立标签体系,并且容易给用户推荐不适合的APP(例如:黄赌毒的APP),并且没有充分利用点击后的购买数据,可能会造成点击率高的APP被用户点击后的购买转化率较低。
发明内容
有鉴于此,本说明书实施例提供了一种推荐模型的训练方法及装置、一种推荐方法及装置、一种计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。
第一方面,本说明书实施例公开了一种推荐模型的训练方法,包括:
确定待训练的推荐模型中训练参数的第一初始参数值,其中,所述第一初始参数值为预先训练的点击率预估模型迭代更新初始参数值后的目标参数值;
获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征;
基于用户特征、属性特征生成样本用户对曝光的样本应用程序购买的正样本以及样本用户对曝光的样本应用程序未购买的负样本;
基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型,所述推荐模型输出每个样本用户对每个样本应用程序的曝光转化率。
可选地,预先训练所述点击率预估模型包括以下步骤:
确定待训练的点击率预估模型中训练参数的第二初始参数值;
获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征;
基于用户特征、属性特征生成样本用户对曝光的样本应用程序点击的正样本以及样本用户对曝光的样本应用程序未点击的负样本;
基于包括至少一个正样本和负样本的样本集合和所述第二初始参数值对待训练的点击率预估模型进行训练,得到所述点击率预估模型,所述训练包括基于预设更新策略迭代更新所述第二初始参数值后,得到目标参数值。
可选地,基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练之前,还包括:
基于预设筛选规则将所述样本集合筛选为包括至少一个正样本和负样本的训练样本集合以及包括至少一个正样本和负样本的测试样本集合。
可选地,基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型包括:
基于包括至少一个正样本和负样本的训练样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型。
可选地,基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型之后,还包括:
基于包括至少一个正样本和负样本的测试样本集合对所述推荐模型进行测试。
可选地,所述推荐模型和所述点击率预估模型均采用DeepFM模型结构。
可选地,所述用户特征和所述属性特征均包括离线特征和实时特征,其中,所述离线特征包括采集的所述样本用户以及所述样本应用程序的历史特征,所述实时特征包括采集的所述样本用户以及所述样本应用程序在事件发生时的特征。
第二方面,本说明书一实施例还提供了一种推荐方法,包括:
接收待推荐用户对曝光的应用程序的推荐请求,其中,所述待推荐用户携带有用户标识;
基于所述用户标识确定与所述待推荐用户匹配的至少两个待推荐应用程序;
提取所述待推荐用户的用户特征以及所述至少两个待推荐应用程序的属性特征;
将所述用户特征和所述属性特征输入到预先训练的推荐模型中,得到所述待推荐用户对每个匹配的待推荐应用程序的曝光转化率;
基于所述曝光转化率将所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,接收待推荐用户对曝光的应用程序的推荐请求之前,还包括:
获取多个携带有标识的应用程序;
基于第一预设条件对所述多个应用程序进行筛选,确定至少两个待推荐应用程序。
可选地,确定至少两个待推荐应用程序之后,还包括:
基于预设匹配规则将待推荐用户与所述至少两个待推荐应用程序进行匹配,其中,所述待推荐用户携带有用户标识。
可选地,所述推荐模型采用DeepFM模型结构。
可选地,基于所述曝光转化率将所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户包括:
基于所述曝光转化率对所述至少两个待推荐应用程序进行排序;
基于预设推荐条件选择所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,基于所述曝光转化率对所述至少两个待推荐应用程序进行排序之后,还包括:
基于所述第二预设条件对所述至少两个待推荐应用程序进行筛选;
基于预设推荐条件选择所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户包括:
基于预设推荐条件选择筛选后的所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,所述用户特征和所述属性特征均包括离线特征和实时特征,其中,所述离线特征包括采集的所述待推荐用户以及所述待推荐应用程序的历史特征,所述实时特征包括采集的所述待推荐用户以及所述待推荐应用程序在当前时刻的特征。
第三方面,本说明书一实施例还提供了一种推荐模型的训练装置,包括:
第一初始参数值确定模块,被配置为确定待训练的推荐模型中训练参数的第一初始参数值,其中,所述第一初始参数值为预先训练的点击率预估模型迭代更新初始参数值后的目标参数值;
第一获取模块,被配置为获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征;
第一生成模块,被配置为基于用户特征、属性特征生成样本用户对曝光的样本应用程序购买的正样本以及样本用户对曝光的样本应用程序未购买的负样本;
第一模型训练模块,被配置为基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型,所述推荐模型输出每个样本用户对每个样本应用程序的曝光转化率。
可选地,所述第一初始参数值确定模块包括:
第二初始参数值确定子模块,被配置为确定待训练的点击率预估模型中训练参数的第二初始参数值;
第二获取子模块,被配置为获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征;
第二生成子模块,被配置为基于用户特征、属性特征生成样本用户对曝光的样本应用程序点击的正样本以及样本用户对曝光的样本应用程序未点击的负样本;
第二模型训练子模块,被配置为基于包括至少一个正样本和负样本的样本集合和所述第二初始参数值对待训练的点击率预估模型进行训练,得到所述点击率预估模型,所述训练包括基于预设更新策略迭代更新所述第二初始参数值后,得到目标参数值。
可选地,所述装置还包括:
样本数据筛选模块,被配置为基于预设筛选规则将所述样本集合筛选为包括至少一个正样本和负样本的训练样本集合以及包括至少一个正样本和负样本的测试样本集合。
可选地,所述第一模型训练模块,进一步被配置为:
基于包括至少一个正样本和负样本的训练样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型。
可选地,所述装置还包括:
测试模块,被配置为基于包括至少一个正样本和负样本的测试样本集合对所述推荐模型进行测试。
可选地,所述推荐模型和所述点击率预估模型均采用DeepFM模型结构。
可选地,所述用户特征和所述属性特征均包括离线特征和实时特征,其中,所述离线特征包括采集的所述样本用户以及所述样本应用程序的历史特征,所述实时特征包括采集的所述样本用户以及所述样本应用程序在事件发生时的特征。
第四方面,本说明书一实施例还提供了一种推荐装置,包括:
接收模块,被配置为接收待推荐用户对曝光的应用程序的推荐请求,其中,所述待推荐用户携带有用户标识;
确定模块,被配置为基于所述用户标识确定与所述待推荐用户匹配的至少两个待推荐应用程序;
提取模块,被配置为提取所述待推荐用户的用户特征以及所述至少两个待推荐应用程序的属性特征;
获得模块,被配置为将所述用户特征和所述属性特征输入到预先训练的推荐模型中,得到所述待推荐用户对每个匹配的待推荐应用程序的曝光转化率;
推荐模块,被配置为基于所述曝光转化率将所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,所述装置还包括:
应用程序获取模块,被配置为获取多个携带有标识的应用程序;
应用程序筛选模块,被配置为基于第一预设条件对所述多个应用程序进行筛选,确定至少两个待推荐应用程序。
可选地,所述装置还包括:
匹配模块,被配置为基于预设匹配规则将待推荐用户与所述至少两个待推荐应用程序进行匹配,其中,所述待推荐用户携带有用户标识。
可选地,所述推荐模型采用DeepFM模型结构。
可选地,所述推荐模块包括:
应用程序排序子模块,被配置为基于所述曝光转化率对所述至少两个待推荐应用程序进行排序;
应用程序推荐子模块,被配置为基于预设推荐条件选择所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,所述推荐模块,进一步被配置为:
基于所述第二预设条件对所述至少两个待推荐应用程序进行筛选;
所述应用程序推荐子模块,进一步被配置为:
基于预设推荐条件选择筛选后的所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,所述用户特征和所述属性特征均包括离线特征和实时特征,其中,所述离线特征包括采集的所述待推荐用户以及所述待推荐应用程序的历史特征,所述实时特征包括采集的所述待推荐用户以及所述待推荐应用程序在当前时刻的特征。
第五方面,本说明书实施例公开了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述推荐模型的训练方法或所述推荐方法的步骤。
第六方面,本说明书实施例公开了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如上所述推荐模型的训练方法或所述推荐方法的步骤。
本申请提供的一种推荐模型的训练方法及装置、一种推荐方法及装置、一种计算设备及计算机可读存储介质,其中,所述推荐模型的训练方法包括通过将点击率预估模型迭代更新初始参数值后的目标参数值,作为待训练的推荐模型的初始参数值,再结合用户特征、属性特征生成的正负样本集合,采用该样本集合对待训练的推荐模型进行训练,得到推荐模型,采用这种迁移学习的方式,丰富了推荐模型的点击行为,利用训练好的点击率预估模型的目标参数作为推荐模型的初始参数,解决了直接采用初始参数对推荐模型进行训练,正负样本比例低,导致过拟合的问题。
附图说明
图1是本说明书一个或多个实施例提供的一种计算设备的结构框图;
图2是本说明书一个或多个实施例提供的一种推荐模型的训练方法的流程图;
图3是本说明书一个或多个实施例提供的DeepFM模型网络结构示意图;
图4是本说明书一个或多个实施例提供的一种推荐方法的流程图;
图5是本说明书一个或多个实施例提供的一种推荐模型的训练装置的结构示意图;
图6是本说明书一个或多个实施例提供的一种推荐装置的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
FM:英文全称:Factorization Machines,中文全称为:因子分解机,是由SteffenRendle提出的一种基于矩阵分解的机器学习算法,它可对任意的实值向量进行预测。其主要优点包括:1)可用于高度稀疏数据场景;2)具有线性的计算复杂度。本申请中主要目标是解决数据稀疏的情况下,特征怎样组合的问题。
DNN:英文全称:Deep Neural Network,中文全称为:深度神经网络,从DNN按不同层的位置划分,DNN内部的神经网络层可以分为三类,输入层,隐藏层和输出层。
DeepFM模型:一种深度学习模型,是一个集成了FM和DNN的神经网络框架,其结合了DNN和FM的优点,能够同时提取低阶和高阶的组合特征。
CTR:英文全称:Click-Through-Rate,中文全称:点击率。
CVR:英文全称:Conversion Rate,中文全称:购买率。
TL:英文全称:Transfer Learning,中文全称:迁移学习,是把一个领域(即源领域)的知识,迁移到另外一个领域(即目标领域),使得目标领域能够取得更好的学习效果。
LR:英文全称:Logistics Regression,中文全称:逻辑回归。
GBDT:英文全称:Gradient Boosting Decision Tree,中文全称:梯度提升决策树。
ODPS:英文全称:Open Data Processing Service,中文全称:开放数据处理服务,是基于飞天分布式平台,一种海量数据离线处理服务。ODPS以RESTfulAPI的形式提供针对PB级别数据的、实时性要求不高的批量结构化数据存储和计算能力。
在本申请中,提供了一种推荐模型的训练方法及装置、一种推荐方法及装置、一种计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示方法中的步骤。图2示出了根据本说明书一实施例的一种推荐模型的训练方法的示意性流程图,包括步骤202至步骤208。
步骤202:确定待训练的推荐模型中训练参数的第一初始参数值,其中,所述第一初始参数值为预先训练的点击率预估模型迭代更新初始参数值后的目标参数值。
其中,所述点击率预估模型通过如下步骤训练得到:
确定待训练的点击率预估模型中训练参数的第二初始参数值;
获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征;
基于用户特征、属性特征生成样本用户对曝光的样本应用程序点击的正样本以及样本用户对曝光的样本应用程序未点击的负样本;
基于包括至少一个正样本和负样本的样本集合和所述第二初始参数值对待训练的点击率预估模型进行训练,得到所述点击率预估模型,所述训练包括基于预设更新策略迭代更新所述第二初始参数值后,得到目标参数值。
所述点击率预估模型可以得到所述样本用户对每个样本应用程序的点击率。
其中,所述第二初始参数为预先选取的初始参数,可以随机选取也可以基于实际应用进行人为设定;此外,所述点击率预估模型的用户特征和属性特征可参见推荐模型,在此不再赘述。
所述预设更新策略包括但不限于采用梯度下降算法的更新策略等。所述样本应用程序为展示给样本用户的应用程序。
为了预估每个样本用户对每个样本应用程序的点击率,可以获取60天的样本用户以及针对该样本用户曝光后点击或不点击的样本应用程序,然后根据样本用户的用户特征和样本应用程序的属性特征进行解析,形成正负样本,然后拼接上用户特征和属性特征后,生成包括至少一个正样本和负样本的样本集合,其中,所述样本集合中的每一条正负样本数据可表示成(features,label)。
实际应用中,还可以结合样本用户的用户标识(user_id)和样本应用程序的应用程序标识(item_id)生成形成曝光后点击正负样本和曝光后转化正负样本(label),若样本应用程序曝光且样本用户点击则作为正样本(label=1),若样本应用程序曝光但是样本用户未点击则作为负样本(label=0),可表示为(user_id,item_id,label)三元组的形式。
然后根据user_id和item_id拼接上用户特征和属性特征后,生成包括至少一个正样本和负样本的样本集合,其中,所述样本集合中的每一条正负样本数据可表示成(user_id,item_id,features,label)。
步骤204:获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征。
例如可以获取预设时长内至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征,所述预设时长可以包括60天、120天等等,根据实际需求进行设置,本申请对此不作任何限定。
所述样本用户为被推荐样本应用程序的样本用户,所述样本应用程序包括但不限于办公类、游戏类、娱乐类的样本应用程序。
所述用户特征和所述属性特征均包括离线特征和实时特征,其中,所述离线特征包括采集的所述样本用户以及样本应用程序的历史特征,所述实时特征包括采集的所述样本用户以及所述样本应用程序在事件发生时的特征。
其中,所述用户特征的离线特征包括但不限于用户的基础画像类特征,例如用户的年龄、性别、星座、职业、教育水平和人生阶段等;用户的财富类特征,例如用户的收入、购买力、有房的概率和有车的概率等;用户的位置特征,例如用户的出生地、工作地、家庭所在地和常驻地等;用户行为特征,例如用户对应用程序的曝光数、点击数和点击率等以及其他特征,例如用户的兴趣偏好特征、搜索问题即query特征、活跃度特征、历史交易特征和实时红包特征等。所述用户特征的实时特征包括但不限于:用户的场景特征,例如用户渠道来源等,即实际应用中可以根据样本用户的跳转渠道来源确定样本用户喜欢的样本应用程序。
所述属性特征的离线特征包括但不限于应用程序的基础属性特征,例如应用程序的分类、价格、评分、评论数、排名、语言等、应用程序的统计类特征,例如应用程序近1/3/7/15/30/90天的曝光pv(pageview,曝光量)、曝光uv(unique visitor,曝光人数)、点击pv(点击量)、点击uv(点击人数)、pv点击率、uv点击率(点击人数/曝光人数)等。所述属性特征的实时特征包括但不限于:场景特征,例如应用程序的当前小时及星期等,即实际应用中可以根据当前时间及星期确定样本用户喜欢的样本应用程序。
实际应用中,所述样本应用程序可以从ODPS中获取,其中,ODPS中存储有原始全量的样本应用程序。
步骤206:基于用户特征、属性特征生成样本用户对曝光的样本应用程序购买的正样本以及样本用户对曝光的样本应用程序未购买的负样本。
为了预估每个样本用户对每个样本应用程序的曝光转化率,可以获取60天的样本用户以及针对该样本用户曝光后点击或不点击的样本应用程序,然后根据样本用户的用户特征和样本应用程序的属性特征进行解析,形成曝光后点击正负样本和曝光后转化正负样本(label),然后拼接上用户特征和属性特征后,生成包括至少一个正样本和负样本的样本集合,其中,所述样本集合中的每一条正负样本数据可表示成(features,label)。
实际应用中,还可以结合样本用户的用户标识(user_id)和样本应用程序的应用程序标识(item_id)生成形成曝光后点击正负样本和曝光后转化正负样本(label),若样本应用程序曝光且样本用户点击则作为曝光点击正样本(y1=1),若样本应用程序曝光但是样本用户未点击则作为曝光点击负样本(y1=0),若样本应用程序曝光后样本用户点击并购买则作为曝光转化正样本(y2=1),若样本应用程序曝光后样本用户未点击或点击后未购买则作为曝光转化负样本(y2=0),可表示为(user_id,item_id,y1,y2)的形式。
然后根据user_id和item_id拼接上用户特征和属性特征后,生成包括至少一个正样本和负样本的样本集合,其中,所述样本集合中的每一条正负样本数据可表示成(user_id,item_id,features,y1,y2)。
其中,所述样本应用程序的曝光点击正负样本标签在点击率预估模型的训练中已经使用,而推荐模型的第一初始参数值为预先训练的点击率预估模型迭代更新初始参数值后的目标参数值,因此在进行推荐模型训练时无需再重复使用样本用户对样本应用程序点击与否的标签。即所述推荐模型的样本数据为根据user_id和item_id拼接上用户特征和属性特征后,生成包括至少一个正样本和负样本的样本集合,其中,所述样本集合中的每一条正负样本数据可表示成(user_id,item_id,features,y2)。
步骤208:基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型,所述推荐模型输出每个样本用户对每个样本应用程序的曝光转化率。
本说明书一个或多个实施例中,基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练之前,还包括:
基于预设筛选规则将所述样本集合筛选为包括至少一个正样本和负样本的训练样本集合以及包括至少一个正样本和负样本的测试样本集合。
其中,预设筛选规则包括但不限于从生成的样本集合中选取预设时长内预定个数的正负样本数据作为测试样本集合,其余的作为训练样本集合。例如预设筛选规则可以包括从生成的1.4亿样本集合中抽取近一天的正负样本数据中的20万个正负样本数据作为测试样本集合,其余的正负样本数据作为训练样本集合,其中,曝光点击正负样本的比例约1:20,曝光转化正负样本的比例约1:200。实际应用中,由于应用程序的曝光到转化的比率较底,若测试样本集合中的正负样本太少,则应用程序的曝光转化正样本较少,评估可能会不准确,因此选取150万个正负样本作为测试样本集合较为合适。
基于所述至少两个样本数据和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型,所述推荐模型输出每个样本用户对每个样本应用程序的曝光转化率,即基于所述训练样本数据和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型,所述推荐模型输出每个样本用户对每个样本应用程序的曝光转化率。
实际应用中,基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型之后,还包括:
基于包括至少一个正样本和负样本的测试样本集合对所述推荐模型进行测试。
其中,基于包括至少一个正样本和负样本的测试样本集合对所述推荐模型进行测试,即是将所述测试样本集合输入至所述推荐模型,使得所述推荐模型输出每个样本用户对每个样本应用程序的曝光转化率。
所述推荐模型和所述点击率预估模型均采用DeepFM模型结构,采用将所述点击率预估模型训练好的目标参数值作为所述推荐模型的第一初始参数值的迁移学习方式对所述推荐模型进行训练。实际使用中,首先利用第二初始参数值和曝光点击的正负样本集合训练一个采用DeepFM模型结构的CTR预估模型,然后再利用CTR预估模型训练后的第二初始参数值即目标参数值和曝光转化的正负样本集合对采用DeepFM模型结构的推荐模型(CTCVR模型)进行训练,训练得到CTCVR模型。实际应用中,首先利用CTR预估模型的目标参数值作为CTCVR模型的第一初始参数值对其进行训练,得到训练后的CTCVR模型,所述CTCVR学习到了丰富的点击行为,解决了直接训练CTCVR模型出现正负样本比例低,导致过拟合的问题。
所述推荐模型即是采用DeepFM模型结构以迁移学习的方式训练得到的模型,其中,所述DeepFM模型结合了DNN和FM的优点,能够同时提取低阶和高阶的组合特征。其中,FM部分提取低阶组合特征,包括:一阶特征的线性组合(权值与特征点积),二阶交叉特征(隐向量内积)。Deep部分提取高阶组合特征。同时,FM和Deep共享输入和embedding向量。具体地,DeepFM模型的预测结果如公式(1)表示:
其中,FM的输出公式如公式(2)表示:
DNN的输出公式如公式(3)表示:
yDNN=σ(W|H|+1·aH+b|H|+1) (3)
如图3所示,提供了所述DeepFM模型的网络结构,首先将DeepFM模型分为Deep神经网络部分和FM因子分解机部分,所述Deep神经网络部分可以采用全连接的前馈神经网络DNN,所述DNN和所述FM将输入的用户特征和属性特征分为多个特征组,每个特征组对应一个嵌入(embedding)向量,其中,Deep神经网络部分的特征拼接层(concat)对所有embedding向量进行拼接,再增加两层的全连接层(Fc(relu)),实现高阶特征的组合;FM因子分解机对输入的用户特征和属性特征等原始特征输入进行加权求和(addition),并通过对于每一维的embedding向量内积来提取特征组合,实现低阶特征的组合;最后将Deep神经网络和FM因子分解机两部分的输出进行结合得到预测结果(sigmoid)。
本说明书一个或多个实施例提供的一种推荐模型的训练方法,所述推荐模型的训练方法包括确定待训练的推荐模型中训练参数的第一初始参数值,其中,所述第一初始参数值为预先训练的点击率预估模型迭代更新初始参数值后的目标参数值;获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征;基于用户特征、属性特征生成样本用户对曝光的样本应用程序购买的正样本以及样本用户对曝光的样本应用程序未购买的负样本;基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型,所述推荐模型输出每个样本用户对每个样本应用程序的曝光转化率。所述推荐模型和所述点击率预估模型均采用DeepFM模型结构,利用迁移学习的方式将点击率预估模型迭代更新初始参数值后的目标参数值,作为待训练的推荐模型的初始参数值,再结合用户特征、属性特征生成正负样本数据,对待训练的推荐模型进行训练,得到推荐模型,丰富了推荐模型的点击行为,解决了直接对推荐模型进行训练时,正负样本比例低,导致过拟合的问题。
所述处理器120还可以执行图4所示方法中的步骤。图4示出了根据本说明书一实施例的一种推荐模型方法的示意性流程图,包括步骤402至步骤410。
步骤402:接收待推荐用户对曝光的应用程序的推荐请求,其中,所述待推荐用户携带有用户标识。
其中,待推荐用户为待推荐曝光的应用程序的用户;曝光的应用程序为被展示以及推荐给待推荐用户的应用程序。
接收待推荐用户对曝光的应用程序的推荐请求,即接收待推荐曝光的应用程序的用户的推荐请求。
所述用户标识为用于区分每个待推荐用户的唯一标识信息,例如为每个待推荐用户设置的起标识作用的唯一特殊字符串或者是特殊的标志等。
本说明书一个或多个实施例中,接收待推荐用户对曝光的应用程序的推荐请求之前,还包括:
获取多个携带有标识的应用程序;
基于第一预设条件对所述多个应用程序进行筛选,确定至少两个待推荐应用程序。
其中,所述待推荐应用程序为等待推荐给用户的应用程序。所述第一预设条件包括但不限于选取预设区间内的应用程序,例如预设区间为1到200,则所述第一预设条件可以为选取价格在1元到200元区间内的应用程序。所述第一预设条件还可以包括剔除黄赌毒相关的应用程序或者质量较差的应用程序等,其中,所述质量较差的应用程序可以通过应用程序的评分和评论数来确定,例如设置评分和评论数的下限值,将评分小于3分和评分数小于200条的应用程序认定为质量较差的应用程序。
所述第一预设条件可以根据实际需求进行设置,本申请对此不作任何限定。经过所述第一预设条件对多个应用程序进行筛选后,多个应用程序的数量会有所下降,形成最终的待推荐应用程序,在降低后续工作量的同时保证了待推荐应用程序的推荐质量。
以所述第一预设条件为选取价格在1元到200元区间内的应用程序为例,基于第一预设条件对所述多个应用程序进行筛选,确定至少两个待推荐应用程序,即筛选出价格在1元到200元区间内的应用程序作为待推荐应用程序。
实际应用中,所有的应用程序均放置在ODPS中,能够更快速的解决用户海量数据计算问题,实现从多个应用程序中快速的选取多个待推荐应用程序,可以有效降低企业成本,并保障数据安全。
步骤404:基于所述用户标识确定与所述待推荐用户匹配的至少两个待推荐应用程序。
其中,所述待推荐应用程序可以看作是初始的展示给用户的应用程序,在后续进行推荐模型预测时,会得到每个待推荐应用程序的曝光转化率。
具体地,基于第一预设条件对所述多个应用程序进行筛选,确定至少两个待推荐应用程序之后,还包括:
基于预设匹配规则将待推荐用户与所述至少两个待推荐应用程序进行匹配,其中,所述待推荐用户携带有用户标识。
所述预设匹配规则包括但不限于推荐每个类目下排名靠前的热门待推荐应用程序(记为hot)、根据每个用户对淘宝类目的偏好推荐待推荐应用程序(记为U2C2I)、根据性别/年龄/城市/购买力/兴趣标签对用户进行分组,推荐同组用户点击的待推荐应用程序(记为U2G2I)和/或推荐与用户曾经点击的应用程序相似的待推荐应用程序(记为Item-CF)。
以所述预设匹配规则为推荐每个类目下排名靠前的热门应用程序为例,基于预设匹配规则将待推荐用户与所述至少两个待推荐应用程序进行匹配;即基于所述用户标识和所述应用程序的标识为待推荐用户推荐游戏类目下排名靠前十的热门应用程序为待推荐应用程序,使其该待推荐用户与推荐的待推荐应用程序相匹配。
经过上述预设匹配规则匹配后,每个待推荐用户对应有数十个或数百个待推荐应用程序,然后基于每个待推荐用户的用户标识和待推荐应用程序的标识将每个待推荐用户匹配的待推荐应用程序记录在数据库中,例如HBase数据库。在接收到待推荐用户的曝光的应用程序的推荐请求后,基于该待推荐用户的用户标识即可以在HBase数据库中查询到与之匹配的待推荐应用程序。
步骤406:提取所述待推荐用户的用户特征以及所述至少两个待推荐应用程序的属性特征。
所述用户特征和所述属性特征均包括离线特征和实时特征,其中,所述离线特征包括采集的所述待推荐用户以及所述待推荐应用程序的历史特征,所述实时特征包括采集的所述待推荐用户以及所述待推荐应用程序在当前时刻的特征。
提取的所述用户特征和所述属性特征可以参见上述实施例,在此不做赘述。
步骤408:将所述用户特征和所述属性特征输入到预先训练的推荐模型中,得到所述待推荐用户对每个匹配的待推荐应用程序的曝光转化率。
其中,所述推荐模型为采用DeepFM模型结构的上述实施例中训练得到的推荐模型,所述推荐模型通过迁移学习的方式进行训练,利用点击和转化行为数据,解决了样本数据稀疏性的问题,极大的提升了推荐模型的推荐效果。
实际应用中,提取的所述用户特征和所述属性特征的离线特征会同步到HBase数据库中,所述推荐模型预测所述待推荐用户对每个匹配的待推荐应用程序的曝光转化率时,可以直接实时从HBase数据库中抽取待推荐用户的用户特征和每个匹配的待推荐应用程序的离线特征,再结合实时抽取的实时特征进行曝光转化率预测,而采用推荐模型对所述待推荐用户对每个匹配的待推荐应用程序的曝光转化率进行预测时候,会将所述属性特征进行记录形成特征日志并回流到ODPS中,然后再基于所述特征日志离线训练推荐模型,将训练好的推荐模型进行更新,实现所述推荐模型的不断优化。
步骤410:基于所述曝光转化率将所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
本说明书一个或多个实施例中,基于所述曝光转化率将所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户包括:
基于所述曝光转化率对所述至少两个待推荐应用程序进行排序;
基于预设推荐条件选择所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
所述排序包括但不限于降序排序,所述预设推荐条件包括但不限于选择排名前30的待推荐应用程序。
实际应用中,基于所述曝光转化率对所述至少两个待推荐应用程序进行排序;
基于预设推荐条件选择所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
即可以为基于所述曝光转化率对所述至少两个待推荐应用程序进行降序排序,然后将排名前30的待推荐应用程序作为曝光的应用程序推荐给待推荐用户,而该排名前30的待推荐应用程序即为真实曝光以及推荐给用户的应用程序。
另一种实现方式中,基于所述曝光转化率对所述至少两个待推荐应用程序进行排序之后,还包括:
基于所述第二预设条件对所述至少两个待推荐应用程序进行筛选。
其中,所述第二预设条件可以包括但不限于对预设黑名单中的应用程序进行选择并剔除。
在基于所述第二预设条件对所述至少两个待推荐应用程序进行筛选的情况下,基于预设推荐条件选择所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户包括:
基于预设推荐条件选择筛选后的所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
即基于所述曝光转化率对所述至少两个待推荐应用程序进行降序排序,然后将降序排序后的所述至少两个待推荐应用程序与预设黑名单中的应用程序进行匹配,若有匹配上的待推荐应用程序,则将该待推荐应用程序从降序排列的队列中剔除后,再选择曝光转化率最高的前30个或前20个待推荐应用程序作为曝光的应用程序推荐给待推荐用户,以实现将最优的待推荐应用程序作为曝光的应用程序推荐给待推荐用户,提高用户体验。
实际使用中,在接收到待推荐用户的曝光的应用程序推荐请求时,首先获取经过筛选后与待推荐用户匹配的待推荐应用程序,然后将该待推荐应用程序的属性特征以及匹配的待推荐用户的用户特征输入到预先训练的推荐模型中,得到所述待推荐用户对每个待推荐应用程序的曝光转化率。
最后基于曝光转化率对所述待推荐用户对应的待推荐应用程序进行排序,再基于需求选取排名前50或者前60的待推荐应用程序作为最终的曝光的应用程序推荐以及最终展示给待推荐用户。
本说明书一个或多个实施例提供的一种推荐方法,首先将获取到的应用程序进行筛选即选品过滤,筛选出高质量的待推荐应用程序,然后利用hot/U2C2I/U2G2I/Item-CF等策略将用户与待推荐应用程序进行匹配,避免花费大量人力来建立标签体系,并且多种匹配策略,更能覆盖到用户可能点击的待推荐应用程序,并且采用DeepFM模型结构的推荐模型,根据待推荐用户和匹配的待推荐应用程序进行在线实时曝光转化率预测,通过曝光转化率为待推荐用户推荐合适的待推荐应用程序作为最终的曝光的应用程序,有效的利用了实时特征以及推荐模型的自动特征交叉组合能力、点击和转化的行为数据等,解决了数据稀疏性问题,提升了推荐效果。
实际应用中,还需要将本说明书中训练好的推荐模型部署到线上服务器进行应用程序的在线实时打分。一般采用的是arks平台,该平台提供了高性能在线排序和实时预估服务,高可用,且实现了负载均衡、异地容灾等诸多功能。当有用户请求应用程序推荐时,首先需要由检索模块依据用户标识user_id从HBase检索出先前在匹配阶段为该用户匹配的数百个候选应用程序即待推荐应用程序。并将该用户及待推荐应用程序的离线以及实时特征给推荐模型进行实时打分,得到该用户对每个待推荐应用程序的一个曝光转化率。最后再根据待推荐应用程序的曝光转化率进行降序排序,将排在最靠前的30个待推荐应用程序作为最终的曝光的应用程序推荐展示给用户。此外,为避免给用户推荐一些不适合的曝光的应用程序,还可以设置黑名单过滤机制,将一些badcase的曝光的应用程序紧急过滤掉。
参见图5,本说明书一个或多个实施例提供了一种推荐模型的训练装置,包括:
第一初始参数值确定模块502,被配置为确定待训练的推荐模型中训练参数的第一初始参数值,其中,所述第一初始参数值为预先训练的点击率预估模型迭代更新初始参数值后的目标参数值;
第一获取模块504,被配置为获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征;
第一生成模块506,被配置为基于用户特征、属性特征生成样本用户对曝光的样本应用程序购买的正样本以及样本用户对曝光的样本应用程序未购买的负样本;
第一模型训练模块508,被配置为基于包括至少一个正样本和负样本的样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型,所述推荐模型输出每个样本用户对每个样本应用程序的曝光转化率。
可选地,所述第一初始参数值确定模块502包括:
第二初始参数值确定子模块,被配置为确定待训练的点击率预估模型中训练参数的第二初始参数值;
第二获取子模块,被配置为获取至少两个样本用户的用户特征以及至少两个样本应用程序的属性特征;
第二生成子模块,被配置为基于用户特征、属性特征生成样本用户对曝光的样本应用程序点击的正样本以及样本用户对曝光的样本应用程序未点击的负样本;
第二模型训练子模块,被配置为基于包括至少一个正样本和负样本的样本集合和所述第二初始参数值对待训练的点击率预估模型进行训练,得到所述点击率预估模型,所述训练包括基于预设更新策略迭代更新所述第二初始参数值后,得到目标参数值。
可选地,所述装置还包括:
样本数据筛选模块,被配置为基于预设筛选规则将所述样本集合筛选为包括至少一个正样本和负样本的训练样本集合以及包括至少一个正样本和负样本的测试样本集合。
可选地,所述第一模型训练模块508,进一步被配置为:
基于包括至少一个正样本和负样本的训练样本集合和所述第一初始参数值对待训练的推荐模型进行训练,得到所述推荐模型。
可选地,所述装置还包括:
测试模块,被配置为基于包括至少一个正样本和负样本的测试样本集合对所述推荐模型进行测试。
可选地,所述推荐模型和所述点击率预估模型均采用DeepFM模型结构。
可选地,所述用户特征和所述属性特征均包括离线特征和实时特征,其中,所述离线特征包括采集的所述样本用户以及所述样本应用程序的历史特征,所述实时特征包括采集的所述样本用户以及所述样本应用程序在事件发生时的特征。
本说明书一个或多个实施例提供的一种推荐模型的训练装置通过将点击率预估模型迭代更新初始参数值后的目标参数值,作为待训练的推荐模型的初始参数值,再结合用户特征、属性特征以及标签等生成的样本数据,对待训练的推荐模型进行训练,得到推荐模型,采用这种迁移学习的方式,丰富了推荐模型的点击行为,解决了直接对推荐模型进行训练时,正负样本比例低,导致过拟合的问题。
参见图6,本说明书一实施例提供了一种推荐装置,包括:
接收模块602,被配置为接收待推荐用户对曝光的应用程序的推荐请求,其中,所述待推荐用户携带有用户标识;
确定模块604,被配置为基于所述用户标识确定与所述待推荐用户匹配的至少两个待推荐应用程序;
提取模块606,被配置为提取所述待推荐用户的用户特征以及所述至少两个待推荐应用程序的属性特征;
获得模块608,被配置为将所述用户特征和所述属性特征输入到预先训练的推荐模型中,得到所述待推荐用户对每个匹配的待推荐应用程序的曝光转化率;
推荐模块610,被配置为基于所述曝光转化率将所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,所述装置还包括:
应用程序获取模块,被配置为获取多个携带有标识的应用程序;
应用程序筛选模块,被配置为基于第一预设条件对所述多个应用程序进行筛选,确定至少两个待推荐应用程序。
可选地,所述装置还包括:
匹配模块,被配置为基于预设匹配规则将待推荐用户与所述至少两个待推荐应用程序进行匹配,其中,所述待推荐用户携带有用户标识。
可选地,所述推荐模型采用DeepFM模型结构。
可选地,所述推荐模块610包括:
应用程序排序子模块,被配置为基于所述曝光转化率对所述至少两个待推荐应用程序进行排序;
应用程序推荐子模块,被配置为基于预设推荐条件选择所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,所述推荐模块610,进一步被配置为:
基于所述第二预设条件对所述至少两个待推荐应用程序进行筛选;
所述应用程序推荐子模块,进一步被配置为:
基于预设推荐条件选择筛选后的所述至少两个待推荐应用程序中的至少一个待推荐应用程序作为曝光的应用程序推荐给待推荐用户。
可选地,所述用户特征和所述属性特征均包括离线特征和实时特征,其中,所述离线特征包括采集的所述待推荐用户以及所述待推荐应用程序的历史特征,所述实时特征包括采集的所述待推荐用户以及所述待推荐应用程序在当前时刻的特征。
本说明书一个或多个实施例提供的一种推荐装置,首先将获取到的应用程序进行筛选即选品过滤,筛选出高质量的待推荐应用程序,然后利用hot/U2C2I/U2G2I/Item-CF等策略将用户与待推荐应用程序进行匹配,避免花费大量人力来建立标签体系,并且多种匹配策略,更能覆盖到用户可能点击的待推荐应用程序,并且采用DeepFM模型结构的推荐模型,根据待推荐用户和匹配的待推荐应用程序进行在线实时曝光转化率预测,通过曝光转化率为待推荐用户推荐合适的待推荐应用程序作为最终的曝光的应用程序,有效的利用了实时特征以及推荐模型的自动特征交叉组合能力、点击和转化的行为数据等,解决了数据稀疏性问题,提升了推荐效果。
上述为本实施例的一种推荐装置的示意性方案。需要说明的是,该推荐装置的技术方案与上述的推荐方法的技术方案属于同一构思,推荐装置的技术方案未详细描述的细节内容,均可以参见上述推荐方法的技术方案的描述。
利用“达尔文”实验室的AB测试平台对本说明书中提供的匹配规则、用户特征以及采用DeepFM模型结构的推荐模型进行了线上对比实验。得出如下对比为结果,主要对比指标:UV点击率(点击人数/曝光人数)和UV曝光转化率(购买人数/曝光人数)。
1、匹配规则实验
采用Hot和U2C2I匹配规则共同匹配比只用hot匹配,UV点击率提升9.93%(15.11%-->16.61%)。
Hot、U2C2I、U2G2I和Item-CF四个匹配规则共同匹配相比hot与U2C2I共同匹配,UV点击率提升10.86%(28.18%-->31.25%)。
实验充分的说明,采用多个匹配规则进行匹配,能够显著的提升UV点击率。
2、特征实验
增加兴趣偏好特征相比不用兴趣偏好特征,曝光转化率提升1.93%(15.78%-->16.08%)。说明用户的点击购买行为与用户自身的兴趣偏好息息相关。
3、模型实验
首先实验对比了CTR模型以及两个单独的CTR和CVR模型分数相乘的方式,CTR模型和CVR模型均采用DeepFM模型,且模型结构和输入特征完全一样。实验结果数据见表1,从表1中可以看出,采用两个单独的CTR和CVR模型分数相乘的方式,UV点击率下跌,UV点击后购买率提升,但是,最终的UV曝光转化率比单独的CTR模型还差。
表1
再将CTR模型与采用DeepFM模型结构CTCVR模型即本说明书的推荐模型进行线上对比实验,两个模型训练的输入特征、DeepFM模型结构以及样本数据量完全一样。实验结果见下表2,以基于DeepFM的CTR模型作为基准,可以看出本说明书的CTCVR模型在UV点击率上比CTR模型要差1.41%,UV点击后购买率提升3.50%,并且总的UV曝光转化率上提升了2.05%。实验充分说明,采用DeepFM模型结构的CTCVR模型能带来UV曝光转化率的提升。
表2
本说明书一实施例公开了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述推荐模型的训练方法或所述推荐方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的推荐模型的训练方法或所述推荐方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述推荐模型的训练方法或所述推荐方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述推荐模型的训练方法或所述推荐方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的推荐模型的训练方法或所述推荐方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述推荐模型的训练方法或所述推荐方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。