侧边栏壁纸
博主头像
蚌埠住了捏博主等级

快乐,健康,自由,强大

  • 累计撰写 55 篇文章
  • 累计创建 12 个标签
  • 累计收到 21 条评论

目 录CONTENT

文章目录

每周阅读20240804, 推荐系统

蚌埠住了捏
2024-08-04 / 0 评论 / 0 点赞 / 161 阅读 / 2,878 字

最近的开发工作和推荐有一定的关系,通过深度学习推荐系统一书了解一下。这是本2020出版的书籍,相信从transformer盛行的2022年开始就已经过时了。只不过“传统”方法的思路还是有相当价值的。目前读下来还是比较流畅,知识点浅尝辄止,不会涉及到过深的原理讨论。更注重于工程的实践、联系电商用例,对于算法开发人员入门搜广推来说还是很友好的。本阅读笔记主要对一些信息、知识点进行摘录。

推荐系统初识

用户角度:推荐系统解决在“信息过载”的情况下,用户如何高效获得感兴趣信息的问题

公司角度:推荐系统解决产品能够最大限度地吸引用户、留存用户、增加用户黏性、提高用户转化率的问题,从而达到公司商业目标连续增长的目的。

技术架构:

截屏2024-08-04 16.54.09.png

模型的结构一般由“召回层”​“排序层”​“补充策略与算法层”组成。“召回层”一般利用高效的召回规则、算法或简单的模型,快速从海量的候选集中召回用户可能感兴趣的物品。“排序层”利用排序模型对初筛的候选集进行精排序。“补充策略与算法层”​,也被称为“再排序层”​,可以在将推荐列表返回用户之前,为兼顾结果的“多样性”​“流行度”​“新鲜度”等指标,结合一些补充的策略和算法对推荐列表进行一定的调整,最终形成用户可见的推荐列表。

传统方法

截屏2024-08-04 17.01.25.png

“协同过滤”就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。

UserCF基于用户相似度进行推荐,使其具备更强的社交特性,用户能够快速得知与自己兴趣相似的人最近喜欢的是什么,即使某个兴趣点以前不在自己的兴趣范围内,也有可能通过“朋友”的动态快速更新自己的推荐列表。适合推荐热点。ItemCF更适用于兴趣变化较为稳定的应用,比如在Amazon的电商场景中,用户在一个时间段内更倾向于寻找一类商品

矩阵分解算法将m×n维的共现矩阵R分解为m×k维的用户矩阵U和k×n维的物品矩阵V相乘的形式。其中m是用户数量,n是物品数量,k是隐向量的维度。k的大小决定了隐向量表达能力的强弱。为了消除用户和物品打分的偏差(Bias),常用的做法是在矩阵分解时加入用户和物品的偏差向量

逻辑回归模型将推荐问题转换成了一个点击率(Click Through Rate,CTR)预估问题。以用户、物品数值型特征作为输入,用模型预测点击率。

以上方法的同一问题:在仅利用单一特征而非交叉特征进行判断的情况下,有时不仅是信息损失的问题,甚至会得出错误的结论。著名的“辛普森悖论”说明了进行多维度特征交叉的重要性。

FM模型:隐向量特征交叉。FM为每个特征学习了一个隐权重向量(latent vector)。在特征交叉时,使用两个特征隐向量的内积作为交叉特征的权重。FM 是将矩阵分解隐向量的思想进行了进一步扩展,从单纯的用户、物品隐向量扩展到了所有特征上。

截屏2024-08-04 17.17.18.png

深度学习

发展方向:改变神经网络的复杂程度、改变特征交叉方式、组合、FM模型的深度学习演化版本、注意力机制与推荐模型的结合、序列模型与推荐模型的结合、强化学习与推荐模型的结合

截屏2024-08-04 17.19.04.png

AutoRec模型是一个标准的自编码器,它的基本原理是利用协同过滤中的共现矩阵,完成物品向量或者用户向量的自编码。再利用自编码的结果得到用户对物品的预估评分,进而进行推荐排序。

Deep crossing用DNN交叉特征的embedding. Deep Crossing模型中没有任何人工特征工程的参与,原始特征经Embedding后输入神经网络层,将全部特征交叉的任务交给模型

Wide&Deep模型的主要思路正如其名,是由单层的Wide部分和多层的Deep部分组成的混合模型。其中,Wide部分的主要作用是让模型具有较强的“记忆能力”(memorization);Deep部分的主要作用是让模型具有“泛化能力”(generalization)

截屏2024-08-04 17.28.34.png

注意力机制: 不同的交叉特征对于结果的影响程度不同,以更直观的业务场景为例,用户对不同交叉特征的关注程度应是不同的。注意力机制在数学形式上只是将过去的平均操作或加和操作换成了加权和或者加权平均操作。“注意力得分”的引入反映了人类天生的“注意力机制”特点。对这一机制的模拟,使得推荐系统更加接近用户真实的思考过程,从而达到提升推荐效果的目的。相比学术界更加关注理论上的创新,业界的推荐工程师更需要基于对业务的理解推进推荐模型的演化。

DIEN——序列模型与推荐系统的结合

把注意力机制应用到时间序列上下文中,比如买了主机可能接着买显卡

兴趣进化网络分为三层,从下至上依次是:(1)行为序列层(Behavior Layer,浅绿色部分)​:其主要作用是把原始的id类行为序列转换成Embedding行为序列。(2)兴趣抽取层(Interest Extractor Layer,米黄色部分)​:其主要作用是通过模拟用户兴趣迁移过程,抽取用户兴趣。(3)兴趣进化层(Interest Evolving Layer,浅红色部分)​:其主要作用是通过在兴趣抽取层基础上加入注意力机制,模拟与当前目标广告相关的兴趣进化过程。

截屏2024-08-04 17.39.26.png

强化学习(Reinforcement Learning)起源于机器人领域,针对智能体(Agent)在不断变化的环境(Environment)中决策和学习的过程进行建模。在智能体的学习过程中,会完成收集外部反馈(Reward),改变自身状态(State),再根据自身状态对下一步的行动(Action)进行决策,在行动之后持续收集反馈的循环,简称“行动-反馈-状态更新”的循环。

强化学习相比传统深度模型的优势就在于强化学习模型能够进行“在线学习”​,不断利用新学到的知识更新自己,及时做出调整和反馈。这也正是将强化学习应用于推荐系统的收益所在。

截屏2024-08-04 17.44.07.png

截屏2024-08-04 17.44.24.png

Embedding

Embedding,中文直译为“嵌入”​,常被翻译为“向量化”或者“向量映射”​。它的主要作用是将稀疏向量转换成稠密向量,便于上层深度神经网络处理。形式上讲,Embedding就是用一个低维稠密的向量“表示”一个对象(object),这里所说的对象可以是一个词、一个商品,也可以是一部电影,等等。

Word2vec和由其衍生出的Item2vec是Embedding技术的基础性方法,但二者都是建立在“序列”样本(比如句子、用户行为序列)的基础上的。在互联网场景下,数据对象之间更多呈现的是图结构。典型的场景是由用户行为数据生成的物品关系图(如图4-6(a)(b)所示)​,以及由属性和实体组成的知识图谱(Knowledge Graph)

Graph Embedding是一种对图结构中的节点进行Embedding编码的方法。最终生成的节点Embedding 向量一般包含图的结构信息及附近节点的局部相似性信息。

Embedding通常需要预训练。优秀的embedding可以加快整个网络的收敛速度。在CV里backbone网络其实可以理解为提取Embedding的过程。为了解决“Embedding层训练开销巨大”的问题,Embedding的训练往往独立于深度学习网络进行。在得到稀疏特征的稠密表达之后,再与其他特征一起输入神经网络进行训练。Embedding的本质是建立高维向量到低维向量的映射,而“映射”的方法并不局限于神经网络,可以是任何异构模型。

利用Embedding快速过滤、召回。局部敏感哈希的基本思想是让相邻的点落入同一个“桶”​,这样在进行最近邻搜索时,仅需要在一个桶内,或相邻的几个桶内的元素中进行搜索即可。如果保持每个桶中的元素个数在一个常数附近,就可以把最近邻搜索的时间复杂度降低到常数级别。

截屏2024-08-04 17.56.50.png

在欧式空间中,将高维空间的点映射到低维空间,原本相近的点在低维空间中肯定依然相近,但原本远离的点则有一定概率变成相近的点。利用低维空间可以保留高维空间相近距离关系的性质,就可以构造局部敏感哈希“桶”​。如果通过“或”操作(​“点A和点B在哈希函数1的同一桶中”或者“点A和点B在哈希函数2的同一桶中”​)生成候选集,那么候选集中近邻点的召回率提高,但候选集的规模变大,计算开销升高。到底使用几个哈希函数,是用“与”操作还是“或”操作来生成近邻点的候选集,需要在准确率和召回率之间权衡,才能得出结论。

截屏2024-08-04 17.58.07.png

0

评论区