zoukankan      html  css  js  c++  java
  • 推荐系统依据近期浏览进行推荐

    前些日子,公司要求做推荐系统,不言而喻,推荐系统对于电商来说是非常有优点的。当然我们是刚開始做,还得从简单的開始做,首先第一版是依据用户近期浏览的进行推荐。接下来,可能要依据相似用户进行相似用户的推荐。这样还要对会员进行分等级。所以后面的工作还有非常多。

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

    实现的步骤例如以下:

    流程图:



    思路:

    实现的步骤为:
        1、得到用户信息。
    技术实现:抓取用户近期浏览的一款商品的 SKUid;同一时候获取用户的UV(独立訪客),这样用户一开网页我们就知道是哪个用户了。  
     
        2、对用户浏览的商品分析出相似商品。
    技术实现:拿到SKUid进行分析同样类目(Cid)下的SKUid。这样获得了商品的相似度。然后再依据价格进行排序,取价格最靠近当前浏览的十个SKUid。


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


    过程中遇到的问题:

          问题一:

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

         解决的方法:

            添加一个字段为存放时间戳,当新增一条数据,存一个时间戳,假设该用户继续浏览还有一个ITEM页面,即更新skuid、价格、等信息外,还要更新保存的时间戳为当前的时间,这样事实上就好办了,我就仅仅分析当前时间就在近期五分钟左右的数据。由于这五分钟的用户都是近期的用户,还有正在浏览页面的用户。这样就攻克了分析器跑不动的问题。也过滤掉了反复分析的问题。


        问题二:

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

        解决的方法:

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

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


       问题三:

         如何防止被刷;

       解决方式:

         加入一个字段,每次该条记录变动一次,加入的字段加一,当天超过一千的,进行屏蔽。


  • 相关阅读:
    【】C# Sealed、new、virtual、abstract、override的理解
    【】C# Sealed、new、virtual、abstract、override的理解
    C#中的堆和栈理解
    C#中的堆和栈理解
    C#中的堆和栈理解
    C#编译和运行过程图例
    C#编译和运行过程图例
    C#编译和运行过程图例
    【codeforces 257D】Sum
    【codeforces 348B】Apple Tree
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3987598.html
Copyright © 2011-2022 走看看