/731基于强化学习的推荐系统/73目录目录S强化学习ReinforcementLearning01推荐系统RecommendationSystem02基于强化学习的推荐系统DeepReinforcementLearningforList-wiseRecommendations032/73推荐系统目录31、协同过滤推荐算法2、基于内容的推荐5、推荐系统的评价准则3、基于图结构的推荐4、混合推荐&其他推荐算法2、基于模型的推荐1、基于记忆的推荐基于用户(user-based)的推荐基于项目(item-based)的推荐基于朴素贝叶斯分类的推荐基于线性回归的推荐基于马尔科夫决策过程的推荐推荐系统协同过滤推荐算法1用户-项目评分矩阵User-itemratingmatrix推荐系统协同过滤推荐算法1.基于用户(user-based)的推荐根据余弦相似度计算用户间相似度根据计算出来的相似度估计用户评分:(2.5)推荐系统基于记忆的推荐2.基于项目(item-based)的推荐根据余弦相似度计算项目间相似度根据计算出来的相似度估计评分推荐系统基于记忆的推荐采用统计学、机器学习、数据挖掘等方法,根据用户历史数据建立模型,并产生合理推荐。简单的评分模型:推荐系统基于模型的推荐基于模型的推荐基于朴素贝叶斯分类的推荐基于线性回归的推荐基于马尔科夫决策过程的推荐推荐系统基于模型的推荐1.基于朴素贝叶斯分类的推荐朴素贝叶斯分类方法的前提是假设样本的各个属性相互独立由朴素贝叶斯假设可得:=推荐系统基于模型的推荐2.基于线性回归的推荐线性预测模型:u=(x1,x2,…,xn)表示用户u对n个项目的评分p=(a1,a2,…,an)表示评分系数、m表示偏差推荐系统基于模型的推荐3.基于马尔科夫决策过程MDP的推荐借鉴强化学习(reinforcementlearning)的思想,把推荐过程建模为MDP最优决策问题,即如何产生一个能最大用户收益的推荐项目列表.将MDP模型定义为一个4元组(S,A,R,Pr)推荐过程对应的MDP过程:12推荐系统基于模型的推荐除以上介绍的方法外,基于模型的协同过滤方法还包括基于聚类的Gibbs抽样方法,概率相关方法和极大熵方法等.基于模型的协同过滤算法能在一定程度上解决基于记忆的推荐算法面临的主要困难,在推荐性能上更优,但通常算法复杂,计算开销大.推荐系统基于模型的推荐基于内容的推荐算法文本推荐方法基于潜在语义分析的推荐自适应推荐推荐系统基于内容的推荐算法1.文本推荐方法采用TF-IDF方法:TermFrequency:词频InverseDocumentFrequency:逆向文件频率相似度计算公式:根据历史信息构造用户偏好文档,计算推荐项目与文档的相似度,将最相似的项目推荐给用户.推荐系统基于内容的推荐算法2关键词的同义和多义现象导致文档相似度不准确.提出了潜在语义分析方法(LatentSemanticAnalysis,LSA).2.基于潜在语义分析的推荐(LSA和SVD)LSA方法基于SVD分解:然后把Ʃ的r个对角元素的前k个保留(最大的k个),后面最小的r-k个奇异值置0,得到Ʃk;最后计算一个近似的分解矩阵:推荐系统基于内容的推荐算法23.自适应推荐偏好文档是基于内容推荐的关键.用户的兴趣会随时间动态变化,因此需要及时更新偏好文档.采用更新用户文档的自适应过滤方法:(1)首先确定用户偏好模型(2)选择合适的阈值进行过滤(3)比较每一次的偏差(4)根据偏差以及阈值调整公式算下一轮的阈值(5)迭代直到取得合适的阈值推荐系统基于内容的推荐算法3.自适应推荐主题向量特征向量偏好模板训练集相似度阈值阈值是否成立非正例文本正例文本特征提取阈值调整是否推荐系统基于内容的推荐算法3用户项目矩阵可建模为二部图,节点表示拥护和项目,借鉴动态网络资源分配过程。该方法的推荐过程如下:①建立推荐二部图.m个项目X1X2X3X4X5y3y2y1n个用户②计算资源分配矩阵W.a53=1推荐系统基于图结构的推荐算法3③针对指定用户计算各项目的资源分配.fi=(ai1,ai2,…,aim)表示用户i的初始资源分配,由图可知用户y1的初始资源分配:f′i表示用户i的最终资源分配,则有f′i=Wfi.用户1的最终资源分配为:④根据最终资源分配从大到小产生除了用户已经偏好项目外的推荐.对用户1推荐项目的排序是:3142=5推荐系统基于图结构的推荐算法协同过滤&基于内容·两种方法单独进行将结果混合·基于内容融合到协同过滤的方法中·协同过滤融合到基于内容方法中·混合到一个框架下产生新的推荐方法混合推荐:为解决以上三种算法各自问题而提出的.其他推荐:基于关联规则(啤酒-尿布)和基于知识的推荐推荐系统混合推荐算法&其他推荐算法1.平均绝对误差(meanabsoluteerror,MAE)用于度量推荐算法的估计评分与真实值之间的差异.2.均方根误差(rootmeansquarederror,RMSE)RMSE是Netflix竞赛(电影推荐)采用的评价准则.RMSE值越小,算法的准确度越高.推荐系统评价准则3.查全率(recall)用于度量推荐列表中是否包含了用户偏好的全部项目.4.查准率(precision)用于度量推荐列表中是否都是用户偏好的项目.Li表示推荐算法为用户i产生的推荐列表,Ri表示测试集中用户i偏好的全部项目.推荐系统评价准则/73强化学习123基本概念算法原理算法框架目录24/73强化学习基本概念强化学习(ReinforcementLearning,RL)是指没有任何标签的情况下,通过先尝试做出一些行为得到一个结果,通过这个结果是对还是错的反馈,调整之前的行为,这样不断的调整,算法能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。25/73强化学习基本过程26/73强化学习五元组(S,A,R,P,𝛾)1.State(S):智能体所有可能处于的状态。2.Action(A):智能体可以采取的所有可能的动作空间的集合。3.Reward(r):环境的即时返回的奖励值,以评估智能体的上一个动作。4.P:状态转移的概率,描述从当前状态转移到下一状态。5.𝛾:(𝛾∈[0,1]),折扣因子,目的是为了减少未来的Reward对当前动作的影响。firerightleft27/73强化学习强化学习分类基于策略的基于值的学到一个Actor学到一个CriticActor+CriticModel-free方法Model-based方法28/73强化学习Actor基本框架……NNasactorfirerightleft通过概率采取下一步的动作0.70.20.1第一步:定义网络结构第二步:定义损失函数第三步:选择最优的模型29/73强化学习Actor基本框架1.设计Actor𝜋𝜃𝑠网络参数为𝜃2.Actor进行一场游戏,得到如下序列:𝜏=𝑠1,𝑎1,𝑟1,𝑠2,𝑎2,𝑟2,⋯,𝑠𝑇,𝑎𝑇,𝑟𝑇𝑅𝜃=𝑟𝑡𝑇𝑡=13.随机进行n场游戏,使用期望值𝑅𝜃用来评估𝜋𝜃𝑠30/73强化学习Actor计算方式•对于每一个序列𝜏•𝜏=𝑠1,𝑎1,𝑟1,𝑠2,𝑎2,𝑟2,⋯,𝑠𝑇,𝑎𝑇,𝑟𝑇•𝑅𝜏=𝑟𝑡𝑇𝑡=1•采取该策略的几率为𝑃𝜏|𝜃𝑅𝜃=𝑅𝜏𝑃𝜏|𝜃𝜏≈1𝑁𝑅𝜏𝑛𝑁𝑛=1𝜏1,𝜏2,⋯,𝜏𝑁31/73强化学习Actor计算方式𝜃∗=𝑎𝑟𝑔max𝜃𝑅𝜃•初始化𝜃0•𝜃1←𝜃0+𝜂𝛻𝑅𝜃0•𝜃2←𝜃1+𝜂𝛻𝑅𝜃1•……𝜃=𝑤1,𝑤2,⋯,𝑏1,⋯𝛻𝑅𝜃=𝜕𝑅𝜃𝜕𝑤1𝜕𝑅𝜃𝜕𝑤2⋮𝜕𝑅𝜃𝜕𝑏1⋮32/73=𝑅𝜏𝑃𝜏|𝜃𝛻𝑃𝜏|𝜃𝑃𝜏|𝜃𝜏强化学习Actor计算方式𝛻𝑅𝜃=𝑅𝜏𝛻𝑃𝜏|𝜃𝜏=𝑅𝜏𝑃𝜏|𝜃𝛻𝑙𝑜𝑔𝑃𝜏|𝜃𝜏≈1𝑁𝑅𝜏𝑛𝛻𝑙𝑜𝑔𝑃𝜏𝑛|𝜃𝑁𝑛=1𝑑𝑙𝑜𝑔𝑓𝑥𝑑𝑥=1𝑓𝑥𝑑𝑓𝑥𝑑𝑥𝑅𝜃=𝑅𝜏𝑃𝜏|𝜃𝜏≈1𝑁𝑅𝜏𝑛𝑁𝑛=133/73强化学习Actor计算方式𝑃𝜏|𝜃=𝑝𝑠1𝑝𝑎1|𝑠1,𝜃𝑝𝑟1,𝑠2|𝑠1,𝑎1𝑝𝑎2|𝑠2,𝜃𝑝𝑟2,𝑠3|𝑠2,𝑎2⋯=𝑝𝑠1𝑝𝑎𝑡|𝑠𝑡,𝜃𝑝𝑟𝑡,𝑠𝑡+1|𝑠𝑡,𝑎𝑡𝑇𝑡=1由𝜋𝜃控制与Actor无关𝜏=𝑠1,𝑎1,𝑟1,𝑠2,𝑎2,𝑟2,⋯,𝑠𝑇,𝑎𝑇,𝑟𝑇每次进行游戏的概率为:34/73强化学习Actor计算方式•𝜏=𝑠1,𝑎1,𝑟1,𝑠2,𝑎2,𝑟2,⋯,𝑠𝑇,𝑎𝑇,𝑟𝑇𝑃𝜏|𝜃=𝑝𝑠1𝑝𝑎𝑡|𝑠𝑡,𝜃𝑝𝑟𝑡,𝑠𝑡+1|𝑠𝑡,𝑎𝑡𝑇𝑡=1𝑙𝑜𝑔𝑃𝜏|𝜃=𝑙𝑜𝑔𝑝𝑠1+𝑙𝑜𝑔𝑝𝑎𝑡|𝑠𝑡,𝜃𝑇𝑡=1+𝑙𝑜𝑔𝑝𝑟𝑡,𝑠𝑡+1|𝑠𝑡,𝑎𝑡𝛻𝑙𝑜𝑔𝑃𝜏|𝜃=𝛻𝑙𝑜𝑔𝑝𝑎𝑡|𝑠𝑡,𝜃𝑇𝑡=135/73强化学习Actor计算方式𝛻𝑅𝜃≈1𝑁𝑅𝜏𝑛𝛻𝑙𝑜𝑔𝑃𝜏𝑛|𝜃𝑁𝑛=1=1𝑁𝑅𝜏𝑛𝛻𝑙𝑜𝑔𝑝𝑎𝑡𝑛|𝑠𝑡𝑛,𝜃𝑇𝑛𝑡=1𝑁𝑛=1=1𝑁𝑅𝜏𝑛𝛻𝑙𝑜𝑔𝑝𝑎𝑡𝑛|𝑠𝑡𝑛,𝜃𝑇𝑛𝑡=1𝑁𝑛=1𝑅𝜏𝑛如果较大调整𝜃使得𝑝𝑎𝑡𝑛|𝑠𝑡𝑛增大𝑅𝜏𝑛如果较小调整𝜃使得𝑝𝑎𝑡𝑛|𝑠𝑡𝑛降低𝜃𝜋′←𝜃𝜋+𝜂𝛻𝑅𝜃𝜋通过𝜃𝜋得到序列𝜏1,𝜏2,⋯,𝜏𝑁𝛻𝑅𝜃≈1𝑁𝑅𝜏𝑛𝛻𝑙𝑜𝑔𝑝𝑎𝑡𝑛|𝑠𝑡𝑛,𝜃𝑇𝑛𝑡=1𝑁𝑛=11𝑁𝑅𝜏𝑛−𝑏𝛻𝑙𝑜𝑔𝑝𝑎𝑡𝑛|𝑠𝑡𝑛,𝜃𝑇𝑛𝑡=1𝑁𝑛=1𝛻𝑙𝑜𝑔𝑃𝜏|𝜃=𝛻𝑙𝑜𝑔𝑝𝑎𝑡|𝑠𝑡,𝜃𝑇𝑡=136/73强化学习Critic基本框架𝑉𝜋s𝑉𝜋𝑠数值𝑉𝜋𝑠较大𝑉𝜋𝑠较小第一步:定义网络结构第二步:定义损失函数第三步:选择最优的模型37/73强化学习Critic计算方式蒙特卡洛方法:𝑉𝜋𝑠𝑎𝑉𝜋𝑠𝑎𝐺𝑎𝑉𝜋𝑠𝑐𝑉𝜋𝑠𝑐𝐺𝑐38/73强化学习Critic计算方式时间差分(TD)方法:⋯𝑠𝑡,𝑎𝑡,𝑟𝑡,𝑠𝑡+1⋯𝑉𝜋𝑠𝑡𝑉𝜋𝑠𝑡𝑉𝜋𝑠𝑡+1𝑉𝜋𝑠𝑡+1𝑉𝜋𝑠𝑡=𝑉𝜋𝑠𝑡+1+𝑟𝑡𝑉𝜋𝑠𝑡−𝑉𝜋𝑠𝑡+1𝑟𝑡-39/73强化学习Critic两种计算方法对比两个方法的对比:𝑉𝜋𝑠𝑎𝑉𝜋𝑠𝑎𝐺𝑎方差会较大无偏估计𝑉𝜋𝑠𝑡𝑉𝜋𝑠𝑡𝑉𝜋𝑠𝑡+1𝑉𝜋𝑠𝑡+1𝑟+方差比较小有偏估计40/73强化学习AC算法𝛻𝑅𝜃≈1𝑁𝑅𝜏𝑛𝛻𝑙𝑜𝑔𝑝𝑎𝑡𝑛|𝑠𝑡𝑛,𝜃𝑇𝑛𝑡=1𝑁𝑛=1𝜃𝑛𝑒𝑤←𝜃𝑜𝑙𝑑+𝜂𝛻𝑅𝜃𝑜𝑙𝑑可以用Critic得到𝑟𝑡𝑛−𝑉𝜋𝜃𝑠𝑡𝑛−𝑉𝜋𝜃𝑠𝑡+1𝑛AdvantageFunction:根据Critic计算𝜋𝜃得到的偏差𝑟𝑡𝑛采取𝑎𝑡𝑛之后得到的立即回报𝑟𝑡𝑛如果是正值增加采取𝑎𝑡𝑛的几率如果是负值减少采取𝑎𝑡𝑛的几率增加一个Baseline41/73强化学习Qfunction原理𝑄𝜋s𝑄𝜋𝑠,𝑎数值a