两本关于推荐系统的书
只记录不知道的和有意义的,尽量做到逻辑性
策略产品经理实践
1.定义——什么是策略PM?
在限制条件内推动项目、设定评估体系和评估项目收益
推动?
策略设计(例如从模型角度就有标准文档;日常的数据报表的需求文档;打点规则规范的需求文档)、需求评审(例如评审会)、项目跟进与验收(评估报告,如何向leader表达)
评估?
常有三种方法:阈值判断、主观报告、数据分析
例如具体场景: 算法工程师和NLP工程师擅长的部分往往是模型训练细节,但较少有算法工程师擅长搭建科学的审核流程来获取数量更多、质量更高的训练样本。
所以,策略产品经理的价值得以彰显:需要负责构建并推动整个数据流,协调标注资源(无论是内部标注团队还是外包标注团队),并为整体训练数据的质量和数量负责。
革命可不是戴着白手套就能完成的
Ilyich
2.主要特点
2.1.量化描述性指标
例如量化安全性;利用数据判断优先级
2.2.核心竞争力
项目沟通能力+用户理解能力
2.3.常见工作类型与场景
- 推荐搜索(面向用户:消遣):吸引留住,这里又分为社群向和消遣向(个人看法)
- 本地服务产品(面向用户:工具):提高效率(双边or多边)
- 反垃圾(面向用户:保护)
3.pros&cons
需要大型项目大型公司经历,太偏向于学徒制
物联网后将催生大量需求,策略与数据是未来互联网的核心,主要的算法工程与社工数据都将集中于此
4.文章作者建议
- 少替用户做决定
- 坚持群众路线
- 追求平台化可复用的产品
- 假设驱动项目而不是会议驱动
5.主观评估
5.1.在客观数据面前,主观评估是必要的:
弥补数据必然的缺失、相当数量的用户体验不可测
5.2.好的主观评估应该。。。
稳定!团队认可、可准确描述(相辅相成)
5.2.1.可准确描述:评估思路:用户价值观(问卷or访谈)、平台价值观
5.2.2.团队认可:标准会议:初步标准——求同阶段——存异阶段——最终标准 (当然标准会议最主要的是建立项目流程)
6.数据分析
核心:寻找关键数据,实验验证假设
作者按:就是会sql的意思
推荐系统实践
1.如何评测推荐系统?
评测推荐系统有3种方法——离线实验、用户调查和在线实验
1.1.当实验离线?
离线实验的方法一般由如下几个步骤构成:
- 通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;
- 将数据集按照一定的规则分成训练集和测试集;
- 在训练集上训练用户兴趣模型,在测试集上进行预测;
- 通过事先定义的离线指标评测算法在测试集上的预测结果。
(注意:过程中没有真实用户参加)
2.推荐——利用用户行为数据
-
核心:用户的行为不是随机的,而是蕴含着很多模式。用户行为数据中蕴涵着很多不是那么显而易见的规律,而个性化推荐算法的任务就是通过计算机去发现这些规律,从而为产品的设计提供指导,提高用户体验
-
学术地来说,就是基于邻域的算法——协同过滤算法
-
分类:用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback):
- 显性:明确表示喜欢
- 隐性:不明确表示喜好
-
首先是分析:
在利用用户行为数据设计推荐算法之前,研究人员首先需要对用户行为数据进行分析,了解 数据中蕴含的一般规律,这样才能对算法的设计起到指导作用
- 长尾分布:power low分布
- 一般形式:y=ax^b
- 特点:双边取对数为直线
2.1.基于邻域的算法
2.1.1.UserCF
两个步骤: 基于用户的协同过滤算法主要包括两个步骤。
- 找到和目标用户兴趣相似的用户集合。
- 找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
严重缺陷: 随着网站的用户数目越来越大,计算用户兴趣相似度矩阵将越来越困难,其运算时间复杂度和空间复杂度的增长和用户数的增长近似于平方关系
2.1.2.ItemCF——最重要的推荐机制
简单来说就是:为你推荐因为你曾。。。。
给用户推荐那些和他们之前喜欢的物品相似的物品:不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品B 两个步骤。
基于物品的协同过滤算法主要分为两步。
- 计算物品之间的相似度。(喜欢物品i的用户中有多少比例的用户也喜欢物品j)
- 根据物品的相似度和用户的历史行为给用户生成推荐列表。
(注意:ItemCF算法会每隔一段时间利用用户行为计算物品相似度表(一般一天计算一次),在线服务时ItemCF算法会将之前计算好的物品相关度矩阵放在内存中)
2.2.基于用户行为的分类推荐
隐语义模型
基于用户行为统计的自动聚类模型:如果两个物品被很多用户同时喜欢,那么这两个物品就很有可能属于同一个类
2.3.基于图的模型
- 行为量化:二元组(u, i)表示用户u对物品i产生过行为。给用户u推荐物品的任务就可以转化为度量用户顶点vu和与vu没有边直接相连的物品节点在图上的相关性,相关性越高的物品在推荐列表中的权重就越高。
- 随机游走:从用户u对应的节点vu开始在用户物品二分图上进行随机游走。游走到任何一个节点时,首先按照概率α决定是继续游走,还是停止这次游走并从vu节点开始重新游走。如果决定继续游走,那么就从当前节点指向的节点中按照均匀分布随机选择一个节点作为游走下次经过的节点。这样,经过很多次随机游走后,每个物品节点被访问到的概率会收敛到一个数。最终的推荐列表中物品的权重就是物品节点的访问概率。
2.4.冷启问题补充
专家系统辅助冷启
3.推荐——利用用户标签数据
3.1.Simple way
- 统计每个用户最常用的标签。
- 对于每个标签,统计被打过这个标签次数最多的物品。
- 对于一个用户,首先找到他常用的标签,然后找到具有这些标签的最热门物品推荐给这个用户。
3.2.拓展:
- 对热门进行惩罚
- 基于领域方法处理稀疏性——认为同一个物品上的不同标签具有某种相似度
- 标签清理
- 向用户推荐标签
4.推荐——利用上下文信息
用户所处的上下文(context)包括用户访问推荐系统的时间、地点、心情等,对于提高推荐系统的推荐系统是非常重要的
4.1.时间上下文信息:
在给定时间信息后,推荐系统从一个静态系统变成了一个时变的系统,而用户行为数据也变成了时间序列:包含时间信息的用户行为数据集由一系列三元组构成,其中每个三元组(u,i,t)代表了用户u在时刻t对物品i产生过行为
- 用户数的增长情况
- 系统的物品变化情况
- 用户访问情况
4.1.1.最近最热门
4.1.2.时间上下文相关的ItemCF算法
- 用户在相隔很短的时间内喜欢的物品具有更高相似度
- 公式中引入和时间有关的衰减项
4.1.3.时间上下文相关的UserCF算法
- 用户兴趣相似度时间衰减
- 相似兴趣用户的最近行为加权
4.2.地点上下文信息
5.推荐系统示例
- 如果要在一个系统中把上面提到的各种特征和任务都统筹考虑,那么系统将会非常复杂,而且很难通过配置文件方便地配置不同特征和任务的权重
- 因此,推荐系统需要由多个推荐引擎组成,每个推荐引擎负责一类特征和一种任务
- 而推荐系统的任务只是将推荐引擎的结果按照一定权重或者优先级合并、排序然后返回
5.1.三个部分
推荐引擎架构主要包括3部分:
- 负责从数据库或者缓存中拿到用户行为数据,通过分析不同行为,生成当前用户的特征向量。不过如果是使用非行为特征,就不需要使用行为提取和分析模块了。该模块的输出是用户特征向量。
- 负责将用户的特征向量通过特征-物品相关矩阵转化为初始推荐物品列表。
- 负责对初始的推荐列表进行过滤、排名等处理,从而生成最终的推荐结果。