推荐引擎—算法策略讲解1|学习笔记

简介: 快速学习推荐引擎—算法策略讲解1

开发者学堂课程【阿里云推荐引擎使用教程推荐引擎—算法策略讲解1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/409/detail/5259


推荐引擎—算法策略讲解1


内容介绍:

一、基于内容的推荐

二、物品冷启动

三、具备用户标签的物品冷启动

四、无用户标签的冷启动


一、基于内容的推荐

1、算法执行流程

下图描述了该推荐的部分内容,其描述内容如下:从物品的原信息(ITEM_META)通过物品特征工程,以此来生成物品的特征(ITEM_FEATURE),再根据该特征生成推荐物品与物品之间的相关性列表(REC_SETitem-items)。在此基础上,后续的过程与其他推荐相同,即根据用户的行为加上物品之间的推荐列表来生成用户的物品推荐。

image.png

2、数据分析

进入推荐引擎控制台的调试页面,即可看到相关推荐对应的数据配置信息。其中包含输入数据与输出数据。

(1)输入数据

在输入数据中用户源信息,用户行为和 REC_ITEM_INFO(可推荐物品表)都是必选项,ITEM_MEGACONFIG(物品属性维度表)根据选择算法不同选择,有的算法要求其是可选的。

(2)输出数据

输出数据中有两个多类目型的输出,即 OFFLINE_MULTICLASS_ITEM_ITEM_REC 与OFFLINE_MULTICLASS_USER_ITEM_REC,其与参数有关,如果参数对多类目型的输出进行了配置,这两个多类目型的输出数据就会输出。而剩余两个输出数据,即OFFLINE_ITEM_ITEM_REC与OFFLINE_USER_ITEM_REC 则为必输出项,其输出的是物品跟物品之间的相似度列表和用户的推荐候选集,后者是我们主要使用的内容。在该页面可以进行参数设置。

3、参数设置

(1)物品特征工程

最重要的参数是物品特征工程,其中包含了三项内容,即特征抽取算法、特征变换算法与分词词库。特征抽取算法中预先提供了三种抽取算法,即 tfidf 抽取算法、物品属性特征抽取算法(properties_if)与 keywords 特征属性抽取算法(keywor ds_if)。tfidf 抽取算法主要是从 item_meta_description 字段中去抽取,也就是从正文中抽取其 tfidf 特征,它会配合分词算法来使用。对于分词算法,可以根据提供的参数选择分词词库,其中包括四个行业,即一个标准词库加三个行业词库。prop erties_if 是把用户的属性对应抽取为特征,主要是item_meta_properties 字段中抽取。keywords_if 主要是从 keywords 字段的特征。每种算法都有公共的参数以供选择,可以选择将其规一化的算法,也可以选择另一个特征变化的算法。目前我们只提供一个标准特征变化算法(discretize),以后会提供多个标准离散换算法。离散化算法中包括两个值,第一个值(discreteMethod)是指离散化的不同的方式,一种是等宽的 distance,一种是等频的 distance;另外一个参数描述的是离散化区间的个数。

(2)相似度计算方法

要计算两个物品间的相似度需使用相似度计算方法。相似度计算方法中系统为我们提供了三种方式,即用户行为时间跨度、行为权重和推荐结果数。其中用户行为时间跨度和行为权重是来做用户行为建模的信息,用户行为权重是指使用用户的哪些行为作为用户的评分,时间跨度是指用多长时间的用户行为来生成用户评分,我们会把用户n天的行为合并成以用户 ID 和物品 id 为 key 的 K/V 对,同时生成用户评分。

(3)多分类推荐

多分类推荐默认情况下不输出的,如果勾选 true,则输出多分类的模板,对应传入多分类的参数即可得到不同分类下的推荐结果。比如说新闻的多个栏目,或者是帖子的多个主题。其中包括两个参数,即物品类别数据来源和多分类组合。

物品类别数据来源中可通过不同的字段进行分类,即根据 ITEM_META_catagory 字段或REC_ITEM_INFO_class 字段或者组合前两种字段进而得到不同的类别。

多分类组合仅限“类别来源”包含 REC_ITEM_INFO 时生效。如果某个字段是可枚举的,比如有三个类目,要输出到两两类目之间的推荐结果,在该界面就可以选true,不过最多可以组合四项。保存设置,即可完成算法策略的配置。同时我们可以去试着生成在线流程。在线流程设置中,由于多分选择了 true,故此处有四种推荐方式可供选择的候选集。如果要做用户推荐,我们可以直接选择最后一种“用户对推荐物品的候选集”。点击“保存”,保存在线流程。


二、物品冷启动

该种算法策略适用于用户上传了新的物品,如何快速的将我们想要的结果也就是新的物品进行推荐出来的情况。

1、算法执行流程

该种算法策略如下图所示:

image.png

对于一个新的物品,在进线阶段,通过特征工程生成新物品的特征,通过特征计算simhash,最终得到 key 为 simhash,value 使 item 列表的推荐候选池,该推荐候选池的key是相当于是 item 聚类的 id,因为通过 simhash 会自动的把用户聚成 n 个类。我们可以 通过设置 simhash 的位数来选择聚类的大小。

等到用户请求的时候,我们可以通过用户之前看过的 item 计算这些 item 聚类属性,也就是通过用户的 feature 生成的新物品得到的新的聚类,即可得到用户相应的物品的聚类,再通过已经有的推荐列表聚类的 id 查询实时的聚类列表。这样即可获得个性化的新物品候选池进而将这些新物品推荐给用户。

2、参数设置

进入推荐引擎控制台的调试页面,即可看到相关推荐对应的数据配置信息。

物品冷启动输入数据界面中,ITEM_META、USER_BEHAVIOR 与 REC_ITEM_INFO必选的,其中 ITEM_META 来计算物品特征,USER_BEHAVIOR 用来生成用户基础的物品推荐列表。REAITIME_LOG(实时行为日志)是必需的,如果不选择该项,虽然系统不会报错,但是生成的数据可能为空。物品维度表也是物品特征工程,也是可选的,其会生成新的物品推荐集合。在该页面也可以设置参数。

(1)推荐结果个数

与基于内容推荐相同,不多作赘述。

(2)行为时间跨度与行为权重

这两者可以用来控制默认的推荐候选集

(3)UV阈值

该项是为了生成用户推荐列表所设置的参数

(4)物品特征工程子模板

该部分不多作介绍,与基于内容推荐中情况相同,用来设置特征工程部分的参数。


三、具备用户标签的物品冷启动

这种算法其实是一种用户的冷启动,即新用户过来该如何推荐。

1、算法执行流程

以下为该算法策略的流程图:

image.png

该种算法其实也与物品冷启动类似,它是先对用户做聚类然后新用户通过进线的特征工程来抽取用户的特征,通过分派即可计算到该用户所属的聚类,然后在该聚类中查询其中老用户的推荐列表进而组合形成新用户的推荐列表。

(1)数据分析

“输入数据”中,其中 USER_BEHAVIOR、REC_ITEM_INFO、ITEM_META 与USER_META_CONFIG 都是必选数据,因为该算法要求具备用户标签,而用户标签的定义是在 USER_META_CONFIG 中。USER_BEHAVIOR 是用户行为,最终结果是要生成用户能启动的候选集。

(2)参数设置

参数同样包括推荐结果个数、行为时间跨度、行为权重、UV 阈值和特征工程子模板。

前四个参数与物品冷启动的参数相同,均用来生成老用户的候选集,此处可对用户特征工程子模板作简单介绍。用户特征工程子模板有两个参数,其与物品冷启动类似,即特征抽取算法和特征变换算法。物品特征抽取仅提供了一种算法,即基于用户标签的特征抽取,即把用户 user_meta_tax 字段抽成特征。

若同时选择三种算法策略,新建在线流程,可以看到此时有许多项目备选。在选择时,可以将用户基础作为P1优先级;若为新用户,可以将新用户的物品推荐候选集作为 P2 优先级,如果没有新用户,就会进入第二优先候选集进行抽取推荐;也可以把物品的冷启动放到第一优先级,如果有新物品上传,会优先推荐新的物品,再推荐个性化物品,最后推荐新用户。


四、无用户标签的冷启动

这是一种更为通用的算法,大多数情况下没有用户标签,此时可以基于用户的一些历史行为,就其行为来实时来生成他的兴趣偏好,逐渐来寻找他的行为习惯,生成他的推荐列表。

1、算法流程

以下为该算法的流程图:

image.png

通过用户的行为生成用户物品的特征,然后将物品进行聚类,可以查询到某个用户之前点击的商品实时日志,点击关联商品,查找他点击商品的对应的聚类的信息。之后的话通过 Bandit 算法实时地更新用户对物品聚类的偏好值,通过偏好值再加上每个聚类下的物品来生成用户的推荐列表。

2、参数设置

ITEM_META、REC_ITEM_INFO 是必选内容,因为我们需要对物品进行聚类,ITEM_META_CONFIG 是可选项,需要选择合适的特征工程。该项包含两个参数,ee算法和特征工程子模板,其中特征工程子模板与上面学到的相同。

ee 算法是指选择的Bandit算法来计算用户对聚类的偏好值。一般是有两个算法,UCB 算法和 Beta 算法。

对于 Beta 算法,有一些常见的一些参数,第一个参数中,“topn”是指保持的聚类数目,操作过程中并不是要保留所有聚类的值,而只会保留 topn 的值;“posBhv”指定正向行为,比如可以把 heat 当作正向行为,也可以将 like 当作正常行为。第二个参数中,“topn”是指在线流程中保留推荐结果的数目。两种算法都中有两个参数可以配置。

带有用户标签的冷启动与不带用户标签的冷启动一般不会共用,当然也可以保存,相当于利用另外一种方式来获取推荐集。此时,在线流程中的推荐方式中就会增加一条推荐候选集。可以将其添加进去作为推荐的最低优先级,点击“保存”。在另外一条比较复杂的流程配置ABtest的占比,就可以生成基于 PV 分配的两个流程。

相关文章
|
2月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
185 26
|
6月前
|
存储 监控 算法
解析公司屏幕监控软件中 C# 字典算法的数据管理效能与优化策略
数字化办公的时代背景下,企业为维护信息安全并提升管理效能,公司屏幕监控软件的应用日益普及。此软件犹如企业网络的 “数字卫士”,持续记录员工电脑屏幕的操作动态。然而,伴随数据量的持续增长,如何高效管理这些监控数据成为关键议题。C# 中的字典(Dictionary)数据结构,以其独特的键值对存储模式和高效的操作性能,为公司屏幕监控软件的数据管理提供了有力支持。下文将深入探究其原理与应用。
163 4
|
2月前
|
存储 并行计算 算法
【动态多目标优化算法】基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023研究(Matlab代码实现)
【动态多目标优化算法】基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023研究(Matlab代码实现)
172 4
|
3月前
|
机器学习/深度学习 算法 数据可视化
近端策略优化算法PPO的核心概念和PyTorch实现详解
本文深入解析了近端策略优化(PPO)算法的核心原理,并基于PyTorch框架实现了完整的强化学习训练流程。通过Lunar Lander环境展示了算法的全过程,涵盖环境交互、优势函数计算、策略更新等关键模块。内容理论与实践结合,适合希望掌握PPO算法及其实现的读者。
617 2
近端策略优化算法PPO的核心概念和PyTorch实现详解
|
2月前
|
运维 算法 安全
基于变异粒子群算法的主动配电网故障恢复策略(Matlab代码实现)
基于变异粒子群算法的主动配电网故障恢复策略(Matlab代码实现)
|
4月前
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
133 4
|
6月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
179 3
|
8月前
|
存储 算法 安全
企业员工数据泄露防范策略:基于 C++ 语言的布隆过滤器算法剖析[如何防止员工泄密]
企业运营过程中,防范员工泄密是信息安全领域的核心议题。员工泄密可能致使企业核心数据、商业机密等关键资产的流失,进而给企业造成严重损失。为应对这一挑战,借助恰当的数据结构与算法成为强化信息防护的有效路径。本文专注于 C++ 语言中的布隆过滤器算法,深入探究其在防范员工泄密场景中的应用。
188 8
|
9月前
|
机器学习/深度学习 存储 算法
近端策略优化(PPO)算法的理论基础与PyTorch代码详解
近端策略优化(PPO)是深度强化学习中高效的策略优化方法,广泛应用于大语言模型的RLHF训练。PPO通过引入策略更新约束机制,平衡了更新幅度,提升了训练稳定性。其核心思想是在优势演员-评论家方法的基础上,采用裁剪和非裁剪项组成的替代目标函数,限制策略比率在[1-ϵ, 1+ϵ]区间内,防止过大的策略更新。本文详细探讨了PPO的基本原理、损失函数设计及PyTorch实现流程,提供了完整的代码示例。
4151 10
近端策略优化(PPO)算法的理论基础与PyTorch代码详解
|
8月前
|
存储 监控 算法
基于 Python 哈希表算法的员工上网管理策略研究
于当下数字化办公环境而言,员工上网管理已成为企业运营管理的关键环节。企业有必要对员工的网络访问行为予以监控,以此确保信息安全并提升工作效率。在处理员工上网管理相关数据时,适宜的数据结构与算法起着举足轻重的作用。本文将深入探究哈希表这一数据结构在员工上网管理场景中的应用,并借助 Python 代码示例展开详尽阐述。
135 3

热门文章

最新文章