打散作為推薦系統比較重要的數據處理邏輯,是推薦系統避免數據扎堆最重要的實現手段,本次介紹推薦算法中最簡單的輪詢算法。
輪詢算法一般分為單維度、雙維度輪詢,所以本文主要介紹,單維度輪詢和雙維度輪詢兩種。
單維度輪詢:
單維度輪詢主要是把數據按照某一個角度進行分類,比如推薦業務中,相同品牌的商品不能相鄰出現,這里可以對數據集作以下處理,具體流程如下
注:不同的形狀代表不同的品牌
按照品牌分類前的結果集如下圖:

按照品牌分類后的結構如下圖(形狀):

針對以上結構,可輪詢每個分類,每次取分類中某個位置的一個元素,最終輪詢結果如下:

根據上面結果可見,當某個分類比較多時(如圖中的三角形有5個),容易導致尾部扎堆現象出現,這也是分類輪詢比較大的缺點。
雙維度輪詢:
雙維度輪詢即在單維度輪詢的基礎上,再次對單維度分類結果進行第二個分類去分類,然后對第二個維度分類結果輪詢,再輪詢第一個結果分類,比如推薦業務中按照四級商品組(形狀),品牌(字體顏色)輪詢,大體流程如下
分類:原始結果集 -》 維度一分類 -》 維度二分類
輪詢:維度二分類結果輪詢 -》 維度一分類結果輪詢 -》 最終輪詢結果集
原始結果集

分類結果

維度二輪詢

維度一輪詢(最終結果)

這種情況會打的更散,但是依舊無法解決維度扎堆的情況,只能相對縮小扎堆的可能性(9、10依舊扎堆,一般來說,標准差越大,越不適合用這種打散方式)
