基于构建高计算效率的深度强化学习推荐系统的推荐方法

文档序号:32488287发布日期:2022-12-10 01:52阅读:35来源:国知局
基于构建高计算效率的深度强化学习推荐系统的推荐方法

1.本发明涉及一种基于构建高计算效率的深度强化学习推荐系统的推荐方法,属于大数据人工智能领域,尤其适用于推荐条目巨大的应用场景。


背景技术:

2.推荐系统在网络生活中发挥着至关重要的作用,其主要目的是根据用户的历史数据向用户推荐可能所需的项目。传统的推荐系统方法有协同过滤、矩阵分解和基于内容的排序等。然而,这些算法都预先假设用户的偏好在整个过程中保持不变,其推荐结果往往难以让用户满意。最近的一些研究表明,将推荐系统建模为一个强化学习问题,通过最大化用户未来可能给出的总评分作为优化目标,可以有效地对用户的偏好进行动态建模,提升推荐系统的表现与性能。
3.然而,在实际应用中,推荐系统中推荐的项目个数往往非常巨大。例如,在电影推荐系统中,可推荐的电影有百万部以上;在线商品推荐系统中,可推荐的商品项目往往数以亿计。利用强化学习方法解决时,面对这种海量决策空间,如何对用户历史行为进行建模是提升推荐性能的一个关键因素。同时,这种巨大的决策空间会造成学习和决策效率低下,影响了强化学习方法的落地。


技术实现要素:

4.本发明的目的是提供一种基于构建高计算效率的深度强化学习推荐系统的推荐方法,通过将深度强化学习中的神经网络的参数大规模的降低,减少在巨大离散空间中的决策时间,并提升其学习和决策的效率。
5.为了达到上述目的,本发明通过以下的技术方案来实现:
6.一种基于构建高计算效率的深度强化学习推荐系统的推荐方法,其特征在于包括以下步骤:
7.步骤s1,采用马尔可夫决策过程对推荐系统建模;
8.步骤s2,根据所有用户的历史记录的时序数据,建立u行m列的用户评分矩阵,并通过矩阵分解获得用户与推荐系统交互的状态表征用户特征矩阵x和项目特征矩阵y;
9.步骤s3,对推荐系统的推荐策略进行建模与学习训练,其中所述推荐策略采用神经网络进行表征,且神经网络输出层采用稀疏矩阵进行参数建模;
10.步骤s4,利用训练好的推荐策略,根据用户的历史浏览记录的时序数据((选取当前选择前的时序数据,比如过去一段时间看过哪些条目),利用s2)所述状态构建方法,得到用户行为表征,把行为表征输入到训练好的推荐策略神经网络中,计算得到输出,根据输出进行项目推荐。
11.在采用上述技术方案的基础上,本发明还可采用以下进一步的技术方案,或对这些进一步的技术方案组合使用:
12.步骤s1中采用的马尔可夫决策过程通过《s,a,p,r》,其中,s为状态集合,即用户与
推荐系统交互的特征表征集合,a为用户可选择的项目集合,在t时刻下用户选择的项目记为a
t
,p(s
t+1
|s
t
,a
t
)为状态转移函数,即当前时刻状态s
t
下用户选择项目a
t
后下一时刻状态s
t+1
的概率,r(s
t+1
|s
t
,a
t
)为回报函数即用户对当前状态s
t
选择项目a
t
后用户的评分,对于推荐系统来说,其目的是最大化未来所收到的用户期望总评分,即
[0013][0014]
其中,t为终止时刻。
[0015]
步骤s2包括的用户评分矩阵,其中,u为用户的总数,m为推荐项目的总数,评分矩阵的第i行第j列表示第i个用户对第j个项目的评分,如果用户没有评价过该项目则评分设为0。
[0016]
步骤s2利用funk奇异值矩阵分解(funk’s svd)的矩阵分解方法,只关注用户评价过的数据,忽略掉用户未评价过的数据,把用户评分矩阵分解为用户特征矩阵x和项目特征矩阵y两个矩阵,其中,x矩阵为u行v列,y矩阵为m行v列,用x矩阵的每一行作为每个用户的特征向量,用y矩阵的每一行作为每个项目的特征向量。
[0017]
步骤s2中采用双向循环神经网络对用户的历史行为进行建模,根据正向和反向的循环神经网络输出,与所述步骤s2中用户本身的特征进行整合,作为推荐系统的状态输入。
[0018]
步骤s3中,神经网络的输入层前面有若干全连接层来建模推荐策略。
[0019]
步骤s3使用蒙特卡洛策略梯度算法(reinforce),收集用户与推荐系统的交互数据,根据用户与推荐系统的交互数据以及梯度下降定理,对推荐策略进行学习。
[0020]
步骤s3中,推荐策略神经网络接收步骤s2提供的状态作为输入,输出层输出每个项目的推荐概率。
[0021]
步骤s3中,所述稀疏矩阵通过根据推荐系统中所有项目的用户选择频次对每个项目进行排序并分类,并对低频次的项目分配较多的训练参数,对高频次的项目分配较少的训练参数构建。
[0022]
步骤s3的推荐策略输出的项目推荐概率为采用上述稀疏矩阵作为参数的softmax网络输出。
[0023]
本发明通过改善深度强化学习中神经网络的输出层,减小计算复杂度,提升了学习的效率,帮助解决了在巨大的离散动作空间中的学习。
附图说明
[0024]
图1为本发明采用的用户状态建模方法示意图;
[0025]
图2为本发明所采用的策略输出层参数矩阵示意图;
具体实施方式
[0026]
为了使本发明的技术方案更加清晰明白,下面结合附图及实施例对本发明进行详细描述。
[0027]
本技术实施例采用的movielens数据集是一个基于用户评分的电影推荐数据集,由美国明尼苏达大学的group-lens研究小组收集,是一个推荐系统研究的常用数据集。其
中,movielens 1mb数据集包含大约6040个用户对约3900部电影的一百多万个评分记录,每个用户至少有20部电影的观看记录及评分。评分为5分制,用户评分越高表明用户对该电影越喜欢。
[0028]
步骤s1,在这个数据集上,本技术把推荐系统作为强化学习的智能体,用户作为强化学习所交互的环境,其中,在每一时刻,推荐系统都会根据用户的历史行为推荐一个电影项目,根据用户的评分反馈结果,优化推荐系统的性能。通过数学模型来表示,即采用马尔可夫决策过程四元组《s,a,p,r》表示,其中,s为状态集合,即用户与推荐系统交互的特征表征集合,在movielens数据集中就是用户的历史电影观看记录及其对应的评分,a为用户可选择的项目集合,也就是电影推荐系统中总的电影项目集合,在t时刻下用户选择的电影项目记为a
t
,p(s
t+1
|s
t
,a
t
)为状态转移函数,即当前时刻状态s
t
下用户选择项目a
t
后下一时刻状态s
t+1
的概率,r(s
t+1
|s
t
,a
t
)为回报函数,即用户对当前状态s
t
选择项目a
t
后用户的评分,对于推荐系统来说,其目的是最大化未来所收到的用户期望总评分,即
[0029][0030]
其中,t为终止时刻。
[0031]
步骤s2:根据所有用户的历史记录,建立u行m列的用户评分矩阵,其中,u为用户的总数,m为推荐项目的总数,评分矩阵的第i行第j列表示第i个用户对第j个项目的评分,如果用户没有评价过该项目则评分设为0;利用funk奇异值矩阵分解(funk’s svd)的矩阵分解方法,只关注用户评价过的数据,忽略掉用户未评分过的电影数据,把用户评分矩阵分解为用户特征矩阵x和项目特征矩阵y两个矩阵,其中x矩阵为u行v列,y矩阵为m行v列,其中v是用户自己选择的一个超参数。用x矩阵的第i行作为第i个用户的特征向量,用y矩阵的第j行作为第j个项目的特征向量;
[0032]
采用附图1中的状态表征方法,选取当前时刻t前面n个用户的电影观看记录,拿到每一个电影的特征向量和其对应的评分,将其评分转换为one-hot编码形式。把每个电影向量与其评分相连接,输入到一个双向循环神经网络中,其中,循环神经网络内核为gru内核。由卷积神经网络处理后,得到正向状态和逆向状态,并把用户的特征向量与这两个状态相连接,作为用户的行为特征向量。
[0033]
步骤s3:采用神经网络对推荐系统的推荐策略进行表征,把上述用户行为向量作为输入,输入到策略神经网络中。策略神经网络的输出层输出每个项目的推荐概率。其中,输出层采用稀疏矩阵进行参数建模,在输入层的前面有若干全连接层来建模推荐策略。在策略神经网络构建之前,统计推荐系统中所有电影项目的用户选择次数,对每个项目的出现次数按从大到小的顺序进行排序,按照出现次数把项目分为若干类。对低频次的项目分配较多的训练参数,对高频次的项目分配较少的训练参数,以此构建出一个稀疏矩阵。推荐策略输出的项目推荐概率为采用上述稀疏矩阵作为参数的softmax网络输出。假设最后一层输出的参数矩阵是h
×
m维,其中h是上一层输出的维度,m是项目总个数。在推荐系统中,由于m的个数往往巨大,所以输出层维度参数会较多,当输出层需要采用softmax输出各个项目的推荐概率时,会占用较多的参数,导致计算效率增加。因此,本方法采取把输出层的矩阵稀疏化的方法,对低频次的项目分配较多的训练参数,对高频次的项目分配较少的训
练参数。输出层的参数矩阵如图2所示,图中按照项目的出现次数把项目分为了4类。对于每一类,选择超参数da,db,dc,dd,作为其在参数矩阵中所占的比例。其中,这些超参数满足关系:
[0034]
da+db+dc+dd=m
[0035]
根据其输出层的大小,按照相似度变换可以得到这四个参数矩阵维度:
[0036]
·
a矩阵:
[0037]
·
b矩阵:
[0038]
·
c矩阵:
[0039]
·
d矩阵:
[0040]
接下来,按图2中的矩阵排放方法,把a、b、c、d四个矩阵排成对角矩阵的形式,参数矩阵除a、b、c、d四个矩阵外均为0。这样即可建立稀疏矩阵,极大的降低了输出层隐层参数,提升计算效率。需要指出的是,在实际应用中可以按照需求对类别和所占参数数量进行调整。
[0041]
构建完策略网络后,接下来使用蒙特卡洛策略梯度算法(reinforce),收集用户与推荐系统的交互数据,根据梯度下降定理,对推荐策略进行学习。假定推荐策略为π,策略网络此时需要学习的参数包括用户行为特征中的参数以及策略网络中的参数,设为θ。通过周期性的采集用户与推荐系统交互的历史记录,通过策略梯度定理可得损失函数j对参数θ的梯度:
[0042][0043]
其中,为在状态s下执行动作a所收到的未来回报。
[0044]
设定学习率α与折扣因子γ通过随机梯度上升遍可以对参数θ完成学习与优化。具体优化算法可参考下表:
[0045][0046]
步骤4:根据输入的用户历史观看记录,按照学习好的策略π
θ
推荐相应的电影项目。
[0047]
本发明的实验效果在推荐系统常用的数据集amazon instant video数据集(https://jmcauley.ucsd.edu/data/amazon/)上采用部分数据进行了实验,该数据集包含了122,609个用户关于8,229个短视频的评分数据,共计评分145,983条。取80%的数据作为训练集,20%的数据作为测试集。
[0048]
本发明的实验效果与采用全连接神经网络推荐方法进行了对比,评价标准为推荐前30个项目的平均命中率(hit rate@30)、平均倒数排名(mean reciprocal rank@30)、平均每步学习时间(单位:秒)与平均每步决策时间(单位:秒)。实验效果如表1所示。可以看出,我们的方法可以在效果差不多的基础上缩短学习与决策时间,提高了效率。
[0049]
表1本方法与其他几类方法的效果比较
[0050]
评价标准采用全连接的神经网络采用本方法的稀疏矩阵平均命中率@300.1050.102平均倒数排名@300.02920.0289平均每步学习时间(秒)0.032390.03162平均每次决策时间(秒)0.009070.00852
[0051]
以上所述仅是本发明优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进,这些改进也应视为本发明保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1