推荐系统实践-利用用户行为数据(上)

此文是根据《推荐系统实践》部分整理而来。

PART 1

第一个问题是

用户行为数据有哪些?

用户行为数据最简单的存在形式就是日志,日志记录了用户的各项行为包括网页浏览、购买、点击、评分、评论等等。这些数据可以横向分析,比如某个页面的点击率;也可以纵向分析,比如某一个用户的操作流程。

用户行为按照行为划分分为两种:

  • 显性反馈行为
  • 隐形反馈行为
显性反馈行为

显性反馈行为主要是各个产品的功能点,比如评分、点赞、分享等等,这些功能的设计让用户明确表达了自己的想法,但是设计的方式也可能会造成偏差。比如说评分功能,对于外卖、打车等产品,设置1~5分,能够得到的更多就是1分或者5分(我个人推测的,并不严谨),因为考虑到场景,我是想尽快达到目的地或者尽快叫到外卖吃,除非有特殊的情感需求,一般都不想打分,觉得可以就5分,不好就1分,因此2、3、4中间评分会出现的很少;如果是一些较为专业的平台如豆瓣,很多人都是看完电影后有强烈的动机去主动打分评价,因此相对而言用户更愿意去花精力打分甚至评论,这个分数的分布就相对于更加平均准确。

隐性反馈行为

隐性反馈主要是那些不能明确反应用户喜好的行为,最具有代表性的就是浏览行为,相对于显性反馈而言,隐性反馈虽然不明确,但是数据量更大。

对比

以下是显性和隐性反馈的对比:


Paste_Image.png

以下是显性反馈数据和隐性反馈数据的例子


Paste_Image.png

互联网中的用户行为有很多种,比如浏览网页、购买商品、评分、评论等等,本书给出了一种表达方式,将一个用户行为表示为6部分,即:

  • 产生行为的用户
  • 行为的对象
  • 行为的种类
  • 产生行为的上下文
  • 行为的内容
  • 行为的权重
    表格如下:


    Paste_Image.png

这里本人认为要注意一点:如果要得到更精确的粒度,还是要区分好每种行为的正反馈、负反馈甚至是误操作的可能性。比如分享和评论,不一定是正反馈,也可能是因为物品内容太烂而发声;还有产品设计上,如果点赞比踩的位置图标更明显,那么误操作的可能就会上升。所以在设计行为的权重的时候还需要切分更细的粒度,才能得到更准确的结果。

在很多时候我们并不使用统一结构表示所有行为,而是针对不同的行为给出不同表示(本人没有理解这部分)。一般来说,不同的数据集包含不同的行为,目前比较有代表性的数据集有下面几个:

  • 无上下文信息的隐性反馈数据集。每一条行为记录仅仅包含用户ID和物品ID;
  • 无上下文信息的显性反馈数据集。每一条记录包含用户ID、物品ID和用户对物品的评分;
  • 有上下文信息的隐性反馈数据集。每一条记录包含用户ID、物品ID和用户对物品产生行为的时间戳;
  • 有上下文信息的显性反馈数据集。每一条记录包含用户ID、物品ID、用户对物品的评分和评分行为发生的时间戳。

PART 2

接下来一个问题是:

用户行为有哪些普遍规律?

在利用用户行为数据设计推荐算法之前,研究人员需要对用户行为数据进行恩熙,了解数据中蕴含的一般规律,这样才能对算法的设计起到指导作用。主要分为两部分:

  • 用户活跃度和物品流行度的分布
  • 用户活跃度和物品流行度的关系
用户活跃度和物品流行度的分布

首先,互联网的很多数据分布都满足Power Law分布,在互联网领域也成为长尾分布:


Paste_Image.png

理解开来就是二八原则。同时用户行为也蕴含着这种分布,令fu(k)为对k个物品产生过行为的用户 , fi(k)为被k个用户产生过行为的物品数。那么,fu(k)和fi(k)都满足长尾分布:


Paste_Image.png

下面一张图展示了物品流行度的长尾分布,横坐标是物品的流行度K,纵坐标是流行度为K的物品的总数。这里,物品的流行度指对物品产生过行为的用户总数。


Paste_Image.png

下图展示了用户活跃度的长尾分布,横坐标是用户的活跃度K,纵坐标是活跃度为K的用户总数。这里,用户的活跃度为用户产生过行为的物品总数。


Paste_Image.png
用户活跃度和物品流行度的关系

一般来说,不活跃的用户要么是新用户,要么是只用过产品一两次的老用户,那么不同活跃度的用户喜欢的物品的流行度是否有差别?

一般认为,新用户倾向于浏览热门的物品,因为他们对产品还不熟悉,只能点击首页的热门物品;老用户会逐渐开始浏览冷门的物品。

下图展示了用户活跃度与物品流行度之间的关系,横坐标是用户活跃度,纵坐标是具有某个活跃度的所有用户评过分的物品的平均流行度:


Paste_Image.png

显示的结论是:用户越活跃,越倾向于浏览冷门的物品。

PART 3

最后一个问题:

如何设计实验评测算法?

在之前的一篇推荐系统实践-评测中介绍了三种评测方法:离线实验、用户调查和在线实验,并且介绍了评测的指标。这部分将通过离线实验方法评测算法,分为三小块:

  • 数据集
  • 实验设计
  • 评测指标
数据集

采用的数据集包含了6000多用户对4000多部电影的100万条评分,这个数据集是一个评分数据集,用户评分为1~5分。这块着重研究隐反馈数据集中的TopN推荐问题,因此忽略了数据集中的评分记录,也就是说,TopN的任务是预测用户会不会对某部电影评分,而不是预测用户在准备对某部电影评分的前提下会给电影评多少分。

实验设计

协同过滤算法(下一篇介绍)的离线实验一般如下设计。首先,将用户行为数据集按照均匀分布随机分成M份(这里取M=8),挑选一份作为测试集,将剩下的M-1份作为训练集。然后在训练集上建立用户的兴趣模型,并在测试集上对用户行为进行预测,统计出相应的评测指标。为了保证评测指标并不是过拟合的结果,需要进行M次试验,并且每次都使用不同的测试集,然后将M次试验测出的评测指标的平均值作为最终的评测指标。

评测指标

对用户u推荐N个物品(记作R(u)),令用户u在测试集上喜欢的物品集合为T(u),然后可以通过准确率/召回率评测推荐算法的精度:


Paste_Image.png
Paste_Image.png

召回率描述有多少比例的用户-物品评分记录包含在最终的推荐列表中,而准确率描述最终的推荐列表中有多少比例是发生过的用户-物品评分记录。

覆盖率反映了推荐算法发掘长尾的能力,覆盖率越高,说明算法中越能将长尾中的物品推荐给用户:


Paste_Image.png

覆盖率表示最终的推荐列表中包含多大比例的物品,如果所有的物品都被推荐给至少一个用户,那么覆盖率就是100%。

最后,还需要评测推荐的新颖度,这里用推荐列表中物品的平均流行度度量推荐结果的新颖度。如果推荐出的物品都很热门,说明推荐的新颖度较低,否则说明推荐结果比较新颖。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容