基于卷积神经网络的Caser算法
将一段交互序列嵌入到一个以时间为纵轴的平面空间中形成“一张图”后,基于卷积序列嵌入的推荐(Caser)算法利用多个不同大小的卷积滤波器,来捕捉序列中物品间的点级(point-level)、联合的(union-level)和跳跃(skip)转移模式。
除了序列的局部特征,Caser还引入了用户全局特征,构建了一个较为统一和灵活的用于序列推荐的网络结构。
ABSTRACT
The order of interaction implies that sequential patterns play an important role where more recent items in a sequence have a larger impact on the next item.交互序列发挥重要作用,其中序列中较新的项目对下一个项目有更大影响。
The idea is to embed a sequence of recent items into an “image” in the time and latent spaces and learn sequential patterns as local features of the image using convolutional filters.将一系列最近的项目嵌入到时间和潜在空间中的“图像”中,并使用卷积滤波器学习序列模式作为图像的局部特征。
INTRODUCTION
major limitations
point-level:前面的三个蓝色块单独对黄色块产生影响。
union-level,no skip:前面的三个联合对接下来的黄色块产生影响。
union-level,skip once:前面的三个联合块可以对后面的黄色块产生影响。
contributions
(1) Caser uses horizontal and vertical convolutional filters to capture sequential patterns at point-level, union-level, and of skip behaviors. (2) Caser models both users’ general preferences and sequential patterns, and generalizes several existing state-of-the- art methods in a single unified framework. (3) Caser outperforms state-of-the-art methods for top-N sequential recommendation on real life data sets.。
(1) Caser 使用水平和垂直卷积滤波器来捕获点级、联合级和跳跃行为的顺序模式。
(2) Caser 对用户的一般偏好和顺序模式进行建模,并在一个统一的框架中概括了几种现有的最先进的方法。
(3) Caser 在现实生活数据集上的 top-N 顺序推荐方面优于最先进的方法。
FURTHER RELATED WORK
CNN学习序列特征,LFM(潜在因子模型)学习用户特定特征。
网络设计的目标是多重的:在union-level和point-level捕获用户的一般偏好和序列偏好,并捕获skip行为,所有这些都在未观察到的空间中。
训练CNN,对于每个u,从Su中提取每L个连续项目作为输入,并且提取接下来的T个项目作为目标。(通过滑动窗口来完成)每个窗口生成u的训练实例(u,previous L items,next T items)
PROPOSED METHODOLOGY
Embedding Look-up
算法定义了每个物品i对应的物品嵌入向量Qi和每个用户嵌入向量Pu。为了捕捉用户的动态偏好,当要预测用户u在时间步t上的偏好时,去用户u在第t步前交互的L个物品组成输入物品序列,并且根据定义好的物品嵌入向量,拼接得到物品序列的嵌入矩阵。
Convolutional Layers
将嵌入矩阵E看作“一张图”并对其进行卷积操作。使用纵向移动的水平滤波器来捕捉前L步物品对后续物品的综合影响(union-level)。使用横向移动的垂直滤波器来捕捉前L步物品对后续物品的点级影响(point-level)。
两个水平滤波器捕获两个union-level序列模式。滤波器为h×d矩阵。通过在E上滑动来获取序列模式的信号。
Horizontal Convolutional Layer.
假设模型中总共设置了n个水平滤波器,第k个的大小为h×d。水平滤波器从矩阵顶部重合的位置开始执行操作。(求内积融合再过激活函数)
水平滤波器从上往下滑动一个位置,直到达到矩阵底部。重复以上操作得到的值拼接成一个新的向量。
接着对每个新的向量进行最大池化,最后将n个水平滤波器得到的值拼接起来,得到包含输入序列中L个物品的不同组合的联合信息的输出向量。
通过训练滤波器来捕获具有多个联合大小的联合级模式。
Vertical Convolutional Layer.
设置多个垂直滤波器,大小都为L×1.与水平滤波器操作相似,每个垂直滤波器在嵌入矩阵上从左到右滑动得到一个d维度向量。将输出拼接到一起得到输出向量。
Fully-connected Layers
将上面两种卷积层的输出向量合并后送入第一个全连接层,得到表示序列局部特征的向量。
将表示局部特征与表示用户全局特征的用户嵌入向量拼接后送入第二个全连接层,得到该用户在下一个时间步t对所有物品的预测偏好。
NetWork Training
为了捕获序列中的物品之间的跳跃的转移关系还提出将下一个时间步t及后续若干时间步的物品都作为目标物品。
优缺点
优点:将FPMC和Fossil等基于矩阵分解的算法所建模的信息包含于其中,并且考虑了前L个物品的不同组合的作用和对后续物品的跳跃的影响。
相比于RNN、CNN不规定信息必须沿着时间节点依次连续传递,具有更大的灵活性,并且更容易实现并行化。
缺点:只能捕捉短期的(L步之内)序列特征的局限性。
Q&A
对该模型举一个例子,具体计算过程?
模型哪里有捕获skip behaviors?
相关文章:
基于卷积神经网络的Caser算法
将一段交互序列嵌入到一个以时间为纵轴的平面空间中形成“一张图”后,基于卷积序列嵌入的推荐(Caser)算法利用多个不同大小的卷积滤波器,来捕捉序列中物品间的点级(point-level)、联合的(union-…...
自闭症在学校:了解自闭症的特点,优化学校教育方式
在教育的广阔天地里,每一片叶子都承载着生命的独特韵律,每一朵花都在以自己的方式绽放。然而,在特殊教育的花园里,有一群孩子,他们或许不那么容易被看见,不那么容易与世界沟通,但他们同样拥有学…...
多线程的知识总结(8):用 thread 类 或全局 async (...) 函数,创建新线程时,谁才是在新线程里第一个被执行的函数
(40)用 thread 类 或全局 async (…) 函数,创建新线程时,谁才是在新线程里第一个被执行的函数? 弄清楚这个问题,有利于推测和理解线程中代码的执行流程。根据 thread 类 和 async (…࿰…...
ArcGIS地理空间平台manager存在任意文件读取漏洞
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
HarmonyOS Next 元服务新建到上架全流程
HarmonyOS Next 元服务新建到上架全流程 接上篇 这篇文章的主要目的是介绍元服务从新建到上家的完整流程 在AGC平台上新建一个项目 链接 一个项目可以多个应用 AGC新建一个元服务应用 新建一个本地元服务项目 如果成功在AGC平台上新建过元服务,那么这里会自动显…...
【Linux】makefile项目管理
前言 makefile是一种自动化构建工具,广泛用于管理和编译项目,特别是在C和C等语言中。它通过定义规则来控制源代码的编译、链接和清理等过程。以下是一个基本的Makefile结构和示例,帮助你理解如何管理项目: 首先:创建…...
Lumos学习王佩丰Excel第二十一讲:经典Excel动态图表实现原理
一、动态图表实现原理 1、理解图表中的数据系列 在Excel图表中,系列指的是图表中的数据集合,它通常代表着一个数据源。每个系列都可以包含多个数据点,这些数据点在图表中以特定的形式展现,如柱状图中的柱子,折线图中…...
Linux框架(二)——pinctrl和gpio子系统
基于设备树的 LED 驱动,但是驱动的本质还是没变,都是配置 LED 灯所使用的 GPIO 寄存器,驱动开发方式和裸机基本没啥区别。 Linux 内核提供了 pinctrl 和 gpio 子系统用于GPIO 驱动,本章我们就来学习一下如何借助 pinctrl 和 gpio…...
C++ string的基本概念
文章目录 1. 什么是string?2. auto和范围for的使用2. 1 auto2. 2 范围for 3. 迭代器的概念、const string的概念3. 1 迭代器的概念3. 2 const string的概念 1. 什么是string? 在了解什么是string之前,我们首先需要知道字符串是什么。在C语言中…...
MAC虚拟机上安装WDA环境
MAC虚拟机上安装WDA环境 一、MAC虚拟机切换root权限二、macOS上安装xcode若你的macOS系统可以在appstore下载安装若你安装的macOS系统版本太低,无法在appstore上安装xcode 三、macOS上安装WebDriverAgent四、使用xcode配置WDA安装到手机上高版本系统支持 一、MAC虚拟…...
与 Cursor AI 对话编程:2小时开发报修维修微信小程序
本文记录了如何通过与 Cursor AI 对话,全程不写一行代码的情况下,完成一个完整的报修小程序。整个过程展示了 AI 如何帮助我们: 生成代码 、解决问题、优化实现、完善细节。 先看一下效果图: 一、项目配置 首先我是这样和 AI 对…...
leetcode-73.矩阵置零-day5
class Solution {public void setZeroes(int[][] mat) {int m mat.length, n mat[0].length;// 1. 扫描「首行」和「首列」记录「首行」和「首列」是否该被置零boolean r0 false, c0 false;for (int i 0; i < m; i) {if (mat[i][0] 0) {r0 true;break;}}for (int j …...
CSS学习记录13
CSS组合器 组合器是解释选择器之间关系的某种机制。CSS选择器可以包含多个简单选择器。在简单选择器之间,我们可以包含一个组合器。 CSS中有四种不同的组合器: 后代组合器(空格)子选择器(>)相邻兄弟选择器&#…...
CAD图纸加密软件哪个最好用 | 安全可靠的解决方案
CAD图纸加密软件哪个最好用 | 安全可靠的解决方案 图纸文件泄密事件频发,给企业带来了严重的商业损失、技术秘密泄露、公共安全威胁以及信誉损害。 为了应对这一挑战,选择一款既安全可靠又易于使用的CAD图纸加密软件显得尤为重要。 在众多加密软件中&a…...
基于SSM+Vue的宠物医院管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
处理VUE框架中,ElementUI控件u-table空值排序问题
按照以下步骤进行操作: 分离数据:首先,将原始数据按照username为空和非空进行分类。对非空表进行排序:对非空表按照username进行升序排序。合并表格:将空表和排序后的非空表合并,保证空表挂接在排序后的非…...
专业140+总分400+北京理工大学826信号处理导论考研经验北理工电子信息与通信工程,真题,大纲,参考书。
考研总分400,专业826信号处理导论(信号与系统和dsp)140,成功上岸北理工,虽然已经一段时间,但是后劲很大,每每回想还是昨日事,群里同学多次要求分享自己的一些经验,感谢大…...
Rocky DEM tutorial5_Drop Weight test_落锤试验
tutorial5_Drop Weight test_落锤实验 文章目录 tutorial5_Drop Weight test_落锤实验0. 目的1. 模型介绍2. 模型设置2.1 设置Physics2.2 导入几何2.3 定义进口面2.4 设置motion frames2.5 设置边界条件2.6 设置材料2.7 设置 materials interactions2.8 设置 Particles2.9 设置…...
C#,在 C# 语言中将 LaTeX 转换为 PNG 或 JPG 图像
在 C 语言中将 LaTeX 转换为 PNG 或 JPG 图像# 12月 28, 2021 2 分钟 法尔汉拉扎 在 C 语言中将 TeX 转换为 PNG JPG 图像# TeX 格式用于处理技术和科学文件。它通常用于交流或发布此类文档。在某些情况下,您可能需要将 TeX 文件渲染为 PNG 或 JPG 等图像…...
Elasticsearch:Mapping-映射
一、创建索引 自动生成索引字段数据类型即自动映射 创建之前,先删除索引防止重复创建 删除索引: DELETE product_mapping创建索引 product_mapping并且赋值 PUT /product_mapping/_doc/1 {"name": "xiaomi phone","desc": "s…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
数据库——redis
一、Redis 介绍 1. 概述 Redis(Remote Dictionary Server)是一个开源的、高性能的内存键值数据库系统,具有以下核心特点: 内存存储架构:数据主要存储在内存中,提供微秒级的读写响应 多数据结构支持&…...


















