在当今信息技术飞速发展的时代,推荐系统是一个热门话题和技术领域。 一些云厂商还提供推荐系统的SaaS服务,例如亚马逊云技术,解决客户从头开始快速构建推荐系统的痛点。 困难。 在我们的日常生活中,推荐系统随处可见,比如我们经常使用的亚马逊电商购物、爱奇艺视频、美团外卖、抖音短视频、今日头条新闻、主播直播平台等。 我根据这几年参与的推荐系统和计算广告项目,总结了一些实践经验,以推荐系统系列文章的形式与大家分享。 希望大家看完后对推荐系统有一个新的、更深入的认识。 本系列文章包括:推荐系统概述、推荐系统召回阶段的深入讨论、排序任务的示例项目以及排序模型调优实践。 更多细节和更详细的内容可以在我的仓库中找到。
我们首先介绍一下推荐系统的概述,大致内容如下:
推荐系统简介
推荐系统可以分为广义推荐系统和狭义推荐系统(我们在以后的讨论中只关注狭义推荐系统),参考下表:
特征
例子
广义推荐系统
推送/推荐/分配某事给某人
彩妆产品套装推荐;
智能分配;
APP/应用内广告推送;
游戏礼包推荐
狭义推荐系统
从海量的商品池中选择当前用户感兴趣的商品
电商产品推荐;
电影推荐;
音乐推荐;
主播渠道推荐;
推荐新闻
推荐系统是一种根据用户的历史行为、社交关系、兴趣点、上下文环境等信息来确定用户当前需要或感兴趣的物品/服务的应用。 推荐系统本身就是一种信息过滤方法,与搜索、类别导航一起构成了三大主流的信息过滤方法。 我们可以从不同的角度来看待推荐系统的用处:对于用户来说,推荐系统可以帮助用户找到自己喜欢的物品/服务,帮助做出决策; 对于服务提供商来说,推荐系统可以为用户提供个性化服务。 ,提高用户信任度和粘性,增加收入。 据称,2/3观看的电影来自推荐系统,38%的新闻点击来自推荐系统,35%的电商销售额来自推荐系统。
许多人(包括我)经常犯的一个常见误解是,推荐系统的工程实现类似于计算广告的工程实现。 事实上,两者的实现方式有很大不同,如下表所示:
计算广告
推荐系统
回忆法
主要根据广告主设定的定位条件进行召回
(计算广告召回/匹配的条件是判断广告本身的定向设置、时间段设置、素材大小是否与当前请求的用户属性、请求时间、广告位规格相匹配)
一般来说,召回是基于各种策略,但不存在类似于广告中的基于目标条件的召回。
排序公式
计算广告排名的出价公式考虑了价格,并且可能具有复杂的动态排名因素。
不涉及价格因素
重排阶段
一般没有重新安排阶段
重排阶段会引入操作干预策略,影响最终推荐列表的生成
延迟
从DSP平台收到竞价请求到给出竞价结果的总延迟可能需要在10ms以内。
从收到请求到给出推荐列表的总延迟可能需要在100ms以内
建筑模式
由于更严格的延迟要求,该架构通常是一体化的(即,包括广告召回/匹配、过滤和排序在内的所有逻辑都在一个广告中处理)
可以选择All in one方式,也可以选择解耦方式(解耦方式是指调用和排序两部分逻辑由单独的服务处理,Rec分别与这两个服务交互)
推荐系统中的常见概念
推荐系统常见场景:首页推荐(更强调以用户为中心)和详情页推荐(更强调以商品为中心)。
个性化推荐和非个性化推荐:个性化推荐几乎是目前的主流,针对每个用户,也就是成千上万的人,做出不同的推荐。 首页推荐会考虑个性化,详情页推荐也会越来越考虑个性化。 非个性化推荐的常见方法包括:推荐整个市场的历史排名(例如1年内、1个月内、1周内); 每个类别的历史排名推荐(例如1年内、1个月内、1周内); 与节假日相关的定期推荐(如国庆黄金周、圣诞节期间的产品推荐); 与紧急情况相关的建议(例如突发传染病相关的产品推荐); 新发布商品的推荐(例如 1 周内)。
推荐系统的产品形态:商品的曝光形态(如上下翻页、左右翻页及其混合方式); 曝光分区的排列(只是一种推荐方法,比如个性化TOP-N推荐,可以考虑将其他方法纳入个性化TOP-N推荐的召回阶段作为召回策略;多种推荐方法,首页推荐的每一行对应一种推荐方式(每一行都可以左右翻阅电影项),这也叫分区混合推荐,比如一行是独家播放推荐,一行是热门推荐,一行是新推荐。产品推荐,一排是个性化TOP-N推荐)。 为了写作方便,我们对下面的讨论做出假设:仅使用个性化推荐方法,并使用其他方法作为个性化推荐的召回策略。
召回阶段、排序阶段和重新排序阶段:它们是个性化Top-N推荐整个过程的三个细分阶段。 在不同的场景下(比如首页推荐或者详情页推荐),三个阶段都不需要针对不同类型的用户(即是否是长尾用户、冷启动用户)。 我们将在本系列文章的另一部分讨论详细信息。 “深入讨论推荐系统中的召回阶段”一文对此进行了介绍。 重新调度阶段有很多名称,例如模型后处理阶段或业务运营干预阶段。
探索与利用:探索是指试图发现一些与爱好相关但无法体现在用户行为中的项目; 利用率是指推荐系统根据用户的历史行为学习到的知识,预测用户可能感兴趣的概率较高的事物。 对于冷启动项和长尾项,在重排阶段进行探索是常用的方法。 实践中,往往会为冷启动项和长尾项保留一些固定的曝光位置。
离线推荐和在线推荐:所谓离线推荐是指离线时预先计算出推荐结果列表,并存储在基于某种基础的NoSQL(例如Redis)中。 当用户请求时,会直接从NoSQL中取出; 所谓在线推荐是指系统在用户请求时根据规则、策略或模型的组合临时生成推荐列表。
离线召回和在线实时召回:所谓离线召回是指在离线时预先计算出需要召回的项目候选集,并存储在基于一定基础的NoSQL中; 所谓在线实时召回是指当用户请求到来时,召回服务根据某种逻辑暂时获取召回候选集(比如使用模型获取实时的用户兴趣向量,然后利用这个用户兴趣向量去向量检索库查找topK相似的项目向量)。 。
电商付费推荐系统和新闻/电影/视频等内容消费推荐系统的召回策略是不同的。 对于首页推荐场景来说,他们的召回策略或者推荐方法可能差别不大。 对于详情页推荐场景,他们的召回策略有很大不同。 新闻/电影/视频等内容消费推荐系统可能会将基于项目表示向量相似度的推荐方法得到的列表放在更有利的曝光位置或者基于基于项表示向量的召回策略给予最高优先级会更好item表示向量的相似度(因为对于内容消费场景,用户更喜欢item内容本身的相似度); 对于电子商务付费推荐系统来说,可能需要比内容消费推荐系统更多的推荐方法或召回策略。 例如,基于项目的关联推荐方法或召回策略在电子商务详情页推荐中可能是必要的,但在内容消费推荐系统中它们是可选的。 例如“经常一起购买的商品”的相关推荐和/或“浏览过该商品的用户也同时浏览过”的相关推荐(因为在这种场景下,除了关注详情页的商品之外,当前用户可能还对该项目经常出现的其他项目感兴趣)。
电子商务付费推荐系统还可以包括购物车页面推荐和支付完成页面推荐。 对于这样的场景,最好将关联推荐方法获得的列表放在更有利的曝光位置或者给予关联推荐召回策略最高优先级。 基于项目表示向量相似度的召回策略或推荐方法可能在这种场景下并不合适。 也就是说,当当前的购买意图非常确定时,用户更喜欢商品之间的共现,因为用户可能不想立即购买另一个内容非常相似的商品。 。
推荐系统中常用的评价指标
评价指标主要有两类:线上业务评价指标和线下评价指标。 一般来说,线上业务评价指标比较重要(往往需要多个指标一起看),其中包括转化指标(如转化率、点击率、总GMV交易额等)和内容消费满意度指标(如留存率、停留时长、观看时长等)
离线评价指标中,最常用的指标是AUC和GAUC,尤其是AUC。 AUC又细分为AUC-ROC和AUC-PR,AUC-ROC可能更常用。 AUC-ROC是指随机给定一个正样本和一个负样本,分类器输出正样本为正的概率值大于分类器输出负样本为正的概率值。 GAUC(Group AUC)计算每个用户的AUC,然后加权平均,最终得到Group AUC。 在实际处理中,权重一般可以设置为每个用户的浏览量或点击数,需要过滤掉单个用户的所有正样本或负样本。 对于样本情况,具体公式如下:
离线时最好同时关注AUC和GAUC指标。 在实践中,不要刻意追求离线验证集上的高AUC。 验证集上的AUC过高可能表明模型对该验证集过度拟合,在线效果可能很差。 一般离线AUC可能在0.7到0.85之间才可以上线。
首页推荐场景通用召回策略 基于热度/热度/排名的召回策略
可以从两个维度组合:统计周期和项目的优秀类别。 例如,统计一段时间内所有同一目的的项目的评价次数以及该项目的平均评分,并根据评分进行排序。 由于不同项目的评价数量可能相差很大,直接根据平均评分排序的效果并不好。 为了公平起见,采用加权评分更为合理。 可以参考下面的公式:
v为参与对某商品进行评分的用户数,m为筛选评分用户数的阈值,即对某商品进行评分的用户数低于阈值,则该商品将被忽略(对于例如,使用评分用户数的20%分位数来确定阈值),R是该项目的平均得分,C是所有项目的平均得分。
基于物品画像的召回策略
所谓物品肖像,是指对物品本身某一方面的描绘。 例如,物品的品牌、物品的价格、物品的类别等都称为物品的肖像。 这些肖像具有明显的物理意义。 我们称其为#骨肖像; 如果通过某种模型改变物品的item id,学到的“黑知识”,我们称之为黑知识,这是无法解释的,我们称之为隐式肖像。 从显性肖像和隐性肖像的角度来看,基于物品肖像的召回策略自然分为:基于物品内容的召回和基于整个物品的召回。
根据项目内容进行召回
基于整个项目的召回
原则
基本假设是用户喜欢内容与他们有过积极行为的项目相似的项目。
核心是计算Item之间的内容相似度
核心是计算item向量之间的相似度
计算过程
1.为每个item提取一些特征来表示这个item(包括结构化表示和非结构化表示);
2.利用用户过去喜欢(和不喜欢)的物品的特征向量来学习或计算用户的偏好向量;
3、通过将上一步得到的用户向量与候选物品的特征向量进行比较,向用户推荐一组相关性最大的物品。
1.首先通过一定的模型得到一个item的向量表示;
2.通过与用户最近操作过的那些项目进行聚合(例如向量相加或平均)来获得用户的向量;
3、最后计算用户与其他未发生过的项目的相似度并排序。
首页推荐场景中基于物品画像的召回是基于当前用户的密集行为(密集行为是指用户对很多物品进行了操作,而不仅仅是3、4个物品)。 这与后面要介绍的内容有关。 详情页推荐场景中常见的基于item表示向量相似度的召回不需要考虑当前用户的密集行为,这是有很大不同的。 对于基于item内容的召回过程,item的结构化表示和非结构化表示不应该直接拼接并用于计算向量之间的相似度,因为它们不是来自同一空间的表达。 如果要计算表示向量的相似度,最好将其作为该item的两种不同表示,并作为两种不同的召回策略; 如果是基于监督模型对用户偏好进行分类,结构化表示和非结构化表示可以一起作为特征建模到模型中。
基于协同过滤的召回策略
该方法仅基于用户行为数据,即基于User-Item矩阵或由用户和物品组成的图来设计,不包含任何其他特征。 本质上就是矩阵补全的思想。 正是因为基于矩阵的处理,只要用户或者物品发生变化,甚至变化,就可能需要重新计算或者重新训练(目前业界有一些增量协同过滤或者近实时协同过滤的方法)过滤)。 基于协同过滤的召回策略又细分为以下三种方法:基于用户的协同过滤/; 基于项目的协同过滤/; 基于模型的协同过滤。
上式中的U表示目标用户u的邻居用户集合(即topK个相似用户的集合),s表示用户-项目交互矩阵中出现过且已与邻居用户进行过交互的项目但不是由目标用户。 通过的项目。 Score(ui,s)是用户ui对item s的偏好,隐式反馈为1(只要操作行为不是用户直接打分的,就认为是隐式反馈,包括浏览、点击、播放、收藏、评论、喜欢)、转发等),而对于非隐式反馈,该值是用户对项目的评分。
主要缺点是,随着网站的用户数量越来越大,其运行的时间复杂度和空间复杂度都会随着用户的增长而呈爆炸式增长。 新闻/资讯/知识网站一般采用基于用户的CF进行回忆。 由于这些网站上的文章更新太快,基于项目的CF可能不适合。
根据物品的相似度和用户的历史行为为用户生成推荐列表:
上式中的S代表训练集中出现的项目集合; i 是用户 u 已经操作并出现在训练集中的项目;
指目标用户u对item i的评分(显式反馈是用户的具体评分,对于隐式反馈,该值为1)。
这可能是当今行业中使用最广泛的召回策略。 例如,电子商务、在线视频等网站经常被作为其首页推荐的召回内容之一。
基于用户画像的召回策略
简单来说,用户画像就是用户的标签。 标签的重要目的之一是使其易于理解且易于计算机处理。 基于用户画像的回忆是个性化推荐的本质,因为个性化是通过用户画像来体现的。 用户画像包括以下三类:
类别
例子
用户基本人口统计信息
性别、年龄、居住国家/省/城市、出生国家/省/城市、教育程度、职业、收入水平等(注意该信息的真实性)
兴趣肖像
用户兴趣标签、兴趣主题、兴趣关键词、兴趣等
行为分析
用户最近N次或者最近一段时间的某个行为的item id列表;
用户在一周内执行某种行为的次数; 用户的消费水平; 用户一个月内的点击率/转化率等
目前流行的方法是基于实时用户召回的方法,例如常见召回模型、DSSM、MIND等。
实现用户画像的总体思路如下:
总结
关于推荐系统概述的第一讲到此结束。 本文首先介绍了推荐系统的常见概念和常用的评价指标,然后详细介绍了首页推荐场景的四种通用召回策略,即基于流行度/流行度/排名的召回策略、基于物品画像的召回策略和协作基于回忆的策略。 过滤召回策略和基于用户档案的召回策略。 相信现在大家对推荐系统有了更深入的了解。 在第二讲中,我们将继续介绍推荐系统的其余概述。 感谢您的阅读。
本文作者
梁玉辉
亚马逊云技术机器学习产品技术专家,负责基于亚马逊云技术的机器学习解决方案的咨询和设计,专注于机器学习的推广和应用,深度参与了众多真实客户的构建和优化机器学习项目。 他在深度学习模型、推荐系统和计算广告的分布式训练方面拥有丰富的经验。
标签: , , , 人工智能, 推荐系统, 机器学习