通俗理解Fagin’s Algorithm和Threshold Algortihm

Fagin算法和Threshold算法都是Top-K排序領域的經典算法(K代表只要對前K個值排序值),不同于傳統Top-k對一維數組前K個值排序,Fargin和Threshhold算法適用于參考多個排序指標時對前k個物品排序。
**舉例 **
你想買個手機,問了兩個對電子產品比較在行的朋友,朋友1給出了這份推薦列表:

而朋友2卻給了這份推薦列表:

假如你對兩個朋友都同樣信任,你該聽誰的建議呢?
方法1--平均兩個列表的推薦指數
根據原來兩個推薦列表每項的推薦指數,重新生成一個列表,新列表的每項參考原來列表的值來重新計算;譬如:
V(iphone 5s)=(V1(iphone 5s)+V2(iphone 5s))/2=(10+7)/2=8.5
V(小米3)=(V1(小米3)+V2(小米3))/2=(9+9)/2=9
...............
然后每個型號來比較,這種方法簡單暴力,感覺上不高效,因為你只要買一個手機,卻要把每個手機權重都計算出來;感覺上只要每個列表比較前面幾個就夠了,但具體要比較幾個呢?卻又說不清,這時候就該的Fagin和Threshold算法出馬了!
Fagin算法
1.兩個列表都選擇各自的第一行的某項,生成新列表


2.兩個列表再取第二行的每項,放到新列表中

3.兩個列表再取第三行的每項,放到新列表中
........
(直到新列表有一項的值在原先兩個列表都取到過;可以看到其實第二步就可以停了,因為新列表的小米3的兩個值都取到了)
4.補全每項在其他列表中的值

5.就從已獲取項里找最推薦的手機,列表其他值沒必要看了

所以小米3是最值得入手的!
疑問1:這里總共只取了三個手機來作比較,原先兩個列表其他項都沒再比較,真的就可以了?
回答:當小米3從原先兩個列表都取到了值,這說明原先兩個列表再也找不到一個手機品牌推薦指數能比小米3再高了(因為如果有,它至少在原先某個推薦列表排名比小米3高,會已經出現在新列表中了)
疑問2:小米是第一個原先兩個列表都獲取到值的,所以平均分最高?
回答:就算小米3首先"出線",也不能說小米3是最值得入手的,還需要把iphone 5s和Find 7在其他列表的推薦指數也找出來,將三個一一比較才能知道最后鹿死誰手~(當然第5步比較了發現還是小米3高)
Threshold算法
1.兩個列表都選擇各自的第一行的項,生成新列表(這一步和Fargin算法相同)

2.算出兩列表取出的第一行的平均值
(V(iphone 5s)+V(小米3))/2=(10+9)/2=9.5
3.補全每項在其他列表中的值

4.看新列表的各手機推薦指數平均值是否大于第2步算出的9.5

8.5和9都比9.5小,重復1~4步
5.兩個列表都選擇各自的第二行的項,添加到新列表

6.算出兩列表取出的第二行的平均值
(V(小米3)+V(Find7))/2=(9+8)/2=8.5
7.補全每項在其他列表中的值

4.看新列表的各手機推薦指數平均值是否大于第6步算出的8.5

這一步可以看出iphone 5s和小米3都已經大于(等于)第6步算出的8.5,因而沒必要再找了(原先兩列表剩下的各項最大平均分也不會超過8.5);對比ihone 5s和小米3的平均分,還是選擇了小米3.
最后
以上例子雖然只是K=1簡單情況下的比較,但Fagin和Threshold算法的基本原理也就大體這樣,想要準確而全面了解Fagin和Threshold算法的同學可以看嚴(rong)謹(chang)的論文Optimal aggregation algorithms for middleware.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,242評論 25 708
  • 一些離題萬里的碎碎念 那是三年前吧,寫過一些初中復讀那年的故事,草草結尾后,已遠離文字好幾年了,突然看到簡書,想寫...
    大漠十三閱讀 248評論 1 2
  • 頭一次用簡書,讓我想起了以前咬著筆一字一字碼文的日子,雖然常常半途而廢不寫結局,雖然那些故事從來都是寫給自己看...
    SPEC凪涼閱讀 243評論 0 0
  • 文|77若初 秋漸濃,院子里的那些樹,美的繽紛奪目。除了常綠的樹依舊常綠,多數的樹葉都紅的黃的又熱鬧了起來,像春日...
    若初的清明覺知閱讀 608評論 17 21