ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

推荐系统三十六式——学习笔记(一)

2020-01-11 16:38:32  阅读:435  来源: 互联网

标签:三十六 推荐 系统 用户 笔记 反馈 学习 数据 隐式


由于工作需要,开始学习推荐算法,参考【极客时间】->【刑无刀大牛】的【推荐系统三十六式】,学习并整理。

1. 概念篇

1.1 什么是推荐系统

推荐系统:它是一种信息过滤系统,手段是预测用户(User)对物品(Item)的评分和偏好。

1.1.1 它能做什么?

推荐系统可以把那些最终会在用户(User)和物品(Item)之间产生的连接提前找出来。

1.1.2 它需要什么?

推荐系统需要已经存在的连接(可理解为原料),从已有的连接去预测未来的连接。

1.1.3  怎么做?

机器学习和人工推荐,也就是通常说的“个性化推荐”和“编辑推荐”。两者之间还存在现在最常见的领域专家推荐,也就是网红推荐。

1.2 推荐系统的问题模式

1.2.1 推荐系统的预测问题模式,从达成的连接目标角度区分,有两大类:

1、评分预测

Netflix 比赛的评判标准就是 RMSE ,即均方根误差,怎么算的呢?

t 表示每一个样本,

n 表示总共的样本数,

有帽子的 yt  就是模型预测出的分数,是我们交的作业,

秃顶的 yt  就是用户自己打的分数,是标准答案,

然后一个样本一个样本地对答案,模型预测分数和用户自己打分相减,这就是我们预测的误差

 

2、行为预测

根据用户爸爸使用App或浏览网站的行为:登录、点击率、刷新、收藏、阅读完成、评论、添加购物车、推荐好友、分享、购买、评价等,进行推测。

行为预测说白了,就是利用隐式反馈数据预测隐式反馈的发生概率;也因此,各家互联网产品要高度重视隐式反馈,归纳起来有以下几点原因:

1. 数据比显式反馈更加稠密。诚然,评分数据总体来说是很稀疏的,之前 Netflix 的百万美元挑战赛给出的数据稀疏度大概是 1.2%,毕竟评分数据是要消耗更多注意力的数据。

2. 隐式反馈更代表用户的真实想法,比如你不是很赞成川普的观点,但还是想经常看到他的内容(以便吐槽他),这是显式反馈无法捕捉的。而人们在 Quora 上投出一些赞成票也许只是为了鼓励一下作者,或者表达一些作者的同情,甚至只是因为政治正确而投,实际上对内容很难说真正感兴趣。

3. 隐式反馈常常和模型的目标函数关联更密切,也因此通常更容易在 AB 测试中和测试指标挂钩。这个好理解,比如 CTR 预估当然关注的是点击这个隐式反馈。

1.2.2 推荐系统的隐藏顽疾,即没有很好的通用解决方案。

1、冷启动问题

推荐系统是数据贪婪型应用,就是对数据的需求绝无足够的那一天。

新用户或者不活跃用户,以及新物品或展示次数较少的物品,这些用户和物品,由于缺乏相关数据,很是空虚寂寞冷,因此就是冷启动问题的关注对象。

因为通常的解决方式就是给它加热:想办法引入数据,想办法从已有数据中主动学习(一种半监督学习)。我们会在后面的文章中详细讨论冷启动的问题。

2、探索与利用问题

探索与利用,行话又叫做 EE 问题。假如我们已经知道了用户的喜好,一般有三种对待方式:

1. 全部给他推荐他目前肯定感兴趣的物品;

2. 无视他的兴趣,按照其他逻辑给他推荐,如编辑推荐、随机推荐、按时间先后推荐等等;

3. 大部分给他推荐感兴趣的,小部分去试探新的兴趣,如同一边收割长好的韭菜,一边播种新的韭菜。

显然是第三种,那么如何平衡这里的“大部分”和“小部分”呢?这就是 Exploit 和 Explore 问题的核心了。Exploit 意为“开采”,对用户身上已经探明的兴趣加以利用,Explore 意为“探索”,探明用户身上还不知道的兴趣。

3、安全问题

如果你正在一款流量非常大的产品上构建推荐系统,那么一定要考虑推荐系统攻击问题。推荐系统被攻击的影响大致有以下几个:

1. 给出不靠谱的推荐结果,影响用户体验并最终影响品牌形象;

2. 收集了不靠谱的脏数据,这个影响会一直持续留存在产品中,很难完全消除;

3. 损失了产品的商业利益,这个是直接的经济损失。

1.3 对关键元素重要性的认识

要开发一个推荐系统产品,有这么四个关键的元素需要注意:

1. UI 和 UE;

2. 数据;

3. 领域知识;

4. 算法。

重要性依次递减,权重大致是 4-3-2-1。

1.4 目标思维和不确定性思维

推荐系统这种信息过滤系统,追求的是指标的增长,背后思想强调是目标和不确定性:我们并不能很确定地模拟每个人将会看到什么,也不能很好地复现一些操作过程,充满了不确定性,但是在推荐系统未动的情形下,目标先行则是常识。

关于目标思维,如果了解机器学习的人会很好理解。通常来说,训练机器学习模型是一个不断最小化(或者最大化)目标函数的过程,先设定一个目标函数,然后通过不断迭代让这个函数值到最小值(或者最大值)。

不确定性思维就是:不用因果逻辑严丝合缝地提前推演,而是用概率的眼光去看结果。

 

为什么负责推荐系统产品的人一定要有不确定性思维呢?原因有以下几个:

1. 绝大多数推荐算法都是概率算法,因此本身就无法保证得到确切结果,只是概率上得到好的效果;

2. 推荐系统追求的是目标的增长,而不是一城一池的得失;

3. 如果去花时间为了一个 Case 而增加补丁,那么付出的成本和得到的收益将大打折扣;

4. 本身出现意外的推荐也是有益的,可以探索用户的新兴趣,这属于推荐系统的一个经典问题:EE 问题,后面会有记录。

 

 

 

 

qq_34732729 发布了366 篇原创文章 · 获赞 100 · 访问量 4万+ 私信 关注

标签:三十六,推荐,系统,用户,笔记,反馈,学习,数据,隐式
来源: https://blog.csdn.net/qq_34732729/article/details/103238933

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有