目標與建模:
所以我們的目標就是在有限的n次選擇中盡量使得累計遺憾最低
\[\text r_ = \sum_^(w_-w_)\textr_t\text w_\textw_\text
\]\[\text
r_ = t - \sum_^0\text
\]upper confidence bound,即置信區間上界
置信區間可以簡單直觀地理解為不確定性的程度,區間越寬,越不確定,反之就很確定。
\[score(i) = \frac + \sqrt}
\textn_i\text
\]
import numpy as np
# t個使用者/t次**
t = 1000
# n個電影/n個電影品類
n = 10
# 保證結果可復現
np.random.seed(888)
# 每部電影累積點選率(理論概率)
true_rewards = np.random.uniform(low=0, high=1, size=n)
# 每部電影當前點選率(實際頻率)
estimated_rewards = np.zeros(n)
# 每部電影點選次數
chosen_count = np.zeros(n)
total_reward = 0
def calculate_delta(t, item):
if chosen_count[item] == 0:
return 1
else:
return np.sqrt(2 * np.log(t) / chosen_count[item])
def ucb(t, n):
# ucb得分
upper_bound_probs = [estimated_rewards[item] + calculate_delta(t, item) for item in range(n)]
item = np.argmax(upper_bound_probs)
# 模擬伯努利收益
reward = np.random.binomial(n=1, p=true_rewards[item])
return item, reward
# t個使用者/t次**依次發生
for t in range(1, t):
# 為第t個使用者推薦一部電影,reward = 1 表示使用者點選**,reward = 0 表示使用者未點選
item, reward = ucb(t, n)
# print("item, reward = %s,%s" % (item, reward))
# 一共有多少使用者接受了推薦/n部電影的點選次數
total_reward += reward
# 更新電影的當前點選率
estimated_rewards[item] = ((t - 1) * estimated_rewards[item] + reward) / t
# print(estimated_rewards[item])
chosen_count[item] += 1
# 輸出當前點選率
# print(t,estimated_rewards)
# 輸出累積點選率
# print(t,true_rewards)
diff = np.subtract(true_rewards,estimated_rewards)
print(diff[0])
0.8595606060609418
0.35956060606094176
0.19289393939427513
0.10956060606094176
0.2595606060609418
...0.01640294418596766
0.016245471958934443
0.01709132465111296
0.01693347823970004
0.016775947837118665
1.linucb(加入了特徵的ucb)
2.cofiba演算法(將bandit演算法與協同過濾結合使用)
17【mab問題】簡單卻有效的bandit演算法
bandit演算法與推薦系統
ucb公式的理解
專治選擇困難症——bandit演算法
multi-armed bandit: ucb (upper bound confidence)
bandit演算法,a/b測試,孰優孰劣?
【mab問題】結合上下文資訊的bandit演算法
推薦系統的重點 難點問題
1 特徵提取問題 2 模型過擬合問題 可擴充套件性問題 推薦系統中推薦演算法無法完全掌握使用者每個方面的興趣和需求,因為使用者之前沒有對足夠多類別的物件進行評價。過擬合現象是指系統推薦給使用者的物件與使用者剛剛看過的不是太相似,就是太不相關。模型過擬合 過學習 的問題本質上來自於資料的不完備性,這在...
推薦系統的冷啟動問題
使用者冷啟動 2 引導使用者填寫興趣 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img d6gpgxgw 1614269253067 img recommend5.png 4 新老使用者推薦策略的差異 舉例 性別與電視劇集的關係 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直...
推薦系統中的基本問題
什麼是推薦系統?1.能做什麼?2.需要什麼?需要已經存在的 user 和 item 之間的連線記錄 3.怎麼做?使用者評分和偏好 機器推薦和人工推薦 什麼時候需要推薦系統?1.符合產品的目的。比如工具類產品就肯定不需要,但社群類產品就需要 比如可以計算 connection user item 如果...