推荐系统模型(一) DFN 详解 Deep Feedback Network for Recommendation

news2024/11/15 19:46:43

背景

在大多数的推荐系统中,往往注重于隐式正反馈(例如:点击),而忽略掉用户的其他行为(例如大多数CTR模型只考虑用户的喜欢,而忽略了不喜欢)。腾讯在Deep Feedback Network for Recommendation 一文中,提出了一个新颖的推荐系统模型,该模型使用了一个新的神经网络框架,考虑了用户显式/隐式的正负反馈,通过大量的实验证实了该模型的有效性和鲁棒性。

先验知识

  1. 显式反馈(explicit feedback)

例如: 用户对某商品/item的评分,或者明确的喜欢/不喜欢。

特点: 质量高,能够很明确的表达用户的喜好,但是数据非常稀疏。

  1. 隐式反馈(implicit feedback)

隐式正反馈(implicit positive feedback): 例如 点击 行为。

隐式负反馈(implicit negative feedback): 例如 浏览(曝光)但是未点击 行为。

特点: 数据量多,但是噪声特别多。例如: 用户没有点击的也不一定是他不喜欢的。还有一点非常重要,推荐系统推荐给用户的item,即使没被点击,但是也可能是用户喜欢的,也可能包含了用户感兴趣的部分,这在后面的网络模型中,有体现。
在这里插入图片描述

方法

定义:

在这里插入图片描述

模型框架:

DFN网络如下图所示,主要有两部分组成:

DFN网络框架模型

(1)the deep feedback interaction module(右图).

在这一模块内,使用多种类型的反馈作为输入,通过这些反馈的交互,提取出用户对于target item的偏好(喜欢或者不喜欢)。

(2)feature interaction module.

在提炼出feed back feature之后,通过使用Wide,FM,Deep等三种策略,让特征之间进行交互。

现在让我们来关注一下deep feedback interaction module部分。

Deep feedback interaction module详解

在这一模块中,可细分为Internal Feedback Interaction Component(红色方框) 和 External Feedback Interaction Component(绿色方框)两部分,为了方便叙述,我们以下简称为Internal部分和External部分。
在这里插入图片描述

Internal Feedback Interaction Component

在Internal部分中,关注于target item与用户各种行为的交互,在这里的所有行为当中,都使用了多头注意力机制。所有的行为embedding由物品的embedding和位置embedding组成。我们使用点击行为click做一个举例。

通过将target item
与点击行为序列组合在一起,构成我们的输入矩阵
在这里插入图片描述

External Feedback Interaction Component

在external部分,旨在根据高质量的click和dislike等行为,在unclick行为中,找出用户真的喜欢和不喜欢的。所以使用了两个vanilla attention中,将、分别与产生交互,来为未点击的序列判断喜欢或者不喜欢的偏好。

在这里插入图片描述

Feature Interaction module详解

在这里插入图片描述

在这里插入图片描述

损失函数(优化目标)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1391089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VitePress-01-从零开始的项目创建(npm版)

说明 本文介绍一下 VitePress的项目创建的步骤。 主要用到的命令工具是 npm。 本文的操作步骤是从无到有的创建一个完整的基本的【VitePress】项目。 环境准备 根据官方文档的介绍,截止本文发稿时,需要使用node.js 18 的版本。 可以使用node -v 的命令查…

Electron+React项目打包踩坑记录

首先,如何打包 写下本文的时间是 2024/01/16,搜索了网络上 ElectronReact 的打包方式,中间行不通,本文采用的方式是记录本文时 Electron 快速入门(https://www.electronjs.org/zh/docs/latest/tutorial/quick-start)记录的打包方式…

电子学会C/C++编程等级考试2023年05月(八级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:道路 N个以 1 … N 标号的城市通过单向的道路相连:。每条道路包含两个参数:道路的长度和需要为该路付的通行费(以金币的数目来表示) Bob and Alice 过去住在城市 1.在注意到Alice在他们过去喜欢玩的纸牌游戏中作弊后,Bob和她分手…

vtk9.3 配置 visual studio 2019 运行环境 和运行实例详解

(1)包含文件配置: 项目--属性--VC目录,在包含目录中把include文件夹的地址加进去,一直要到下一级 vtk-9.3目录下, 小知识: 在Visual Studio 2019中运行项目时,如果项目中使用了第三…

SpringBoot项目中简单使用虚拟机Redis

目录 步骤大致如下: 一.在pom文件中加入redis依赖 二.在虚拟机上打开我们下载好的Redis。开启服务器端并获取虚拟机ip地址 三.在项目配置。 四:使用redis 测试 redis是一个以键值对存储的NoSQL。被数百万开发人员用作缓存、矢量数据库、文档数据库、…

SpringBoot-项目复制

Spring Boot是一个用于简化Java应用程序开发的框架,它提供了自动配置和约定优于配置的原则。项目复制是指通过复制现有的Spring Boot项目来创建一个新的项目,以便快速搭建基于相似功能或结构的应用程序。项目复制可以减少类似项目的开发时间、提高生产力…

MongoDB 环境搭建及使用详解

文章目录 1、安装1.1 window平台安装MongoDB1.2 Linux系统中安装启动和连接 2、MongoDB连接3、MongoDB 概念数据库(DATABASE)文档(Document)集合元数据 4、常用语法创建数据库删除数据库创建集合查看创建的集合删除集合文档CRUD 5…

Rust 错误处理(上)

目录 1、用 panic! 处理不可恢复的错误 对应 panic 时的栈展开或终止 1.1 使用 panic! 的 backtrace 2、用 Result 处理可恢复的错误 2.1 匹配不同的错误 2.2 失败时 panic 的简写:unwrap 和 expect 2.3 传播错误 错误是软件中不可否认的事实,所…

Kafka详解及常见面试问题解析(值得珍藏)

1. 定义 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。它是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在…

Visual Studio 2022 成功配置QT5.12.10

目录 下载并安装Visual Studio 2022 Qt5.12.10下载 Qt5.12.10安装 Qt VS Tools for Visual Studio 2022下载 Visual Studio 2022配置 测试 下载并安装Visual Studio 2022 下载社区版并安装,这个比较快。 Qt5.12.10下载 官网下载很慢,还不如百度网…

【加强版】小学数学出题,加减乘除混合运算,支持自定义数字,一键打印

在线预览:在线HTML代码预览和运行工具 - UU在线工具 复制下面代码后到该地址预览即可 注意:在线预览不能打印。如需打印,在电脑本地上新建文本文档,粘贴代码后保存,然后把文件后缀改为.html运行,出题点击…

不同打包工具下的环境变量配置方式对比

本文作者为 360 奇舞团前端开发工程师 天明 前言 在现代的JavaScript应用程序开发中,环境变量的配置是至关重要的。不同的应用场景和部署环境可能需要不同的配置,例如开发、测试和生产环境。最常见的需求是根据不同的环境,配置如是否开启sour…

如何编译openssl的早期版本的共享库,如openssl 1.0

背景介绍 最近在为客户排查问题的时候,发现客户提供的日志是加密的,解密工具依赖到了openssl 1.0的共享库。可是手头没有这么老版本的openssl共享库。因此只好手动编译一个出来。 编译步骤 因为openssl 1.0是比较老的版本,很多系统上的库已…

如何安装“MySQL在虚拟机ubuntu”win10系统?

1、 更新列表 sudo apt-get update 2、 安装MySQL服务器 sudo apt-get install mysql-server 3、 安装MySQL客户端 sudo apt-get install mysql-client 4、 配置MySQL sudo mysql_secure_installation 5、 测试MySQL systemctl status mysql.service MySQL数据库基本…

数学建模常见算法的通俗理解(更新中)

目录 1.层次分析法(结合某些属性及个人倾向,做出某种决定) 1.1 粗浅理解 1.2 算法过程 1.2.1 构造判断矩阵 1.2.2 计算权重向量 1.2.3 计算最大特征根 1.2.4 计算C.I.值 1.2.5 求解C.R.值 ​1.2.6 判断一致性 1.2.7 计算总得分 2 神…

武理多媒体信息共享平台的架构设计与实现

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

开发知识点-java基础

java基础知识整理 windows 多版本java jar包不能直接打开 需要java -jar问题解决 windows 多版本 控制面板 java15 download 多版本 https://www.cnblogs.com/chenmingjun/p/9941191.html https://gitee.com/shixinke/JC-jEnv/repository/archive/master.zip java jar包不…

Packet Tracer - Layer 2 VLAN Security

Packet Tracer - 第二层VLAN安全配置任务 目标 在SW-1和SW-2之间建立新的冗余链路。在新连接的SW-1和SW-2之间的干线链路上启用中继并配置安全措施。创建一个新的管理VLAN(VLAN 20)并将一台管理PC连接到该VLAN。实施ACL以防止外部用户访问管理VLAN。 背…

【全】OpenSSL创建生成CA证书、服务器、客户端证书及密钥说明

本文章对应的文档:使用OpenSSL创建生成CA证书服务器客户端证书及密钥资源-CSDN文库 https://download.csdn.net/download/weixin_41885845/88746920 对于SSL单向认证 服务器需要CA证书、server证书、server私钥,客户端需要CA证。 对于SSL双向认证 服务器需要CA证书、serv…

前端下载文件流,设置返回值类型responseType:‘blob‘无效的问题

前言: 本是一个非常简单的请求,即是下载文件。通常的做法如下: 1.前端通过Vue Axios向后端请求,同时在请求中设置响应体为Blob格式。 2.后端相应前端的请求,同时返回Blob格式的文件给到前端(如果没有步骤…