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

news/2024/5/19 21:50:23 标签: 推荐算法

背景

在大多数的推荐系统中,往往注重于隐式正反馈(例如:点击),而忽略掉用户的其他行为(例如大多数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.niftyadmin.cn/n/5331727.html

相关文章

uniapp返回上一页并刷新数据

在uniapp中&#xff0c;返回页面时onLoad是不会触发的 如果只需要在特定情况下返回上一页才需要刷新数据 可以使用$emit和$no去解决 例如&#xff1a;注册完成后返回到首页并隐藏注册按钮&#xff0c;register.vue和index.vue register.vue <template><view clic…

游戏开发农场游戏休闲娱乐游戏教育益智游戏开发

在当今快速发展的数字时代&#xff0c;游戏开发已经成为一个多元化且创新的领域。游戏不再仅仅是娱乐的手段&#xff0c;它们已经渗透到教育、社交、商业以及日常生活的各个方面。从农场养成游戏到元宇宙的探索&#xff0c;从休闲娱乐到虚拟现实&#xff08;VR&#xff09;和增…

day19【LeetCode力扣】160.相交链表

day19【LeetCode力扣】160.相交链表 1.题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交**&#xff1a;** 题目数据 保证 整个链…

【排序算法】四、堆排序(C/C++)

「前言」文章内容是排序算法之堆排序的讲解。&#xff08;所有文章已经分类好&#xff0c;放心食用&#xff09; 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 堆排序1.1 原理1.2 堆的向下调整1.3 堆排序代码实现1.3 性质总结 堆排序 1.1 原理 概念介…

rust跟我学三:文件时间属性获得方法

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎样获得杀毒软件的病毒库时间的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址…

Github Copilot 的使用方法和快捷键*

GitHub Copilot是一款由GitHub开发的人工智能代码助手&#xff0c;它可以根据上下文和提示生成代码片段和建议。以下是使用GitHub Copilot的基本方法和一些常用的快捷键&#xff1a; 安装和启用&#xff1a;在支持的编辑器&#xff08;如Visual Studio Code&#xff09;中安装G…

【PostgreSQL】安装和常用命令教程

PostgreSQL window安装教程 window安装PostgreSQL 建表语句&#xff1a; DROP TABLE IF EXISTS student; CREATE TABLE student (id serial NOT NULL,name varchar(100) NOT NULL,sex varchar(5) NOT NULL,PRIMARY KEY (id) );INSERT INTO student (id, name, sex) VALUES (…

rust获取本地外网ip地址的方法

大家好&#xff0c;我是get_local_info作者带剑书生&#xff0c;这里用一篇文章讲解get_local_info的使用。 get_local_info是什么&#xff1f; get_local_info是一个获取linux系统信息的rust三方库&#xff0c;并提供一些常用功能&#xff0c;目前版本0.2.4。详细介绍地址&a…