我正在使用DCN开发推荐系统,下面是本教程https://www.tensorflow.org/recommenders/examples/dcn。
但他的教程缺乏推荐功能,我可以通过user_id和命令,它可以输出预测。类似于正在发生的basic_rating教程https://github.com/tensorflow/recommenders/blob/main/docs/examples/basic_ranking.ipynb
在DCN中也有这样的方法吗?
谢谢。
发布于 2022-08-30 09:48:11
我对自定义数据集使用了dcn模型,但遵循了本教程。
以下是模型培训代码(从dcn教程中粘贴的副本):
dcn_result = run_models(use_cross_layer=True,
deep_layer_sizes=[192, 192])
def run_models(use_cross_layer, deep_layer_sizes, projection_dim=None, num_runs=5):
models = []
rmses = []
for i in range(num_runs):
model = DCN(use_cross_layer=use_cross_layer,
deep_layer_sizes=deep_layer_sizes,
projection_dim=projection_dim)
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate))
models.append(model)
model.fit(cached_train, epochs=epochs, verbose=False)
metrics = model.evaluate(cached_test, return_dict=True)
rmses.append(metrics["RMSE"])
mean, stdv = np.average(rmses), np.std(rmses)
return {"model": models, "mean": mean, "stdv": stdv}
在此之后,您可以从经过培训的模型列表中选择一个特定的模型,例如:
model = dcn_result['model'][3]
然后,您可以通过输入功能将字典传递给模型,以获得分数的推荐,例如::。
test_ratings = model({"user_id": np.array(["00012a2ce6f8dcda20d059ce98491703"]),
"customer_city":np.array(["sao paulo"])})
for product, score in test_ratings:
print(f"{product}: {score}")
--这将产生输出:
43ee88561093499d9e571d4db5f20b79: [[1.3206882]]
https://stackoverflow.com/questions/72522908
复制相似问题