本发明涉及提高推荐系统稳定性领域,采用目前比较成熟的平台tensorflow提高模型的鲁棒性,具体涉及一种提高协同过滤模型稳定性的方法。
背景技术:
现有的推荐技术方面的研究,有的根据应用场景考虑不同的影响因素构建新的算法,有的则是利用新的融合方式来优化算法,早期的融合技术是通过将多特征空间映射到一个统一空间实现,后期则是使用不同特征的结果列表,并利用候选结果进行融合实现,都是以不同的形式将特征有效整合来提升算法性能。还有的是通过提出新型的特征提取技术优化所得特征质量,间接地优化算法。
但基本上目前所有的研究都是集中在如何提高推荐的准确率,而对于推荐算法的鲁棒性问题的研究屈指可数。提高模型鲁棒性以抵挡来自外界的破坏就显得十分重要。于是我们需要一种有效的方法来对推荐系统的鲁棒性进行提高。
技术实现要素:
为了提高推荐系统的鲁棒性,本发明提出了一种提高协同过滤模型稳定性的方法,提高了模型的鲁棒性,能抵抗来自外界的恶意攻击。
为实现上述的目标,本发明采用的技术方案为:
一种提高协同过滤模型稳定性的方法,包括以下步骤:
步骤1:训练动态美学协同过滤推荐系统模型dcfa得到收敛参数;
所述dcfa的预测模型为:
其中u、v、t分别是用户、产品以及时间的嵌入矩阵,m是用户偏好矩阵,w是产品潜在特征矩阵,n是在时间r时的偏好矩阵,f是特征矩阵,u、i、r分别表示用户、物品、时间;
步骤2:构建对抗性扰动δadv,即得到使bpr优化方法损失最大的扰动,过程如下:
其中∈≥0是控制扰动幅度的超参数,||·||是l2范数,对应的目标函数如下:
其中,
步骤3:在dcfa模型上添加步骤2得到的对抗性扰动得到模型adcfa;
模型adcfa为:
其中,δi表示加入到特征嵌入矩阵的对抗性扰动;
步骤4:将步骤1得到的收敛参数作为模型adcfa的初始值;
步骤5:使用随机梯度下降方法sgd优化模型adcfa;
步骤6:通过步骤5的方法更新得到模型的参数θ。
进一步,所述方法还包括以下步骤:
步骤7:将原先的模型dcfa和模型adcfa进行泛化性能的对比;
先对dcfa模型进行1000次迭代训练使其达到收敛状态,再用该训练所得到的参数初始化adcfa模型,为了实现对比,我们用一样的参数初始化一个新的dcfa模型并继续训练它,最后比较两者的泛化性能。
再进一步,所述方法还包括以下步骤:
步骤8:将原先的模型dcfa和模型adcfa进行鲁棒性能的对比;
对dcfa模型和adcfa模型加入相同大小的扰动,并记录它们的性能变化。
所述步骤5中,sgd所需要输入的数据包括训练集,迭代次数以及正则化系数和两个超参数,输出为收敛的模型参数。
本发明的有益效果是:
1.设计并基于tensorflow框架使用python语言实现含时间因子、cnn特征和美学特征的adcfa模型算法;
2.基于真实数据集—amazon数据集使用对抗性学习方法对算法模型进行训练以改善算法鲁棒性;
3.对训练结果进行数据处理,并根据所得结果对算法泛化能力和鲁棒性进行分析与讨论。
附图说明
图1是我们预测模型(adcfa)的原理图;
图2是dcfa和adcfa泛化性能比较图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
参照图1和图2,一种提高协同过滤模型稳定性的方法,包括以下步骤:
步骤1:训练动态美学协同过滤推荐系统模型dcfa得到收敛参数;
dcfa的预测模型为:
其中u、v、t分别是用户、产品以及时间的嵌入矩阵,m是用户偏好矩阵,w是产品潜在特征矩阵,n是在时间r时的偏好矩阵,f是特征矩阵,u、i、r分别表示用户、物品、时间;
步骤2:构建对抗性扰动δadv,即得到使bpr优化方法损失最大的扰动,过程如下:
其中∈≥0是控制扰动幅度的超参数,||·||是l2范数,对应的目标函数如下:
其中,
步骤3:在dcfa模型上添加步骤2得到的对抗性扰动得到模型adcfa;
模型adcfa为:
其中,δi表示加入到特征嵌入矩阵的对抗性扰动;
步骤4:将步骤1得到的收敛参数作为模型adcfa的初始值;
步骤5:使用随机梯度下降方法sgd优化模型adcfa;
步骤6:通过步骤5的方法更新得到模型的参数θ。
进一步,所述方法还包括以下步骤:
步骤7:将原先的模型dcfa和模型adcfa进行泛化性能的对比;
先对dcfa模型进行1000次迭代训练使其达到收敛状态,再用该训练所得到的参数初始化adcfa模型,为了实现对比,我们用一样的参数初始化一个新的dcfa模型并继续训练它,最后比较两者的泛化性能。
再进一步,所述方法还包括以下步骤:
步骤8:将原先的模型dcfa和模型adcfa进行鲁棒性能的对比;
对dcfa模型和adcfa模型加入相同大小的扰动,并记录它们的性能变化。
所述步骤5中,sgd所需要输入的数据包括训练集,迭代次数以及正则化系数和两个超参数,输出为收敛的模型参数。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
1.一种提高协同过滤模型稳定性的方法,其特征在于,该方法包括如下步骤:
步骤1:训练动态美学协同过滤推荐系统模型dcfa得到收敛参数;
步骤2:构建对抗性扰动δadv,即得到使bpr优化方法损失最大的扰动;
步骤3:在dcfa模型上添加步骤2得到的对抗性扰动得到模型adcfa;
步骤4:将步骤1得到的收敛参数作为模型adcfa的初始值;
步骤5:使用随机梯度下降方法sgd优化模型adcfa;
步骤6:通过步骤5的方法更新得到模型参数θ。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括以下步骤:
步骤7:将原先的模型dcfa和模型adcfa进行泛化性能的对比。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括以下步骤:
步骤8:将原先的模型dcfa和模型adcfa进行鲁棒性能的对比。
4.根据权利要求1~3之一所述的方法,其特征在于,所述步骤1中,dcfa的预测模型为:
其中u、v、t分别是用户、产品以及时间的嵌入矩阵,m是用户偏好矩阵,w是产品潜在特征矩阵,n是在时间r时的偏好矩阵,f是特征矩阵,u、i、r分别表示用户、物品、时间。
5.根据权利要求1~3之一所述的方法,其特征在于,所述步骤2中,构建对抗性扰动δadv,所述过程如下:
其中∈≥0是控制扰动幅度的超参数,||·||是l2范数,对应的目标函数如下:
其中,
6.根据权利要求1~3之一所述的方法,其特征在于,所述步骤3中,adcfa为:
其中,δi表示加入到特征嵌入矩阵的对抗性扰动。
7.根据权利要求1~3之一所述的方法,其特征在于,所述步骤5中,sgd所需要输入的数据包括训练集,迭代次数以及正则化系数和两个超参数,输出为收敛的模型参数。
8.根据权利要求2所述的方法,其特征在于,所述步骤7中,进行泛化性能对比的过程如下:先对dcfa模型进行1000次迭代训练使其达到收敛状态,再用该训练所得到的参数初始化adcfa模型,为了实现对比,我们用一样的参数初始化一个新的dcfa模型并继续训练它。
9.根据权利要求3所述的方法,其特征在于,所述步骤8中,进行鲁棒性能对比的过程如下:对dcfa模型和adcfa模型加入相同大小的扰动,并记录它们的性能变化。
技术总结