您的位置:首页 > 其它

推荐系统根据最近浏览进行推荐

2014-06-29 17:30 183 查看
前些日子,公司要求做推荐系统,不言而喻,推荐系统对于电商来说是很有好处的。当然我们是刚开始做,还得从简单的开始做,首先第一版是根据用户最近浏览的进行推荐。接下来,可能要根据相似用户进行相似用户的推荐。这样还要对会员进行分等级。所以后面的工作还有很多。

博客是个好东西,我热衷于博客记录下我做过的每一件事。

实现的过程如下:

流程图:





思路:

实现的步骤为:
    1、得到用户信息。
技术实现:抓取用户最近浏览的一款商品的 SKUid;同时获取用户的UV(独立访客),这样用户一开网页我们就知道是哪个用户了。  

 
    2、对用户浏览的商品分析出相似商品。
技术实现:拿到SKUid进行分析相同类目(Cid)下的SKUid。这样获得了商品的相似度。然后再根据价格进行排序,取价格最靠近当前浏览的十个SKUid。

    3、页面展示:
技术实现:分析完数据后,我们根据UV(独立访客)给用户推荐同一类目下价格接近的商品。js文件将会将推荐的商品在页面渲染出来。

过程中遇到的问题:

      问题一:

  分析器5秒跑一次,但是每一个新UV进来,就会往数据库多加一条数据。数据量大了,分析器分析起来就慢了;

     解决办法:

        增加一个字段为存放时间戳,当新增一条数据,存一个时间戳,如果该用户继续浏览另一个ITEM页面,即更新skuid、价格、等信息外,还要更新保存的时间戳为当前的时间,这样其实就好办了,我就只分析当前时间就在最近五分钟左右的数据。因为这五分钟的用户都是最近的用户,还有正在浏览页面的用户。这样就解决了分析器跑不动的问题。也过滤掉了重复分析的问题。

    问题二:

       毫无疑问,这样下去表会越来越大,查询的性能也会慢慢降低。

    解决办法:

       方案一: 这样其实我们可以另外建一张表,只用来保存结果的表。或者就两个字段,一个是会员名,一个就是推荐的skuid信息。不是会员的用户我们只保存最近的两三天的推荐记录。

      方案二:不建表,将结果保存到memcache。保质期为一个月。

   问题三:

     怎样防止被刷;

   解决方案:

     添加一个字段,每次该条记录变动一次,添加的字段加一,当天超过一千的,进行屏蔽。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  推荐系统
相关文章推荐