推荐系统实战:ch2 利用用户行为数据

ch2 利用用户行为数据

为更好的对每个用户服务,需要深入挖掘用户的行为数据。用户的行为不是随机的,其中蕴含有模式和规律。推荐算法的任务就是在数据中寻找这些规律,提高用户体验。基于用户行为数据的推荐算法是推荐系统中重要的算法,又称为协同过滤算法。

2.1 用户行为数据简介

用户行为在推荐系统中一般分为两种:显性反馈数据和隐形反馈数据。显性反馈行为明确表示用户的洗好,比如直接让用户对物品进行评分和分类。隐式反馈行为指不明确用户喜好的行为,比如用户的页面浏览行为。

2.2 用户行为分析

  • 用户活跃度和物品流行度的分布
  • 用户活跃度和物品流行度的关系
    • 新用户倾向于热门物品,老用户倾向于冷门物品。

给予用户行为数据设计的推荐算法一般称为协同过滤孙发,如基于领域的方法(Neighborhood-based)、隐语义模型(Latent factor model)、给予图的游走算法(Random walk on graph)。基于领域的方法是最常用算法,主要包含:

  • 基于用户的协同过滤算法:给用户推荐相似用户喜欢的物品
  • 给予物品的协同过滤算法:给用户推荐之间喜欢物品的相似物品

2.3 实验设计和算法评测

这里讨论的是 TopN 问题

2.3.1 数据集

选择MovieLens数据集。

2.3.2 实验设计

将数据集分为M份,在M-1部分进行训练,并在剩余部分进行预测。进行M次实验,求平均值。

2.3.3 评测指标

![](http://latex.codecogs.com/gif.latex?$$Recall=\frac{\sum_{u \in U}|R(u)\bigcap T(u)|}{\sum_{u \in U}|T(u)|}$$)

![](http://latex.codecogs.com/gif.latex?$$Precision=\frac{\sum_{u \in U}|R(u)\bigcap T(u)|}{\sum_{u \in U}|R(u)|}$$)

![](http://latex.codecogs.com/gif.latex?$$COverage=\frac{|U_{u \in U}R(u)|}{|I|}$$)

2.4 基于领域的方法

2.4.1 基于用户的协同过滤算法

基于用户的协同过滤算法是最古老的算法,也是最基础的算法。

1.基础算法

  • 找到与目标用户相似的用户集合。
  • 找到级和中用户喜欢的但没有听说的物品。

这里的关键在如何计算用户的相似度,协同过滤主要利用用户行为的相似度来计算。给定用户u和用户v,N(u)定义为用户u有过正反馈物品的集合。可用Jaccard计算u和v的相似度:

![](http://latex.codecogs.com/gif.latex?$$w_{uv} = \frac{|N(u)\bigcap N(v)|}{|N(u)\bigcup N(v)|}$$)

或使用余弦相似度计算:

![](http://latex.codecogs.com/gif.latex?$$w_{uv} = \frac{|N(u)\bigcap N(v)|}{\sqrt{|N(u) N(v)|}}$$)

得到用户相似度后,UserCF会给用户推荐与他最相似K个用户喜欢的物品。使用如下公式计算用户u对物品i的兴趣:

=\sum_{v\in S(u, K) \bigcap N(i)}w_{uv}r_{vi}$$)

其中S(u, K)为与用户u最相似的K个用户,N(i)是物品i有过行为的用户集合,$w_{uv}$为用户u和用户v之间的相似度。

2.用户相似度的改进

如果两个用户都买了热门商品,并不能表示他们之间很相似。该进的相似度如下:

![](http://latex.codecogs.com/gif.latex?$$w_{uv}=\frac{\sum_{i \in N(u) \bigcap N(v)}\frac{1}{log1+|N(i)|}}{\sqrt{|N(u)N(v)|}}$$)

2.4.2 基于物品的协同过滤算法

1.基础算法

给用户推荐和他们之间喜欢的物品相似的物品,但ItemCF并不计算物品内容属性的相似度,而是通过分析用户行为记录来计算物品之间的相似度。

  • 计算物品之间的相似度
  • 根据物品相似度得到推荐列表

物品相似度定义为:

![](http://latex.codecogs.com/gif.latex?$$w_{ij}=\frac{|N(i) \bigcap |N(j)|}{\sqrt{|N(i)|}}$$)

N(i)表示喜欢物品i的用户数,$N(i) \bigcap |N(j)$表示喜欢物品i和物品j的用户数。但是如果物品j非常热门,则公式会造成任何物品都会和热门物品有高的相似度,改进的公式如下:

![](http://latex.codecogs.com/gif.latex?$$w_{ij}=\frac{|N(i) \bigcap |N(j)|}{\sqrt{|N(i)N(j)|}}$$)

在物品协同过滤中,两个物品之间的相似度是因为它们被很多用户喜欢。如果每个用户兴趣都局限在某几个方面,因此如果某两个物品属于同一个用户列表,则两个物品属于有限的领域;如果两个物品同时属于很多用户的列表,则它们很可能属于同一个领域,有较高的相似度。

得到物品相似度后,使用如下公式计算用户u对物品i的兴趣:

=\sum_{v \in N(u) \bigcap S(j, k)}w_{ij}r_{ui}$$)

2.用户度对物品相似度的影响

即活跃用户对物品相似度的贡献小鱼不活跃用户:

![](http://latex.codecogs.com/gif.latex?$$w_{ij}=\frac{\sum{u \in N(i) \bigcap |N(j)}\frac{1}{log1+|N(u)|}}{\sqrt{|N(i)N(j)|}}$$)

3.物品相似度归一化

![](http://latex.codecogs.com/gif.latex?$$w'{ij}=\frac{w{ij}}{\max\limits_j w_{ij}}$$)

归一化的好处在于增加推荐的准确度,还提高推荐的覆盖率和多样性。

2.4.3 UserCF和ItemCF的比较

UserCF给用户推荐和他有共同爱好的物品,ItemCF给用户推荐和他之间喜欢物品相似的物品。UserCF推荐侧重于反应和用户兴趣相似的小群体的特点,而ItemCF推荐侧重于维系用户历史兴趣。

UserCF反应的是相似群体中物品热门,ItemCF反应的是自己的兴趣传承。

2.5 隐语义模型

2.5.1 基础算法

通过隐含特征联系用户兴趣和物品:对物品进行分类,在分类中挑选他可能喜欢的物品。从数据本身出发,自动找到物品分类,隐语义模型本质上是类似的。

LFM通过如下公式计算用户u对物品i的兴趣:

=r_{ui}=p^T_u q_i=\sum^F_{f=1}p_{u,k}q_{i,k}$$)

其中$p_{u,k}$衡量用户u的兴趣与第k个隐含类的关系;$q_{i,k}$度量了第k个隐含类与物品i之间的关系。

LFM在评分数据上有了很好的精度,也可以在隐含反馈上进行应用。

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

推荐阅读更多精彩内容