实时推荐模型的算法设计
2020-12-26 04:31
标签:就是 list 集合 ali 之间 接下来 函数 结果 个数 当用户u 对商品p 进行了评分,将触发一次对u的推荐结果的更新。对于用户u 来说,他与p 最相似的商品们之间的推荐强度将发生变化,所以选取与商品p 最相似的K 个商品作为候选商品。每个候选商品按照“推荐优先级”这一权重作为衡量这个商品被推荐给用户u 的优先级。 这些商品将根据用户u 最近的若干评分计算出各自对用户u 的推荐优先级,然后与上次对用户u 的实时推荐结果的进行基于推荐优先级的合并、替换得到更新后的推荐结果。 具体来说: 首先,获取用户u 按时间顺序最近的K 个评分,记为RK;获取商品p 的最相似的K 个商品集合,记为S; 然后,对于每个商品qS ,计算其推荐优先级,计算公式如下: 其中: 表示用户u 对商品r 的评分; sim(q,r)表示商品q 与商品r 的相似度,设定最小相似度为0.6,当商品q和商品r 相似度低于0.6 的阈值,则视为两者不相关并忽略; sim_sum 表示q 与RK 中商品相似度大于最小阈值的个数; incount 表示RK 中与商品q 相似的、且本身评分较高(>=3)的商品个数; recount 表示RK 中与商品q 相似的、且本身评分较低(
公式的意义如下: 首先对于每个候选商品q,从u 最近的K 个评分中,找出与q 相似度较高(>=0.6)的u 已评分商品们,对于这些商品们中的每个商品r,将r 与q 的相似度乘以用户u 对r 的评分,将这些乘积计算平均数,作为用户u 对商品q 的评分预测即 然后,将u 最近的K 个评分中与商品q 相似的、且本身评分较高(>=3)的商品个数记为 incount,计算lgmax{incount,1}作为商品 q 的“增强因子”,意义在于商品q 与u 的最近K 个评分中的n 个高评分(>=3)商品相似,则商品q 的优先级被增加lgmax{incount,1}。如果商品 q 与 u 的最近 K 个评分中相似的高评分商品越多,也就是说n 越大,则商品q 更应该被推荐,所以推荐优先级被增强的幅度较大;如果商品q 与u 的最近K 个评分中相似的高评分商品越少,也就是n 越小,则推荐优先级被增强的幅度较小; 而后,将u 最近的K 个评分中与商品q 相似的、且本身评分较低(
最后,将增强因子增加到上述的预测评分中,并减去削弱因子,得到最终的q 商品对于u 的推荐优先级。在计算完每个候选商品q 的后,将生成一组的列表updatedList: 而在本次为用户u 实时推荐之前的上一次实时推荐结果Rec 也是一组的列表,其大小也为K: 接下来,将updated_S 与本次为u 实时推荐之前的上一次实时推荐结果Rec进行基于合并、替换形成新的推荐结果NewRec: 其中,i表示updated_S 与Rec 的商品集合中的每个商品,topK 是一个函数,表示从 Recupdated _ S中选择出最大的 K 个商品,cmp = 表示topK 函数将推荐优先级值最大的K 个商品选出来。最终,NewRec 即为经过用户u 对商品p 评分后触发的实时推荐得到的最新推荐结果。 总之,实时推荐算法流程流程基本如下: (1)用户u 对商品p 进行了评分,触发了实时推荐的一次计算; (2)选出商品p 最相似的K 个商品作为集合S; (3)获取用户u 最近时间内的K 条评分,包含本次评分,作为集合RK; (4)计算商品的推荐优先级,产生 将updated_S 与上次对用户u 的推荐结果Rec 利用公式(4-4)进行合并,产生新的推荐结果NewRec;作为最终输出。 实时推荐模型的算法设计 标签:就是 list 集合 ali 之间 接下来 函数 结果 个数 原文地址:https://www.cnblogs.com/liangyan131/p/13037542.html