前言
好久没有更新了!!! 最近一直在研究推荐相关的知识,也算是有一点感悟吧,暂且打算写一系列推荐入门的文章, 一为分享,共同学习。二为对知识做一个系统的整理。 这是第一篇,不打算说太多关于技术的问题,我们就来随便聊聊推荐系统,然后本篇文章也作为该系列的一个导航文章吧!
推荐系统概述
1. 推荐系统是什么
我想大家应该都对推荐系统不会陌生,不管你是逛淘宝还是刷抖音,你都能看到推荐的存在,也是因为推荐的存在,才能让你才海量的信息中看到自己感兴趣的东西。其实我相信大家都知道什么是推荐系统,这里我仅以我个人的观点阐述一下。我们从以下两点来说:
- 推荐 我们可以将推荐理解为推荐算法,也是推荐系统的核心驱动。
- 系统 一 整套的实际可行的工具,一般的来说,推荐的系统包括 前端的展示和互动,后端的数据和服务,以及核心的推荐算法
2. 推荐系统有什么用
- 解决信息过载问题,现今社会是个信息泛滥的社会,如何在这海量信息中找到用户所关心的东西,就是推荐系统产生的最主要原因
- 发掘长尾物品的潜在价值,个人的喜欢总是有一定特异性的,很多时候,我们喜欢某类比较偏门的物品,因为其偏门,所以想要发现并不是一件容易的事情,那么就把它交给推荐系统把。
根据28法则,20%的热门物品产生 80%的利润,过去人们也一直将精力放在发掘这20%热门物品的价值,但是长尾理论则认为,80%的偏门物品如果能找到其正确需求用户,其潜在价值远大于20%的热门物品,这80%的偏门物品我们就叫做
长尾物品
3. 推荐系统怎么做
怎么做?我们从一个简单的例子来看
一个美好的周末,突然你心仪的女神问你最近有什么好看的电影,这时候,最为女神的推荐系统,就该是你发挥你本事的时候了:
- 对于你的女神,想必你不会缺少她的各种信息,比如 爱好,性格 甚至是三围什么的,收集信息这步我们就省略了,但是不可否认,这是相当重要的一步
- 然后你可能: 2.1 去问寻求她的朋友帮助,问最近有没有看什么好看的电影 2.2 看一下一些影视网站的排行榜 2.3 根据女神的爱好和喜欢的类型,去找一下类似的电影 2.4 总之,你要想尽一切办法尽可能的获取到女神可能感兴趣的电影
- 不能一股脑的把收集到的电影进行推荐,得从你找到的电影列表中,进行筛选,你可能需要考虑,巴拉巴拉,肯定有一堆了,然后挑选出最有可能收到女神喜欢的电影进行推荐。
- 然后虽然你历尽千辛万苦给女神推荐了,她真的会喜欢吗?所以这时候你一定得看看女神得反应,说不定别人对你的推荐一脸嫌弃,这时候一定需要进行意见收集,查漏补缺。。。但是如果她很喜欢呢?说明你推荐的还不错,很大可能下次还会找你推荐,并且对你推荐的电影会有很大的信赖感,但是。。。也就这样啦,能不能报的美人归可不是一个推荐电影就能搞定滴。。。哈哈哈哈
这里没有涉及什么具体的推荐算法怎么弄的,主要还是推荐的一个流程: 1. 收集用户信息 2. 通过推荐算法产生候选集 3. 从候选池中选取topn 进行推荐 4. 对推荐的结果进行评测,改进
4. 推荐系统如何评测
推荐系统的评测在实际工作工程中可能比 推荐系统的实现更加重要 和 复杂,这一块我们有机会后面来聊一聊,这里仅以 推荐系统实战
这本书列举一下评测方法,大概了解一下就好,这块不是一下就能说明白的
- 用户满意度 用户作为推荐系统的重要参与者,其满意度是评测推荐系统的最重要指标。但是,用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。
- 预测准确度
预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力。这个指标是最重要的推荐系统离线评测指标,从推荐系统诞生的那一天起,几乎99%与推荐相关的论文都在讨论这个指标。
这主要是因为该指标可以通过离线实验计算,方便了很多学术界的研究人员研究推荐算法。
一般来说,我们训练一个模型的时候,会将数据按一定比例分为 训练集 和 测试集,用训练集训练出模型之后,将测试集代入模型模拟预测,评测模型的效果
- 评分预测:测试数据的预测评分 和 测试数据的实际评分 的差异(RMSE 或者 MAE)作为 评分测试的标准。
- TopN推荐:通过预测的 正确率 和 召回率 来作为 TopN的评测标准
- 覆盖率 覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力。一般用 信息熵 或者 基尼系数 来作为评测标准
- 多样性 用户的兴趣是广泛的,我可能既喜欢恐怖片也喜欢喜剧片,你应该两者兼顾而不是只考虑一种类型,我们要根据去各种兴趣去做推荐,而不要只推荐某一种兴趣的东西,所以也叫推荐应该多样性。
- 新颖性 新颖的推荐是指给用户推荐那些他们以前没有听说过的物品,但是推荐的这个物品是有根据的。
- 惊喜度 惊喜度(serendipity)一般来说是推荐那些他们以前没有听说过的物品,并且用户也不知道你为什么推荐给他,但是他还是很喜欢你这个推荐的
- 信任度 你好朋友说你买卡宴比较好,和一个卡宴汽车的销售说,你买卡宴好。。。你更会信任哪个推荐?这就是信任度。
- 实时性 2月1号,某某股神预测 2月10号 x股会大涨,2月10号,x股果然大涨,然后2月11号,你把这个消息推荐给股民。。。。然后。。。这就是实时性
- 健壮性 好的推荐系统,要能顶的住别人的恶意攻击,比如刷好评 刷单什么的。。。
- 商业目标 很多时候,网站评测推荐系统更加注重网站的商业目标是否达成,而商业目标和网站的盈利模式是息息相关的。嗯,要赚钱!
上面说的都是各种评测标准,但是评测的环境其实也是很重要的,同一个模型,不同的测试环境,得出的效果可能会迥异,所以某些时候,推荐系统的模型可能不只有一个,根据不同的 时间,用户,或者物品 都可能用不同的模型。