个性召回算法 LFM

个性召回算法 LFM



前言

学习整理笔记,内容所有权不在我

什么是LFM算法

LFM算法输入的是USER对ITEM的点击展示矩阵矩阵,和想要输出的用户与商品向量维度
返回:每一个user的向量表示和每一个item的向量表示

应用场景:
1.完成user的item推荐列表,toplike
2.完成item的相似度列表,topsim
3.完成item之间隐藏topic的挖掘,topic
在这里插入图片描述

1. 算法框架

用户u和商品i,u和i之间的关系紧密程度为两者向量相乘
在这里插入图片描述
初始的loss函数:
在这里插入图片描述
正则化得loss函数:
在这里插入图片描述
梯度计算:
在这里插入图片描述

其他需要注意的
负样本选取,隐特征F(一般设置在10到32之间),正则参数,lr

2. 与CF的比较:

LFM理论更加完备
CF需要储存用户*物品矩阵
LFM只需要对每个用户和物品存储他们的向量,因为向量长度远小于用户和物品数量,所以大大降维
CF可以做到实时响应,LFM难以很快迭代向量,无法实时

LFM代码记录

1. 数据

def get_train_data
返回训练集,其中正采样的数据格式:[userid, itemid, 1]
负采样的数据格式:[userid, itemid, avescore]
get_item_info储存movie表格
get_ave_score 每个电影的均值

2. 训练环节

def lfm_train(train_data,F,alpha,beta,step):
训练数据,向量维度,正则化系数,学习率,迭代次数

def init_model(vector_len):
初始化长度为vector_len的[0,1)范围内的向量

def model_predict(user_vector, item_vector):
两个向量的相似度

def model_train():
执行训练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>