Quantcast
Channel: IT社区推荐资讯 - ITIndex.net
Viewing all articles
Browse latest Browse all 15843

基于Item的时序协同过滤算法

$
0
0

基于Item的时序协同过滤算法技术方案包括两个步骤:

(1)提取用户商品点击日志、搜索点击日志和商品基本信息等基本数据。然后,去除噪音数据(譬如每天点击商品数达到数以万计的用户)和缺失值数据,构建时序点击流数据,即记录用户每天按照点击时间先后顺序排序的商品行为数据。从而得到如下数据结构:<用户id,商品id,点击时间,点击日期>;

(2)时序协同过滤算法构建模块,根据数据预处理阶段的得到的商品点击时序数据集,在ODPS平台上实现该算法算法,计算商品之间的相关性。

时序协同过滤算法

步骤1:计算商品之间相关性

Map阶段

输入:key(行记录标识), value(用户id,商品id,点击时间,点击日期)

输出:key(用户id,点击日期,点击时间), value(商品id,点击时间)

Reduce阶段:

输入:key(用户id,点击日期,点击时间), value(商品id,点击时间)

输出:ODPS Record(点击日期,商品1, 商品2, 相关性分数)

计算相关性分数算法:

  1. 计算每个用户每天的点击时间序列对,按照升序排列,即<商品1,点击时间1>,<商品2,点击时间2>,…,<商品n,点击时间n>;
  2. 在每个用户的商品点击序列中,如果两两商品时间序列对的点击时间差小于等于两个小时,则表示这两个商品具备相关性;计算出有效时序商品序列<商品1,商品2,商品3,…,商品n>;
  3. 计算商品之间的相关性,公式如下:   

    ,其中score表示相关性分值,delta表示任意两个商品之间的时间排序位置之差

步骤2:计算每天商品之间相关性均值,减少噪声数据,譬如用户无意图的商品点击序列

Map阶段

输入:key(行记录标识), value(点击日期,商品1, 商品2, 相关性分数)

输出:key(点击日期,商品1, 商品2), value(相关性分数)

Reduce阶段

输入:key(点击日期,商品1, 商品2), value(相关性分数)

输出:ODPS Record(商品1, 商品2, 相关性分数均值)

步骤3:计算每月商品之间的相关性,减少噪声数据,去除异常的相关性数据

Map阶段

输入:key(行记录标识), value(商品1, 商品2, 相关性分数)

输出:key(商品1, 商品2), value(相关性分数)

Reduce阶段

输入:key(商品1, 商品2), value(相关性分数)

输出:ODPS Record(商品1, 商品2, 相关性分数均值)

参考:

http://blog.sina.com.cn/s/blog_61c463090102uwqu.html

http://www.aliyun.com/ odps 


  青春就应该这样绽放   游戏测试:三国时期谁是你最好的兄弟!!   你不得不信的星座秘密

Viewing all articles
Browse latest Browse all 15843

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>