推薦筆記, 使用lightfm矩陣分解

以下是協(xié)同過濾推薦系統(tǒng)的學(xué)習(xí)筆記

  1. 公式


    image.png
  2. 邏輯圖


    image.png
image.png
  1. 原理理解
  • 使用用戶對物品的評分站故,分解出用戶感興趣的物品類型特征,和物品在不同物品類型的分?jǐn)?shù)。例如:電影分為動作電影類型、情感電影類型味滞,某一電影在動作電影類型分?jǐn)?shù)為9疫衩,情感電影類型分?jǐn)?shù)為1。同理某一用戶對動作類型電影分?jǐn)?shù)為1分翅帜,情感電影為9分姻檀。這些我把它理解為物對-物品類型特征和用戶-物品類型特征。
  1. 使用LightFM
  • LightFM使用這邊比較簡單涝滴,就是給用戶電影的評分?jǐn)?shù)據(jù)绣版,LightFM自動計算出用戶對不同物品的分?jǐn)?shù)
  • 一下是從LightFM官網(wǎng)粘帖的代碼
from lightfm import LightFM
from lightfm.datasets import fetch_movielens
from lightfm.evaluation import precision_at_k
import numpy as np

# Load the MovieLens 100k dataset. Only five
# star ratings are treated as positive.
data = fetch_movielens(data_home='./data', min_rating=5.0)
print(data['train'])
# Instantiate and train the model
model = LightFM(loss='warp')
model.fit(data['train'], epochs=30, num_threads=2)

# Evaluate the trained model
test_precision = precision_at_k(model, data['test'], k=5).mean()

print("Train precision: %.2f" % precision_at_k(model, data['train'], k=5).mean())
print("Test precision: %.2f" % precision_at_k(model, data['test'], k=5).mean())

def sample_recommendation(model, data, user_ids):


    n_users, n_items = data['train'].shape

    for user_id in user_ids:
        known_positives = data['item_labels'][data['train'].tocsr()[user_id].indices]
        print(data['train'].tocsr())
        print(data['train'].tocsr()[user_id])
        print(data['train'].tocsr()[user_id].indices)
        scores = model.predict(user_id, np.arange(n_items))
        top_items = data['item_labels'][np.argsort(-scores)]

        print("User %s" % user_id)
        print("     Known positives:")

        for x in known_positives[:3]:
            print("        %s" % x)

        print("     Recommended:")

        for x in top_items[:3]:
            print("        %s" % x)

sample_recommendation(model, data, [3, 25, 450])
  1. github對應(yīng)源碼和需要的數(shù)據(jù)地址
    https://github.com/wengmingdong/tf2-stu/tree/master/recommender
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市歼疮,隨后出現(xiàn)的幾起案子杂抽,更是在濱河造成了極大的恐慌,老刑警劉巖韩脏,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缩麸,死亡現(xiàn)場離奇詭異,居然都是意外死亡赡矢,警方通過查閱死者的電腦和手機(jī)杭朱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吹散,“玉大人弧械,你說我怎么就攤上這事∷妥牵” “怎么了梦谜?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我唁桩,道長闭树,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任荒澡,我火速辦了婚禮报辱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘单山。我一直安慰自己碍现,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布米奸。 她就那樣靜靜地躺著昼接,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悴晰。 梳的紋絲不亂的頭發(fā)上慢睡,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天,我揣著相機(jī)與錄音铡溪,去河邊找鬼漂辐。 笑死,一個胖子當(dāng)著我的面吹牛棕硫,可吹牛的內(nèi)容都是我干的髓涯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼哈扮,長吁一口氣:“原來是場噩夢啊……” “哼纬纪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起灶泵,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤育八,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赦邻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體髓棋,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年惶洲,在試婚紗的時候發(fā)現(xiàn)自己被綠了按声。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡恬吕,死狀恐怖签则,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情铐料,我是刑警寧澤渐裂,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布豺旬,位于F島的核電站,受9級特大地震影響柒凉,放射性物質(zhì)發(fā)生泄漏族阅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一膝捞、第九天 我趴在偏房一處隱蔽的房頂上張望坦刀。 院中可真熱鬧,春花似錦蔬咬、人聲如沸鲤遥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盖奈。三九已至,卻和暖如春北启,著一層夾襖步出監(jiān)牢的瞬間卜朗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工咕村, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚊俺。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓懈涛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泳猬。 傳聞我的和親對象是個殘疾皇子批钠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 2020.2.3 星期一 晴 1日常 今天疫情依舊在持續(xù),繼續(xù)封禁得封,而且可以...
    冥修人閱讀 38評論 0 1
  • 土味情話的活動可以用到下一期行動營 改進(jìn):001規(guī)則需要簡化埋心,然后做成海報,時不時丟一個規(guī)則忙上。 002預(yù)留半個小時...
    綰月緋閱讀 313評論 0 0
  • 昨天晚上去了一個朋友家煮飯吃拷呆,廚房是公共廚房,一層樓的人共用一個的那種疫粥。 剛好是晚飯時間茬斧,廚房里人很多。打完下手的...
    林下飛閱讀 482評論 0 0
  • 江南水鄉(xiāng)——水墨畫般的地方梗逮,生命中最初的八年项秉,我便在那里度過。因此慷彤,童年記憶影影綽綽的碎片全都寄于那一隅娄蔼。也許怖喻,正...
    星星漫談閱讀 565評論 0 1