发明名称 一种基于马尔科夫决策过程模型的商品推荐方法
摘要 一种基于马尔科夫决策过程模型的商品推荐方法,包括如下步骤:1)准备阶段;2)初始模型生成阶段;读取状态集合C中一个子序列即状态s及商品集合中的一个商品r,计算状态s迁移到后继状态s·r迁移概率,包括推荐商品r的tr<sub>MDP</sub>(s,r,s·r)和推荐其它商品r′的tr<sub>MDP</sub>(s,r′,s·r),生成状态迁移函数;3)推荐阶段;获取当前用户最近购买或浏览记录;根据记录生成当前用户状态;获取产生最大收益的推荐项,将该推荐项返回给当前用户;记录推荐项以及用户的购买或浏览选择项,生成状态‑推荐‑选择日志;4)线下模型更新阶段;间隔固定时间T,进行线下模型更新。
申请公布号 CN106447463A 申请公布日期 2017.02.22
申请号 CN201610920407.5 申请日期 2016.10.21
申请人 南京大学 发明人 刘峰;蔡慧;刘劭;罗瑶;文煊义
分类号 G06Q30/06(2012.01)I;G06N7/00(2006.01)I 主分类号 G06Q30/06(2012.01)I
代理机构 南京瑞弘专利商标事务所(普通合伙) 32249 代理人 陈建和
主权项 一种基于马尔科夫决策过程模型的商品推荐方法,其特征在于包括如下步骤:1)准备阶段a)从电商平台获取数据集,该数据集包括两部分:用户购买数据集(购买记录)以及从网站日志中获取的用户浏览路径记录;b)进行数据过滤,生成训练数据。数据过滤的标准为:过滤购买或浏览次数少于N次的商品项数据(本发明中N取100),过滤购买或浏览记录只有一个商品项的用户数据;c)结束准备阶段;2)初始模型生成阶段a)读取步骤1‑b)中生成的训练数据,解析并记录每个商品,以r表示,所有商品组成集合R,R={r<sub>i</sub>};解析用户日志,生成用户购买序列集合C<sub>buy</sub>,用户浏览序列集合C<sub>view</sub>,父集合C=C<sub>buy</sub>∪C<sub>view</sub>,C={s<sub>i</sub>},父集合C中的每个子序列s(称为状态)包含k个商品项,若s的最后一个商品项为购买商品,则s被划分进购买序列集合C<sub>buy</sub>,若s的最后一个商品项为浏览商品,则s被划分进浏览序列集合C<sub>view</sub>;b)读取状态集合C中一个子序列即状态s及商品集合中的一个商品r,计算状态s迁移到后继状态s·r迁移概率,包括推荐商品r的tr<sub>MDP</sub>(s,r,s·r)和推荐其它商品r′的tr<sub>MDP</sub>(s,r′,s·r),生成状态迁移函数;c)重复步骤b)直到商品集合中的所有商品处理完毕;d)重复步骤b),c)直到状态集合中所有状态被处理完毕;e)读取状态集合C中的一个状态s,计算在该状态下的最佳推荐项并存储;f)重复步骤e)直到集合中所有状态被处理完毕;g)结束模型生成阶段;3)推荐阶段a)获取当前用户最近购买或浏览记录;b)根据记录生成当前用户状态;c)获取产生最大收益的推荐项,将该推荐项返回给当前用户;d)记录推荐项以及用户的购买或浏览选择项,生成状态‑推荐‑选择日志;e)重复步骤a),b),c)直到当前用户退出会话;f)结束推荐阶段;4)线下模型更新阶段a)间隔固定时间T,进行线下模型更新;b)结束线下模型更新阶段;其中所述步骤2‑a)所述的子序列s:1)从训练数据中获取购买或浏览商品路径x<sub>1</sub>,x<sub>2</sub>,…,x<sub>n</sub>(n为商品购买或浏览总量),将该路径按顺序分解为多个子序列&lt;x<sub>1</sub>,…,x<sub>k</sub>&gt;,&lt;x<sub>2</sub>,…,x<sub>k+1</sub>&gt;,…,&lt;x<sub>n‑k+1</sub>,…,x<sub>n</sub>&gt;,每个子序列称为状态,每个状态中包含了k个商品;2)结束;其中所述步骤2‑b)所述的后继状态s·r:1)后继状态s·r的第1项到第k‑1项的序列与初始状态s的第2项至第k项的序列保持一致,表示为初始状态s:&lt;x<sub>1</sub>,…,x<sub>k</sub>&gt;,后继状态s·r:&lt;x<sub>2</sub>,…,x<sub>k</sub>,r&gt;;2)结束;其中所述步骤2‑b)所述的状态迁移函数:1)根据训练数据中的状态集合C,使用极大似然估计方法计算初始转移概率如下<img file="FDA0001135928750000021.GIF" wi="1166" he="87" />记为tr<sub>predict</sub>(s,s·r),其中count(&lt;x<sub>1,</sub>,x<sub>2</sub>,…,x<sub>k</sub>&gt;)表示为序列x<sub>1,</sub>,x<sub>2</sub>,…,x<sub>k</sub>在数据集中出现的次数;2)考虑到商品推荐对用户产生的影响,对初始转移概率做如下修正:a)tr<sub>MDP</sub>(s,r,s·r)=α<sub>s,r</sub>·tr<sub>predict</sub>(s,s·r),其中<img file="FDA0001135928750000022.GIF" wi="555" he="95" /><img file="FDA0001135928750000023.GIF" wi="240" he="94" />为购买商品r的概率,ω为极小的常量(本发明中ω取<img file="FDA0001135928750000024.GIF" wi="75" he="82" />),count(r)表示商品r在训练数据集中出现的次数;b)tr<sub>MDP</sub>(s,r′,s·r)=β<sub>s,r</sub>·tr<sub>predict</sub>(s,s·r),r′≠r,其中<img file="FDA0001135928750000025.GIF" wi="451" he="103" />α<sub>s,r</sub>&lt;1,p(s·r|s)为在状态s下购买商品r的概率。若计算得出的β为负数,则将其设置为一个小的正值(本发明中取<img file="FDA0001135928750000026.GIF" wi="62" he="79" />),再对概率进行标准化;c)结束;其中所述步骤2‑e)所述的最佳推荐项的计算:1)使用策略迭代方法进行求解最佳推荐项r=π(s),求解过程如下所示:a)初始推荐策略π<sub>0</sub>(s<sub>0</sub>)=argmax<sub>r∈R</sub> Rwd(s<sub>0</sub>,r),Rwd(s<sub>0</sub>,r)表示在状态s<sub>0</sub>下推荐r的回报,argmax<sub>r∈R</sub> Rwd(s<sub>0</sub>,r)表示在所有推荐的r中选择回报值最大的;b)根据历史策略计算值函数,并更新策略:i.<img file="FDA0001135928750000027.GIF" wi="1006" he="79" />ii.<img file="FDA0001135928750000028.GIF" wi="1078" he="71" />其中V(s)是状态s的值函数,γ∈[0,1)为折扣因子(本发明中γ取0.6),状态立即回报值Rwd(s,r)的计算规则如下:i.状态s和选择推荐项r生成的后继状态s·r只出现在集合C<sub>buy</sub>中,Rwd(s,r)=μReward(r),μ&gt;1(本发明中μ取1.5);ii.状态s和选择推荐项r生成的后继状态s·r只出现在集合C<sub>view</sub>中,Rwd(s,r)=νReward(r),ν∈[0,1)(本发明中ν取0.5);iii.状态s和选择推荐项r生成的后继状态s·r在集合C<sub>buy</sub>和集合C<sub>view</sub>中均有出现,Rwd(s,r)=(μ+ν)Reward(r);其中Reward(r)是由电商平台给出的关于商品项r的净利润;c)重复步骤b)直到收敛到最佳策略,生成最佳推荐项;2)结束。
地址 210093 江苏省南京市鼓楼区汉口路22号