《推薦系統實踐》 程式實現 2 5 隱語義模型

2021-08-29 16:30:09 字數 1077 閱讀 9177

2.5.1 基礎演算法

程式實現

##正樣本:使用者喜歡的物品; 

##負樣本:使用者不感興趣的物品。

import random

items = # 使用者已經有過行為的物品的集合,即使用者喜歡的物品列表,即正樣本

ret = dict() # 用來儲存正樣本和負樣本,即使用者喜歡的和不感興趣的物品都將儲存在這裡

for i in items.keys():

ret.update() # 將使用者已經有過行為的物品,新增到ret字典中,並標註成正樣本

items_pool = ['a','b','c','d','e','f','g','h','i']

n = 0 # 計數,計算已經找到的負樣本的數目

for i in range(0,len(items)*3): # 當然,也有可能迴圈len(items)*3次後,找到的負樣本還是不如正樣本多,但這畢竟是小概率事件

item = items_pool[random.randint(1,len(items_pool) - 1)] # items_pool 是候選物品的列表,包括正樣本和負樣本。(注意!但不是所有物品,因為除了正樣本後,不止有負樣本,還有熱門物品中,使用者不感興趣的物品)。 換言之,items_pool中不包括熱門物品中,使用者不感興趣的物品

if item in ret.keys():

continue

ret.update()

n += 1

if n >= len(items):

break

for item,ret in ret.items():

print(item,'correspond to ',ret)

執行結果

a correspond to  1

b correspond to 1

c correspond to 1

f correspond to 0

i correspond to 0

d correspond to 0

該演算法中涉及到的梯度下降法的學習:梯度下降法

推薦系統 隱語義模型

繼續學習推薦系統,還是推薦演算法的部分。因為我的學習是圍繞 推薦系統實踐 展開,這邊書是12年寫成的,所以一開始都是那年比較流行的演算法模型,裡面總共講了三個演算法,乙個是協同過濾,乙個是隱語義模型,乙個圖模型。圖模型我覺得現在實際上用的比較少,所以我就只看了一下,這裡不寫出來了。後面我會研究一下深...

推薦系統 02 隱語義模型LFM

隱語義模型 lfm 圖形解釋 lfm的前生今世 隱語義模型的適用性 關於訓練集 基本概念 那麼如何產生負樣本呢?負樣本的選擇 小結 如何計算權重 負樣本取樣過程 如何求解c的極小值 演算法原理 原函式 deffun x,y return x y 2 x x 2 x y y y 偏x導 defpxfu...

推薦系統 5 隱語義模型 LFM

2019 03 02 14 27 17 對於usercf,我們可以先計算和目標使用者興趣相似的使用者,之後再根據計算出來的使用者喜歡的物品給目標使用者推薦物品。而itemcf,我們可以根據目標使用者喜歡的物品,尋找和這些物品相似的物品,再推薦給使用者。我們還有一種方法,先對所有的物品進行分類,再根據...