《推荐系统实践》读书笔记
2019-08-06 13:52:10 53 举报
AI智能生成
《推荐系统》阅读笔记
作者其他创作
大纲/内容
《推荐系统实践》
好的推荐系统
什么是推荐系统
信息匮乏
分类&导航
信息过载
需求明确
搜索
需求模糊
推荐
社会化推荐
基于内容的推荐
基于协同过滤的推荐
……
本质是信息从生产者到消费者的通路形式
不同的用户与“物品”
to C
电子商务
打包销售
电影和视频
音乐
物品空间大
物品特征丰富
物品重用率高
消费代价小
消费热情高
上下文相关
次序很重要
多个播放列表
不需要用户全神贯注
高度社会化
社交网络
个性化阅读
基于位置
个性化邮件
个性化广告
to C 移动端
短视频
微文章
to B
to be continued
to G
切入思路
基于物品
专家打标
基于用户
用户行为
评测
评价原则
于消费者
提供实质性帮助
于生产者
长尾问题
于系统本身
能够自我演进
实验方法
离线
用户调研
内测
双盲实验
在线实验
AB测
评测指标
用户满意度
预测准确性
可能是推荐好坏的多个维度中唯一可以有效量化的指标
覆盖率
多样性
新颖性
惊喜度
实时性
健壮性
商业目标
评测维度
用户维度
物品维度
时间维度
行为数据
显/隐性反馈
有/无上下文
行为分析
用户活跃度与物品流行度
长尾
实验设计
数据准备
M则交叉
召回率
准确率
新颖度
算法模型
基于邻域的算法
协同过滤
哈利波特问题
用户与物品的交叉关系引起的跨域物品相似度高
两者的侧重
本质是用户构成一个二维切面,物品构成一个二维切面,通过两个切面间的线(用户-物品关系),调整切面内各点的分布,空间上是三维的
隐语义模型
与ItemCF类似
本质上是在物品二维切面上增加了一个新切面,用来表示物品分类(标签),放置在用户切面和物品切面之中,用户-物品关系被重新组织为用户-标签-物品关系,空间上仍是三维的
LFM
负样本采样
用户没有行为
正负平衡
从热门中选取
数学原理
兴趣函数
隐特征个数
损失函数
正则化参数
下降公式
学习速率
为什么一些参数需要实验获得,而不是数学自证
LFM与基于邻域方法的比较
理论
统计 vs. 学习
空间复杂度
用户/物品量级 vs. 隐特征量级
时间复杂度
关联数/用户or物品数 vs. 隐特征数×迭代数
实时推荐
实时用户行为
协同过滤可以响应
LFM不响应
可以考虑使用候选列表增加训练速度
实时用户/物品变化
推荐解释
显式 vs. 隐式
基于图的随机游走算法
用户行为的二分图表示
相关性因素
路径数
路径长度
路径经过的顶点特征
PersonalRank
蚁群效应
要求在图稳定下,进行高量的全图探索迭代
使用矩阵表示图,进行矩阵计算
本质上是协同过滤的图方案,初层的图不对二分图中含义相同的点,既用户之间、物品之间,建立边
冷启动
场景
用户冷启动
物品冷启动
系统冷启动
方法
用户注册
用户特征
用户兴趣选择
首先有物品特征,用户对这些特征进行手工标注,形成了用户——物品抽象特征这两层的关联
基于物品内容
物品特征
Github vs. MoviesLen
话题模型
词袋模型
解构主义
结构主义
专家
显式的物品特征
人工标注
人工构造物品的多维空间
一些问题
为什么产生
通类的推荐系统是基于用户行为数据的,行为数据本身是相对动态的事件数据,冷启动本质上是对新生静态数据上引导产生动态行为数据的过程,是用户行为数据从无到有的过渡问题
为什么可以解决
冷启动能够解决,本质在于推荐系统中在协同过滤之上,增加了对数据特征的利用(隐语义模型本质上也是对物品数据抽象特征的模糊提取表达)
如何解决
在不同的场景下需要对新生数据做不同维度的预处理,这种预处理接近于特征工程——发掘数据本身的一些抽象特征
有无解决的必要
有必要
推荐系统的根本目的,在于促进建立两种对象数据间的关联关系
这种关联关系是一种抽象的表达,在用户-物品的产品场景中,用户与产品可能存在的关联关系的数量级在M×N左右(以所有关联关系等价的情况)。相较于这种完全笛卡尔积的空间容量,使用用户行为数据表达,在空间上是稀疏的,在来源上是自然产生的,所以用户行为是优质的关联关系表达
除了以用户行为表示关联关系之外,使用一些特征工程及专业知识也能表达关联(或者期望关联)——比如音乐基因工程及基于基因去遴选期望的收听用户
当关联关系抽象泛化后,冷启动是解决关联关系从无到有的问题,是无法绕开的
不过有的模型需要在已有的关联关系上进行学习,有的模型不需要学习,只是用已存在的关联关系做验证,对后者而言,解决冷启动的过程其实就是建立模型的过程
在用户-物品产品场景中,推荐的作用
解决信息过载
帮助、促进用户主体对物品建立关联,这个过程中有一个用户决策动作
对决策的支持,扩展到通类的信息交互场景中,便是人工智能的一个目的——模拟人的智力行为
用户标签
应用场景
在用户与物品都丰富,且用户-物品关联呈现多聚类时,通过标签限定主题域
Delicious=user+web
CiteULike=user+papper
Last.fm=user+music
豆瓣=user+图书/电影
Hulu=user+video
打标签的三问
为什么打
社会
功能
怎么打
标签的分布也是长尾的
打什么(样的标签)
物品相关
客观
用户相关
主观
基于标签的推荐
基础算法
用户到标签,标签到物品
基础算法的优化
通过TFIDF机制,降低热门标签、热门物品的影响
通过标签相似性扩散,优化标签稀疏问题
过滤无效、负面标签
基于图的算法
随机游走,PersonalRank
用户\\标签\\物品的三维空间=>路径表达的二维空间
基于标签的解释
用户感受
为什么推荐这个
这个是否是我想要的
客观事实类标签优于主观感受类标签
RelSort
PerfSort
RelOnly
PerfOnly
标签推荐
图可以很好的表示具有传递特征的信息
标签是一种无层次化结构的、用来描述信息的关键词。标注标签的行为也是一种显式的用户行为,是一种重要的特征表现形式,本质上是构建一种显语义模型,是用户-物品中间层的显式增强
上下文
时间
效应
用户兴趣
物品生命周期
周期性节律
静态系统=>时变系统
基于时间上下文的算法
基于时间修正的协同过滤
时间段图模型
时间的引入使静态的推荐系统有了时变特性,将用户行为变成了时序数据,在分析和设计上都有了时效的考量
地点
兴趣本地化
周期本地化
位置特征的表达
树状结构
平面距离
社交网络数据
来源
电子邮件
用户注册信息
位置数据
论坛和讨论组
即时聊天工具
微信
社交网站
社会图谱
facebook
兴趣图谱
twitter
微博
抖音
类型
双向确认
单向关注
长尾分布
基于社区
社交网络距离的表示
主流方法仍是基于用户历史行为
优点
增加信任度
解决冷启动
基于邻域
基于图
Twitter信息流推荐
Twitter的多级缓存及基于此的推荐架构
实际系统的困难
用户历史行为记录数量庞大
好友推荐
基于内容,既用户属性
基于共同兴趣
基于社交网络图
SONA,基于共同工作属性和成果
IBM内部算法
社交网络的引入极大地补充了用户与用户间的距离表达,而且增大了推荐结果的用户信任度,在用户-特征-物品这个三层空间中,社交网络是用户这个层面的内部信息迭代
推荐引擎架构
用户-特征-物品
架构
数据模块
数据采集、存储
分析模块
将各个维度特征向量做计算
排序、过滤模块
排名
时间多样性
用户反馈
交互模块
架构上主要思路还是在用户与物品间,构建合理的通信层,通常以特征来表示这一层中间层,同时保持用户与用户之间、物品与物品之间的通信,在通信的基础上融合多种推荐模型,除此之外对融合模型层的结果,有一个专门的过滤排序层做细化处理,为多场景、多要求下的推荐排序功能提供支持
评分预测算法
平均值
全局平均值
用户评分平均值
物品评分平均值
用户分类对物品分类平均值
隐语义模型与矩阵分解模型
SVD
加入偏置项的LFM
考虑邻域影响的LFM
融合时间信息
评分预测感觉用处不多。。。
0 条评论
下一页