一种基于FWDL模型的内容推荐方法与流程

文档序号:18832944发布日期:2019-10-09 04:04阅读:500来源:国知局
本发明属于数据信息推荐方法
技术领域
:,具体涉及一种基于fwdl模型的内容推荐方法。
背景技术
::随着大数据时代信息技术的迅猛发展,信息过载问题比较严重,用户获取所需信息的难度及耗费的时间增加。因此,如何从海量数据中快速准确地准确寻找满足用户需求的信息便是一件极富挑战性的任务。为了解决信息爆炸引起的诸多问题,推荐系统应运而生。推荐系统利用用户的历史行为数据,建立人与人、人与动物的连接,生成用户个人画像及模型,从而为用户提供个性化信息。个性化推荐系统不仅能根据不同用户的行为及兴趣提供对应的商品或信息,还可以挖掘用户的潜在兴趣,更富新颖性。推荐算法常借鉴机器学习、深度学习领域的方法,获得快速发展,同时也促进了其他领域的发展。目前推荐算法有如下几个方向:基于协同过滤的方式、基于内容的方式以及混合方式。基于内容的推荐充分利用用户本身的信息或项目本身信息来进行推荐。协同过滤的方法则是利用用户的行为信息或偏好信息产生推荐结果,而不是用户或项目的本身内容信息,混合推荐的方法综合了局域内容的推荐意见协同过滤各自的优点,给出了更精确的推荐结果。推荐系统存在几个待解决的问题,目前并没有很理想的通用解决方案,现有的几个问题分别是:冷启动问题、探索与利用问题和安全问题。其中,探索与利用问题直接关乎推荐结果的好坏,已成为提高推荐系统性能的关键;而深度学习技术在特征学习方面表现出强大的能力,可以帮助推荐系统提高性能,满足用户的需求。故对基于深度学习技术的推荐算法的研究,具有重要的意义。一个典型的推荐系统包含召回和排序两个模块,其中召回阶段通常是利用机器学习及人工规则从数据库中获取最可能的候选集,排序阶段利用机器学习或深度学习技术将候选集按照匹配度从高到底进行排序;wdl算法常被用于排序阶段,推荐系统需要具备两项基本能力:记忆能力和泛化能力。记忆能力是指从已有的历史数据中学习到频繁共现的特征,以此保证推荐结果的相关性,在线性模型中,通常采用特征交叉等方式,来获取对这类特征的记忆;泛化能力是指通过相似度的传递,挖掘出新的未出现过的特征联系,从而让推荐具备泛化性和新颖性。通常运用嵌入技术模型来挖掘特征间潜在的关联,如fm和dnn。原wdl算法中有如下缺点:(1)需要大量人工参与的特征工程工作;(2)可能出现过拟合的问题。因为特征交叉几乎记住每个训练样本,极端情况下出现最细粒度的交叉。技术实现要素:针对现有技术中的上述不足,本发明提供的基于fwdl模型的内容推荐方法解决了现有的推荐方法对低阶或高阶特征交互的处理效果不好,严重依赖于专业知识,需要大量人工参与特征工程工作的问题。为了达到上述发明目的,本发明采用的技术方案为:一种基于fwdl模型的内容推荐方法,包括以下步骤:s1、收集用户信息及其历史操作数据,将其作为原始数据;s2、将原始数据进行预处理后,得到训练数据并将其输入到fwdl模型中,并对其进行训练;s3、根据推荐系统中数据库内存储的实时用户操作数据,通过训练好的fwdl模型对其进行处理,得到内容推荐结果。进一步地,所述步骤s2中fwdl模型包括依次连接的输入层、wdl模型层和输出层;所述输入层用于对输入的训练数据进行处理,得到输入到wdl模型层的数据;所述wdl模型层包括wide侧的lr子模型和deep侧的dnn子模型,用于对输入的训练数据处理得到两个候选内容推荐结果;所述输出层包括一个逻辑回归函数,用于对wdl模型层输出的两个候选内容推荐结果进行处理,得到最终的内容推荐结果。进一步地,所述输入层对训练数据进行处理的方法具体为:a1、将训练数据分为连续特征和离散特征;a2、对连续特征采用极差标准化的方式进行归一化处理,得到对应的频繁项数据;a3、通过embedding操作将稀疏高维的离散特征转换为稠密低维的嵌入向量;同时,将离散特征经过efufp算法处理后挖掘出对应的频繁项数据;a4、将连续特征对应的频繁项数据和离散特征对应的频繁项数据合并为频繁项集;a5、对频繁项集做one-hot处理,得到频繁项关系特征;a6、将频繁项关系特征作为wide侧的lr子模型的输入数据;将频繁项关系特征和嵌入向量作为deep侧的dnn子模型的输入数据,完成对训练数据的处理。进一步地,所述步骤a6中频繁项关系特征包括稀疏特征、频繁项特征、取值范围大于设定阈值或未知取值范围的特征列和数值型特征;根据频繁项关系特征的特征类型,对其进行处理后再输入到wide侧的lr子模型中:所述处理方法具体为:对稀疏特征及频繁项特征进行稠密化处理;对取值范围大于设定阈值或未知取值范围的特征列进行哈希处理;对数值型特征指明其类型。进一步地,所述wide侧的lr子模型为:式中,p(y|x)为输出的预测值为y对输入特征x的条件概率;y为lr子模型输出的预测值;x为lr子模型的输入特征;w为lr子模型的权重;b为lr子模型的偏置;所述deep侧的dnn子模型采用嵌入层和全连接层的方式构建,所述全连接层中的激活函数为relu函数;所述deep侧的dnn子模型为:sl+1=f(wlsl+bl)式中,sl+1为dnn中,第l+1层的输出结果;wl为dnn子模型中第l隐层的权重;sl为dnn子模型中第l隐层的变量;bl为dnn子模型中第l隐层的偏置;f(·)为激活函数σ。进一步地,所述步骤s2中对fwdl模型的训练包括对wdl模型层中的wide侧的lr子模型及deep侧的dnn子模型同时单独训练和对逻辑回归函数联合训练。进一步地,所述wide侧的lr子模型通过ftrl算法和l1正则化进行单独训练;所述deep层的dnn子模型通过adagrad优化器进行单独训练;所述逻辑回归函数通过adam优化器进行联合训练,并采用交叉熵作为损失函数。进一步地,所述逻辑回归函数为:式中,p(y=1|x)为fwdl模型的最终预测结果;为wide侧的lr模型的预测结果;为deep侧的dnn模型的预测结果;b为逻辑回归函数的偏置;σ(·)为激活函数;[x,φ(x)]为联结的特征集合,x为输入特征,φ(x)为转换后的特征。本发明的有益效果为:(1)通过efufp算法进行自动化频繁项集挖掘,获取结构特征,极大地减少了人工特征工程;(2)将频繁交叉特征同时作为wide侧和deep侧模型的输入特征,在保证准确性的同时提高了泛化的能力;(3)在进行嵌入操作时,多个相关联的field共享同一个embedding矩阵,不仅减少了参数个数,提高计算速度,同时防止过拟合,使得每个field能够获得更多的训练机会,有利于参数调优。附图说明图1为本发明提供的基于fwdl模型的内容推荐方法流程图。图2为本发明中的输入层对训练数据进行处理时的方法流程图。具体实施方式下面对本发明的具体实施方式进行描述,以便于本
技术领域
:的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本
技术领域
:的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。如图1所示,一种基于fwdl模型的内容推荐方法,包括以下步骤:s1、收集用户信息及其历史操作数据,将其作为原始数据;s2、将原始数据进行预处理后,得到训练数据并将其输入到fwdl模型中,并对其进行训练;其中,预处理包括缺失值处理和过滤异常样本;s3、根据推荐系统中数据库内存储的实时用户操作数据,通过训练好的fwdl模型对其进行处理,得到内容推荐结果。上述步骤s2中fwdl模型包括依次连接的输入层、wdl模型层和输出层;所述输入层用于对输入的训练数据进行处理,得到输入到wdl模型层的数据;所述wdl模型层包括wide侧的lr子模型和deep侧的dnn子模型,用于对输入的训练数据处理得到两个候选内容推荐结果;所述输出层包括一个逻辑回归函数,用于对wdl模型层输出的两个候选内容推荐结果进行处理,得到最终的内容推荐结果。其中,如图2所示,输入层对训练数据进行处理的方法具体为:a1、将训练数据分为连续特征和离散特征;a2、对连续特征采用极差标准化的方式进行归一化处理,得到对应的频繁项数据;其中有些特征需要进行分箱操作将其转化为离散特征,年龄特征数据,可以对其进行分段处理;a3、通过embedding操作将稀疏高维的离散特征转换为稠密低维的嵌入向量;与原始连续特征、频繁项特征融合,作为dnn的输入特征,对其进行训练;同时,将离散特征经过efufp算法处理后挖掘出对应的频繁项数据;a4、将连续特征对应的频繁项数据和离散特征对应的频繁项数据合并为频繁项集;a5、对频繁项集做one-hot处理,得到频繁项关系特征;a6、将频繁项关系特征作为wide侧的lr子模型的输入数据;将频繁项关系特征和嵌入向量作为deep侧的dnn子模型的输入数据,完成对训练数据的处理。在步骤a3中,嵌入向量的值随机初始化,并且与其他模型参数一起进行训练,以此来尽可能地减少损失。针对只有少数取值的类别特征,通过“多重表示”来处理,如会员级别,“非会员”可以表示为[0,0,1],“普通会员”可以被表示为[0,1,0],“高级会员”可以被表示为[1,0,0];诸如此类作为一个固定的组合特征表示,使得嵌入更加灵活,并且可以在训练时计算。本发明中通过tensorflow实现该过程,通过indicator_column()来创建部分类别特征列的多重表示,通过embedding_column(categorical_feature,dimension)配置分类特征列的嵌入,同时将它们与连续列特征连接。其中dimension嵌入地越高,该模型被允许学习到的特征表示就具有越高的自由度。基于三个数据集上的实验,认为维数的值在log2(n)或k/sqrt(4n)时效果较好,其中n是类别特征列中特征值的种类数,通常为一个小于10的常数;通过embedding,deep侧深层模型能够进行有效地泛化,学习到未出现过的特征组合。另外,在本发明中的,对部分embeddingcolumns做了共享,如描述用户“近10天点击查看文章”、“近10天对文章点赞”、“近10天对文章表示不满意”的三个field,其中物品来自同一个物品字典,若每个field单独训练一个embedding,会出现两个问题:一是每个embedding矩阵都是一个稠密矩阵,这样需要学习的参数会增加到原来的3倍,占据大量内存空间,并且过多的参数容易导致过拟合;二是三个field的稀疏程度一般不同,通常“点击”操作比“点赞”、“踩”操作出现的次数多很多,于是同一个物品,其“点击”相关的向量会得到比较多的训练机会,而“点赞”、“踩”相关的向量的训练机会可能很少,从而导致结果与最初随机初始化的结果差异不大。因此,多个相关联的field共享同一个embedding矩阵,不仅减少了需要优化的参数个数,提高计算速度,同时也防止过拟合,使得每个field能够获得更多的训练机会,有利于参数的调优。将离散特征经过efufp算法处理过程为:生成初始efufp-tree、headertable以及频繁度f;根据新增数据(进行模型训练时输入的新的训练数据)进行对应的更新,计算新增数据集中每个元素的频繁度、并对efufp-tree、headertable以及频繁度f进行更新;根据更新的efufp-tree进行频繁项挖掘,获得频繁项数据。如若得到{r,s,t}是一个频繁项,则将其作为一列,当用户的历史记录中满足此频繁项时值为1,否则为0。在上述步骤a6频繁项关系特征包括稀疏特征、频繁项特征、取值范围大于设定阈值或未知取值范围的特征列和数值型特征;根据频繁项关系特征的特征类型,对其进行处理后再输入到wide侧的lr子模型中:所述处理方法具体为:对稀疏特征及频繁项特征进行稠密化处理;对取值范围大于设定阈值或未知取值范围的特征列进行哈希处理;对数值型特征指明其类型。在本发明中的特征工程方面,对于离散特征,针对具体情况使用不同编码方式,有归一化编码、哈希编码及嵌入操作,根据所期望的特征空间的大小进行选择;归一化编码处理后的特征空间较大,哈希编码的方式占据特征空间较小。嵌入操作的关键是把原始的类别数值映射到一个权值矩阵,若是可以训练的,将这个权值矩阵作为网络权值矩阵进行训练,运用时将其作为一个嵌入特征表,按照id取每个特征被嵌入处理后的数值。针对连续特征,首先对其缺失值和离群值进行处理,若缺失值攫夺,可以考虑放弃其作为可用特征,若放弃则要对缺失值进行填充或当作零值。对于离群值,根据数值范围作相应处理,若数值范围偏大则对其取对数操作进行缩放,若数值范围偏小则对其取平方操作进行拉伸,或者进行分箱操作转化为类别特征,如将年龄做分段处理等。对于矩阵中存在大量空值元素的类别特征,采用sparetensor数据类型来进行处理,针对矩阵中存在大量空值的类别特征做sparsetensor的处理,这样可以大大减少矩阵所占用的空间。本发明中,wdl模型层中的wide侧采用lr子模型,获取经过one-hot编码处理的离散型变量、进过映射到实数值后分段离散化的连续型变量、以及频繁项处理后的组合编码,将这些作为lr子模型的输入,通过_linear_logit_fn_builder()来构建lr子模型,lr子模型为:式中,p(y|x)为输出的预测值为y对输入特征x的条件概率,即基于输入x的预测结果;y为lr子模型输出的预测值;x为lr子模型的输入特征;w为lr子模型的权重;b为lr子模型的偏置;deep侧采用嵌入层和全连接层的方式构建dnn子,在嵌入层得到低维稠密的特征向量,神经元的激活函数是恒等函数,即只进行线性变换,在全连接层,将relu作为激活函数,构建前馈神经网络,该dnn子模型通过_dnn_logit_fn_builder()来构建为:sl+1=f(wlsl+bl)式中,sl+1为dnn中,第l+1层的输出结果;wl为dnn子模型中第l隐层的权重;sl为dnn子模型中第l隐层的变量;bl为dnn子模型中第l隐层的偏置;f(·)为激活函数σ。上述步骤s2中对fwdl模型的训练包括对wdl模型层中的wide侧的lr子模型及deep侧的dnn子模型同时单独训练和对逻辑回归函数联合训练。其中,wide侧的lr子模型通过ftrl算法和l1正则化进行训练,能够很快收敛到有效的特征组合中;deep层的dnn子模型通过adagrad优化器进行训练,通过反向传播调整隐藏层的权重,同时更新embedding向量;在训练过程中同时优化wide层模型和deep侧模型的参数,从而使整体模型的推荐效果最优;逻辑回归函数通过adam优化器进行联合训练,并采用交叉熵作为损失函数。采用联合训练时,在训练的同时优化各个模型的参数,因此单个模型的规模可以相对较小,而集成学习的方式中,各个模型独立进行训练,当单个模型的规模足够大时,才能保证准确性。上述逻辑回归函数为:式中,p(y=1|x)为fwdl模型的最终预测结果;为wide侧的lr模型的预测结果;为deep侧的dnn模型的预测结果;b为逻辑回归函数的偏置;σ(·)为激活函数;[x,φ(x)]为联结的特征集合,x为输入特征,φ(x)为转换后的特征。为deep[finalactivation],w^t*deep[finalactivation]表示dnn_logits。本发明中的fwdl模型算法与现有wdl模型算法相比主要有以下改进:1、特征预处理:对原始输入特征进行进一步处理,不再依靠人工进行特征工程的工作,而是通过efufp算产生频繁项集,并将其转化为类别特征,这部分特征向量作为原wdl模型中的wide侧的交叉特征,极大地减少了人工特征处理;将其与气体特征结合之后再输入到wide侧模型中;对进行wide侧和dee侧进行联合训练,优化参数;2、挖掘关系:对输入特征的频繁项挖掘不仅仅能够获取频繁项,还能通过特征交互进行关系学习,相比元素间关系,特征间的交互关系具有更大的价值;3、共享嵌入向量:在deep侧对输入特征的嵌入操作中,对部分embeddingcolumn做了共享,减少要优化的参数个数,提高计算速度,同时也处理了过拟合的问题;4.泛化处理:与原wdl模型算法不同,将用efufp算法产生的组合特征作为输入层数据,分别输入到wide侧模型和deep侧模型,而不仅仅是输入到wide侧模型。因此,本发明的有益效果为:(1)通过efufp算法进行自动化频繁项集挖掘,获取结构特征,极大地减少了人工特征工程;(2)将频繁交叉特征同时作为wide侧和deep侧模型的输入特征,在保证准确性的同时提高了泛化的能力;(3)在进行嵌入操作时,多个相关联的field共享同一个embedding矩阵,不仅减少了参数个数,提高计算速度,同时防止过拟合,使得每个field能够获得更多的训练机会,有利于参数调优。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1