CN110119474A - 推荐模型训练方法、基于推荐模型的预测方法及装置 - Google Patents
推荐模型训练方法、基于推荐模型的预测方法及装置 Download PDFInfo
- Publication number
- CN110119474A CN110119474A CN201810470144.1A CN201810470144A CN110119474A CN 110119474 A CN110119474 A CN 110119474A CN 201810470144 A CN201810470144 A CN 201810470144A CN 110119474 A CN110119474 A CN 110119474A
- Authority
- CN
- China
- Prior art keywords
- subset
- condition
- character subset
- model
- feature
- 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.)
- Granted
Links
Classifications
-
- 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/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了推荐模型训练方法、基于推荐模型的预测方法及装置,该方法包括:获取至少一个样本数据,根据所述每一个样本数据的特征集合获取至少一个特征子集;根据每一个特征子集的属性来确定条件集合中每一个特征子集对应的条件;其中,条件集合包括至少两个条件,至少两个条件分别指示特征子集不同的属性,每一个特征子集的属性与每一个特征子集对应的条件所指示的属性一致;利用每一个特征子集以及每一个特征子集对应的标签,分别训练模型集合中每一个特征子集对应的条件所对应的推荐模型。实施本发明实施例有利于训练出更好的推荐模型,提高推荐内容的预测的准确性。
Description
技术领域
本发明涉及内容推荐技术领域,尤其涉及推荐模型训练方法、基于推荐模型的预测方法及装置。
背景技术
随着互联网技术的发展,信息快速增长,如何对信息进行快速有效地筛选,从而将适合用户的个性化内容(如商品、广告、新闻资讯、APP等等)准确地推荐推荐给用户,是当前一个重要研究课题。为了解决这个问题,基于特征工程(Feature Engineering)的推荐系统应运而生。推荐系统可以根据已有的用户信息进行机器学习,进而向用户推荐其可能会感兴趣的个性化内容。其中,已有的用户信息包括用户特征(如性别、年龄、城市、爱好等)、产品特征(如产品类型、内容、展示位置、推荐时间等)等等。为了提高机器学习应用的准确性和效率,通常需要将一些不同的特征进行组合,现有的特征组合方式有两种,一种是人工特征组合方式,这种方式依赖于工程师选择特征子集进行组合,然而,这种方式需要花费大量的人力、物力去寻找有意义的特征组合,成本较高且容易漏掉潜在有价值的特征组合。另一种方式是采用推荐模型的算法来学习较佳的特征组合,该方式能够基于大量的训练样本来自动学习大量的特征组合,验证不同特征组合的有效性,所以特征组合是特征工程的一种重要策略。然而,目前推荐模型众多,不同推荐模型解决问题的能力各有差异,选择怎样的推荐模型来解决当前产品的特征组合问题,以进一步提升个性化内容推荐的准确性,仍然是一个具有挑战性的难题。
发明内容
本发明提供了推荐模型训练方法、基于推荐模型的预测方法及装置,能够自动合理选择特征组合过程中的推荐模型,进一步提升内容推荐的准确性。
第一方面,本发明实施例提供了一种推荐模型训练方法,该方法可应用于推荐系统中的模型训练系统,该方法包括:从训练集中获取至少一个样本数据,该至少一个样本数据中的每一个样本数据包括标签和特征集合,所述特征集合包括n个特征,n≥2,1个样本数据通常可表示为{y:x1,x2…,xn},其中,y表示标签,xi表示n个特征(特征向量)中的各个特征,举例来说,在一种针对用户终端(如手机)应用市场的APP推荐的历史下载场景中,假设训练集共有m个样本数据,每个样本数据中,y为推荐值,表示用户是否会下载所推荐的App,如果下载则y为1,如果不下载则y=0;x为特征向量xi的集合,每个xi为样本中的一个具体特征,x例如为[APP的安装包大小,APP的类型,APP的展示位置,用户年龄,用户的性别,用户当前已安装的APP…];对于至少一个样本数据中的每一个样本数据,根据每一个样本数据的特征集合获取至少一个特征子集,所述至少一个特征子集中的每一个特征子集包括S个特征,2≤S≤n,以2阶特征组合为例,特征Xj1和Xj2的特征子集(特征组合)为{xj1,xj2},Xj1和Xj2分别为n个特征中的任意特征,可对n个特征进行两两组合形成多个特征子集;本发明实施例预先设置有条件集合,所述条件集合包括两个或多个条件,每个条件可用于表征特征子集(特征组合)的属性,可根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件,所述每一个特征子集的属性与所述每一个特征子集对应的条件所指示的属性一致;由于针对同一特征子集的属性,不同的推荐模型的处理能力或者处理效果有所区别,那么,对于某一特征子集的属性,可以对应选择处理能力或处理效果较佳的推荐模型,从而建立条件集合中的条件与模型集合中的推荐模型的对应关系,即每个条件均对应一个推荐模型。这样,可利用所述每一个特征子集以及所述每一个特征子集对应的标签,分别训练模型集合中所述每一个特征子集对应的条件所对应的推荐模型;其中,所述模型集合包括至少两个用于内容推荐的推荐模型,每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件;所述每一个特征子集对应的标签为所述每一个特征子集对应的特征集合所属的样本数据的标签。
可以看到,本发明实施例能够在推荐模型的训练过程中,充分利用不同推荐模型解决问题的能力各有差异,自适应地根据特征子集自身的属性,匹配到处理该属性较佳的推荐模型,从而使得不同的推荐模型能够基于不同属性的数据(特征子集)进行训练,这样训练得到的推荐模型与特征组合(特征子集)具有强烈关联性,有利于进一步提升各个推荐模型在个性化内容推荐上的准确性。
基于第一方面,在可能的实施方式中,本发明实施例可通过模型训练系统基于训练集的样本数据对相关推荐模型进行训练,在方案开始前,模型训练系统可预先确定所述条件集合和所述模型集合。
具体实现中,本发明实施例提供的模型集合的实现形态可以是多个独立推荐模型的集合,例如,所述模型集合可以是以下推荐模型中的两个或两个以上的集合:多项式(degree-n polynomial,poly-n)模型、因式分解机(factorization machine,FM)模型、逻辑回归(Logistic Regression,LR)模型、基于域的因式分解机(Field-awareFactorization Machine,FFM)模型、快速因式分解机(fast FM)模型、深度因式分解机(deep FM)模型、lib-FM模型、神经网络(Neural Network,NN)模型、深度神经网络(DeepNeural Network,DNN)模型、因式分解机支持的神经网络(Factorization-machinesupported Neural Networks,FNN)模型、卷积神经网络(Convolutional NeuralNetworks,CNN)模型、基于内积的神经网络(Inner Product-based Neural Network,IPNN)模型、基于外积的神经网络(Outer Product-based Neural Network,OPNN)模型、神经分解机(Neural Factorization Machines,NFM)模型、注意神经分解机(Attention NeuralFactorization Machines,AFM)模型等等。具体的,所述模型集合的实现形态还可以是一个融合模型,所述融合模型为将多种推荐模型进行融合后得到的模型。例如,所述融合模型为将poly-n模型、FM模型、LR模型、FFM模型、fast FM模型、deep FM模型、lib-FM模型、NN模型、DNN模型、FNN模型、DNN模型、FNN模型、CNN模型、IPNN模型、OPNN模型、NFM模型、AFM模型等等中的两个或者两个以上进行融合所得到的模型。
具体实现中,本发明实施例提供的条件集合可以是以下条件的两个或者两个以上:“特征子集(特征组合)的样本稠密度≥阈值”、“特征子集(特征组合)的样本稠密度<阈值”、“特征子集(特征组合)为离散型”、“特征子集(特征组合)为连续型”、“特征子集(特征组合)属于先验知识”“特征子集(特征组合)不属于先验知识”“特征子集(特征组合)包括2阶特征”“特征子集(特征组合)包括多阶特征”等等,这些条件分别反映了特征子集(特征组合)的不同的属性/特点。
其中,条件与推荐模型之间的对应关系为:每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件。
在一具体实现中,条件集合中的条件可与模型集合中的推荐模型一一对应。
在又一具体实现中,条件集合中的若干个条件可皆对应于模型集合中的同一推荐模型。
举例来说,条件“特征子集(特征组合)的样本稠密度≥阈值”可对应于poly-n模型;又举例来说,条件特征子集(特征组合)的样本稠密度<阈值”可对应于FM模型;又举例来说,条件“特征子集(特征组合)为离散型”可对应于deep FM模型;又举例来说,条件“特征子集(特征组合)包括多阶特征”可对应于FFM模型等等。
可以看到,本发明实施例能够在模型训练中能够充分利用不同推荐模型解决问题的能力差异性,自适应地选择准确、合理的特征组合方式,基于条件与推荐模型的对应关系来实现对相关推荐模型的训练。本发明实施例能够适用于不同的应用场景,解决各种各样的技术问题,节省人工特征工程的工作量,满足用户的需求。
基于第一方面,在可能的实施方式中,所述条件集合包括第一条件和第二条件,所述第一条件指示的特征子集的属性为特征子集的样本稠密度大于或等于阈值,所述第二条件指示的特征子集的属性为特征子集的样本稠密度小于阈值;所述第一条件对应于所述模型集合中的第一推荐模型,所述第一条件对应于所述模型集合中的第二推荐模型;具体的,所述模型集合包括了Poly-n模型部分和FM模型部分,也就是说,所述第一推荐模型可以是poly-n模型,所述第二模型可以是FM模型。
本发明实施例涉及的poly-n模型是一种线性模型,在poly-n模型中,以2阶特征为例,特征Xj1和Xj2的特征子集(特征组合)就是{xj1,xj2},在Xj1和Xj2都不为0的时候,{xj1,xj2}才是有意义的。为了方便理解,这里只讨论所有单特征两两组合的Poly2(degree-2polynomial,Poly2)模型,表达式如下:
其中,n表示样本的特征数量,w0、wj1、wj1j2是模型参数。poly2模型训练时学习特征子集(特征组合){xj1,xj2}的特征组合参数wj1j2。
poly2模型采用直接对2阶特征组合建模来学习它们的权重,这种方式构造的特征数量跟特征个数乘积相关,即只有当2个特征xj1和xj2在一个样本中共同出现时,wh(j1,j2)才会被更新,但样本较少时,wh(j1,j2)无法得到充分学习,poly2模型的解将不准确;反之,样本较多时,wh(j1,j2)能够得到充分学习,poly2模型的解就比较准确。本发明实施例中,大部分特征经过编码后可能都是稀疏的,比如经过one-hot编码后大部分特征值为0,少部分为1,对这些稀疏的特征做二项式组合,会发现最后大部分特征组合值都是0,此时模型参数并不更新,所以Poly2模型不太适合特征子集{xj1,xj2}稀疏的应用场景,相对而言,基于Poly2模型的特征组合方式较适用于特征子集{xj1,xj2}稠密的情况,即同时出现xj1,xj2的样本比较多。
本发明实施例涉及的FM模型是一种非线性模型,在FM模型,以2阶特征为例,特征Xj1和Xj2的特征子集(特征组合)为Xj1Xj2,FM模型通过对特征的低秩展开,为每个特征构建隐向量,并通过隐向量的点乘结果来建模两个特征的组合关系实现对二阶特征组合的自动学习,其表达式如下:
其中,vj1是特征j1的隐向量,vj2是特征j2的隐向量,每个隐向量包含k维,n表示样本的特征数量,w0、wj1、<Vj1,Vj2>是模型参数。FM模型训练时学习模型参数和每一特征的权重向量。
相比于Poly2模型,FM模型能更有效地学习模型参数,其wj1和wj2的更新不需要特征xj1和xj2同时出现在一个样本中。本发明实施例中,FM模型通过对稀疏特征组合进行低维连续空间的转换,特征xj1和xj2不出现在一个样本的情况下,模型参数依旧可以更新,相对而言,基于FM模型的特征组合方式更适用于特征子集{xj1,xj2}稀疏的情况。
在实际应用中,应用于模型训练系统的样本数据既会包括特征稠密的特征子集,也包括特征稀疏的特征子集,故可以结合Poly2模型和FM模型的优势,构建条件集合与模型集合的对应关系。在具体实施例中,条件集合包括“特征稠密的{xj1,xj2}”和“特征稀疏的{xj1,xj2}”,模型集合包括poly2模型和FM模型,其中“特征稠密的{xj1,xj2}”映射“poly2模型”,“特征稀疏的{xj1,xj2}”映射“FM模型”。
具体实现中,所述根据所述每一个特征子集的属性来确定所述条件集合中所述每一个特征子集对应的条件的过程如下:计算所述至少一个特征子集中的每一个特征子集的样本稠密度;对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度大于或等于阈值,则说明该特征子集对应所述第一条件;对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度小于阈值,则说明该特征子集对应所述第二条件。
这样,相应的,利用所述每一个特征子集以及所述每一个特征子集对应的标签,分别训练模型集合中所述每一个特征子集对应的条件所对应的推荐模型的过程包括:当所述至少一个特征子集中存在对应所述第一条件的特征子集时,利用所述符合所述第一条件的特征子集以及对应所述第一条件的特征子集所对应的标签,训练所述第一推荐模型;当所述至少一个特征子集中存在对应所述第二条件的特征子集时,利用所述符合所述第二条件的特征子集以及对应所述第二条件的特征子集所对应的标签,训练所述第二推荐模型。
可以看到,本发明实施例能够在模型训练中能够充分利用Poly2模型和FM模型各自处理不同稠密度数据的优势,对稠密度小的特征子集采用FM模型进行训练,对稠密度大的特征子集采用poly-n模型进行训练,有利于节省人工特征工程的工作量,提高模型训练的准确性,满足用户的需求。
下面描述本发明实施例中涉及的计算特征子集{xj1,xj2}的样本稠密度Dense(xj1,xj2)的方式。
在一种可能实施例中,定义Dense(xj1,xj2)为训练集中共同出现特征xj1和xj2的样本数据的数量(p),例如训练集共有10万样本数据,其中3000个样本数据同时共同出现特征xj1和xj2(比如xj1=1且xj2=1),那么此时特征子集{xj1,xj2}的样本稠密度为3000。
在一种可能实施例中,定义Dense(xj1,xj2)为训练集中出现特征xj1的样本数据的数量与出现特征xj2的样本数据的数量之和(q)。例如训练集共有10万样本数据,其中,4000个样本数据出现特征xj1(比如xj1=1),5000个样本数据出现特征xj2(比如xj2=1),那么此时特征子集{xj1,xj2}的样本稠密度为9000。
当然,本发明实施例并不限定于此,比如在可能的实施例中,还可定义Dense(xj1,xj2)为训练集中共同出现特征xj1和xj2的样本数据的数量与训练集的样本总数的比例,比如还可定义Dense(xj1,xj2)为出现特征xj1的样本数据的数量与出现特征xj2的样本数据的数量之和与训练集的样本总数的比例,等等。
本发明实施例中,判断特征子集{xj1,xj2}符合条件集合中的哪个条件。具体的,可判断特征子集的样本稠密度是否大于或等于阈值。本发明实施例中,阈值(Threshold)是决定选择特征组合和模型更新方式的决定量,阈值的确定方式与Dense(xj1,xj2)的定义方式相关,也就是说可预先根据Dense(xj1,xj2)的定义方式,基于统计方法来确定具体阈值。
比如,可根据中心极限定理,计算满足某一置信度的下载率,所需要训练样本的数量作为阈值。举例来说,阈值N可以根据中心极限定理计算得到,满足95%的置信区间的样本量N≥1536*(1-p)/p,p为下载率均值,下载率均值根据下载量与展示量的比例得到。当然,阈值的还可以通过其他各种各样的方式确定,比如可以通过查表(如查询阈值映射表)的方式来确定阈值,比如还可以通过终端来确定所述阈值等等。
可以看到,本发明实施例将Poly2模型与FM模型融合为Poly-2FM模型,分别利用两个推荐模型的优势,根据样本数据的稠密度与阈值的比较情况,可以实现准确、有效的特征自动组合,动态自适应地择机选择Ploy2模型或者FM模型进行模型训练,从而学习到更准确、高效的模型参数。其中,Poly2-FM融合模型相比独立的Poly2模型,特征维度显著降低,模型变小,工作效率提升。同时,对于样本稠密度比较稀疏的特征子集{xj1,xj2},可以更准确地学习两个特征的组合权重。Poly2-FM融合模型相比独立的FM模型,可对稠密特征单独进行学习,减少非其它无关特征的影响,特征子集{xj1,xj2}对应的模型参数学习得更加准确。
基于第一方面,在可能的实施方式中,所述利用所述每一个特征子集以及所述每一个特征子集对应的标签,分别训练模型集合中所述每一个特征子集对应的条件所对应的推荐模型之后,得到完成训练的模型集合;所述方法还包括:在所述完成训练的模型集合中,确定所述每一个特征子集对应的条件所对应的推荐模型的模型参数;从所述至少一个特征子集中确定至少一个目标特征子集;所述至少一个目标特征子集对应的模型参数满足预设评估值;其中,所述至少一个目标特征子集、所述完成训练的模型集合和所述条件集合用于实现推荐内容的预测。
本发明具体实施例中,推荐系统包括模型训练系统和预测系统,模型训练系统用于实现第一方面的模型训练过程,预测系统用于在完成模型训练后在实际应用中对推荐内容进行预测。在模型训练系统完成对模型集合中的推荐模型的训练之后,模型训练系统可将训练完成的模型集合(如Ploy2模型,FM模型)、条件集合、用于实际应用场景的特征组合(即具有较佳模型参数的特征子集)发送给预测系统,以及将样本稠密度映射文件发给预测系统。其中,样本稠密度映射文件可用于指示具体的特征子集{xj1,xj2}所符合的条件(例如{x3,x4}符合条件1),样本稠密度映射文件还用于指示条件集合中的条件1、条件2与Ploy2模型、FM模型的对应关系。这样能够有利于预测系统基于样本稠密度映射文件建立条件1、条件2与经训练后的Ploy2模型、FM模型的对应关系,即“特征组合的样本稠密度大于或等于阈值”对应于“Ploy2模型部分”,“特征组合的样本稠密度小于阈值”对应于“FM模型部分”,从而有利于提高后续个性化内容预测的准确性。
第二方面,本发明实施例提供了基于训练好的推荐模型进行预测的方法,该方法可应用于推荐系统中的预测系统,该方法包括:获取至少一个样本数据,所述至少一个样本数据中的每一个样本数据包括特征集合,所述特征集合包括n个特征,n≥2,也就是说,1个样本数据通常可表示为{x1,x2…,xn}。举例来说,在一种预测用户终端(如手机)应用市场推荐的APP是否会被下载的场景中,假设预测集共有k个样本数据,每个样本数据中,x为特征向量xi的集合,每个xi为样本中的一个具体特征,x例如为[APP的安装包大小,APP的类型,APP的展示位置,APP的标识,用户年龄,用户的性别,用户当前已安装的APP…]。确定所述特征集合中至少一个特征子集,所述至少一个特征子集中的每一个特征子集包括S个特征,2≤S≤n;可以理解的,通过第一方面实施例的相关模型训练,推荐系统已经确定优选的特征子集,并将特征子集作为用于预测系统的特征组合。所以,预测系统在进行预测时,可直接确定样本数据的n个特征中的特征组合,例如特征组合记为{xj1,xj2}。然后,根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件;其中,所述条件集合包括至少两个条件,所述至少两个条件分别指示特征子集不同的属性,所述每一个特征子集的属性与所述每一个特征子集对应的条件所指示的属性一致;分别将所述每一个特征子集输入至模型集合中所述每一个特征子集对应的条件所对应的推荐模型,得到预测结果;其中,所述模型集合包括至少两个用于内容推荐的推荐模型,每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件。
可以看到,本发明实施例能够在模型训练中能够充分利用不同推荐模型解决问题的能力差异性,自适应地选择准确、合理的特征组合方式,基于条件与推荐模型的对应关系来实现对相关推荐模型的训练。本发明实施例能够适用于不同的应用场景,解决各种各样的技术问题,节省人工特征工程的工作量,满足用户的需求。本发明实施例还有利于进一步提升推荐业务中个性化内容推荐的准确性,从而提升相关推荐内容的下载率/点击率/浏览率等等。
基于第二方面,在可能的实施方式中,本发明实施例可通过预测系统基于预测集的样本数据对推荐内容进行预测,而在方案开始前,预测系统可预先确定所述条件集合和所述模型集合,所述条件集合和所述模型集合的实现方式可参考第一方面的描述。
基于第二方面,在可能的实施方式中,所述条件集合包括第一条件和第二条件,所述第一条件指示的特征子集的属性为特征子集的样本稠密度大于或等于阈值,所述第二条件指示的特征子集的属性为特征子集的样本稠密度小于阈值;所述第一条件对应于所述模型集合中的第一推荐模型,所述第一条件对应于所述模型集合中的第二推荐模型;具体的,所述模型集合包括了Poly-n模型部分和FM模型部分,也就是说,所述第一推荐模型可以是经过训练后的poly-n模型,所述第二模型可以是经过训练后的FM模型,关于Poly-n模型和FM模型可参考第一方面的描述。
同理,在实际应用中,应用于预测系统的样本数据既会包括特征稠密的特征子集,也包括特征稀疏的特征子集,故可以结合Poly2模型和FM模型的优势,构建条件集合与模型集合的对应关系。在具体实施例中,条件集合包括“特征稠密的{xj1,xj2}”和“特征稀疏的{xj1,xj2}”,模型集合包括poly2模型和FM模型,其中“特征稠密的{xj1,xj2}”映射“poly2模型”,“特征稀疏的{xj1,xj2}”映射“FM模型”。
具体实现中,根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件的过程包括如下:获取模型训练系统发送的稠密度信息(或称为样本稠密度映射文件),所述稠密度信息用于指示所述每一个特征子集的特征稠密度;对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度大于或等于阈值,则说明该特征子集对应所述第一条件;对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度小于阈值,则说明该特征子集对应所述第二条件。
也就是说,可根据样本稠密度映射文件判断具体的特征组合{xj1,xj2}的样本稠密度是否大于或等于阈值,例如当根据样本稠密度映射文件指示训练中的特征子集{x1,x2}的样本稠密度≥阈值时,相应的,预测中的特征组合{x1,x2}的样本稠密度≥阈值,根据样本稠密度与阈值的关系判断推荐模型的更新方式:具体的,当所述至少一个特征子集中存在对应所述第一条件(即样本稠密度≥阈值)的特征子集时,将对应所述第一条件的特征子集输入至所述第一推荐模型(Poly-n模型);当所述至少一个特征子集中存在对应所述第二条件(即样本稠密度<阈值)的特征子集时,将对应所述第二条件的特征子集输入至所述第二推荐模型(FM模型)。
基于第二方面,在可能的实施方式中,将特征组合(优选的特征子集)输入Poly2模型,进而得到预测结果的过程中,还可使用以下公式来确定预测结果:
其中:
具体的,选择来自Poly2的权重wh(j1,j2),通过wh(j1,j2)*x1*x2计算特征组合{xj1,xj2}的组合值,进而代入公式得到预测结果,例如预测结果表征了样本数据对应的APP被用户下载的概率。
基于第二方面,在可能的实施方式中,将特征组合(优选的特征子集)输入FM模型,进而得到预测结果的过程同样可使用以下公式来确定预测结果:
其中:
具体的,选择来自FM模型wj1和wj2,通过wj1*wj2*x1*x2计算特征组合{xj1,xj2}的组合值,进而代入公式得到预测结果,例如预测结果表征了样本数据对应的APP被用户下载的概率。
可以看到,本发明实施例将Poly2模型与FM模型融合为Poly-2FM模型,分别利用两个推荐模型的优势,根据样本数据的稠密度情况,可以实现准确、有效的特征自动组合,动态自适应地择机选择Ploy2模型或者FM模型进行模型训练,从而学习到更准确、高效的模型参数。其中,Poly2-FM融合模型相比独立的Poly2模型,特征维度显著降低,模型变小,工作效率提升。同时,对于样本稠密度比较稀疏的特征子集{xj1,xj2},可以更准确地学习两个特征的组合权重,从而提升了使用模型进行预测时的准确率。Poly2-FM融合模型相比独立的FM模型,可对稠密特征单独进行学习,减少非其它无关特征的影响,特征子集{xj1,xj2}对应的模型参数学习得更加准确,从而提升了使用模型进行预测时的准确率。
第三方面,本发明实施例提供一种推荐模型训练装置,该装置包括样本数据获取模块、特征子集获取模块、条件确定模块和模型训练模块,这些功能模块可用于实现第一方面所描述的方法。
第四方面,本发明实施例提供一种基于推荐模型进行预测的装置,该装置包括样本数据获取模块、特征子集确定模块、条件确定模块和推荐内容预测模块,这些功能模块可用于实现第二方面所描述的方法。
第五方面,本发明实施例提供一种硬件装置,所述装置包括处理器、存储器和网络接口,所述处理器、存储器和网络接口通过总线连接;其中:所述存储器用于存储训练集的样本数据和程序指令;所述网络接口用于实现与外界的网络连接;所述处理器用于调用所述样本数据和程序指令,以实现如第一方面所描述的方法。
第六方面,本发明实施例提供又一种硬件装置,所述装置包括处理器、存储器和网络接口,所述处理器、存储器和网络接口通过总线连接;其中:所述存储器用于存储预测集的样本数据和程序指令;所述网络接口用于实现与外界的网络连接;所述处理器用于调用所述样本数据和程序指令,以实现如第二方面所描述的方法。
第七方面,本发明实施例提供了一种非易失性计算机可读存储介质;所述计算机可读存储介质用于存储第一方面所述方法的实现代码。所述程序代码被计算设备执行时,所述计算设备用于第一方面所述方法。
第八方面,本发明实施例提供了又一种非易失性计算机可读存储介质;所述计算机可读存储介质用于存储第二方面所述方法的实现代码。所述程序代码被计算设备执行时,所述用户设备用于第二方面所述方法。
第九方面,本发明实施例提供了一种计算机程序产品;该计算机程序产品包括程序指令,当该计算机程序产品被计算设备执行时,该控制器执行前述第一方面所述方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面的任一种可能的设计提供的方法的情况下,可以下载该计算机程序产品并在控制器上执行该计算机程序产品,以实现第一方面所述方法。
第十方面,本发明实施例提供了又一种计算机程序产品。该计算机程序产品包括程序指令,当该计算机程序产品被用户设备执行时,该控制器执行前述第二方面的任一种可能的设计提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第二方面的任一种可能的设计提供的方法的情况下,可以下载该计算机程序产品并在控制器上执行该计算机程序产品,以实现第二方面所述方法。
可以看到,本发明实施例能够在模型训练中能够充分利用不同推荐模型解决问题的能力差异性,为特征组合方式自适应地选择准确、合理的推荐模型,基于条件与推荐模型的对应关系来实现对相关推荐模型的训练,经过这样训练的推荐模型能够在推荐内容的预测中进一步提升推荐业务中对个性化内容推荐的准确性,从而提升相关推荐内容的下载率/点击率/浏览率等等。实施本发明实施例能够适用于不同的应用场景,节省人工特征工程的工作量,满足用户的需求。
附图说明
图1是本发明实施例提供的一种系统架构示意图;
图2是本发明实施例提供的一种服务器的结构示意图;
图3是本发明实施例提供的一种推荐系统的逻辑框图;
图4是本发明实施例提供的一种条件集合与模型集合的对应关系示意图;
图5是本发明实施例提供的又一种条件集合与模型集合的对应关系示意图;
图6是本发明实施例提供的又一种条件集合与模型集合的对应关系示意图;
图7是本发明实施例提供的一种推荐模型训练方法的流程示意图;
图8是本发明实施例提供的一种基于推荐模型的预测方法的流程示意图;
图9是本发明实施例提供的又一种推荐模型训练方法的流程示意图;
图10是本发明实施例提供的又一种基于推荐模型的预测方法的流程示意图;
图11是本发明实施例提供的一种装置的结构示意图;
图12是本发明实施例提供的又一种装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
首先介绍本发明实施了所涉及的系统架构。如图1所示,该系统架构包括终端101和服务器102。其中,终端101可以是台式计算机或者移动终端,移动终端例如为手机、平板电脑、可穿戴设备、个人数字助理(PDA)、物联网设备等。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。终端101和服务器102之间可通过网络连接(无线连接或有线连接)来实现通信。
参见图2,图2为服务器102的一种具体结构示意图,如图2所示,服务器102包括网络接口1023、存储器1022和与存储器1022耦合的处理器1021。处理器1021、存储器1022和网络接口1023可通过总线或者其它方式连接(图2中以通过总线连接为例)。其中:
网络接口1023用于连接到网络进行通信。具体的,网络接口1023可用于向终端101发送数据,或者可用于接收终端101发送的数据。
处理器1021可以是一个或多个中央处理器(Central Processing Unit,CPU),图2中以一个处理器为例,在处理器1021是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。处理器具有计算功能和控制服务器102工作的功能,该处理器可被配置为执行本发明实施例所涉及的推荐模型训练方法和/或基于推荐模型的预测方法,以及可配置为运行推荐系统。
存储器1022包括但不限于是随机存储记忆体(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable ProgrammableRead Only Memory,EPROM)、或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM),存储器1022用于相关程序代码及数据,该程序代码例如为实现本发明实施例涉及的推荐模型训练方法和/或基于推荐模型的预测方法的代码指令,该数据例如包括训练集的数据和预测集的数据;还用于存储推荐系统,该推荐系统可用于通过机器学习来学习特征组合,训练推荐模型,并基于推荐模型来确定向用户推荐的个性化内容。
下面进一步描述本发明实施例涉及的推荐系统。参见图3,所述推荐系统可包括模型训练系统和预测系统。其中,模型训练系统用于基于训练集的样本数据对相关推荐模型进行训练,以得到经训练后的推荐模型。在可能的实施例中,还可以对训练后的推荐模型进行测试,已验证该推荐模型是否达到训练指标。模型训练系统可将训练后的推荐模型输入预测系统,推荐系统还可将特征组合的相关信息(比如条件与推荐模型的对应关系)发给预测系统。预测系统用于基于预测集的样本数据、特征组合的相关信息、训练后的推荐模型等等进行相关推荐内容的预测,例如预测点击率/下载率/浏览率等等。
为了便于理解本发明实施例的技术方案,下面解释说明本发明实施例涉及的一些概念。
本发明实施例中,特征表征用户行为的相关属性,具体的,用户在网络上的行为数据会被服务器以日志的形式记录下来,这些行为数据可被抽取出表征用户属性的用户特征(如用户的性别、年龄、城市、爱好等)、用于表征产品属性的产品特征(如产品的类型、内容、展示位置、推荐时间等),以及其他相关特征(如使用的终端、点击/下载/浏览的时间等等)。
本发明实施例中,基于用户的行为数据又可分为训练集和预测集。其中,训练集为大量有标签的样本数据的集合,即每个样本数据包括标签和多个特征,训练集可用于训练推荐模型;预测集为一个或多个无标签的样本数据的集合,即每个样本数据包括多个特征,但不具有标签。
具体的,构建推荐模型需要的训练集的样本数据:{y,x},其中,y表示标签,x表示多个特征(特征向量),也就是说1个样本数据通常可表示为{y:x1,x2…,xn},即该样本数据包括n个特征(特征向量)。举例来说,在一种针对用户终端(如手机)应用市场的APP推荐的历史下载场景中,假设训练集共有m个样本数据,每个样本数据中,y为推荐值,表示用户是否会下载所推荐的App,如果下载则y为1,如果不下载则y=0;x为特征向量xi的集合,每个xi为样本中的一个具体特征,x例如为[APP的安装包大小,APP的类型,APP的展示位置,用户年龄,用户的性别,用户当前已安装的APP…]。
具体的,构建进行预测时所需要的预测集的样本数据:{x},x表示多个特征(特征向量),也就是说1个样本数据通常可表示为{x1,x2…,xn}。举例来说,在一种预测用户终端(如手机)应用市场推荐的APP是否会被下载的场景中,假设预测集共有k个样本数据,每个样本数据中,x为特征向量xi的集合,每个xi为样本中的一个具体特征,x例如为[APP的安装包大小,APP的类型,APP的展示位置,APP的标识,用户年龄,用户的性别,用户当前已安装的APP…]。
为了便于进行模型训练与预测,通常需要将具体特征编码为具体数值。例如在特征抽取过程中,需要对分类别型(categorical)的特征进行one-hot编码(独热编码),从而将categorical型特征转化为数值型特征。举例来说,对不同用户的上述特征子集中的“APP的类型”进行one-hot编码后的结果如下表1所示:
表1
用户 | 资讯 | 音视频 | 图像 | 社交 | 游戏 | 体育 | 地图 | 购物 | 美妆 |
User1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
User2 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
User3 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
User4 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
上面的例子中,一维特征在经过one-hot编码后变成了9维数值型特征,可以发现,由one-hot编码带来的数据稀疏性会导致特征空间变大。在实际应用场景中,这些离散特征是有一定内在关联的,它们之间的关联信息(相关度)会对事件结果(如下载率/点击率)产生很大的影响。比如“年轻”“男性”和“游戏类的APP”、“女性”和“美妆类的APP”这些特征之间具有很强内在关联。这样的两个或多个特征的组合即为特征组合。特征组合根据关联特征的个数来实现二阶或高阶特征的构造。比如,女性更倾向下载美妆类的APP,说明应用类型、用户性别综合起来可能会影响用户下载,故可形成二阶的特征组合;又比如年轻男性更倾向下载游戏类的APP,说明应用类型、用户年龄和用户性别综合起来可能会影响用户下载,故可形成三阶的特征组合。
在特征工程中通常会选择具体的推荐模型,通过模型相应的特征组合算法对样本数据进行处理,然而,目前推荐模型众多,不同推荐模型解决问题的能力各有差异,选择怎样的推荐模型来解决当前产品的特征组合问题,以进一步提升个性化内容推荐的准确性,仍然是一个具有挑战性的难题。本发明实施例提供了一种自适应的特征组合方案,能够解决上述问题,进一步提升内容推荐的准确性。
为了便于理解本发明实施例的技术方案,下面描述本发明实施例所涉及的基于条件来确定推荐模型的方式。
本发明实施例提供了一种模型集合,所述模型集合可包括两个或多个推荐模型。具体的,所述模型集合的实现形态可以是多个独立推荐模型的集合,例如,所述模型集合可以是以下推荐模型中的两个或两个以上的集合:多项式(degree-n polynomial,poly-n)模型、因式分解机(factorization machine,FM)模型、逻辑回归(Logistic Regression,LR)模型、基于域的因式分解机(Field-aware Factorization Machine,FFM)模型、快速因式分解机(fast FM)模型、深度因式分解机(deep FM)模型、lib-FM模型、神经网络(NeuralNetwork,NN)模型、深度神经网络(Deep Neural Network,DNN)模型、因式分解机支持的神经网络(Factorization-machine supported Neural Networks,FNN)模型、卷积神经网络(Convolutional Neural Networks,CNN)模型、基于内积的神经网络(Inner Product-based Neural Network,IPNN)模型、基于外积的神经网络(Outer Product-based NeuralNetwork,OPNN)模型、神经分解机(Neural Factorization Machines,NFM)模型、注意神经分解机(Attention Neural Factorization Machines,AFM)模型等等。具体的,所述模型集合的实现形态还可以是一个融合模型,所述融合模型为将多种推荐模型进行融合后得到的模型。例如,所述融合模型为将poly-n模型、FM模型、LR模型、FFM模型、fast FM模型、deepFM模型、lib-FM模型、NN模型、DNN模型、FNN模型、DNN模型、FNN模型、CNN模型、IPNN模型、OPNN模型、NFM模型、AFM模型等等中的两个或者两个以上进行融合所得到的模型。
本发明实施例提供了一种条件集合,所述条件集合包括两个或多个条件,每个条件可用于表征特征子集(特征组合)的特点/属性。举例来说,条件集合可以是以下条件的两个或者两个以上:“特征子集(特征组合)的样本稠密度≥阈值”、“特征子集(特征组合)的样本稠密度<阈值”、“特征子集(特征组合)为离散型”、“特征子集(特征组合)为连续型”、“特征子集(特征组合)属于先验知识”“特征子集(特征组合)不属于先验知识”“特征子集(特征组合)包括2阶特征”“特征子集(特征组合)包括多阶特征”等等,这些条件分别反映了特征子集(特征组合)的不同的属性/特点。
由于针对同一特征子集(特征组合)的特点/属性,不同的推荐模型的处理能力或者处理效果有所区别,那么,对于某一特征子集(特征组合)的特点/属性,可以对应选择处理能力或处理效果较佳的推荐模型,从而建立条件集合中的条件与模型集合中的推荐模型的对应关系,即每个条件均对应一个推荐模型。
在一具体实施例中,条件集合中的条件可与模型集合中的推荐模型一一对应。如图4所示,条件集合包括条件1、条件2、条件3等等,模型集合(或融合模型)包括第一推荐模型、第二推荐模型、第三推荐模型等等,其中,条件1、条件2、条件3分别与第一推荐模型、第二推荐模型、第三推荐模型一一映射。
在又一具体实施例中,条件集合中的若干个条件可皆对应于模型集合中的同一推荐模型。如图5所示,条件集合包括条件1、条件2、条件3等等,模型集合(或融合模型)包括第一推荐模型、第二推荐模型等等,其中,条件1和条件2皆映射到第一推荐模型,条件3映射到第二推荐模型。
举例来说,条件“特征子集(特征组合)的样本稠密度≥阈值”可对应于poly-n模型;又举例来说,条件特征子集(特征组合)的样本稠密度<阈值”可对应于FM模型;又举例来说,条件“特征子集(特征组合)为离散型”可对应于deep FM模型;又举例来说,条件“特征子集(特征组合)包括多阶特征”可对应于FFM模型等等。
为了便于理解本发明的技术方案,后文将主要以模型集合包括poly-n模型(如对应2阶特征组合时可称为poly-2模型)和FM模型为主进行方案描述。需要理解的是,本发明实施例的技术方案并不限于这种模型集合,而包含其他推荐模型的模型集合的实现方式可参考该描述,这里不再一一详述。
在推荐系统领域,以LR模型为代表的线性模型和以FM模型为代表的低秩(lowrank)模型是工业界应用最为广泛的模型,其中LR模型会使用poly-n(如poly-2模型)的特征组合方式,而FM模型本身实现了特征的自动组合。
首先描述poly-n模型。poly-n模型是一种线性模型,在poly-n模型中,以2阶特征为例,特征Xj1和Xj2的特征子集(特征组合)就是Xj1Xj2,在Xj1和Xj2都不为0的时候,XiXj才是有意义的。为了方便理解,这里只讨论所有单特征两两组合的Poly2(degree-2polynomial,Poly2)模型,表达式如下:
其中,n表示样本的特征数量,w0、wj1、wj1j2是模型参数。poly2模型训练时学习特征子集(特征组合)Xj1Xj2的特征组合参数wj1j2。
在训练poly2模型的过程中,给定一个m个样本的训练集(y,x),模型参数可通过求解下述优化函数而得到:
其中,λ是用户自定义系数,xi是特征向量,yi是相应的真实标签值。poly2模型会为每一个特征子集(特征组合)学习一个权重(特征组合值):
其中,h(j1,j2)表示把j1和j2编码成一个自然数的函数,wh(j1,j2)为特征xj1和xj2交叉后的系数。
poly2模型采用直接对2阶特征组合建模来学习它们的权重,这种方式构造的特征数量跟特征个数乘积相关,例如:加入某类特征有1万个可能的取值(如APP),另一类特征也有1万个可能的取值(如用户),那么理论上这两个特征组合就会产生1亿个可能的特征项,不利于进行存储与计算;模型参数Wh(j1,j2)只受到2个组合特征的影响,即只有当2个特征xj1和xj2在一个样本中共同出现时,wh(j1,j2)才会被更新,但样本较少时,wh(j1,j2)无法得到充分学习,poly2模型的解将不准确。
下面描述FM模型。FM模型是一种非线性模型,在FM模型,以2阶特征为例,特征Xj1和Xj2的特征子集(特征组合)为Xj1Xj2,FM模型通过对特征的低秩展开,为每个特征构建隐向量,并通过隐向量的点乘结果来建模两个特征的组合关系实现对二阶特征组合的自动学习,其表达式如下:
其中,vj1是特征j1的隐向量,vj2是特征j2的隐向量,每个隐向量包含k维,n表示样本的特征数量,w0、wj1、<Vj1,Vj2>是模型参数。FM模型训练时学习模型参数和每一特征的权重向量。
在训练FM模型的过程中,给定一个m个样本的训练集(y,x),模型参数可通过求解下述优化函数而得到:
其中,λ是用户自定义系数,xi是特征向量,yi是相应的真实标签值。FM模型是为每个特征学习一个隐向量表示,这样特征组合的影响就被建模成2个隐向量之间的内积,两个特征的权重向量wj1和wj2点乘得到特征子集(特征组合)的权重(特征组合值):
相比于Poly2模型,FM模型能更有效地学习模型参数,其wj1和wj2的更新不需要特征xj1和xj2同时出现在一个样本中。例如,当一个2阶特征组合没有出现在训练集时,Poly2模型则无法学习该特征组合的权重;但是FM却依然可以学习,因为该特征子集(特征组合)的权重是由这2个特征的隐向量点乘得到的,而这2个特征的隐式向量可以由别的特征组合学习得到。
本发明实施例中,大部分特征经过编码后可能都是稀疏的,比如经过one-hot编码后大部分特征值为0,少部分为1,对这些稀疏的特征做二项式组合,会发现最后大部分特征组合值都是0,此时模型参数并不更新,所以Poly2模型不太适合特征子集{xj1,xj2}稀疏的应用场景,相对而言,基于Poly2模型的特征组合方式较适用于特征子集{xj1,xj2}稠密的情况,即同时出现xj1,xj2的样本比较多。
本发明实施例中,FM模型通过对稀疏特征组合进行低维连续空间的转换,特征xj1和xj2不出现在一个样本的情况下,模型参数依旧可以更新,相对而言,基于FM模型的特征组合方式更适用于特征子集{xj1,xj2}稀疏的情况。
在实际应用中,推荐系统的样本数据既会包括特征稠密的特征子集,也包括特征稀疏的特征子集,故可以结合Poly2模型和FM模型的优势,构建条件集合与模型集合的对应关系。举例来说,如图6所示,在一种可能应用场景中,条件集合包括“特征稠密的{xj1,xj2}”和“特征稀疏的{xj1,xj2}”,模型集合包括poly2模型和FM模型,其中“特征稠密的{xj1,xj2}”映射“poly2模型”,“特征稀疏的{xj1,xj2}”映射“FM模型”。
基于上文的描述,下面进一步说明本发明实施例涉及的融合模型。以2阶特征为例,特征Xj1和Xj2的特征子集(特征组合)就是Xj1Xj2,结合poly2模型和FM模型的融合模型(又可称为Poly2-FM模型)表达式如下:
其中,n表示样本的特征数量,w0、wj1、wpoly2_FM是模型参数。poly2模型训练时学习特征子集(特征组合)Xj1Xj2的特征组合参数wpoly2_FM。当{xj1,xj2}特征稠密时,wpoly2_FM可为wj1j2;当{xj1,xj2}特征稀疏时,wpoly2_FM可为<Vj1,Vj2>。
在训练Poly2-FM模型的过程中,给定一个m个样本的训练集(y,x),模型参数可通过求解下述优化函数而得到:
其中,λ是用户自定义系数,x是特征向量,yi是真实标签值。
其中,当{xj1,xj2}特征稠密时:
从而选择Poly2模型相应的优化函数作为Poly2-FM模型的优化函数。
其中,当{xj1,xj2}特征稀疏时:
从而选择FM模型相应的优化函数作为Poly2-FM模型的优化函数。
参见图7,基于上述系统架构、条件集合和模型集合的对应关系,本发明实施例提供了一种推荐模型训练方法,该方法可应用于推荐系统的模型训练系统部分,该方法具体包括但不限于如下步骤:
步骤701、确定条件集合和模型集合。所述模型集合包括至少两个推荐模型,所述模型集合的实现形态可以是多个独立推荐模型的集合,还可以是将多种推荐模型进行融合后得到的融合模型。所述条件集合包括至少两个条件,每个条件可用于表征特征子集(特征组合)的特点/属性,每一个条件对应一个推荐模型。条件集合和模型集合的具体对应关系可参考上文的描述,这里不再赘述。
步骤702、获取训练集的样本数据,所述训练集的样本数据包括标签和n个特征。
本发明具体实施例中,训练集为大量有标签的样本数据的集合,每个样本数据包括标签和多个特征。举例来说,在一种训练应用市场的APP推荐的应用场景中,可应用市场连续7天的有标签用户数据进行特征抽取,从而构建训练集。有关训练集的详细内容还可参考前文的描述,这里不再赘述。
步骤703、选择所述n个特征中的任意S个特征为特征子集,2≤S≤n。
本发明实施例中,为了全面地进行模型训练,可从样本数据的全部n特征中选取特征子集,该特征子集为包含任意S个特征。例如,需要训练处较好的二阶特种组合时,S=2,可针对n个特征进行特征选取得到多个特征子集,每个特征子集包括2个特征;需要训练处较好的三阶特种组合时,S=3,可针对n个特征进行特征选取得到多个特征子集,每个特征子集包括3个特征,以此类推。
步骤704、确定所述条件集合中,所述特征子集符合的条件。可以理解的,由于每个条件可用于表征特征子集的特点/属性,那么,如果特征子集具有该特点/属性,则说明特征子集符合对应的条件。举例来说,条件集合可以是以下条件的两个或者两个以上:条件1“特征子集(特征组合)的样本稠密度≥阈值”、条件2“特征子集(特征组合)的样本稠密度<阈值”、条件3“特征子集(特征组合)为离散型”、条件4“特征子集(特征组合)为连续型”、条件5“特征子集(特征组合)属于先验知识”、条件6“特征子集(特征组合)不属于先验知识”、条件7“特征子集(特征组合)包括2阶特征”、条件8“特征子集(特征组合)包括多阶特征”等等。比如特征子集的样本稠密度大于阈值,那么说明特征子集符合条件1,以此类推。
步骤705、利用所述标签和所述特征子集,训练所述特征子集符合的条件所对应的推荐模型。
本发明实施例中,每个条件可对应于一推荐模型,那么可以将当前所选样本数据的标签、特征子集输入至推荐模型中,从而自适应地实现对该推荐模型的训练,更新推荐模型的模型参数。
步骤706、判断当前样本数据是否已经训练完所有的特征子集。
如果尚未完成当前样本数据的所有特征子集的训练,则返回步骤703,以便于继续对尚未训练的特征子集进行模型训练。
如果已完成当前样本数据的所有特征子集的训练,则继续执行步骤707。
步骤707、判断训练集中所有的样本数据是否已训练完。
如果尚未完成所有样本数据的训练,则返回步骤702,以便于继续对尚未训练的样本数据进行模型训练,从而实现多轮迭代训练。
如果已完成所有样本数据的训练,则继续执行后续步骤708。
步骤708、完成模型训练后,得到各个特征子集对应的推荐模型的模型参数,所述模型参数可表征特征子集的权重。基于每个特征子集对应的所述模型参数,可得到各个特征子集的组合值(特征组合值)。
步骤709、基于各个特征子集的组合值,从所述多个特征子集中确定优选的特征子集作为用于实际应用场景的特征组合。
具体的,可根据各个特征子集的组合值对各个特征子集进行排序,从而确定组合值最大的一个或若干个特征子集作为预测场景的特征组合,这样的特征组合中的各个特征之间能够具有了较强的关联性,从而完成了动态自适应的特征组合过程。
可以看到,本发明实施例能够在模型训练中能够充分利用不同推荐模型解决问题的能力各有差异,自适应地选择准确、合理的特征组合方式,基于条件与推荐模型的对应关系来实现对相关推荐模型的训练。
参见图8,基于上述系统架构、条件集合和模型集合的对应关系,下面描述基于推荐模型的预测方法,该过程由推荐系统的预测系统部分来实现,该过程具体包括但不限于如下步骤:
步骤801、确定条件集合和模型集合。具体的,在推荐系统的模型训练系统经过图7实施例的相关流程后,实现了对模型集合中推荐模型的训练。之后,模型训练系统可将训练完成的模型集合、条件集合、用于实际应用场景的特征组合发送给预测系统,以及将条件集合中的条件与模型集合中的推荐模型的对应关系发给预测系统。这样,预测系统便可建立条件集合与经训练后的推荐模型的对应关系,每一个条件对应一个经训练后的推荐模型。具体实现过程可参考上文的描述,这里不再赘述。
步骤802、获取预测集的样本数据,所述预测集的样本数据包括n个特征。
本发明实施例中,预测集是包含待预测的未标签数据集合,预测集可包括一个或多个样本数据,每个样本数据包括多个特征。举例来说,在一种应用市场的APP下载预测的应用场景中,可以将实时的无标签用户数据进行特征抽取,从而构建预测集。
步骤803、基于所述样本数据的n个特征中的特征组合,确定条件集合中所述特征组合所符合的条件。
可以理解的,通过图7实施例的相关模型训练,推荐系统已经确定优选的特征子集,并将特征子集作为用于预测的特征组合。所以,预测系统在进行预测时,可直接确定样本数据的n个特征中的特征组合,进而确定条件集合中所述特征组合所符合的条件。
步骤804、将特征组合输入其符合的条件对应的经训练的推荐模型,得到预测结果。
可以看到,本发明实施例能够在模型训练中能够充分利用不同推荐模型解决问题的能力差异性,自适应地选择准确、合理的特征组合方式,基于条件与推荐模型的对应关系来实现对相关推荐模型的训练。本发明实施例能够适用于不同的应用场景,解决各种各样的技术问题,节省人工特征工程的工作量,满足用户的需求。本发明实施例还有利于进一步提升推荐业务中个性化内容推荐的准确性,从而提升相关推荐内容的下载率/点击率/浏览率等等。
参见图9,为了便于理解本发明实施例的技术方案,下面进一步具体描述本发明实施例提供的推荐模型训练方法,应用于推荐系统的模型训练系统部分,该方法以Ploy2-FM融合模型以及二阶非0的特征子集{xj1,xj2}为例进行描述,在Ploy2-FM融合模型训练框架中,可判断特征子集{xj1,xj2}的使用哪种推荐模型进行参数更新,其中Poly2模型负责更新稠密特征子集(特征组合)的特征组合权重值,FM模型负责更新稀疏特征子集(特征组合)的特征组合权重值。Ploy2-FM融合模型所涉及的相关算法可参考前文的相关描述,本实施例不再一一赘述。该方法具体实施过程包括但不限于以下步骤:
步骤901、确定条件集合和模型集合。
其中,所述条件集合包括条件1和条件2,条件1具体为“特征子集(特征组合)的样本稠密度大于或等于阈值”,条件2具体为“特征子集(特征组合)的样本稠密度小于阈值”。所述模型集合为Ploy2-FM融合模型,其包括了Poly2模型部分和FM模型部分,有关Ploy2-FM融合模型的详细内容还可参考前文的描述,这里不再赘述。
步骤902、获取训练集的样本数据,所述训练集的样本数据包括标签和n个特征。
其中,1个样本数据形式可为{y:x1,x2…xn},其中y为标注,如在预测应用市场中的App是否会下载的情景中,y=1表示用户下载该APP,y=0表示用户没有下载改APP;xi为样本中的一个特征,例如xi可以是APP的属性特征,如APP的安装包大小,APP的类型,APP的展示位置,APP的标识等,xi也可以是用户的属性特征,如用户年龄,用户的性别,用户当前已安装的APP等。具体实现过程还可参考图7实施例步骤702的描述,这里不再赘述。
步骤903、选择所述n个特征中的任意2个特征为特征子集,即特征子集为特征子集{xj1,xj2},xj1为n个特征中的任意1个特征,xj2为n个特征中的任意1个特征,且xj1与xj2不相同。
步骤904、确定特征子集{xj1,xj2}的样本稠密度。
具体的,可采用Dense(xj1,xj2)表示特征xj1和xj2的样本稠密度,可通过多种方式对Dense(xj1,xj2)进行定义。
在一种可能实施例中,定义Dense(xj1,xj2)为训练集中共同出现特征xj1和xj2的样本数据的数量,例如训练集共有10万样本数据,其中3000个样本数据同时共同出现特征xj1和xj2(比如xj1=1且xj2=1),那么此时特征子集{xj1,xj2}的样本稠密度为3000。
在一种可能实施例中,定义Dense(xj1,xj2)为训练集中出现特征xj1的样本数据的数量与出现特征xj2的样本数据的数量之和。例如训练集共有10万样本数据,其中,4000个样本数据出现特征xj1(比如xj1=1),5000个样本数据出现特征xj2(比如xj2=1),那么此时特征子集{xj1,xj2}的样本稠密度为9000。
当然,本发明实施例并不限定于此,比如在可能的实施例中,还可定义Dense(xj1,xj2)为训练集中共同出现特征xj1和xj2的样本数据的数量与训练集的样本总数的比例,比如还可定义Dense(xj1,xj2)为出现特征xj1的样本数据的数量与出现特征xj2的样本数据的数量之和与训练集的样本总数的比例,等等。
步骤905、判断特征子集{xj1,xj2}符合条件集合中的哪个条件。具体的,可判断特征子集的样本稠密度是否大于或等于阈值,根据样本稠密度与阈值的关系判断推荐模型的更新方式:
如果是,则说明特征子集{xj1,xj2}符合条件集合中的条件1,其对应的推荐模型为poly2模型部分,后续继续执行步骤906。
否则,则说明特征子集{xj1,xj2}符合条件集合中的条件2,其对应的推荐模型为FM模型部分,后续继续执行步骤907。
本发明实施例中,阈值(Threshold)是决定选择特征组合和模型更新方式的决定量,阈值的确定方式与Dense(xj1,xj2)的定义方式相关,也就是说可预先根据Dense(xj1,xj2)的定义方式,基于统计方法来确定具体阈值。
比如,可根据中心极限定理,计算满足某一置信度的下载率,所需要训练样本的数量作为阈值。举例来说,阈值N可以根据中心极限定理计算得到,满足95%的置信区间的样本量N≥1536*(1-p)/p,p为下载率均值,下载率均值可根据下载量与展示量的比例得到。当然,阈值的还可以通过其他各种各样的方式确定,比如可以通过查表(如查询阈值映射表)的方式来确定阈值,比如还可以通过终端来确定所述阈值等等,本发明实施例不做具体限定。
步骤906、基于特征子集{xj1,xj2}、样本数据中的标签y来训练Ploy2-FM融合模型的Ploy2模型部分,以更新模型参数。具体的,可选择Poly2模型相应的优化函数作为Poly2-FM模型的优化函数(可参考前文相关描述),实现模型参数的更新,包括更新xj1和xj2对应的wh(j1,j2),wh(j1,j2)为标量。
步骤907、基于特征子集{xj1,xj2}、样本数据中的标签y来训练Ploy2-FM融合模型的FM模型部分,以更新模型参数。具体的,可选择FM模型相应的优化函数作为Poly2-FM模型的优化函数(可参考前文相关描述),实现模型参数的更新,包括更新xj1和xj2分别对应的wj1和wj2,两者点乘为特征组合系数(标量)。
举例来说,在一可能的应用场景中,上述Poly2-FM融合模型训练流程的代码实现示例如下:
上述过程简单描述如下:在针对训练集的t轮迭代的每轮迭代中,选择样本数据,其特征向量为x,迭代选择x中2个非0特征xj1和xj2,计算xj1和xj2的样本稠密度,如果样本稠密度大于阈值,则选择优化函数公式[1]更新模型参数wh(j1,j2);如果样本稠密度小于等于阈值,则选择优化函数公式[2]更新模型向量wj1和wj2。
在又一种可能应用场景中,还可以通过动态自适应模型切换的方式来实现Poly2-FM融合模型训练。例如,在训练集中样本数量动态变化的场景中(比如训练集为数据库,数据库中的数据随着时间推移而逐步增加),通常在初始建模时,训练集中共同出现特征xj1和xj2的样本会很少,所以初始时可自动选择FM模型的优化函数进行模型更新,学习wj1、wj2。随着训练集的样本量增加,如果共现特征xj1和xj2的样本量满足了dense(xj1,xj2)>threshold时,则可令wh(j1,j2)=wj1·wj2,然后选择Poly2模型的优化函数进行模型更新,学习模型权重wh(j1,j2)。这样,也可以实现了根据特征集合的样本数量的变化动态来自适应地选择特征组合方式进行模型训练。
步骤908、判断当前样本数据是否已经训练完所有的特征子集。
如果尚未完成当前样本数据的所有特征子集的训练,则返回步骤903,以便于继续对尚未训练的特征子集进行模型训练。
如果已完成当前样本数据的所有特征子集的训练,则继续执行步骤909。
步骤909、判断训练集中所有的样本数据是否已训练完。
如果尚未完成所有样本数据的训练,则返回步骤902,以便于继续对尚未训练的样本数据进行模型训练,从而实现多轮迭代训练。
如果已完成所有样本数据的训练,则继续执行后续步骤910。
步骤910、完成模型训练后,得到各个特征子集对应的推荐模型的模型参数,所述模型参数可表征特征子集的权重。基于每个特征子集对应的所述模型参数,可得到各个特征子集的组合值(特征组合值)。
具体实施例中,如果dense(xj1,xj2)>=threshold,选择来自Poly2模型的权重wh(j1,j2),通过计算wh(j1,j2)*x1*x2得到特征x1和x2的组合值(特征组合值);否则,选择来自FM模型的wj1和wj2,通过计算wj1*wj2*x1*x2得到特征x1和x2组合值(特征组合值)。
步骤911、基于各个特征子集的组合值,从所述多个特征子集中确定优选的特征子集作为用于实际应用场景的特征组合。
具体的,可根据各个特征子集的组合值对各个特征子集进行排序,从而确定组合值最大的一个或若干个特征子集作为预测场景的特征组合,这样的特征组合中的各个特征之间能够具有了较强的关联性,从而完成了动态自适应的特征组合过程。
可以看到,本发明实施例将Poly2模型与FM模型融合为Poly-2FM模型,分别利用两个推荐模型的优势,根据样本数据的稠密度情况,可以实现准确、有效的特征自动组合,动态自适应地择机选择Ploy2模型或者FM模型进行模型训练,从而学习到更准确、高效的模型参数。其中,Poly2-FM融合模型相比独立的Poly2模型,特征维度显著降低,模型变小,工作效率提升。同时,对于样本稠密度比较稀疏的特征子集{xj1,xj2},可以更准确地学习两个特征的组合权重。Poly2-FM融合模型相比独立的FM模型,可对稠密特征单独进行学习,减少非其它无关特征的影响,特征子集{xj1,xj2}对应的模型参数学习得更加准确。
参见图10,下面描述基于推荐模型的预测方法,该方法由推荐系统的预测系统部分来实现,该预测方法以经训练好的Ploy2-FM融合模型以及二阶非0的特征组合{xj1,xj2}为例进行描述,在Ploy2-FM融合模型进行预测框架中,可通过查询样本稠密度映射文件来得到两个特征组合{xj1,xj2}的样本稠密度,进而再与阈值比较,如果满足样本稠密度要求,则使用Poly2模型部分进行预测,如果不满足,则使用FM模型部分进行预测。Ploy2-FM融合模型所涉及的相关算法可参考前文的相关描述,本实施例不再一一赘述。该方法具体实施过程包括但不限于以下步骤:
步骤1001、确定条件集合和模型集合。
其中,所述条件集合包括条件1和条件2,条件1具体为“特征子集(特征组合)的样本稠密度大于或等于阈值”,条件2具体为“特征子集(特征组合)的样本稠密度小于阈值”。所述模型集合为Ploy2-FM融合模型,其包括了Poly2模型部分和FM模型部分,有关Ploy2-FM融合模型的详细内容还可参考前文的描述,这里不再赘述。
具体的,在推荐系统的模型训练系统经过图9实施例的相关流程后,实现了对Ploy2-FM融合模型的训练。之后,模型训练系统可将训练完成的Ploy2-FM融合模型、条件集合、用于实际应用场景的特征组合发送给预测系统,以及将样本稠密度映射文件发给预测系统。其中,样本稠密度映射文件用于指示具体的特征子集{xj1,xj2}所符合的条件(例如{x3,x4}符合条件1),样本稠密度映射文件还用于指示条件集合中的条件1、条件2与Ploy2-FM融合模型中的Ploy2模型部分、FM模型部分的对应关系。
这样,预测系统便可基于样本稠密度映射文件建立条件1、条件2与经训练后的Ploy2-FM融合模型中的Ploy2模型部分、FM模型部分的对应关系,即“特征组合的样本稠密度大于或等于阈值”对应于“Ploy2模型部分”,“特征组合的样本稠密度小于阈值”对应于“FM模型部分”。具体实现过程可参考上文的描述,这里不再赘述。
步骤1002、获取预测集的样本数据,所述预测集的样本数据包括和n个特征。
其中,1个样本数据形式可为{x1,x2…xn},xi为样本中的一个特征,预测集的样本数据的特征内容可与训练集的样本数据的特征内容相统一。例如xi可以是APP的属性特征,如APP的安装包大小,APP的类型,APP的展示位置,APP的标识等,xi也可以是用户的属性特征,如用户年龄,用户的性别,用户当前已安装的APP等。具体实现过程还可参考图8实施例步骤802的描述,这里不再赘述。
步骤1003、确定样本数据n个特征中的特征组合。
可以理解的,通过图9实施例的相关模型训练,推荐系统已经确定优选的特征子集,并将特征子集作为用于预测的特征组合。所以,预测系统在进行预测时,可直接确定样本数据的n个特征中的特征组合,例如特征组合记为{xj1,xj2}。
步骤1004、判断特征组合{xj1,xj2}符合条件集合中的哪个条件。具体的,可根据样本稠密度映射文件判断具体的特征组合{xj1,xj2}的样本稠密度是否大于或等于阈值(例如当根据样本稠密度映射文件指示训练中的特征子集{x1,x2}的样本稠密度≥阈值时,相应的,预测中的特征组合{x1,x2}的样本稠密度≥阈值),根据样本稠密度与阈值的关系判断推荐模型的更新方式:
如果是,则说明特征组合{xj1,xj2}符合条件集合中的条件1,其对应的推荐模型为poly2模型部分,后续继续执行步骤1005。
否则,则说明特征组合{xj1,xj2}符合条件集合中的条件2,其对应的推荐模型为FM模型部分,后续继续执行步骤1006。
步骤1005、将特征组合输入Poly2模型,进而得到预测结果。
具体实施例中,在进行预测时,还可使用以下公式来确定预测结果:
其中:
选择来自Poly2的权重wh(j1,j2),通过wh(j1,j2)*x1*x2计算特征组合{xj1,xj2}的组合值,进而代入公式得到预测结果,例如预测结果表征了样本数据对应的APP被用户下载的概率。
步骤1006、将特征组合输入FM模型,进而得到预测结果。
具体实施例中,在进行预测时,同样还可使用以下公式来确定预测结果:
其中:
选择来自FM模型wj1和wj2,通过wj1*wj2*x1*x2计算特征组合{xj1,xj2}的组合值,进而代入公式得到预测结果,例如预测结果表征了样本数据对应的APP被用户下载的概率。
可以看到,本发明实施例将Poly2模型与FM模型融合为Poly-2FM模型,分别利用两个推荐模型的优势,根据样本数据的稠密度情况,可以实现准确、有效的特征自动组合,动态自适应地择机选择Ploy2模型或者FM模型进行模型训练,从而学习到更准确、高效的模型参数。其中,Poly2-FM融合模型相比独立的Poly2模型,特征维度显著降低,模型变小,工作效率提升。同时,对于样本稠密度比较稀疏的特征子集{xj1,xj2},可以更准确地学习两个特征的组合权重,从而提升了使用模型进行预测时的准确率。Poly2-FM融合模型相比独立的FM模型,可对稠密特征单独进行学习,减少非其它无关特征的影响,特征子集{xj1,xj2}对应的模型参数学习得更加准确,从而提升了使用模型进行预测时的准确率。
基于相同的发明构思,下面进一步描述本发明实施例涉及的相关装置。
参见图11,图11示出了本发明实施例提供一种推荐模型训练装置110,该装置110包括样本数据获取模块1101、特征子集获取模块1102、条件确定模块1103和模型训练模块1104,描述如下:
样本数据获取模块1101,用于获取至少一个样本数据,所述至少一个样本数据中的每一个样本数据包括标签和特征集合,所述特征集合包括n个特征,n≥2;
特征子集获取模块1102,用于对于所述至少一个样本数据中的每一个样本数据,根据所述每一个样本数据的特征集合获取至少一个特征子集,所述至少一个特征子集中的每一个特征子集包括S个特征,2≤S≤n;
条件确定模块1103,用于根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件;其中,所述条件集合包括至少两个条件,所述至少两个条件分别指示特征子集不同的属性,所述每一个特征子集的属性与所述每一个特征子集对应的条件所指示的属性一致;
模型训练模块1104,用于利用所述每一个特征子集以及所述每一个特征子集对应的标签,分别训练模型集合中所述每一个特征子集对应的条件所对应的推荐模型;其中,所述模型集合包括至少两个用于内容推荐的推荐模型,每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件;所述每一个特征子集对应的标签为所述每一个特征子集对应的特征集合所属的样本数据的标签。
需要说明的,通过前述图7或图9实施例的详细描述,本领域技术人员可以清楚的知道装置110所包含的各个功能模块的实现方法,所以为了说明书的简洁,在此不再详述。
参见图12,图12示出了本发明实施例提供一种基于推荐模型进行预测的装置120,该装置120包括样本数据获取模块1201、特征子集确定模块1202、条件确定模块1203和推荐内容预测模块1204,描述如下:
样本数据获取模块1201,用于获取至少一个样本数据,所述至少一个样本数据中的每一个样本数据包括特征集合,所述特征集合包括n个特征,n≥2;
特征子集确定模块1202,用于确定所述特征集合中至少一个特征子集,所述至少一个特征子集中的每一个特征子集包括S个特征,2≤S≤n;
条件确定模块1203,用于根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件;其中,所述条件集合包括至少两个条件,所述至少两个条件分别指示特征子集不同的属性,所述每一个特征子集的属性与所述每一个特征子集对应的条件所指示的属性一致;
推荐内容预测模块1204,用于分别将所述每一个特征子集输入至模型集合中所述每一个特征子集对应的条件所对应的推荐模型,得到推荐内容的预测结果;其中,所述模型集合包括至少两个用于内容推荐的推荐模型,每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件。
需要说明的,通过前述图8或图10实施例的详细描述,本领域技术人员可以清楚的知道装置120所包含的各个功能模块的实现方法,所以为了说明书的简洁,在此不再详述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者任意组合来实现。当使用软件实现时,可以全部或者部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网络站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、微波等)方式向另一个网络站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,也可以是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD等)、或者半导体介质(例如固态硬盘)等等。
在上述实施例中,对各个实施例的描述各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
Claims (28)
1.一种推荐模型训练方法,其特征在于,包括:
获取至少一个样本数据,所述至少一个样本数据中的每一个样本数据包括标签和特征集合,所述特征集合包括n个特征,n≥2;
对于所述至少一个样本数据中的每一个样本数据,根据所述每一个样本数据的特征集合获取至少一个特征子集,所述至少一个特征子集中的每一个特征子集包括S个特征,2≤S≤n;
根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件;其中,所述条件集合包括至少两个条件,所述至少两个条件分别指示特征子集不同的属性,所述每一个特征子集的属性与所述每一个特征子集对应的条件所指示的属性一致;
利用所述每一个特征子集以及所述每一个特征子集对应的标签,分别训练模型集合中所述每一个特征子集对应的条件所对应的推荐模型;其中,所述模型集合包括至少两个用于内容推荐的推荐模型,每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件;所述每一个特征子集对应的标签为所述每一个特征子集对应的特征集合所属的样本数据的标签。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件之前,还包括:
确定所述条件集合和所述模型集合。
3.根据权利要求1或2所述的方法,其特征在于,所述条件集合包括第一条件和第二条件,所述第一条件指示的特征子集的属性为特征子集的样本稠密度大于或等于阈值,所述第二条件指示的特征子集的属性为特征子集的样本稠密度小于阈值;所述第一条件对应于所述模型集合中的第一推荐模型,所述第一条件对应于所述模型集合中的第二推荐模型;
所述根据所述每一个特征子集的属性来确定所述条件集合中所述每一个特征子集对应的条件,包括:
计算所述至少一个特征子集中的每一个特征子集的样本稠密度;
对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度大于或等于阈值,则说明该特征子集对应所述第一条件;
对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度小于阈值,则说明该特征子集对应所述第二条件。
4.根据权利要求3所述的方法,其特征在于,所述利用所述每一个特征子集以及所述每一个特征子集对应的标签,分别训练模型集合中所述每一个特征子集对应的条件所对应的推荐模型,包括:
当所述至少一个特征子集中存在对应所述第一条件的特征子集时,利用所述符合所述第一条件的特征子集以及对应所述第一条件的特征子集所对应的标签,训练所述第一推荐模型;
当所述至少一个特征子集中存在对应所述第二条件的特征子集时,利用所述符合所述第二条件的特征子集以及对应所述第二条件的特征子集所对应的标签,训练所述第二推荐模型。
5.根据权利要求3或4所述的方法,其特征在于,所述第一推荐模型包括多项式poly模型,所述第二模型包括因式分解机FM模型。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述计算所述至少一个特征子集中的每一个特征子集的样本稠密度,包括:
对于所述至少一个样本数据中的任一样本数据的任一特征子集,确定该特征子集在所述至少一个样本数据中的p个样本数据中皆有出现,则根据所述p得到该特征子集的样本稠密度,p≥1。
7.根据权利要求3至5任一项所述的方法,其特征在于,所述计算所述至少一个特征子集中的每一个特征子集的样本稠密度,包括:
对于所述至少一个样本数据中的任一样本数据的任一特征子集,统计该特征子集中的S个特征中的每个特征分别在所述至少一个样本数据出现的样本数量之和为q,则根据所述q得到该特征子集的样本稠密度,q≥1。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述利用所述每一个特征子集以及所述每一个特征子集对应的标签,分别训练模型集合中所述每一个特征子集对应的条件所对应的推荐模型之后,得到完成训练的模型集合;所述方法还包括:
在所述完成训练的模型集合中,确定所述每一个特征子集对应的条件所对应的推荐模型的模型参数;
从所述至少一个特征子集中确定至少一个目标特征子集;所述至少一个目标特征子集对应的模型参数满足预设评估值;
其中,所述至少一个目标特征子集、所述完成训练的模型集合和所述条件集合用于实现推荐内容的预测。
9.一种基于推荐模型的预测方法,其特征在于,包括:
获取至少一个样本数据,所述至少一个样本数据中的每一个样本数据包括特征集合,所述特征集合包括n个特征,n≥2;
确定所述特征集合中至少一个特征子集,所述至少一个特征子集中的每一个特征子集包括S个特征,2≤S≤n;
根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件;其中,所述条件集合包括至少两个条件,所述至少两个条件分别指示特征子集不同的属性,所述每一个特征子集的属性与所述每一个特征子集对应的条件所指示的属性一致;
分别将所述每一个特征子集输入至模型集合中所述每一个特征子集对应的条件所对应的推荐模型,得到预测结果;其中,所述模型集合包括至少两个用于内容推荐的推荐模型,每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件。
10.根据权利要求9所述的方法,其特征在于,在所述根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件之前,还包括:
确定所述条件集合和所述模型集合。
11.根据权利要求9或10所述的方法,其特征在于,所述条件集合包括第一条件和第二条件,所述第一条件指示的特征子集的属性为特征子集的样本稠密度大于或等于阈值,所述第二条件指示的特征子集的属性为特征子集的样本稠密度小于阈值;所述第一条件对应于所述模型集合中的第一推荐模型,所述第一条件对应于所述模型集合中的第二推荐模型;
所述根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件,包括:
获取稠密度信息,所述稠密度信息用于指示所述每一个特征子集的特征稠密度;
对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度大于或等于阈值,则说明该特征子集对应所述第一条件;
对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度小于阈值,则说明该特征子集对应所述第二条件。
12.根据权利要求11所述的方法,其特征在于,所述分别将所述每一个特征子集输入至模型集合中所述每一个特征子集对应的条件所对应的推荐模型,包括:
当所述至少一个特征子集中存在对应所述第一条件的特征子集时,将对应所述第一条件的特征子集输入至所述第一推荐模型;
当所述至少一个特征子集中存在对应所述第二条件的特征子集时,将对应所述第二条件的特征子集输入至所述第二推荐模型。
13.根据权利要求9至12任一项所述的方法,其特征在于,所述第一推荐模型包括多项式poly模型,所述第二模型包括因式分解机FM模型。
14.一种推荐模型训练装置,其特征在于,包括:
样本数据获取模块,用于获取至少一个样本数据,所述至少一个样本数据中的每一个样本数据包括标签和特征集合,所述特征集合包括n个特征,n≥2;
特征子集获取模块,用于对于所述至少一个样本数据中的每一个样本数据,根据所述每一个样本数据的特征集合获取至少一个特征子集,所述至少一个特征子集中的每一个特征子集包括S个特征,2≤S≤n;
条件确定模块,用于根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件;其中,所述条件集合包括至少两个条件,所述至少两个条件分别指示特征子集不同的属性,所述每一个特征子集的属性与所述每一个特征子集对应的条件所指示的属性一致;
模型训练模块,用于利用所述每一个特征子集以及所述每一个特征子集对应的标签,分别训练模型集合中所述每一个特征子集对应的条件所对应的推荐模型;其中,所述模型集合包括至少两个用于内容推荐的推荐模型,每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件;所述每一个特征子集对应的标签为所述每一个特征子集对应的特征集合所属的样本数据的标签。
15.根据权利要求14所述的装置,其特征在于,所述条件确定模块还用于,确定所述条件集合和所述模型集合。
16.根据权利要求14或15所述的装置,其特征在于,所述条件集合包括第一条件和第二条件,所述第一条件指示的特征子集的属性为特征子集的样本稠密度大于或等于阈值,所述第二条件指示的特征子集的属性为特征子集的样本稠密度小于阈值;所述第一条件对应于所述模型集合中的第一推荐模型,所述第一条件对应于所述模型集合中的第二推荐模型;
所述条件确定模块具体用于:
计算所述至少一个特征子集中的每一个特征子集的样本稠密度;
对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度大于或等于阈值,则说明该特征子集对应所述第一条件;
对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度小于阈值,则说明该特征子集对应所述第二条件。
17.根据权利要求16所述的装置,其特征在于,所述模型训练模块具体用于:
当所述至少一个特征子集中存在对应所述第一条件的特征子集时,利用所述符合所述第一条件的特征子集以及对应所述第一条件的特征子集所对应的标签,训练所述第一推荐模型;
当所述至少一个特征子集中存在对应所述第二条件的特征子集时,利用所述符合所述第二条件的特征子集以及对应所述第二条件的特征子集所对应的标签,训练所述第二推荐模型。
18.根据权利要求16或17所述的装置,其特征在于,所述第一推荐模型包括多项式poly模型,所述第二模型包括因式分解机FM模型。
19.根据权利要求16至18任一项所述的方法,其特征在于,所述条件确定模块具体用于,对于所述至少一个样本数据中的任一样本数据的任一特征子集,确定该特征子集在所述至少一个样本数据中的p个样本数据中皆有出现,则根据所述p得到该特征子集的样本稠密度,p≥1。
20.根据权利要求16至18任一项所述的装置,其特征在于,所述条件确定模块具体用于,对于所述至少一个样本数据中的任一样本数据的任一特征子集,统计该特征子集中的S个特征中的每个特征分别在所述至少一个样本数据出现的样本数量之和为q,则根据所述q得到该特征子集的样本稠密度,q≥1。
21.根据权利要求14至20任一项所述的装置,其特征在于,所述模型训练模块还用于:
得到完成训练的模型集合;在所述完成训练的模型集合中,确定所述每一个特征子集对应的条件所对应的推荐模型的模型参数;
从所述至少一个特征子集中确定至少一个目标特征子集;所述至少一个目标特征子集对应的模型参数满足预设评估值;
其中,所述至少一个目标特征子集、所述完成训练的模型集合和所述条件集合用于实现推荐内容的预测。
22.一种基于推荐模型进行预测的装置,其特征在于,包括:
样本数据获取模块,用于获取至少一个样本数据,所述至少一个样本数据中的每一个样本数据包括特征集合,所述特征集合包括n个特征,n≥2;
特征子集确定模块,用于确定所述特征集合中至少一个特征子集,所述至少一个特征子集中的每一个特征子集包括S个特征,2≤S≤n;
条件确定模块,用于根据所述每一个特征子集的属性来确定条件集合中所述每一个特征子集对应的条件;其中,所述条件集合包括至少两个条件,所述至少两个条件分别指示特征子集不同的属性,所述每一个特征子集的属性与所述每一个特征子集对应的条件所指示的属性一致;
推荐内容预测模块,用于分别将所述每一个特征子集输入至模型集合中所述每一个特征子集对应的条件所对应的推荐模型,得到推荐内容的预测结果;其中,所述模型集合包括至少两个用于内容推荐的推荐模型,每一个条件对应一个推荐模型,每一个推荐模型对应至少一个条件。
23.根据权利要求22所述的装置,其特征在于,所述条件确定模块还用于,确定所述条件集合和所述模型集合。
24.根据权利要求22或23所述的装置,其特征在于,所述条件集合包括第一条件和第二条件,所述第一条件指示的特征子集的属性为特征子集的样本稠密度大于或等于阈值,所述第二条件指示的特征子集的属性为特征子集的样本稠密度小于阈值;所述第一条件对应于所述模型集合中的第一推荐模型,所述第一条件对应于所述模型集合中的第二推荐模型;
所述条件确定模块具体用于:
获取稠密度信息,所述稠密度信息用于指示所述每一个特征子集的特征稠密度;
对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度大于或等于阈值,则说明该特征子集对应所述第一条件;
对于所述至少一个特征子集中的任一特征子集,如果该特征子集的样本稠密度小于阈值,则说明该特征子集对应所述第二条件。
25.根据权利要求24所述的装置,其特征在于,所述推荐内容预测模块具体用于:
当所述至少一个特征子集中存在对应所述第一条件的特征子集时,将对应所述第一条件的特征子集输入至所述第一推荐模型;
当所述至少一个特征子集中存在对应所述第二条件的特征子集时,将对应所述第二条件的特征子集输入至所述第二推荐模型。
26.根据权利要求22至25任一项所述的装置,其特征在于,所述第一推荐模型包括多项式poly模型,所述第二模型包括因式分解机FM模型。
27.一种装置,所述装置包括处理器、存储器和网络接口,所述处理器、存储器和网络接口通过总线连接;其中:所述存储器用于存储样本数据和程序指令;所述网络接口用于实现与外界的网络连接;所述处理器用于调用所述样本数据和程序指令,以实现如权利要求1-8任一项所描述的方法或者如权利要求9-13任一项所描述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储如权利要求1-8任一项所述方法的实现代码或者如权利要求9-13任一项所述方法的实现代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810470144.1A CN110119474B (zh) | 2018-05-16 | 2018-05-16 | 推荐模型训练方法、基于推荐模型的预测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810470144.1A CN110119474B (zh) | 2018-05-16 | 2018-05-16 | 推荐模型训练方法、基于推荐模型的预测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110119474A true CN110119474A (zh) | 2019-08-13 |
CN110119474B CN110119474B (zh) | 2022-10-18 |
Family
ID=67519722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810470144.1A Active CN110119474B (zh) | 2018-05-16 | 2018-05-16 | 推荐模型训练方法、基于推荐模型的预测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110119474B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457589A (zh) * | 2019-08-19 | 2019-11-15 | 上海新共赢信息科技有限公司 | 一种车辆推荐方法、装置、设备及存储介质 |
CN110830812A (zh) * | 2019-10-31 | 2020-02-21 | 广州市网星信息技术有限公司 | 相似主播分类模型训练方法、主播推荐方法及相关装置 |
CN111191136A (zh) * | 2019-12-30 | 2020-05-22 | 华为技术有限公司 | 一种信息推荐方法以及相关设备 |
CN111242310A (zh) * | 2020-01-03 | 2020-06-05 | 腾讯科技(北京)有限公司 | 特征有效性评估方法、装置、电子设备及存储介质 |
CN111274480A (zh) * | 2020-01-17 | 2020-06-12 | 腾讯科技(北京)有限公司 | 用于内容推荐的特征组合方法及装置 |
CN111291264A (zh) * | 2020-01-23 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 基于机器学习的访问对象预测方法、装置和计算机设备 |
CN111444424A (zh) * | 2020-03-25 | 2020-07-24 | 深圳市分期乐网络科技有限公司 | 一种信息推荐方法和信息推荐系统 |
CN111626832A (zh) * | 2020-06-05 | 2020-09-04 | 中国银行股份有限公司 | 产品推荐方法、装置及计算机设备 |
CN111695036A (zh) * | 2020-06-11 | 2020-09-22 | 北京百度网讯科技有限公司 | 内容推荐方法及装置 |
CN112256966A (zh) * | 2020-10-23 | 2021-01-22 | 北京交通大学 | 基于半监督因子分解机的物品推荐方法 |
CN112685623A (zh) * | 2020-12-30 | 2021-04-20 | 京东数字科技控股股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112884513A (zh) * | 2021-02-19 | 2021-06-01 | 上海数鸣人工智能科技有限公司 | 基于深度因子分解机的营销活动预测模型结构和预测方法 |
CN113426109A (zh) * | 2021-06-24 | 2021-09-24 | 杭州悠潭科技有限公司 | 一种基于因式分解机进行棋牌游戏行为克隆的方法 |
CN113672798A (zh) * | 2020-05-15 | 2021-11-19 | 第四范式(北京)技术有限公司 | 基于协同滤波模型的物品推荐方法和系统 |
CN113821542A (zh) * | 2021-11-23 | 2021-12-21 | 四川新网银行股份有限公司 | 一种显著特征自动推荐系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294743A (zh) * | 2016-08-10 | 2017-01-04 | 北京奇虎科技有限公司 | 应用功能的推荐方法及装置 |
US20170109642A1 (en) * | 2015-10-16 | 2017-04-20 | Adobe Systems Incorporated | Particle Thompson Sampling for Online Matrix Factorization Recommendation |
CN107193831A (zh) * | 2016-03-15 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 信息推荐方法及装置 |
US20170337611A1 (en) * | 2016-05-23 | 2017-11-23 | Yahoo! Inc. | Method and system for presenting personalized products based on digital signage for electronic commerce |
CN107578332A (zh) * | 2017-09-22 | 2018-01-12 | 深圳乐信软件技术有限公司 | 一种推荐现金商品的方法、装置、设备及存储介质 |
CN107688582A (zh) * | 2016-08-05 | 2018-02-13 | 腾讯科技(深圳)有限公司 | 资源推荐模型的获取方法及装置 |
CN107993131A (zh) * | 2017-12-27 | 2018-05-04 | 广东欧珀移动通信有限公司 | 穿搭推荐方法、装置、服务器和存储介质 |
-
2018
- 2018-05-16 CN CN201810470144.1A patent/CN110119474B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170109642A1 (en) * | 2015-10-16 | 2017-04-20 | Adobe Systems Incorporated | Particle Thompson Sampling for Online Matrix Factorization Recommendation |
CN107193831A (zh) * | 2016-03-15 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 信息推荐方法及装置 |
US20170337611A1 (en) * | 2016-05-23 | 2017-11-23 | Yahoo! Inc. | Method and system for presenting personalized products based on digital signage for electronic commerce |
CN107688582A (zh) * | 2016-08-05 | 2018-02-13 | 腾讯科技(深圳)有限公司 | 资源推荐模型的获取方法及装置 |
CN106294743A (zh) * | 2016-08-10 | 2017-01-04 | 北京奇虎科技有限公司 | 应用功能的推荐方法及装置 |
CN107578332A (zh) * | 2017-09-22 | 2018-01-12 | 深圳乐信软件技术有限公司 | 一种推荐现金商品的方法、装置、设备及存储介质 |
CN107993131A (zh) * | 2017-12-27 | 2018-05-04 | 广东欧珀移动通信有限公司 | 穿搭推荐方法、装置、服务器和存储介质 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457589A (zh) * | 2019-08-19 | 2019-11-15 | 上海新共赢信息科技有限公司 | 一种车辆推荐方法、装置、设备及存储介质 |
CN110457589B (zh) * | 2019-08-19 | 2020-05-12 | 上海新共赢信息科技有限公司 | 一种车辆推荐方法、装置、设备及存储介质 |
CN110830812A (zh) * | 2019-10-31 | 2020-02-21 | 广州市网星信息技术有限公司 | 相似主播分类模型训练方法、主播推荐方法及相关装置 |
CN110830812B (zh) * | 2019-10-31 | 2021-11-30 | 广州市网星信息技术有限公司 | 相似主播分类模型训练方法、主播推荐方法及相关装置 |
CN111191136A (zh) * | 2019-12-30 | 2020-05-22 | 华为技术有限公司 | 一种信息推荐方法以及相关设备 |
WO2021136131A1 (zh) * | 2019-12-30 | 2021-07-08 | 华为技术有限公司 | 一种信息推荐方法以及相关设备 |
CN111242310A (zh) * | 2020-01-03 | 2020-06-05 | 腾讯科技(北京)有限公司 | 特征有效性评估方法、装置、电子设备及存储介质 |
CN111242310B (zh) * | 2020-01-03 | 2023-04-18 | 深圳市雅阅科技有限公司 | 特征有效性评估方法、装置、电子设备及存储介质 |
WO2021135562A1 (zh) * | 2020-01-03 | 2021-07-08 | 腾讯科技(深圳)有限公司 | 特征有效性评估方法、装置、电子设备及存储介质 |
CN111274480A (zh) * | 2020-01-17 | 2020-06-12 | 腾讯科技(北京)有限公司 | 用于内容推荐的特征组合方法及装置 |
CN111291264B (zh) * | 2020-01-23 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 基于机器学习的访问对象预测方法、装置和计算机设备 |
CN111291264A (zh) * | 2020-01-23 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 基于机器学习的访问对象预测方法、装置和计算机设备 |
CN111444424A (zh) * | 2020-03-25 | 2020-07-24 | 深圳市分期乐网络科技有限公司 | 一种信息推荐方法和信息推荐系统 |
CN113672798A (zh) * | 2020-05-15 | 2021-11-19 | 第四范式(北京)技术有限公司 | 基于协同滤波模型的物品推荐方法和系统 |
CN111626832A (zh) * | 2020-06-05 | 2020-09-04 | 中国银行股份有限公司 | 产品推荐方法、装置及计算机设备 |
CN111626832B (zh) * | 2020-06-05 | 2023-10-03 | 中国银行股份有限公司 | 产品推荐方法、装置及计算机设备 |
CN111695036A (zh) * | 2020-06-11 | 2020-09-22 | 北京百度网讯科技有限公司 | 内容推荐方法及装置 |
CN111695036B (zh) * | 2020-06-11 | 2024-03-08 | 北京百度网讯科技有限公司 | 内容推荐方法及装置 |
CN112256966A (zh) * | 2020-10-23 | 2021-01-22 | 北京交通大学 | 基于半监督因子分解机的物品推荐方法 |
CN112256966B (zh) * | 2020-10-23 | 2023-09-12 | 北京交通大学 | 基于半监督因子分解机的物品推荐方法 |
CN112685623B (zh) * | 2020-12-30 | 2024-06-14 | 京东科技控股股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112685623A (zh) * | 2020-12-30 | 2021-04-20 | 京东数字科技控股股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112884513A (zh) * | 2021-02-19 | 2021-06-01 | 上海数鸣人工智能科技有限公司 | 基于深度因子分解机的营销活动预测模型结构和预测方法 |
CN113426109B (zh) * | 2021-06-24 | 2023-09-26 | 深圳市优智创芯科技有限公司 | 一种基于因式分解机进行棋牌游戏行为克隆的方法 |
CN113426109A (zh) * | 2021-06-24 | 2021-09-24 | 杭州悠潭科技有限公司 | 一种基于因式分解机进行棋牌游戏行为克隆的方法 |
CN113821542B (zh) * | 2021-11-23 | 2022-02-11 | 四川新网银行股份有限公司 | 一种显著特征自动推荐系统及方法 |
CN113821542A (zh) * | 2021-11-23 | 2021-12-21 | 四川新网银行股份有限公司 | 一种显著特征自动推荐系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110119474B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110119474A (zh) | 推荐模型训练方法、基于推荐模型的预测方法及装置 | |
CN104462593B (zh) | 一种提供用户个性化资源消息推送的方法和装置 | |
CN110162693A (zh) | 一种信息推荐的方法以及服务器 | |
WO2020147595A1 (zh) | 获取实体间关系表达的方法、系统和设备、广告召回系统 | |
CN109166017A (zh) | 基于重聚类的推送方法、装置、计算机设备及存储介质 | |
US20230153857A1 (en) | Recommendation model training method, recommendation method, apparatus, and computer-readable medium | |
CN110807150A (zh) | 信息处理方法及装置、电子设备和计算机可读存储介质 | |
CN111241394B (zh) | 数据处理方法、装置、计算机可读存储介质及电子设备 | |
CN109903103B (zh) | 一种推荐物品的方法和装置 | |
CN110851699A (zh) | 基于深度强化学习的信息流推荐方法、装置、设备及介质 | |
CN109783539A (zh) | 用户挖掘及其模型构建方法、装置及计算机设备 | |
CN105159910A (zh) | 信息推荐方法和装置 | |
CN110069715A (zh) | 一种信息推荐模型训练的方法、信息推荐的方法及装置 | |
CN107545471A (zh) | 一种基于高斯混合的大数据智能推荐方法 | |
CN104221019A (zh) | 用于在基于随机索引的系统中增强情境智能的方法和装置 | |
CN113379494A (zh) | 基于异质社交关系的商品推荐方法、装置和电子设备 | |
Jana et al. | A fuzzy simulation via contractive mapping genetic algorithm approach to an imprecise production inventory model under volume flexibility | |
CN112131261A (zh) | 基于社区网络的社区查询方法、装置和计算机设备 | |
CN115438787A (zh) | 行为预测系统的训练方法及装置 | |
CN111340522A (zh) | 资源推荐方法、装置、服务器及存储介质 | |
Zhang et al. | Improving augmented reality using recommender systems | |
CN109190040A (zh) | 基于协同演化的个性化推荐方法及装置 | |
CN113688306A (zh) | 一种基于强化学习的推荐策略生成方法及装置 | |
WO2023284516A1 (zh) | 基于知识图谱的信息推荐方法、装置、设备、介质及产品 | |
CN115599990A (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 |