我正在解决类似以下问题的问题。我有一堆用户和 N 本书。每个用户创建他读过的所有书的有序排名(这可能是 N 本书的子集),例如,书 1 > 书 40 > 书 25。
现在我想将这些个人用户排名变成所有书籍的单一排序排名。
有什么好的或标准的方法可以尝试吗?到目前为止,我正在考虑将 Bradley-Terry 模型应用于成对比较,但我想知道是否还有其他内容。
我正在解决类似以下问题的问题。我有一堆用户和 N 本书。每个用户创建他读过的所有书的有序排名(这可能是 N 本书的子集),例如,书 1 > 书 40 > 书 25。
现在我想将这些个人用户排名变成所有书籍的单一排序排名。
有什么好的或标准的方法可以尝试吗?到目前为止,我正在考虑将 Bradley-Terry 模型应用于成对比较,但我想知道是否还有其他内容。
Plackett-Luce 排序模型处理这个问题,并且是一种基于似然的技术,其中使用类似于期望最大化的主要化最大化例程来最大化似然性,因为它们在似然函数上使用辅助目标函数,即优化以保证似然函数的迭代单调最大化。(参见 David Hunter 的 Plackett-Luce 排名模型的 MM 算法)。他也提供代码。
从排名的角度来看,它们是您在帖子中提到的 Bradley-Terry 模型的扩展。Bradley-Terry 模型根据成对排名样本估计全球排名。Plackett-Luce 模型将此扩展到长度 2 的排名。它们还允许每个样本具有不同长度的排名。
这非常适合您的数据集:
第 1 册 > 第 40 册 > 第 25 册
第 40 册 > 第 30 册
第 25 册 > 第 17 册 > 第 11 册 > 第 3 册等。