推荐召回场景-FM Embedding实现方案-阿里云开发者社区

开发者社区> 阿里云机器学习> 正文

推荐召回场景-FM Embedding实现方案

简介: 智能推荐分为排序和召回两大模块,在召回模块中通常会采用将 用户User和待推荐的 内容Item 分别以向量表示,然后通过User和Item的向量乘积大小作为User对Item的感兴趣程度的判断。本案例介绍如何基于真实的推荐场景数据,通过使用PAI平台提供的FM算法和Embedding提取算法产生User和Item的描述向量。

背景

被实验案例的数据和完整实验流程已经内置于PAI-Studio建模平台https://data.aliyun.com/product/learn

进入PAI-Studio,首页模板最下方位置点击从模板创建“推荐场景-FM向量召回”开箱即用

智能推荐分为排序和召回两大模块,在召回模块中通常会采用将 用户User和待推荐的 内容Item 分别以向量表示,然后通过User和Item的向量乘积大小作为User对Item的感兴趣程度的判断。本案例介绍如何基于真实的推荐场景数据,通过使用PAI平台提供的FM算法和Embedding提取算法产生User和Item的描述向量。

详细流程

完整业务流程图:

1.数据说明

原始数据如图:

数据字段描述:

  • userid:user的id信息
  • age:user的年龄
  • gender:user的年龄
  • itemid:item的id信息
  • price:item的价格
  • size:item的大小
  • label:目标列,是否购买,1为买,0为未买

2.One-hot编码

One-hot编码可以将字符型数据转成数值型表示,在FM-Embedding方案中首先利用“onehot编码-1”针对全量数据进行编码,生成编码模型再输入到“onehot编码-2”和“onehot编码-3”中,“onehot编码-2”需要选择User对应的特征信息进行编码,“onehot编码-3”选择Item对应的特征信息进行编码。

“onehot编码-2”的输入是userid、gender、age,附加列选择userid。

“onehot编码-3”的输入是itemid、price、size,附加列是itemid。

3.FM训练

正则化和维度这两个参数有3个参数,分别对应常数项、一次项和二次项。其中维度的第3个参数“10”代表生成的Embedding的维度。

4.Embedding提取

  • Embedding向量id列名:输入左桩FM训练中的模型“feature_id”
  • Embedding向量列名:输入左桩FM训练中的模型的“feature_weights”
  • 权重向量列名:输入右桩对应的稀疏化数据列
  • 输出结果列名:输出的Embedding字段名

最终输出结果:

总结

使用PAI提供的整套FM-Embedding方案可以在推荐业务场景中快速挖掘出User和Item对应的特征向量,在实际召回模块只要做User和Item的特征向量积就可以得到打分结果。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云机器学习
使用钉钉扫一扫加入圈子
+ 订阅

官方博客
官网链接