問題起源
??多樣性問題,最早誕生于信息檢索任務當中状勤,因為在信息檢索的過程中,可能輸入的查詢會存在多種意思双泪。比如搜索java持搜,可能會有不同類型的結果。它可以是一種編程語言焙矛、可以是咖啡也可以指爪哇島葫盼。再比如兩三年前我想在京東買一箱蘋果,但是在搜索蘋果之后出來的全是手機以及配件村斟。面對這種檢索詞有歧義的情況多樣性的結果列表能夠較快的了解用戶的真正目的剪返。隨著推薦系統(tǒng)的發(fā)展多樣性也成為對推薦系統(tǒng)的重要評價指標之一。中多樣行的提升一方面可以提升冷門項目特別是長尾項目的曝光率邓梅,另一方面也可以挖掘興趣廣泛用戶的潛在興趣點脱盲。
建模與度量
Individual Diversity:
??多樣性的度量與建模一共有兩種層面,第一種層面上的多樣性是指個體的多樣性日缨,這是在衡量當前列表中物品的新穎程度钱反,即該類型的物品,在之前的推薦列表中出現的次數較少匣距。
1.Alpha-nDCG:
在保證新穎性的同時保證多樣性面哥。
Query-Topics Dictionary(每個query中所包含的topic):
{"85.1", "85.2", "85.3", "85.4", "85.5", "85.6"};
Doc-Topics Dictionary(每個文檔中所包含的topic):
docDict["a"] = {"85.2", "85.4"};
docDict["b"] = {"85.2"};
docDict["c"] = {"85.2"};
docDict["d"] = {};
docDict["e"] = {"85.1", "85.6"};
docDict["f"] = {"85.1"};
docDict["g"] = {"85.3"};
docDict["h"] = {"85.1"};
docDict["i"] = {};
docDict["j"] = {};
Ranking Query-Doc Dictionary(關于某個query的文檔排序)
{"a", "e", "g", "b", "f", "c", "h", "i", "j", "d"};
增益的計算方式:
新穎性:當前的話題之前出現過的次數ri,k-1
多樣性:當前項目中是否包含query中的話題J(dk,i)
例子:
當前輸入的query為{1,2,3,4,5}
當前的ranking dict為{ a,b,c }
docdict: a{1,2}
b{3,6,7}
c{3,4,5}
alpha-dcg:
a: ((1-α)0+(1-α)0)/log2(1+1);
b: ((1-α)0+0+0)/log2(1+2);
c: ((1-α)1+(1-α)0+(1-α)0)/log2(1+3);
ideal-dcg:
c: ((1-α)0+(1-α)0+(1-α)0)/log2(1+1);
a: ((1-α)0+(1-α)0)/log2(1+2);
b: ((1-α)1+0+0)/log2(1+3);
idcg的產生方式:
先選取序為0的樣本,以此計算每個樣本當前的增益毅待,選取使當前位置增益最大的樣本放在第一位尚卫。再從剩下的序中選取序為1的樣本以此類推。
0: a:((1-α)0+(1-α)0)
b:((1-α)0+0+0)
c:((1-α)0+(1-α)0+(1-α)0)
whoisbest = "c";
bestvalue = (1-α)0+(1-α)0+(1-α)0);
doc_candidates.erase("c");
nDCG = DCG/iDCG
參考論文:novelty and diversity in information retrieval evaluation
鏈接:https://dl.acm.org/doi/10.1145/1390334.1390446
參考代碼:alpha-ndcg-cpp
鏈接:https://github.com/Pabfigueira/alpha-NDCG-cpp/blob/master/alpha_nDCG.cpp
2.ILS(Intra List Similarity):根據推薦列表內文檔對的相似程度來度量
對一個存在n個樣本的列表而言有C(n,2) 一共n(n-1)/2個pair尸红。
simi為第i項屬性的相似程度吱涉,wi為各屬性的權重
參考論文:Improving recommendation diversity
鏈接:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.8.5232&rep=rep1&type=pdf
參考論文:When Diversity Is Needed... But Not Expected!
鏈接:https://hal.inria.fr/hal-00931805/document
因相似度的評價方式而異刹泄,不同的評價方式可能會呈現出不同的結果。其中特征的各種距離也常被用來評價相似度怎爵。
參考論文:Improving recommendation lists through topic diversification
鏈接:https://dl.acm.org/doi/10.1145/1060745.1060754
Aggregate Diversity:
??而第二種層面的多樣性算法是指特石,總體的多樣性或者說是系統(tǒng)層面上的多樣性。這個層面上的多樣性可以看作是對個體的列表進行匯總而得到的一個結果鳖链,如果所有人的列表中包含的內容都是相似的那么系統(tǒng)多樣性就較差姆蘸,這種評價更加照顧在長尾中的物品。
??值得注意的是:雖然總體多樣性是個體多樣性匯總得到的結果芙委,但是個體多樣性的提升和總體多樣性的提升并不是同步的逞敷,比如只從5個類里選熱門的東西進行推薦,這樣的個體多樣性評價是很高的灌侣,但是總體多樣性的評價卻比較低推捐。
??對總體多樣性的評價方式而言主要有三種方式。首先是絕對長尾數值的評價方法顶瞳,該方法利用在推薦系統(tǒng)中低于某個流行度排名的物品所被推薦的頻次對物品的流行度進行評估玖姑。頻次越高說明多樣性越好,另一種對應的方式是慨菱,相對長尾數值的評價方法焰络,該方法利用在推薦系統(tǒng)中低于某個流行度排名的物品在推薦系統(tǒng)中所占的比例,來評價符喝,同理所占比例越高則證明多樣性就越好闪彼。
??另一種方法是基于基尼系數的評價,該方法是把用在經濟學領域的洛倫茲曲線用在了對推薦系統(tǒng)多樣性的評價方式上协饲,對物品所被推薦對頻率在橫軸上進行一個升序的排列畏腕,縱軸表示物品被推薦的概率分布,導數代表概率密度茉稠,曲線的彎曲程度越大說明后半段導數就越大描馅,相對熱門的物品被推薦的就過多。當曲線變成直線時而线,就說明每個位置上的物品被推薦出去的 可能性是相同的铭污,這時在多樣性的評價上是最好的。