项目简介

在OSSEAN平台中增加对用户操作的记录,为推荐系统的完善做铺垫

3675?1464853545
【功能】 用户行为跟踪记录_汇报7 正常
指派给   张迅晖
发布时间: 01/27/2016 23:21
更新时间:01/28/2016 23:10
主要功能基本完成,明天进行测试,过程中发现未完成功能、错误功能,同时针对之前遇到的难点问题再仔细思考一下。
回复 ︿ (2)
  • 用户头像
    张迅晖 3年前

    尹 刚 写到:
    下一步重点是不是一边改进推荐算法,一边据此评估推荐算法?
    是的尹老师

  • 用户头像
    尹刚 3年前

    下一步重点是不是一边改进推荐算法,一边据此评估推荐算法?

0?1470885445
登录后可添加回复
3675?1464853545
【功能】 用户行为跟踪记录_汇报6 正常
指派给   张迅晖
发布时间: 01/26/2016 22:17
更新时间:01/26/2016 22:27

今天完成的用户记录信息如下:

  1. 用户点击相似软件操作
  2. 用户点击相关软件操作
  3. 用户点击项目标签“更多”操作
  4. 用户点击项目标签操作
  5. 用户查询帖子后点击帖子操作
  6. 对查询到的帖子点击记录增加按时间、回帖、关联度排序

回复 ︿ (1)
  • 用户头像
    王涛 3年前

    进展很快!

0?1470885445
登录后可添加回复
3675?1464853545
【功能】 用户行为跟踪记录_汇报5 正常
指派给   张迅晖
发布时间: 01/25/2016 22:35
更新时间:01/26/2016 15:00

今天在和师兄讨论过后,实现了以下行为的追踪和记录:

  1. 首页查询框查询操作
  2. 每个页面搜索框查询项目操作
  3. 每个页面搜索框查询帖子操作
  4. 搜索项目后点击项目链接操作
  5. 点击项目列表按钮操作
  6. 点击项目列表按钮后对项目链接的点击操作
  7. 首页点击云标签查询项目操作
  8. 点击项目详情页面source链接操作
对于代码模块化,暂时没有想到好的方法,因为各个操作获取的参数之间差别比较大,而且需要在页面标签对应位置添加相应函数调用(添加到的标签不同:有rails页面标签、普通html标签、ruby代码生成的标签、jquery代码生成的标签)。

回复 ︿ (3)
  • 用户头像
    尹刚 3年前

    很好!效率第一,注意代码质量,代码结构,确保平台能够易于传承、易于学习。

  • 用户头像
    张迅晖 3年前

    尹 刚 写到:
    如何实现的?

    用的ajax,昨天的时候与王涛师兄也讨论了后台统一实现的方法,但是无法区分很多跳转相同的操作。

  • 用户头像
    尹刚 3年前

    如何实现的?

0?1470885445
登录后可添加回复
3675?1464853545
指派给   张迅晖
发布时间: 01/24/2016 17:25
更新时间:01/24/2016 18:05

程序已经写好 但是发现了一个问题

如果在后台统计的话 很多操作都是跳转到一个处理函数中的(比如所有的点击项目操作) 这样我们就没法准确区分具体对应到哪个操作了

比如点击项目操作包含一下几种:

  1. 直接点击项目列表按钮后点击项目;
  2. 查询结果列表中点击项目;
  3. 在首页云标签中点击项目;
  4. 直接输入URL地址点击项目;
  5. 项目详情页中相似软件、相关软件列表点击项目;
  6. 按标签查询后点击项目

因为传到后台的只有项目id一个参数 所以不好区分。

目前的解决方法

仅将点击项目操作分为两种:查询后点击和无关键词点击,用到session存储查询关键词,但是这样区分不知道有没有把所有的情况都考虑进去,可能区分不准确。

准备实施的解决方法:通过在前台页面中用异步处理Ajax完成每个对应的操作。

好处:这样应该可以保证每个操作都准确区分出来 问题:工作量大、不容易扩展

回复 ︿ (2)
  • 用户头像
    尹刚 3年前

    Ajax很有用,但用其实现行为记录可能会过于复杂,因为可能会和UI代码耦合,我的一个初步建议:

    1、列出后台你需要监控的API

    2、在这些API的第一行,调用你的统一的监控方法,比如UserActionLogging(GetCurrentMethod(), CurrentUser(),CurrentPrject())

    这样,是不是能满足你的监控要求?仅供参考。

  • 用户头像
    张迅晖 3年前

    还有一个问题让我更加想用Ajax解决:我们的界面中大部分链接都是点击后打开新的tab显示,这样导致原tab仍然可以处理,所以用session存储的信息不能区分什么时候消除、什么时候保留,导致就不能用session中存储的信息判断具体是对应什么操作。但前台的操作对应每个界面,同一界面中对应同一html元素的操作是相同的,可以很好解决这个问题。

0?1470885445
登录后可添加回复
3675?1464853545
指派给   张迅晖
发布时间: 01/23/2016 22:15
更新时间:01/24/2016 14:58

今天遇到两个问题:

1. 不知道如何获取列表页哪条记录这个信息(********

2. 本地没有完全的数据库 一些数据的记录暂时不能实现

我利用今天晚上的时间在本地导入完整的数据

回复 ︿ (5)
  • 用户头像
    尹刚 3年前

    @张迅晖(Nigel)‍  请注意用项目托管你的代码。创建版本库。

  • 用户头像
    张迅晖 3年前

    尹 刚 写到:
    这个考虑的非常好!这样就能记录下用户的行为,为以后评估推荐做好准备。注意所有点击都要记录时间。
    问题已经解决,考虑了时间属性。预计今天完成功能并上线

  • 用户头像
    尹刚 3年前

    这个考虑的非常好!这样就能记录下用户的行为,为以后评估推荐做好准备。注意所有点击都要记录时间。

0?1470885445
登录后可添加回复
3675?1464853545
【周报】 用户行为跟踪记录_汇报2 正常
指派给   张迅晖
发布时间: 01/22/2016 22:40
更新时间:01/23/2016 22:10

今天阅读了师兄给的论文,并且在网上找到一篇类似的论文(基于大规模日志分析的搜索引擎用户行为分析),两篇文章用的方法相同,都是记录用户操作,进行一些数据分析。

其中对于目前我的工作可以借鉴的有:

1. 将用户信息存储为log文件

2. 操作日志分为两类:用户查询日志、用户点击日志

3. 论文提到了记录的内容:

image

同时我在网上找到了修改rails默认日志输出的方法(https://github.com/roidrage/lograge),并且在rails中找到每个事件响应的入口。

明天我会实现用户行为日志输入的样例

请老师、师兄、师姐批评指正!

回复 ︿ (5)
  • 用户头像
    张迅晖 3年前

    尹 刚 写到:
    我指的是你的电子邮箱的截图,不是帖子的截图
    image

  • 用户头像
    尹刚 3年前

    我指的是你的电子邮箱的截图,不是帖子的截图

  • 用户头像
    张迅晖 3年前

    尹 刚 写到:
    @张迅晖(Nigel)‍  这个当然是bug,能否把这个邮件贴图一下?谢谢啦
    image我要回复

0?1470885445
登录后可添加回复
3675?1464853545
【周报】 用户行为跟踪记录_汇报1 正常
指派给   张迅晖
发布时间: 01/21/2016 22:09
更新时间:01/22/2016 17:31

今天工作进展汇报如下:

  1. 熟悉了rails的session和cookie机制 知道如何修改cookie的生命周期
  2. 创建了第一版用户数据记录表结构(详细设计情况见附件),主要思路是分为两种表(第一种表记录那个用户在什么时间进行了什么操作;第二种表记录每种操作的详细数据,每类操作对应一张表)
  3. 本地rails环境实现了一个测试(用户搜索项目)
需要解决的问题:

  1. 今天完成了工作后和范强师兄讨论了一下我的思路,强哥的想法是将用户行为存储到日志文件中,因为数据库除了存储数据外还会存储另外的一些类似索引、外键的结构性信息,会急速消耗存储空间
  2. 我认为cookie在每次进行操作后都需要刷新它设置的起始时间以使cookie可以在该用户最后一次操作后的生命周期时间后失效(具体如何刷新 我还要查一下)
希望明天有时间可以和师兄讨论一下,再重新梳理一下思路、探讨数据表设计的问题。

( 46.7 KB) 张迅晖, 01/21/2016 22:08
回复 ︿ (3)
  • 用户头像
    尹刚 3年前

    @王涛(wangtao)‍  有道理!但要统筹规划好,平台的基本功能要好用才行,否则只能邀请人来用。平台的推荐功能和评价机制可以同步进行,不断迭代。不能偏废。

  • 用户头像
    王涛 3年前

    目前来看没有多少访问用户,但是我觉得这个工作应该要做。一方面,后面系统功能完善且宣传推广后应该会有较多用户使用;另一方面,后续基于OSSEAN开展排序、推荐研究结果的评价必须要基于平台来做。比如通过要求学生做一次检索或者使用OSSEAN的作业然后对他们实际访问行为的分析,从而对OSSEAN搜索排序效果和推荐效果的好坏进行评价,都需要基于用户访问行为进行分析才能得到。


    现在很多搜索和推荐研究的结果评价很难让人信服的一个原因是没有实际系统难以评价,现在我们有这有一个平台,能够拿到实际访问数据那么搜索和推荐结果的评价将是提升研究工作可信度的一个非常重要的亮点。

  • 用户头像
    尹刚 3年前

    我觉得你可以先分析一下目前的session日志,看看到底有多少独立session访问了我们的ossean平台,如果目前根本就没有用户访问我们平台,那么这个工作就要重新定位了。

0?1470885445
登录后可添加回复
3675?1464853545
【功能】 OSSEAN集成用户行为的跟踪 正常
指派给   张迅晖
发布时间: 01/20/2016 22:15
更新时间:01/21/2016 21:56

目的:为了辅助后续各种个性化功能的实现(以推荐系统为例)

目前了解:


  1. rails日志文件中记录了所有用户操作的记录(默认使用自带的ActiveSupport中的logger记录);
  2. rails中获取session id必须使用cookie传递,不可通过URL传递(rails框架机制,为了安全);
  3. session和cookie都是只能记录少量的数据信息,cookie中的信息不可能永久存储在本地,session中的信息如果不持久化到文件或数据库中也会在生命周期结束后消失。
目前的解决方案及存在的问题:



  1. 将session id对应的用户行为信息持久化到数据库中;
  2. 了解ActiveSupport输出日志的机制,获取我们需要的用户操作信息;或者通过对页面用户操作的对应时间进行后台处理,获取我们需要的相应信息(前者目前没有查到应该在哪儿修改,怎么修改;后者需要考虑每个页面对应的用户操作,比较复杂)。
  3. 由于cookie会在一定时间后消失,因此之前cookie中存储的session id也会消失,这就会导致问题:浏览器新创建的cookie(新session id)如何和我数据库中之前创建的session id对应起来。
请老师、师姐批评指正


回复 ︿ (6)
  • 用户头像
    张迅晖 3年前

    Description updated (diff)

    Status changed from 新增 to 正在解决

    % Done changed from 0 to 10

  • 用户头像
    张迅晖 3年前

    cookie的过期时间是可以设置的 没有上限要求(可以设置好几年),但是没有永不过期的设置。我明白师兄的意思了@wangtao。

    优秀硕士的事情我会再详细问一下@jacknudt。

  • 用户头像
    王涛 3年前

    cookie多久会消失?只要能保证同一个人在持续访问期间cookie不消失就够了,因为我们只需要记录用户一次持续访问的行为,对于隔了很久再次访问的不需要跟上一次访问行为关联起来

0?1470885445
登录后可添加回复
问题和建议
还能输入50个字符 Submit

加入QQ群

关注微信APP


×