繁体   English   中英

训练后评估推荐 a model

[英]Evaluate recommendations after training a model

首先,我想创建一个推荐系统。 在神经网络的帮助下,这应该可以预测用户 X 最有可能购买哪些文章。

我已经用正确的数据集和 neuMF model 的帮助训练了一个neuMF (您也可以查看图片中的不同层)。

在此处输入图像描述 [来源https://arxiv.org/abs/1708.05031]

我的数据集包含以下内容:

在此处输入图像描述

event包含用户是否查看了商品(view)、将商品放入购物车(addtocart)或购买了商品(transaction)。

我已经找到了他们如何确定建议的示例实现。 以下是关于它的文章:

现在我已经训练了我的 model,我准备为给定的播放列表推荐歌曲,但是。 我遇到的一个问题(见下文)是我需要嵌入新的播放列表(存储在我的模型中)以便使用 kmeans 在该嵌入空间中找到最接近的相关播放列表,我不确定如何解决这个问题问题-原样。 似乎我每次获得输入播放列表时都必须重新训练我的整个 model 以便嵌入该播放列表,因此,我只是在随机选择的播放列表(恰好是摇滚和老歌!大部分!)上测试我的 model训练集。

为了推荐歌曲,我首先将所有训练播放列表的学习嵌入聚类,然后将我给定的测试播放列表的 select 个“邻居”播放列表与同一聚类中的所有其他播放列表聚类。 然后,我从这些播放列表中取出所有曲目,并将测试播放列表嵌入和这些“相邻”曲目输入我的 model 进行预测。 这根据它们在给定测试播放列表中接下来出现的可能性(在我的模型下)对“相邻”曲目进行排名。

[来源https://github.com/caravanuden/spotify_recsys]

我刚刚训练了我的 model,现在我想就用户 X 最有可能购买哪些商品提出建议。 我是否必须执行另一种算法的实现,例如确定最近的邻居 ( knn ) 或者是否足以训练 model 然后从中导出数据?

在用数据训练 model 之后,我该如何继续,如何从中获得建议? state 在这方面的艺术是什么,以便收到受过培训的 model 的建议?

提前致谢。 期待建议、想法和答案。

这取决于model 的用例。这是双重的,首先是因为您的特定用例所需的性能(速度),其次是关于neuMF model 的主要弱点(在我看来):如果用户与更多项目交互,预测不会改变,因为它们不是训练的一部分。 正因为如此,如果在实时在线设置中使用,推荐将基本上基于以前的行为,并且不会考虑当前的 session,除非 model 被重新训练。

neuMF model 特别擅长区间推荐的批量预测。 例如,如果您想要在每周 email 内向用户推荐商品,那么您将为每个用户预测每个商品的 output 概率,然后是 select 前n (例如 10)个概率并推荐它们。 (你将不得不在下周重新训练 model,以便根据用户最近的项目交互获得其他预测。)因此,如果有 10000 个独特的项目,对于每个用户,进行 10000 个单独的预测,并基于n项目推荐在那些。 主要缺点当然是这 10000 个预测需要一段时间才能执行。 因此,它可能不适合实时在线预测。 另一方面,如果你对预测的并行化很聪明,那么这个限制也可以被超越,尽管这可能是不必要的。 这是因为,如前所述,预测不会根据当前用户交互而改变。

使用knn在嵌入空间中对用户进行聚类,然后获取这些用户的项目,并将它们输入 model 似乎是不必要的,而且在我看来,这违背了整个模型架构的目的。 这是因为neuMF model 的全部意义在于在所有其他用户的交互中概括给定用户与项目的交互,并以此为基础进行推荐,这样您就可以在给定用户和项目的情况下获得该交互的概率具体项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM