Matrix Factorization Techniques for Recommender Systems
创新:经典的矩阵分解模型
采用ml-1m
数据集进行测试,转换为隐式数据集。数据集的处理见utils
文件,主要分为:
- 读取数据,列名
'UserId', 'MovieId', 'Rating', 'Timestamp'
; - 每个用户的平均打分作为一个特征
mean
; - 得到
feature_columns
:密集数据mena
,稀疏数据为item_id、user_id
; - 统计每个用户电影评分的总数,将用户的80%作为训练集(按时间排序),20%作为测试集;
- 最后返回
feature_columns, (train_X, train_y), (test_X, test_y)
;
class MF_layer(Layer):
def __init__(self, user_num, item_num, latent_dim, use_bias=False, user_reg=1e-4, item_reg=1e-4,
user_bias_reg=1e-4, item_bias_reg=1e-4):
"""
MF Layer
:param user_num: user length
:param item_num: item length
:param latent_dim: latent number
:param use_bias: whether using bias or not
:param user_reg: regularization of user
:param item_reg: regularization of item
:param user_bias_reg: regularization of user bias
:param item_bias_reg: regularization of item bias
"""
- file:Amazon Electronic文件;
- test_size:测试集占比,
0.2
; - latent_dim:隐藏单元维度,
32
; - use_bias:是否加入偏置,
True
; - learning_rate:学习率,
0.001
; - batch_size:
512
; - epoch:
10
;
采用ml-1m数据集数据,最终测试集的结果为: