书籍:推荐系统实战

第一章:好的推荐系统

1.1 什么是推荐系统?

        随着互联网发展,信息越来越多,我们逐渐进入到腾讯信息过载的时代。在这个时代,信息消费者如何找到自己感兴趣的信息以及信息生产者如何让自己的信息脱颖而出成为了一件困难的事。而推荐系统就是解决这一矛盾的工具。推荐系统基本任务是联系用户和物品、解决信息过载的问题。
        推荐系统分析用户历史行为给用户兴趣建模,从而主动给用户推荐他们感兴趣的信息。它适合的场景是用户不知道自己的兴趣所在,和分类查找以及关键字搜索有明显区别。因此,从某种意义上来说,推荐系统和搜索引擎、以及分类查找是互补的。
        推荐系统的本质是通过一定方式将用户与物品联系起来,比如上门3种方法:
1)像朋友咨询,比如最近看什么书好?这种方式称之为【社会化推荐】
2)根据自己的历史行为推荐,比如曾经看过篮球比赛,那系统就给你推荐篮球新闻,这种方式称之为【基于内容的推荐】
3)根据历史行为找到和自己相似的用户,把相似的用户看过的我没看过的东西推荐给我,这种方式称之为【协同过滤】

1.2 个性化推荐系统的应用

个性化推荐系统广泛应用在电子商务、电影和视频、音乐、社交网络、阅读、基于位置的服务,个性化邮件和广告系统中。机会所有的推荐系统都由前台页面、后台日志系统以及推荐算法系统3部分构成。

1.3 推荐系统的评测

一个完整好的推荐系统要考虑3个参与方的利益(用户、物品提供方、平台),实现三方共赢。
好的推荐系统不仅要预测用户行为,还要拓展用户的视野、帮助用户发现那些他们可能感兴趣,却不那么容易发现的东西。
推荐系统指标包括准确度、覆盖度、新颖度、惊喜度、信任度和透明度。这些指标可以离线计算,有些可以在线计算,有些必须通过问卷获得。

1.3.1 推荐系统实验方法

在推荐系统中,主要有3种评价推荐效果的实验方法、即离线实验、用户调查和在线实验
一、离线实验(在数据集上完成的实验,不需要一个在线系统辅助,只需要提取数据完成即可)
主要步骤如下
1)通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集
2)将数据集按照一定规则划分为训练集和测试集(训练集用来训练模型计算出参数,测试集用来测试该模型效果)
3)在训练集上训练用户兴趣模型,在测试集上进行预测
4)通过事先定义的离线指标评测算法在测试集上预测结果

二、用户调查
用户调查需要一些真实用户,让他们在需要测试的推荐系统上完成一系列任务。在完成任务时记录他们的行为,并让他们回答一些问题。最后,通过他们的行为和答案了解推荐算法的满意度
测试的用户需要符合我们的目标用户,比如男女性别需符合我们的用户标准。也必须要保证双盲实验,不要让实验人员和用户事先知道测试的目标,以免受主观影响。

三、在线实验
最常见的在线实验是AB测试,它用于新算法与旧算法的比较(AB测试概念之后单独抽出讲,这里忽略)。
一般来说,一个推荐算法最终上线,需要完成上面说的3个实验:离线实验、用户调查、在线实验
首先,通过离线算法证明它在很多离线指标上优于现有算法
其次,通过用户调查确定它的满意度不低于现有算法
最后,通过在线的AB测试确定它在一些关键指标优于现有算法

1.3.1 推荐系统的评测指标

这些指标用于评价推荐系统各个方面,这些指标可定量计算,也可定性描述,它们均可通过上面3种实验得到。
1、用户满意度:用户满意度一般通过用户调查或者在线实验获得
通过用户调查获得:比如用户调查设计一些问题,如:以下最能描述你使用推荐系统的感受的是?ABCDE各种答案。通过类似问题来描述用户的满意度。请注意,不能直接问用户是否满意。
通过在线实验获得:如一些关键的指标,比如点击率和商品重复购买率,通过指标来衡量满意度。一般情况下,我们可以用点击率、用户停留时间和转化率等指标来衡量
2、预测准确度:预测准确度是一个推荐系统预测用户行为的能力。它可以通过离线实验计算得出。
首先,在训练集上建立用户的行为和兴趣模型。
然后在测试集上进行实际行为,然后计算实际行为与预测行为的重合度,这个重合度是预测准确度。预测准确度指标根据不同研究方向分以下:
1)评分预测:根据用户对物品的历史评分,学习到兴趣模型,然后预测用户对一个新物品的打分。评分预测一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算得出(其中T是物品个数)

评分预测指标

2)TopN推荐:网站在做推荐时,一般是返回一个个性化的推荐列表,这种推荐叫做TopN推荐。TopN推荐一般通过准确率和召回率衡量
准确率:即给出的结果有多少是正确的(正确的结果/所有结果总数)
召回率:正确的结果有多少被给出了(正确的结果/正确的结果总数)

TopN推荐中的准确率和召回率

关于评分预测和推荐TopN的讨论:有人认为,用户对于某一物品的评分高但是并不代表用户就喜欢这个物品,所以预测用户对物品的兴趣程度比给它评分更加重要。
3、覆盖率:覆盖率描述推荐算法对长尾物品的发掘能力。最简单的定义公式为在一定时间内推荐系统发掘出来的物品数除以物品总数。覆盖率100%的推荐系统可以保证每一个物品都可以至少被推荐给一个用户。但不同物品被推荐的次数可能会不同,所以需要根据每个物品被推荐的次数分布来评判这个推荐系统的覆盖率。如果这个分布比较平,则推荐系统覆盖率就比较高,否则就比较低。

信息熵和基尼系数

如果基尼系数越小,则表示分布均匀,覆盖率好;反之,则覆盖率偏低,推荐系统具有马太效应。
4、多样性:多样性描述了推荐列表中物品两两之间的不相似性
为满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同的兴趣,即推荐结果需要多样性。由于用户兴趣在较长的一段时间内是一样的,但在瞬时的某一刻往往是单一的,所以推荐系统要覆盖用户的某个时刻的兴趣,这样才能增加用户发现新物品的概率。
推荐系统多样性还需要考虑到用户的主兴趣,比如80%给主兴趣的物品,20%给次兴趣的物品。

多样性计算公式

5、新颖性:新颖的推荐是指给用户推荐那些他们以前没有接触过的物品。
最简单的办法是在推荐列表中过滤掉用户已经看过的物品。还有一种办法是利用推荐结果的平均流行度,因为越不热门的物品越可能让用户觉得新颖,因此如果推荐列表中物品的平均流行度低,那么推荐结果就有比较高的新颖度
6、惊喜度:令用户惊喜的推荐结果是和用户历史上喜欢的物品不相似但是又让用户满意的推荐结果。提高惊喜度要降低内容与历史兴趣的相似度,且提高推荐结果的用户满意度(满意度通过问卷调查定性获得)
7、信任度:自动推荐系统存在信任度问题,如果用户信任推荐系统那就会增加用户和推荐系统的交互,同样的推荐结果,以让用户信任的方式推荐给用户能更好的产生购买欲望。比如一个物品被推荐,需要很好的给出解释(是因为什么而被推荐,这个什么可能是历史兴趣也可能是朋友推荐)。
提高信任度有两种方法:增加透明度(提高推荐解释)、考虑用户社交网络信息,利用好友信息给用户做推荐,并且用好友进行推荐解释。
8、实时性:部分网站对内容具有很高的时效性要求,比如新闻类产品。对这类产品实时性至关重要。推荐的实时性可以用推荐列表的变化速率来评测,如果推荐列表在用户有行为后变化不大,或者没有变化,则推荐系统的实时性不高。
9、健壮性:健壮性用来衡量一个推荐系统抗击作弊的能力。算法的健壮性评测主要是模拟攻击,常规的做法就是将数据集中注入噪声数据,然后比较攻击前后推荐列表的相似度,如果攻击后推荐列表没有太大变化,则说明健壮性较好。
提高推荐算法健壮性主要有2种:设计推荐算法的行为尽量采用高门槛的行为、在使用数据集前对数据进行清洗
10、商业目标:推荐系统还要注重产品对商业目标是否达成。不同的产品有不同的商业目标,比如电商可能是销售额,而新闻类产品可能是广告收入。因此,推荐系统的上线还要看能不能提高商业指标数据。

指标的对比

1.3.2 评测维度

在很多推荐系统的评测指标中还有1个维度的概念,比如在什么情况下算法性能最好,这样可以融合不同的算法来做组合推荐。一般来说,评测维度分三种:
1)用户维度:从人口统计学信息,活跃度等角度去划分用户群体
2)物品维度:包括物品的属性信息,流行度,平均分以及是不是新加入的物品
3)时间维度:包括季节,工作日还是周日,白天还是晚上
所以,算法的评测最好要体现在不同维度下的评测指标,这样可全面的了解推荐算法的性能

第二章:利用用户行为数据

基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般把这个叫做协同过滤算法。顾名思义,是指用户齐心协力,通过不断的和网站互动,使自己的推荐列表不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求

2.1 用户行为数据简介

用户行为在推荐系统中一般分两种:
1)显性反馈行为:指用户明确表示对物品的行为。比如点赞、评论、不感兴趣等行为。
2)隐性反馈行为:指不能够明确反应用户喜欢的行为。最具代表性的隐性反馈行为是页面浏览行为,还有比如视频网站的视频观看时长等。

显性和隐性的对比

当明白了用户行为是什么后,需要用一个统一的数据格式来表示和存储这些行为:
1)user_id:产生用户行为的用户唯一标识
2)item_id:产生行为对象的唯一标识
3)behavior_type:行为的种类,比如浏览、购买、播放
4)context:产生行为上下文,比如时间和地点
5)behavior_weight:行为权重,即每个行为对该平台业务不同价值的体现
以上是一个完整行为存储的数据格式,但不是都是必填项,但用户标识和对象标识是必须的。

2.2 用户行为分析








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

推荐阅读更多精彩内容

  • 1、什么是推荐系统 在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:作为信息消费者,如何从大量信息中...
    文哥的学习日记阅读 14,386评论 6 67
  • 1.1什么是推荐系统 推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展...
    idatadesign阅读 785评论 0 1
  • 什么是推荐系统 information overload信息过载时代: 信息爆炸。 在这个时代,无论是信息消费者还...
    七八音阅读 1,281评论 0 18
  • 本文的思维导图如下: 1、什么是推荐系统 在这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战:作为信息消...
    以后叫我老牛阅读 219评论 0 1
  • 分享小孩子发高烧~~【“发烧”免惊】: 1. 发烧的实质是什么? 发烧是人体的免疫力跟病毒、细菌在战斗的表...
    A努力花钱阅读 270评论 0 0