【发布时间】:2019-09-08 15:33:56
【问题描述】:
如何为用户生成推荐的电影列表?知道我使用多层感知器来预测缺失的评级,(网络已经训练过) 我的模型是:
net = EmbeddingNet(
n_users=n, n_movies=m,
n_factors=15, hidden=[150, 100], dropouts=[0.2, 0.2])
训练后的最佳权重:
net.load_state_dict(best_weights)
训练后的嵌入用户和嵌入电影:
embedu = to_numpy(net.u.weight.data)
embedm = to_numpy(net.m.weight.data)
所以我的问题是:
我是否必须将用户的嵌入向量乘以电影的嵌入向量以形成用户电影矩阵?
pred = np.dot(embedu, embedm.transpose())
或者我必须直接采取网络模型预测?但是这里预测的收视数小于(用户数X电影数)数
pred = net(usersId, moviesId)
pred = pred.detach().numpy().tolist()
或者还有其他预测的解决方案吗?因为我试图按照fastai的这个教程来实现一个协同过滤系统......但他们没有通过示例向用户提供如何生成推荐电影列表
这里是链接: https://github.com/fastai/fastai/blob/master/courses/dl1/lesson5-movielens.ipynb 谢谢你
【问题讨论】:
标签: python neural-network recommendation-engine collaborative-filtering