推薦系統(6)-注意力機制+深度推薦模型、強化學習推薦系統

注意力機制+深度推薦模型、強化學習推薦系統

  • 1.AFM -2017
  • 2.DIN-2017
  • 3.DIEN-2019
  • 4. DRN-2018

1.AFM -2017

Attention factorization machines–浙江大學–基于模型結構的改進
引入注意力機制FM, 可視為NFM模型的改進。給特征交叉池化后的特征向量施加不同的注意力權重。

出發點:預測某一男性是否購買某一鍵盤。那么‘性別為男且歷史行為購買過鼠標’ 這一交叉特征 很可能 比 ‘性別為男且年齡為30’這一交叉特征更為重要。

具體做法:交叉特征進全聯接層,softmax輸出 特征權重。全聯接層的參數隨網絡訓練
(感覺注意力機制池化層就是多加了一個全聯接權重輸出層啊)

2.DIN-2017

Deep Interest Network–阿里巴巴-電商廣告推薦-基于業務觀察的模型改進

出發點:用戶特征組 和 廣告特征組中的商品id 和商鋪id應該有不同的權重地位。
具體做法:利用候選商品和歷史行為商品之間的相關性計算出一個權重。–注意力激活單元

(詳細結構看書,注意力網路輸出的只是權重,而不是后一層的輸入)

3.DIEN-2019

Deep interest evolution network–阿里巴巴–序列模型模擬了用戶興趣的演化。
推薦系統的真正推薦目標:針對下一次購買的推薦。
特定用戶的歷史行為都是一個隨時間排序的序列,用戶興趣的遷移其實非常快。
序列信息的重要性在于:

  1. 強調最近行為對下次行為預測的影響
  2. 序列模型能夠學習到購買趨勢的信息

核心:如何構建興趣進化網絡。興趣進化網絡分為三層
3. 行為序列層–原始行為的embedding
4. 興趣抽取層–GRU模擬用戶行為遷移
5. 興趣進化層–AUGRU用注意力機制強調不同興趣演化路徑的重要性(h(t)的每一維度為一個興趣演化路徑?)

4. DRN-2018

Deep reinforcement for news recommender–賓夕法尼亞州立大學 + 微軟亞洲研究院–新聞推薦系統
將強化學習模型應用到推薦系統中,一些關鍵概念的解釋

  1. 智能體:推薦系統
  2. 環境:新聞網站、app、用戶組成的整個推薦系統的外部環境
  3. 行動:推薦系統進行新聞排序后推薦
  4. 反饋:用戶的點擊行為
  5. 狀態:有關于用戶,新聞的特征

最大優勢–利用‘行動-反饋-狀態更新’,實現在線更新推薦模型

典型的深度強化學習模型:DQN

DRN在線學習模型中包含“微更新”和“主更新”

  1. 微更新–競爭梯度下降法–隨機變換推薦模型的梯度,給出推薦列表2;原始推薦模型給出推薦列表1。兩張推薦列表同時推送給用戶,如果表2的結果比表1好,用改動后的模型代替原始推薦模型。不斷重復這個過程。
  2. 主更新–利用用戶點擊數據、用戶活躍度數據整個模型的迭代更新

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444686.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444686.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444686.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Caffe安裝的坑整理

怎么說了,入了深度學習的坑,就要踩一踩才算你入門,這里我整理了我在安裝學習caffe自己遇到的坑: 1.Caffe-GPU編譯問題:nvcc fatal : Unsupported gpu architecture compute_20 仔細查看了一下 Makefile.config 中 CUDA_ARCH 設置未按規定設置: # CUDA architecture se…

leetcode74. 搜索二維矩陣 ,你見過嗎

編寫一個高效的算法來判斷 m x n 矩陣中,是否存在一個目標值。該矩陣具有如下特性: 每行中的整數從左到右按升序排列。 每行的第一個整數大于前一行的最后一個整數。 示例 1: 輸入: matrix [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34,…

pytorch學習 入門篇(一)

PyTorch 是什么? 它是一個基于 Python 的科學計算包, 其主要是為了解決兩類場景: NumPy 的替代品, 以使用 GPU 的強大加速功能一個深度學習研究平臺, 提供最大的靈活性和速度Tensors(張量) Tensors 與 NumPy 的 ndarrays 非常相似, 除此之外還可以在 GPU 上使用張量來加速…

關系數據庫——范式/反范式的利弊權衡和建議

范式(避免數據冗余和操作異常) 函數依賴 A->B A和B是兩個屬性集,來自同一關系模式,對于同樣的A屬性值,B屬性值也相同 平凡的函數依賴 X->Y,如果Y是X的子集 非平凡的函數依賴 X->Y&#xff…

pytorch學習入門 (二) Variable(變量)

Variable(變量) autograd.Variable 是包的核心類. 它包裝了張量, 并且支持幾乎所有的操作. 一旦你完成了你的計算, 你就可以調用 .backward() 方法, 然后所有的梯度計算會自動進行. 你還可以通過 .data 屬性來訪問原始的張量, 而關于該 variable&#…

Linux(x)-

Ubuntu裝機后的基礎應用

pytorch入門學習(三) 神經網絡

神經網絡可以使用 torch.nn 包構建. autograd 實現了反向傳播功能, 但是直接用來寫深度學習的代碼在很多情況下還是稍顯復雜,torch.nn 是專門為神經網絡設計的模塊化接口. nn 構建于 Autograd 之上, 可用來定義和運行神經網絡. nn.Module 是 nn 中最重要的類, 可把它看成是一個…

leetcode1033. 移動石子直到連續

三枚石子放置在數軸上&#xff0c;位置分別為 a&#xff0c;b&#xff0c;c。 每一回合&#xff0c;我們假設這三枚石子當前分別位于位置 x, y, z 且 x < y < z。從位置 x 或者是位置 z 拿起一枚石子&#xff0c;并將該石子移動到某一整數位置 k 處&#xff0c;其中 x &…

pytorch學習 訓練一個分類器(五)

訓練一個分類器 就是這個, 你已經看到了如何定義神經網絡, 計算損失并更新網絡的權重. 現在你可能會想, 數據呢? 一般來說, 當你不得不處理圖像, 文本, 音頻或者視頻數據時, 你可以使用標準的 Python 包將數據加載到一個 numpy 數組中. 然后你可以將這個數組轉換成一個 to…

Git(6)-Git配置文件、底層操作命令

Git基本命令1. 常用(迷糊)命令-冷知識2. git 配置2.1 設置 配置文件2.2 查看 配置文件--git config -l2.3 移除 配置文件設置--unset2.3 命令別名 --alias3.git 對象 &#xff08;git底層操作命令&#xff09;3.1 初始化一個版本庫3.2 新建一個簡單的blob 對象3.3 基于散列值查…

【軟考中級】網絡工程師:8.網絡安全

本章考察內容比較廣泛&#xff0c;考題對知識點都會有所涉及。 8.1 網絡安全的基本概念 8.1.1 網絡安全威脅的類型 竊聽 這種情況發生在廣播式網絡系統中&#xff0c;每個節點都可以讀取數據&#xff0c;實現搭線竊聽、安裝通信監視器和讀取網上的信息等。 假冒 當一個實體…

leetcode9 回文數

判斷一個整數是否是回文數。回文數是指正序&#xff08;從左向右&#xff09;和倒序&#xff08;從右向左&#xff09;讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個…

caffe各層參數詳解

在prototxt文件中,層都是用layer{}的結構表示,而里面包含的層的參數可以在caffe.proto文件中找到,比如說Data類型的結構由message DataParameter所定義,Convolution類型的結構由message ConvolutionParameter所定義。 具體說明下: name表示該層的名稱type表示該層的類型,…

caffe網絡結構圖繪制

繪制網絡圖通常有兩種方法&#xff1a; 一種是利用python自帶的draw_net.py&#xff0c;首先安裝兩個庫&#xff1a; sudo apt-get install graphviz sudo pip install pydot 接下來就可以用python自帶的draw_net.py文件來繪制網絡圖了。 draw_net.py執行時帶三個參數&…

Git(7)-Git commit

Git提交1.識別不同的提交1.1絕對提交名-ID1.2 引用和符號引用--HEAD2.查看提交的歷史記錄-git log3.提交圖-gitk4.提交的范圍4.1 X..Y4.1 X...Y5.查找bad 提交--git bisect6.查看代碼修改者-git blame命令概覽git commit -a # 直接提交修改和刪除文件有效加了-a&#xff0c;在 …

leetcode111. 二叉樹的最小深度

給定一個二叉樹&#xff0c;找出其最小深度。 最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 思路&#xff1a…

Caffe將圖像數據轉換成leveldb/lmdb

Caffe中convert_imageset projrct將圖像數據轉換成Caffe能讀取的數據格式leveldb/lmdb -gray=true //whether read gray image -shuffle=true //whether mix order -resize_height=28 -resize_width=28 -backend=lmdb …

leetcode155. 最小棧

設計一個支持 push&#xff0c;pop&#xff0c;top 操作&#xff0c;并能在常數時間內檢索到最小元素的棧。 push(x) -- 將元素 x 推入棧中。 pop() -- 刪除棧頂的元素。 top() -- 獲取棧頂元素。 getMin() -- 檢索棧中的最小元素。 示例: MinStack minStack new MinStack()…

理解Caffe的網絡模型

目錄 1. 初見LeNet原始模型2. Caffe LeNet的網絡結構3. 逐層理解Caffe LeNet 3.1 Data Layer3.2 Conv1 Layer3.3 Pool1 Layer3.4 Conv2 Layer3.5 Pool2 Layer3.6 Ip1 Layer3.7 Relu1 Layer3.8 Ip2 Layer3.9 Loss Layer 1. 初見LeNet原始模型 Fig.1. Architecture of original …

Git(8)-分支

分支1. 分支名2. 創建分支-git branch3. 查看分支-git show-branch4. 檢出分支4.1 有未提交的修改時進行檢出4.2 合并變更到不同的分支git checkout -m5. 分離HEAD 分支6.刪除分支分支操作命令概覽 git branch # 列出版本庫中的分支 git branch -r # 列出遠程跟蹤分支…