码迷,mamicode.com
首页 > 编程语言 > 详细

加入商品分类信息,考虑用户所处阶段的 图模型 推荐算法 Rws(random walk with stage)

时间:2015-04-27 00:20:42      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

场景:

一个新妈妈给刚出生的宝宝买用品,随着宝宝的长大,不同的阶段需要不同的物品。

这个场景中涉及到考虑用户所处阶段,给用户推荐物品的问题。

如果使用用户协同过滤,则需要根据购买记录,找到与用户处于同一阶段的用户。

不加入分类信息,单纯使用物品信息,则可能因为买了不同牌子的尿布,而判断为非相似用户,

所以加入商品分类信息

 

算法步骤:

1.   加入分类信息

技术分享

1)   根据时间将用户交易记录分成若干阶段技术分享(比如,近90天,近360-90天,...

2)   对于技术分享中的记录(技术分享中的技术分享为例),在向量技术分享技术分享的分量(即物品技术分享所属的类别路径)上加上1

对于记录技术分享,得到向量技术分享

对其进行L2正规化(每个分量除以技术分享

得到 技术分享

3)   合并各阶段向量技术分享

2.   生成相似度矩阵

2.1        用户相似度矩阵

基于物品的相似度 技术分享   技术分享为用户技术分享购买过的商品的集合

基于分类的相似度 技术分享

技术分享    技术分享用于控制两个相似度的权重

2.2        物品相似度

技术分享   技术分享为购买过商品技术分享的用户的集合

2.3        类别相似度

IC(information content)

技术分享     技术分享为类别技术分享下的商品销量占所有销量的比例

LCS(least common subsumer)

技术分享

技术分享   即为最近的共同祖先

技术分享 

3.   概率图模型求解

3.1        构建矩阵

技术分享  技术分享为用户相似度矩阵,技术分享为物品相似度矩阵,

技术分享为类别相似度矩阵,

技术分享为用户和产品的关系(若用户购买过产品,则为1,否则为0

技术分享为用户和类别的关系(若用户购买过该类别下产品,则为1,否则为0

技术分享为产品和类别的关系(若产品属于该类别,则为1,否则为0

graph Laplacian

技术分享  技术分享为对角矩阵,技术分享处为技术分享技术分享行的和

3.2        Random walk with restart

迭代下面公式直到收敛:

技术分享 技术分享为只有第技术分享个分量为1,其他分量都为0的向量,表示从第技术分享个用户处出发,初始技术分享

或者求解技术分享的逆矩阵,得到

技术分享 

4.   生成推荐

得到技术分享中最大的前k个分量技术分享

技术分享为用户,则将其最近购买的物品加入推荐列表中

技术分享为产品,则将产品加入推荐列表中

技术分享为类别,则将该类别下销量最好的几个加入推荐列表中

加入商品分类信息,考虑用户所处阶段的 图模型 推荐算法 Rws(random walk with stage)

标签:

原文地址:http://www.cnblogs.com/porco/p/4458765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!