我有一个基于用户相似的布尔优先推荐。 我的基本数据集,其中包含项目Id是文章的用户已经决定读关系。 我想补充包含第二数据模型,其中项目Id是订阅特定主题。
我能想象这样做的唯一方法是通过合并两个在一起,抵消了订阅ID,使他们不与文章ID冲突。 用于加权我考虑丢弃的布尔偏好设置和引入偏好分数,其中,所述子集物品具有1的偏好分数(例如)和子集的订阅具有2的偏好分数。
我不知道这是否会工作,但是,由于偏好度是不完全类似于排序加权后我; 他们可能包括表示不满,得分较低的一些概念。
我想象有一个更好的方式来做到这一点,或至少有调整我的计划这将使它沿着我的愿望线工作了。
我觉得你在正确的思维方式吧。 是的,你想多一点表现不是简单的存在/不用于订阅和文章存在的,因为它们的含义有所不同的东西。 我会建议挑选反映其相对频率权重。 例如,如果用户已经读了所有的时间100K的文章,并提出10000个订阅,那么你可以选择订阅的重量为“10”和读重量为“1”。
这个如果你把这些值作为偏好分数,对于一些原因完全不是那么回事。 如果您使用的对待他们就像他们是什么办法,这是线性加权它工作得更好。
我想指出你的ALS-WR算法,这是专门为这种类型的输入而设计的。 例如: 协同过滤的隐式反馈数据集
这在Mahout中实现为ParallelALSFactorizationJob
在Hadoop上。 它可以很好地虽然需要的Hadoop。 (我不能邀功,虽然我没有写最亨利马乌推荐代码。)
广告语:我工作的一个商业化的“下一代”系统,从我在Mahout中的工作发展,为Myrrix 。 这是ALS-WR的实现,非常适合您的一种投入。 这是很容易下载和运行 ,并且不需要的Hadoop。
因为它可以直接适用于你的问题,我不介意在这里堵了。