将部分排名列表转换为全局排名


13

我正在研究以下问题。我有一堆用户和N本书。每个用户都会为他阅读的所有图书(可能是N本书的子集)创建一个有序的排名,例如,Book 1> Book 40> Book 25。

现在,我想将这些个人用户排名转换为所有书籍的单一排序排名。

是否有任何好的或标准的方法可以尝试?到目前为止,我正在考虑将Bradley-Terry模型应用于成对比较,但是我想知道是否还有其他功能。


2
我认为您会遇到稀疏性的许多问题,除非用户(出于某种原因)阅读了类似的书。但是给定n个人,并且鉴于大多数人阅读的书籍相对较少,因此绝大多数配对中只有一个人可以进行比较。(中位数为每人每年6个,请参阅皮尤
彼得·弗洛姆–莫妮卡复活

2
(+1)raegtin,您提出的问题很有趣。我喜欢BT型号,但似乎有点勉强。您是否熟悉协作过滤文献?问题不一样,但是可以借鉴一些概念和技术。这里要解决的一个问题是,为什么人们首先应该相信这些书能够获得明确,明确的排名。(例如,您将如何处理两人两书的情况?)
主教

@Peter Flom:是的,大多数人对没有比较。但我希望这是很好的,因为如果你知道A> B和B> C,那么即使A和C不能直接进行比较,就可以推断出A> C.
raegtin

@cardinal:是的,BT模型在这里似乎是强制性的,但这是我现在唯一想到的。我熟悉协作式过滤的文献,但是我不确定在这里如何应用,因为我想要排名,而不是相似之处。的确,单个全球排名不一定有意义(例如,比较儿童读物与成人读物,小说与非小说比较是否有意义),但是实际上,它仍然有用。“最好的”书单一直都在弹出:)
raegtin

另外,我不太在乎紧密的订购(例如,排名第一的书是否真的比第二册更好),而是总体上的订购(例如,我确实希望订购中排名前10%的书能够优于最低的10%或中间的10%)。
raegtin

Answers:


2

如果您对使用感兴趣(而不是对开发感兴趣),则应尝试对我们的排名系统rankade进行尝试。

Rankade是免费且易于使用的,它与Bradley-Terry模型和Elo排名系统(这里是一个比较)不同,因为它可以管理2个以上派系(例如,在您的情况下为书本)的比赛。插入用户的有序排名(作为两本或多本书籍之间的匹配,并带有详细的最终排名,包括平局),您将获得正在寻找的所有书籍单一有序排名。令人上瘾的是,rankade让您有机会检查时间变化以了解书籍排名,书籍配对统计信息等等。


1
您应该至少将算法描述为一种方法。并链接到全文描述的论文。否则,您的答案可能会被视为简单的广告。
ttnphns

1
我添加了一个链接,用于ree和最知名的排名系统之间的简单比较。第一句话说,如果您对使用感兴趣(而不是对开发感兴趣),那么建议将其作为解决问题的方法(等级具有GUI,而Bradley-Terry和Plackett-Luce需要使用),达到请求的解决方案的路径。
Tomaso Neri

1

Plackett-Luce排序模型可解决此问题,并且是一种基于似然性的技术,其中使用最大化-最大化例程来最大化似然性,这与期望最大化类似,因为它们使用的辅助目标函数优于似然函数,即优化以保证似然函数的迭代单调最大化。(请参阅David Hunter的Plackett-Luce排名模型的MM算法)。他还提供代码。

>=

这非常适合您的数据集:

书1>书40>书25

书40>书30

书25>书17>书11>书3等

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.