我熟悉文章"隐式反馈数据集的协同过滤" http://yifanhu.net/PUB/cf.pdf。 我使用spark ml ALS隐式向用户推荐项目,参数Alpha = 30,Rank = 10,RegParam = 0.1。在我的数据集中,只有用户使用多个项目(根据此处给出的建议) How to improve my recommendation result? I am using spark ALS implicit)
我使用.recommendForAllUsers
并获得偏好p_ui
。然后我只过滤" new"建议(组合不在输入数据集中的用户项)。我也过滤首选项> 0.01以获得最优选的项目。
问题是:如何对首选项进行后期处理,使其更类似于"概率"? (这是我的程序要求输出某种"概率")的要求。
将偏好扩展到[0.5, 1.0]
是否是一个好主意? (使用公式:
scaled_preference = ($"preference"*0.5 + max_preference*0.5 -
min_preference)/(max_preference - min_preference) ) ?