我正在考虑PredictionIO
用于构建音乐推荐系统。
但是,在用户-项目交互中,仅支持以下操作:喜欢、不喜欢、查看、转换和评分(等级 1 - 5)。
我现有的数据仅包含视图(用户听歌)。
我应该如何将我的数据转换为PredictionIO
输入?我可以为同一个用户项拥有多个视图记录(更多视图 = 更多权重)还是会PredictionIO
根据时间戳查看最近的一个?
我正在考虑PredictionIO
用于构建音乐推荐系统。
但是,在用户-项目交互中,仅支持以下操作:喜欢、不喜欢、查看、转换和评分(等级 1 - 5)。
我现有的数据仅包含视图(用户听歌)。
我应该如何将我的数据转换为PredictionIO
输入?我可以为同一个用户项拥有多个视图记录(更多视图 = 更多权重)还是会PredictionIO
根据时间戳查看最近的一个?
只是为了完整性,正如PredictionIO 用户组中所回答的那样:
从当前版本 0.7 开始,内置算法不会聚合多个视图操作,因此更多视图操作并不意味着更多权重。您可以自定义算法来处理它。
如果您有多个 U2I 操作(例如,查看、喜欢、评分),您可以定义冲突解决标准(例如,最新、最高)。但在你的情况下,一个动作(即用户听歌)多个“视图”将相当于一个“视图”。
PredictionIO 的下一个版本将对自定义算法和引擎(例如,音乐推荐)提供更好的支持。
我只使用 Mahout,所以不知道 PredictionIO 如何将您的数据转换为输入和算法选择。
对于 Mahout,您将使用基于项目的推荐器,使用布尔输入并输入您的“聆听”作为值为 1 和相似性度量 SIMILARITY_LOGLIKELIHOOD 的操作。LLR 无论如何都会忽略权重。权重用于尝试预测用户评分的旧式推荐器。现在大多数人都对更好的排名更感兴趣,上面的配置会给你最好的结果。