一、定義
e&e就是探索(explore)和利用(exploit)。
exploit:
基於已知最好策略,開發利用已知具有較高回報的item(貪婪、短期回報),對於推薦來講就是使用者已經發現的興趣,繼續加以利用推薦。
優點:充分利用高回報item。
缺點:容易陷入區域性最優,可能錯過潛在最高回報的item。
explore:
挖掘未知的潛在可能高回報的的item(非貪婪、長期回報),對於推薦來講,就是探索使用者新的未知的興趣點,防止推薦越來越窄。
優點:可以發現更高回報的item。
缺點:充分利用已有高回報的item機會減少(如果高回報item之前已經找到,再探索肯定就會浪費高回報的機會)
目標:要找到exploit & explore的trade-off,以達到累計回報最大化。
如果exploit佔比太高,那麼推薦就會越來越窄,最終收益反倒下降;如果explore佔比過高的話,可能大多是使用者不太感興趣的,浪費的機會比較多,綜合收益下降更快。
二、mab(multi-armed bandit)多臂賭博機問題
乙個賭徒,要去搖賭博機,走進賭場一看,一排賭博機,外表一模一樣,但是每個賭博機吐錢的概率可不一樣,他不知道每個。他不知道每個賭博機吐錢的概率分布是什麼,那麼想最大化收益該怎麼辦?這就是mab問題,又叫多臂賭博機問題。有很多相似問題都屬於mab問題:
1)假設乙個使用者對不同類別的內容興趣程度也不同,當推薦系統初次見到這個使用者,如何快速地知道使用者對每類內容的感興趣程度呢?這也是推薦系統常常要面對的冷啟動問題。
2)假設系統中有若干個廣告庫存物料,該給使用者展示哪個廣告,才能獲得最高的點選收益呢?是不是每次都挑選收益最高的哪個呢?
這些問題都是關於選擇的問題,只要是選擇的問題,都可以簡化成乙個mab問題。
bandit演算法就是用來解決此類問題的。
三、bandit演算法
bandit不是乙個演算法,而是指一類演算法。bandit演算法家族如何衡量選擇的好壞呢? 它們使用累計遺憾(collect regret)來衡量策略的優劣。
wb(i)是第i次試驗時被選中item的回報, w_opt是所有item中的最佳選擇item的回報。累計遺憾為t次的選擇的遺憾累計,每次選擇的遺憾為最優選擇回報與本次選擇回報之差。
為了簡單起見,我們假設每台機器的收益為伯努利收益,即收益要麼是0,要麼是1。對應到推薦系統中,賭博機即對應我們的物品(item),每次搖臂即認為是該物品的一次展示,我們可以用是否點選來表示收益,點選(win)的收益就是1,沒有點選(lose)的收益就是0
比較常用的且效果比較好的bandit演算法主要有thompson(湯普森)取樣演算法、ucb(upper confidence bound)演算法,後面會單獨開講。
推薦系統中的EE和bandit演算法
經常聽身邊的人說起使用推薦系統的感受,某寶某東就是看什麼給推什麼 使用者對推薦系統產生厭倦 也有聽做推薦系統的同學抱怨推薦的冷啟動問題,如何去嘗試新使用者的興趣點,嘗試到什麼時候地步才算真正掌握了使用者的興趣,使用者的興趣發生改變如何靈活的調整推薦策略。這些,都與今天聊到的e e問題有關,而band...
推薦演算法之好友推薦
寫點自己的理解,大牛請直接略過。好友推薦裡有推薦一些你可能認識的人,其中二度人脈是其中一種。比如 何炅和謝娜 在微博上相互關注,那用二度人脈的方法就是找和謝娜相互關注的人 如 張杰,海濤,某人 這時候 張杰,海濤,某人 就是何炅的二度人脈,排除掉何炅已經相互關注的張杰,剩下 張杰和某人 於是何炅發現...
推薦演算法之相似性推薦
前文介紹了協同過濾演算法和基於內容的推薦演算法 協同過濾演算法要求要有很多使用者,使用者有很多操作 基於內容的推薦演算法使用者可以不用很多,但是使用者的操作也要有很多 但是,如果要推薦給新使用者 使用者的操作不多 應該要怎樣推薦呢?這裡就要用到相似性推薦了 問題轉化為,如何用一種通用的方法,表達it...