日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

推荐算法炼丹笔记:序列化推荐算法SASRec

發布時間:2025/3/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 推荐算法炼丹笔记:序列化推荐算法SASRec 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:一元 ,公眾號:煉丹筆記

背景

本文介紹一篇較早使用Self-Attention進行序列化推薦的文章,也是目前大多數序列化推薦算法非常重要的Baseline,最典型的場景可以參見標題,該篇文章的思路也是現在推薦系統崗位經常考的一篇,還不速速學習一波。

序列動態是許多當代推薦系統的一個重要特征,它試圖根據用戶最近執行的操作來捕捉用戶活動的“上下文“。本文提出了一個基于self-attention的序列模型(SASRec),它讓我們可以捕捉長期語義(如RNN),但是,使用注意機制,它的預測基于相對較少的動作(如MC)。在每一個時間步,SASRec都會從用戶的行為歷史中找出哪些項目是“相關的”,并使用它們來預測下一個項目。大量的實證研究表明,該方法在稀疏和密集的數據集上都優于各種最新的序列模型(包括基于MC/CNN/RNN的方法)。

此處我們直接介紹模型。

模型

方案描述

1. Embedding層

A. Positional Embedding

2. Self-Attention Block

A.Self-Attention Layer

C.Point-Wise Feed-Forward Network: 盡管self-attention能將之前item的emebdding使用自適應的權重進行集成,但仍然是一個先線性模型,為了加入非線性能力, 我們使用兩層的DDN,

3. Stacking Self-Attention Blocks

在第一個self-attention block之后,學習item的遷移可以學習更加復雜的item遷移,所以我們對self-attention block進行stacking,第b(b>1)的block可以用下面的形式進行定義:

4. Prediction Layer

使用同質(homogeneous)商品embedding的一個潛在問題是,它們的內部產品不能代表不對稱的商品轉換。然而,我們的模型沒有這個問題,因為它學習了一個非線性變換。例如,前饋網絡可以很容易地實現同項嵌入的不對稱性,經驗上使用共享的商品embedding也可以大大提升模型的效果;

顯示的用戶建模:為了提供個性化的推薦,現有的方法常用兩種方法,(1).學習顯示的用戶embedding表示用戶的喜好;(2).考慮之前的行為并且引入隱式的用戶embedding。此處使用并沒有帶來提升。

5. 網絡訓練

方案復雜度分析

1. 空間復雜度

模型中學習的參數來自于self-attention.ffn以及layer normalization的參數,總的參數為:

2. 時間復雜度

我們模型的計算復雜度主要在于self-attention layer和FFN網絡,

里面最耗時間的還是self-attention layer, 不過這個可以進行并行化。

實驗

該次實驗主要為了驗證下面的四個問題:

  • 是否SASRec比現有最好的模型(CNN/RNN)要好?
  • 在SASRec框架中不同的成份的影響怎么樣?
  • SASRec的訓練效率和可擴展性怎么樣?
  • attention的權重是否可以學習得到關于位置和商品屬性的有意義的模式?
  • 1. 推薦效果比較

    • SASRec在稀疏的和dense的數據集合熵比所有的baseline都要好, 獲得了6.9%的Hit Rate提升以及9.6%的NDCG提升;

    2. SASRec框架中不同成份的影響

    • 刪除PE: 刪除位置embedding ,在稀疏的數據集上,刪除PE效果變好,但是在稠密的數據集上,刪除PE的效果變差了。
    • 不共享IE(Item Embedding): 使用共享的item embedding比不使用要好很多;
    • 刪除RC(Residual Connection):不實用殘差連接,性能會變差非常多;
    • 刪除Dropout: dropout可以幫助模型,尤其是在稀疏的數據集上,Dropout的作用更加明顯;
    • blocks的個數:沒有block的時候,效果最差,在dense數據集上,相比稀疏數據多一些block的效果好一些;
    • Multi-head:在我們數據集上,single-head效果最好.

    3. SASRec的訓練效率和可擴展性

    • SASRec是最快的;
    • 序列長度可以擴展至500左右.

    小結

    在本文中,作者提出了一個新的基于自我注意的序列模型SASRec。SASRec對整個用戶序列進行建模(沒有任何遞歸或卷積操作)。在稀疏和密集數據集上的大量實證結果表明,SASRec模型優于現在最優的基線,并且比基于CNN/RNN的方法快一個數量級。

    參考文獻

  • Self-Attentive Sequential Recommendation:cseweb.ucsd.edu/~jmcaul
  • github.com/kang205/SASR
  • 總結

    以上是生活随笔為你收集整理的推荐算法炼丹笔记:序列化推荐算法SASRec的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。