Neural network-based Collaborative Filtering
创新:结合神经网络的协同过滤
采用ml-1m数据集进行测试,将其处理为用户序列。数据集的处理见utils
文件。
class NCF(Model):
def __init__(self, feature_columns, hidden_units=None, dropout=0.2, activation='relu', embed_reg=1e-6, **kwargs):
"""
NCF model
:param feature_columns: A list. user feature columns + item feature columns
:param hidden_units: A list.
:param dropout: A scalar.
:param activation: A string.
:param embed_reg: A scalar. The regularizer of embedding.
"""
- file:ml-1m文件;
- trans_score:阈值,
1
; - test_neg_num:测试集物品数量,
100
; - embed_dim:embedding维度,
32
; - hidden_units:mlp的隐藏单元列表,
[256, 128, 64]
- activation:
relu
; - dropout:
0.2
; - embed_reg:embedding正则化参数,
1e-6
; - K:top@k,
10
; - learning_rate:学习率,
0.001
; - batch_size:
512
; - epoch:
20
;
采用ml-1m数据集数据(序列推荐的处理方法),最终测试集的结果为:HR = 0.5265, NDCG = 0.2662;【采用用户最后一个item进行预测,结果好像很差】
若使用论文的数据集,可通过v1.0
版本进行测试;