Apache spark Spark mllib:隐式训练和显式训练的区别

Apache spark Spark mllib:隐式训练和显式训练的区别,apache-spark,machine-learning,apache-spark-mllib,recommendation-engine,collaborative-filtering,Apache Spark,Machine Learning,Apache Spark Mllib,Recommendation Engine,Collaborative Filtering,我尝试使用显式训练函数根据用户偏好(派生偏好)和MSE推荐产品,因为它对于训练和测试数据集都足够好。(λ=0.01) 当我在trainImplicit中使用相同的数据时,测试数据集和训练数据集的MSE都增加到20倍。(lambda=0.01,alpha=1.0) 现在我知道这些是不同的算法,但我如何判断隐式训练是否比显式训练更有效?基本上隐式训练和显式训练的区别在于,当你只有与该项目相关的隐式动作时,才应该使用隐式训练,以便提出建议,例如观点,点击、购买、喜欢、共享等,而当您对想要推荐的项目有明

我尝试使用显式训练函数根据用户偏好(派生偏好)和MSE推荐产品,因为它对于训练和测试数据集都足够好。(λ=0.01)

当我在trainImplicit中使用相同的数据时,测试数据集和训练数据集的MSE都增加到20倍。(lambda=0.01,alpha=1.0)


现在我知道这些是不同的算法,但我如何判断隐式训练是否比显式训练更有效?

基本上隐式训练和显式训练的区别在于,当你只有与该项目相关的隐式动作时,才应该使用隐式训练,以便提出建议,例如观点,点击、购买、喜欢、共享等,而当您对想要推荐的项目有明确的费率时,则假定使用explicit。
现在谈到这个算法在该领域的应用,我在做电影推荐系统时也得到了与您相同的情况,我无法解释为什么隐式在显式数据集训练时比显式得到更好的结果。在我看来,MSE是衡量绩效的合适标准。您可以做的一件事是检查spark mllib的实现,并尝试了解原因:)。
很抱歉,我没有回答您。

“在显式数据集中训练时,隐式比显式获得更好的结果”您是如何衡量这一点的?您是否需要隐式算法的评分/首选项介于0-1之间?很抱歉再次ping您,但您能否回答该问题^explicit的评分值是多少?我这样问是因为如果你不正常化,比如说你的评分在1-5之间,那么给定评分的平方误差将在0到16之间。而对于内隐反馈,它将在0到1之间。同样,你如何从外显到内隐?对我来说,使用explicit,对于每个用户,你都有很多未知的(他们没有评分的产品),然后是一些产品的评分(即使评分是0-1)。然而隐式的,你有很多0和一对1