推荐算法

最近更新时间:2023-12-15 16:36:35

我的收藏
注意:
部分输出请在高级设置中查看。

基于商品的协同过滤(ItemCF)

原理

算法说明

根据所有用户对物品的评价,发现物品直接的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。例如,用户 A 喜欢物品 A 和物品 C ;用户 B 喜欢物品 A 、B 、C ;用户 C 喜欢物品 A 。从这些用户的历史喜好中,可以认为物品 A 和物品 C 比较类似,基于这个判断,用户 C 也可能喜欢物品 C 。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*用户列:User 所在列,从 0 开始计数。
*商品列:Item 所在列的列号,从 0 开始计数。
*打分列:评分所在列的列号,从 0 开始计数。
算法参数
*相似产品的个数:当前产品相似产品的个数
*产品评分最大保留数:计算时单个产品最多使用多少个评分计算,设定一个阈值来限定单个产品使用的最多评分数可以在一定程度上减少长尾分布带来的影响。

Demo

输入数据示例

User,Item,Rating
0,1,4
0,2,5
1,0,1
2,0,3
2,1,4
2,3,5
3,1,3
3,2,4
3,4,2

参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分隔符:逗号
*用户列:0 。
*商品列:1 。
*打分列:2 。
算法参数
*相似产品的个数:10
*商品评分最大保留数:0

预测过程

训练算子训练成功后,将模型路径接口与预测算子模型路径接口相连进行使用即可。具体配置参考“算法 IO 参数”。

将测试数据拖拽到预测算子输入数据接口,运行预测算子对测试数据进行预测。

输出数据示例

User Item Rating prediction
0 1 4 5
0 2 5 4
1 0 1 NaN
2 0 3 4.61550012
2 1 4 4.026334035
2 3 5 3.397040593
3 1 3 3.249771187
3 2 4 2.555435033
3 4 2 3.571428587

基于用户的协同过滤算法(UserCF)

原理

算法说明

基于用户的协同过滤算法先使用统计技术寻找与目标用户有相同喜好的邻居,然后根据目标用户邻居的喜好产生向目标用户的推荐。基本原理就是利用用户访问行为的相似性来推荐用户可能感兴趣的资源。假设用户 A 喜好物品 A 和 C ,用户 B 喜欢物品 B ,用户 C 喜欢物品 A 、C 和 D 。从这些用户的历史喜好中,我们发现用户 A 和用户 C 的口味和偏好是比较类似的,同时用户 C 还喜欢物品 D ,那么我们判断用户 A 也可能喜欢物品 D ,从而向用户 A 推荐物品 D 。

参数配置

算法 IO 参数
*输入文件类型:格式包括以下两种:
csv :csv 文件
*输入数据包含 header 信息:默认为“是”。
*输入数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
*输出数据包含 header 信息:默认为“是”。
*输出数据分隔符:数据分隔符,默认为逗号,可下拉选择其他分隔符。
parquet :列式存储格式 parquet
*用户列:User 所在列,从 0 开始计数。
*商品列:Item 所在列的列号,从 0 开始计数。
*打分列:评分所在列的列号,从 0 开始计数。
算法参数
*相似用户的个数:当前用户相似用户的个数。
*用户评分最大保留数:计算时单个用户最多使用多少个评分计算,设定一个阈值来限定单个用户使用的最多评分数可以在一定程度上减少长尾分布带来的影响。为 0 时表示使用全部评分。
*最高的 k 个产品:推荐产品的个数。

Demo

输入数据示例

User,Item,Rating
0,1,4
0,2,5
1,0,1
2,0,3
2,1,4
2,3,5
3,1,3
3,2,4
3,4,2

参数配置

算法 IO 参数
*输入文件类型:csv
*输入数据包含 header 信息:是
*输入数据分隔符:逗号
*用户列:0 。
*商品列:1 。
*打分列:2 。
算法参数
*相似产品的个数:10
*用户评分最大保留数:0
*最高的 k 个产品:5

预测过程

训练算子训练成功后,将模型路径接口与预测算子模型路径接口相连进行使用即可。具体配置参考“算法 IO 参数”。

将测试数据拖拽到预测算子输入数据接口,运行预测算子对测试数据进行预测。

输出数据示例

User Item Rating prediction
0 1 4 3.7757761
0 1 4 4.2242236
0 1 4 4.7757764
0 2 5 3.7757761
0 2 5 4.2242236
0 2 5 4.7757764
1 0 1 1.0
1 0 1 2.0
2 0 3 3.7116206
2 0 3 4.4500685
2 1 4 3.7116206
2 1 4 4.4500685
2 3 5 3.7116206
2 3 5 4.4500685
3 1 3 2.7465043
3 1 3 3.2534957
3 2 4 2.7465043
3 2 4 3.2534957
3 4 2 2.7465043
3 4 2 3.2534957