2023.02.12 学习周报

news2024/9/23 13:30:29

文章目录

  • 摘要
  • 文献阅读
    • 1.题目
    • 2.摘要
    • 3.介绍
    • 4.本文贡献
    • 5.相关工作
      • 5.1 Temporal Recommendation
      • 5.2 Sequential Recommendation
    • 6.方法
      • 6.1 Problem Formulation
      • 6.2 Input Embedding
      • 6.3 Self-Attention Structure
      • 6.4 Model Training
    • 7.实验
      • 7.1 数据集
      • 7.2 实验结果
      • 7.3 多时间嵌入的效果
    • 8.结论
  • 深度学习
    • 1.Self-attention
    • 2.SVM
      • 2.1 线性可分
      • 2.2 最大间隔超平面
      • 2.3 支持向量
      • 2.4 SVM最优化问题
  • 总结


摘要

This week, I read an article about the self-attention mechanism, the article proposes a novel model, MEANTIME, it employs multiple types of temporal embeddings, designed to capture patterns from the user’s sequence of actions, as well as an attention structure that takes full advantage of this diversity. MEANTIME addresses some of the previous limitations of the self-attention mechanism: 1) The previous model did not make use of the extracted context information; 2) The use of simple embedding scheme, resulting in bottlenecks; 3) Each self-attentional head in the same position embedding, resulting in a pattern of overlapping learning. In addition, I learn the relevant content of self-attention, understand and master the core content of attentiion mechanism, and supplement some mathematical knowledge of SVM.

本周,我阅读了一篇关于自注意力机制相关的文章,文章提出了一种新颖的模型MEANTIME,它采用了多种类型的时间嵌入,旨在从用户的行为序列中捕捉各种模式,以及充分利用这种多样性的注意力结构。MEANTIME主要解决了之前基于自注意力机制存在的一些局限性:1)以前的模型没有利用到提取到的上下文信息;2)使用简单的嵌入方案,导致出现瓶颈;3)对每一个自注意力头使用相同的位置嵌入,导致学习重叠的模式。此外,我学习了self-attention的相关内容,理解并掌握到了attentiion机制的核心内容,以及补充学习了SVM的一些数学知识。


文献阅读

1.题目

文献链接:MEANTIME: Mixture of Attention Mechanisms with Multi-temporal Embeddings for Sequential Recommendation

2.摘要

Recently, self-attention based models have achieved state of-the-art performance in sequential recommendation task. Following the custom from language processing, most of these models rely on a simple positional embedding to exploit the sequential nature of the user’s history. However, there are some limitations regarding the current approaches. First, sequential recommendation is different from language processing in that timestamp information is available. Previous models have not made good use of it to extract additional contextual information. Second, using a simple embedding scheme can lead to information bottleneck since the same embedding has to represent all possible contextual biases. Third, since previous models use the same positional embedding in each attention head, they can wastefully learn overlapping patterns. To address these limitations, we propose MEANTIME (MixturE of AtteNTIon mechanisms with Multi-temporal Embeddings) which employs multiple types of temporal embeddings designed to capture various patterns from the user’s behavior sequence, and an attention structure that fully leverages such diversity. Experiments on real-world data show that our proposed method outperforms current state-of-the-art sequential recommendation methods, and we provide an extensive ablation study to analyze how the model gains from the diverse positional information.

3.介绍

背景:从用户的历史记录中获取用户的偏好对于做出有效的推荐至关重要,因为用户的偏好和项目的特征都是动态的;此外,用户的偏好在很大程度上取决于上下文;因此,sequential recommendation旨在通过用户的历史记录来预测用户可能更喜欢的下一组事物。

问题:大多数顺序推荐算法忽略了interactions’ timestamp values,虽然TiSASRec成功地结合了时间信息,但它却仅限于单个嵌入方案。由于timestamp values中的信息十分重要,因此探索多种形式的时间嵌入是有益的,而且这些嵌入可以充分提取不同的模式,以及可以充分利用这些多样性的模型架构。

方案:论文提出了MEANTIME,它引入多个时间嵌入,以更好地编码序列中用户项交互的绝对位置和相对位置。此外,论文使用了多个单独处理每个位置嵌入的自注意头,专注于特定的用户行为模式。

4.本文贡献

1)论文提出多样化用于编码序列中用户项交互位置的嵌入方案,通过将多个内核应用于序列中时间戳的位置/值来创建唯一的嵌入矩阵来实现的。
2)论文提出了一种新的模型架构,该架构同时操作多个self-attention heads,其中每个头通过利用提出的位置嵌入从用户的行为中提取特定模式。
3)通过实验证明了论文方法在真实世界数据集上的有效性,以及提供了一项全面的消融研究,帮助了解模型中各个组件的影响。

5.相关工作

5.1 Temporal Recommendation

Temporal Recommendation包含上下文信息,因此它对推荐系统的表现至关重要。TimeSVD++和BPTF在矩阵分解方法中采用了时间因子;Time-LSTM为LSTM配备了几种形式的时间门,以更好地模拟用户交互序列中的时间间隔;CTA在temporal information上使用多个参数化核函数来校准self-attention机制。

5.2 Sequential Recommendation

Sequential Recommendation,旨在基于用户的顺序历史来推荐相关项目。SASRec成功地运用了self-attention,使得在NLP领域取得了巨大成功;BERT4Rec通过采用基于Transformer和Cloze-task的训练方法改进了SASRec;TiSASRec通过将时间戳信息合并到self-attention中去增强SASRec;而论文的工作是试图通过提出一种新的模型架构来进一步推进这一趋势,该架构使用多类型的时间嵌入和self-attention来更好地捕捉用户行为中的各种模式。

6.方法

如下图所示,一种新的模型架构,为每个注意力头部注入各种不同的时间嵌入。
在这里插入图片描述

6.1 Problem Formulation

目标:基于给定的历史(Vu,Tu),预测用户u可能在目标时间戳与之交互的下一个项目。

6.2 Input Embedding

相对嵌入通过利用时间差信息来编码序列中每个交互对之间的关系。首先,我们定义了一个时间差矩阵,其元素定义为dab=(ta − tb)/T,其中T为可调整的单位时间差。如下所示,编码函数:
在这里插入图片描述
每一个嵌入都提供了对时间数据的独特视图。例如:Sin捕获周期性事件,较大的时间间隔要么在Exp中迅速衰减为零,要么在Log中可管理地增加;Pos可以从以前的模型中学习模式;最后Con完全消除了位置偏差,因此注意力只能集中在项目之间的关系上。

6.3 Self-Attention Structure

Attention Architecture:基于自注意力机制的模型采用了简单的绝对位置编码,将EItem和EPos的总和作为输入;EPos被仅依赖于阵列的位置索引之间差异的相对位置嵌入ER所取代,并且位置信息不再用于键和值编码器;参数bI和bR分别用作全局内容/位置偏差。对于绝对嵌入,论文也采用了前面的结构。

Stacking Layers:将Position-wise前馈网络应用于self-attention的结果,以完成单层:
在这里插入图片描述
然后堆叠L个这样的层,为每个子层应用残差连接以促进训练:
在这里插入图片描述

Prediction Layer:给定最后一层的输出,通过以下方式获得每个位置的项目得分分布:
在这里插入图片描述

6.4 Model Training

从(Vu,Tu)中对项目v和时间戳t的子序列进行采样,并以概率ρ用[MASK]随机屏蔽其中的一部分,将v转换为v’;然后我们将v′和t送到模型中以获得P;接下来,计算损失如下:
在这里插入图片描述

7.实验

7.1 数据集

在四个不同领域具有稀疏性的数据集上评估了模型:MovieLens 1M、MovieLen 20M、Amazon Beauty和Amazon Game。其中遵循通用数据预处理过程,将每个数据集转换为隐式数据集,将每个数值评级或评论视为用户项交互的存在,最后按用户ID对交互进行分组,按时间戳对它们进行排序。

7.2 实验结果

与最好基线相比,论文提出的模型在所有指标和数据集中都具有最优的性能。
在这里插入图片描述

7.3 多时间嵌入的效果

下图比较了在ML-1M和Amazon Game数据集上所有可能的时间嵌入组合情况,结果表明了具有不同特征的数据集需要精心选择合适的时间嵌入,以提供用户项交互上下文的正确视图。
在这里插入图片描述

8.结论

MEANTIME,它的特点是使用时间信息和多个编码函数为Self-attention提供独特的位置嵌入。通过在四个数据集上的实验表明,它在时序推荐方面优于最新的基线。通过广泛的消融研究,论文表明不同的数据集需要不同的位置嵌入以获得最佳性能,因此需要考虑不同数据集的特性,仔细调整模型中的位置因子。

深度学习

1.Self-attention

如下图所示,Self-attention的核心部分。
在这里插入图片描述
为了方便讲解,将上式简化为:
在这里插入图片描述
由此上图中XXT 可以表示为一个矩阵乘以它自己的转置,即可以看成这些向量分别与其他向量计算内积。而向量的内积表征两个向量的夹角,其几何意义是表征一个向量在另一个向量上的投影。
在这里插入图片描述
上图是向量分别与自己和其他两个向量做内积,得到了一个新的向量。

我们知道投影的值大,说明两个向量相关度高。因此,如果两个向量夹角是90度,那么这两个向量线性无关,完全没有相关性。

进一步讲,这个向量是词向量,是词在高维空间的数值映射。词向量之间相关度高表示在关注词A的时候,应当给予词B更多的关注。
在这里插入图片描述
Softmax的意义是归一化,因为进行Softmax操作后,这些数字的和为1。
在这里插入图片描述
从上图看出,行向量与X的第一个列向量相乘,得到了一个新的行向量,且这个行向量与X的维度相同。

在新的向量中,每一个维度的数值都是由三个词向量在这一维度的数值加权求和得来的,这个新的行向量就是"早"字词向量经过注意力机制加权求和之后的表示。

2.SVM

2.1 线性可分

如下图所示,在二维空间中,两种类别的点被一条直线完全划分开就叫做线性可分。
在这里插入图片描述
严格的数学定义: D0和D1是n维欧氏空间中的两个点集,如果存在n维向量w和实数b,使得所有属于D0的点都有wxi + b > 0, 而对于所有属于D1的点xj,则有wxj + b < 0, 则称D0和D1线性可分。

2.2 最大间隔超平面

将二维空间扩展到多维空间中时,能够将D0和D1完全正确地划分开的wx + b = 0就成了一个超平面。

为了使上述超平面更具鲁棒性,我们会去找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。

最大间隔超平面:
1)两类样本分别被分割在该超平面的两侧;
2)两侧距离超平面最近的样本点到超平面的距离被最大化。

2.3 支持向量

如下图所示,支持向量是样本中距离超平面最近的一些点。
在这里插入图片描述

2.4 SVM最优化问题

SVM想要的是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面。
在这里插入图片描述
根据1.3中的图所示,支持向量到超平面的距离为d,其他点到超平面的距离大于d。
在这里插入图片描述
由此可以得到最大间隔超平面的上下两个超平面:
在这里插入图片描述
下图中乘以2倍是为了后面推导,对目标函数没有影响。
在这里插入图片描述
因此得到最优化问题:
在这里插入图片描述


总结

在对self-attention的学习中,我理解到了为什么Attention机制的核心是加权求和。对self-attention来说,它跟每一个input vector都做attention,因此没有考虑到input sequence的顺序。简单来说,每一个词向量都与其他词向量做内积,计算后的结果丢失了原来文本的顺序信息。即打乱词向量的顺序,得到的结果仍然是相同的。对于此类问题,会涉及到Transformer的位置编码,我会后面的时间去学习Transformer。在对SVM的学习中,我学习了一点关于数学方面的知识,在下周会学习如对偶问题等关于SVM的数学知识。

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

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

相关文章

Vulkan教程(12): Graphics pipeline Introduction (图形管线概要)

Vulkan官方英文原文&#xff1a;https://vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/Introduction对应的Vulkan技术规格说明书版本&#xff1a; Vulkan 1.3.2Over the course of the next few chapters, well be setting up a graphics pipeline that i…

你知道MySQL中like 关键字也能用索引嘛?

上篇文章中&#xff0c;我和大家分享了索引的两个使用规则&#xff1a; 索引上不要使用函数运算。使用覆盖索引避免回表。 当然&#xff0c;凡事有个度&#xff0c;用哪一种策略也要结合具体的项目来定&#xff0c;不能为了 SQL 优化而抛弃了业务。 在前文的基础上&#xff0…

Mac安装Homebrew排坑大全..

官网&#xff1a;https://brew.sh/BACKGROUND: 安装Homebrew嘎嘎报错&#xff01;question one网络不通&#xff0c;需要配置一下github.com的hostError&#xff1a;fatal: unable to access https://github.com/Homebrew/homebrew-core/: error:02FFF036:system library:func(…

电子电气架构——基于CANoe实现两路CAN线间网关仿真

基于CANoe实现两路CAN线间网关仿真 魔都的天气也很魔性,白天酷热无比,现在晚上九点又狂风大作,凉爽宜人。 天气的不可预见性与个人生活极其相似,都有随机、不可控的成分,自己能做的就是不懊悔昨天已发生,不寄托于未来未发生,只想过好当下这时光。 老规矩,分享一段喜…

【不知道是啥】浅保存哈

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

Linux系统安全之iptables防火墙

目录 一.iptables防火墙基本介绍 二.iptables的四表五链 三.iptables的配置 1.iptables的安装 2.iptables防火墙的配置方法 四.添加、查看、删除规则 1.查看(fliter)表中的所有链 iptables -L 2.使用数字形式(fliter)表所有链 查看输出结果 iptables -nL 3.清空表中所…

算法刷题打卡第88天:字母板上的路径

字母板上的路径 难度&#xff1a;中等 我们从一块字母板上的位置 (0, 0) 出发&#xff0c;该坐标对应的字符为 board[0][0]。 在本题里&#xff0c;字母板为board ["abcde", "fghij", "klmno", "pqrst", "uvwxy", "…

【Java|golang】1138. 字母板上的路径

我们从一块字母板上的位置 (0, 0) 出发&#xff0c;该坐标对应的字符为 board[0][0]。 在本题里&#xff0c;字母板为board [“abcde”, “fghij”, “klmno”, “pqrst”, “uvwxy”, “z”]&#xff0c;如下所示。 我们可以按下面的指令规则行动&#xff1a; 如果方格存…

【计组】理解Disruptor--《计算机组成原理》(十五)

Disruptor 的开发语言&#xff0c;并不是很多人心目中最容易做到性能极限的 C/C&#xff0c;而是性能受限于 JVM 的 Java。其实只要通晓硬件层面的原理&#xff0c;即使是像 Java 这样的高级语言&#xff0c;也能够把 CPU 的性能发挥到极限。 一、Padding Cache Line&#xff…

mysql中mvcc实现机制和原理

目录 1.什么是mvcc? 2.mvcc中的快照读和当前读有什么区别和联系&#xff1f; 3.mvcc的作用是什么&#xff1f; 4.mvcc的实现机制和原理是什么&#xff1f; 1.什么是mvcc? mvcc全称是(Multi-Version Concurrency Control) 多版本并发控制,是数据库管理过程中的一种并发控制…

keras+IMDB情感分析

目录简介IDMB数据集数据预处理数据加载数据清洗保存经过清洗后的数据训练测试数据集分割文字编码词嵌入模型构建模型训练训练效果模型评分模型预测及混淆矩阵查看F1 Score、召回率等信息预测新的影评总结本博客参考&#xff1a; 【python自然语言处理 周元哲著】 【keras中文文…

数据库索引篇(二叉树/B-Tree)对比结构讲解

我们可以先看一下 二叉树的一个结构 简单将数据分成左右两侧 左侧小于36 右侧大于36 在下面再以这种方式继续划分 但二叉树的结构就有一个非常大的弊端 如果我们后续插入的数据全部小于 或 大于36 他就会 变成这样 一个链表 查询效率大大降低 因为 比如 你想找什么数据 都会…

岁月闲思——时间给我地思考

岁月闲思——时间给我地思考 2022年6月10日&#xff0c;明天又一个周末&#xff0c;成人地时间总是让人感觉一天很慢&#xff0c;一周以及一年反而很快。 下班到家&#xff0c;吃过长辈做的手工凉皮&#xff0c;得空坐在电脑面前敲击点文字&#xff0c;记录下时间留给自己地印…

Docker--consul

目录 前言 一、Consul 简介 1.1、 consul 概述 1.2 、consul 的两种模式 1.3、consul 提供的一些关键特性 二、Consul 容器服务更新与发现 三、consul 部署 3.2、查看集群信息 四、registrator服务器 consul-template 五、consul 多节点 前言 服务注册与发现是微服…

软件测试面试十大必考题目(通用)

目录 &#xff08;1&#xff09; 为什么想进本公司&#xff1f; &#xff08;2&#xff09; 喜欢这份工作的哪一点&#xff1f; &#xff08;3&#xff09; 自己的优缺点为何&#xff1f; &#xff08;4&#xff09; 对公司的了解有多少&#xff1f; &#xff08;5&#xf…

C++创建多线程的方法总结

下个迭代有个任务很有趣&#xff0c;用大量的线程去访问一个接口&#xff0c;直至其崩溃为止&#xff0c;这就需要多线程的知识&#xff0c;这也不是什么难事&#xff0c;总结一下C中的多线程方法&#xff1a;std、boost、pthread、windows api。 目录 一、多线程预备知识 二…

图解浏览器渲染页面详细过程

渲染详细过程 产生渲染任务&#xff0c;开启渲染流程 当浏览器的网络线程收到 HTML 文档后&#xff0c;会产生一个渲染任务&#xff0c;并将其传递给渲染主线程的消息队列。 在事件循环机制的作用下&#xff0c;渲染主线程取出消息队列中的渲染任务&#xff0c;开启渲染流程。…

IDEA 常用快捷键回顾

一 Alt 数字键 1. Alt 1: 打开项目 2. Alt 2: 打开Favorites 3. Alt 3: 打开Find 4. Alt 4: 打开Run 5. Alt 5: 打开Debug 6. Alt 6: 打开当前所在文件 7. Alt 7: 打开Structure 8. Alt 8: 打开Services 9. Alt 9: 打开Git日志 二 Ctrl 其他键 1. Ctrl…

【Flink】详解JobGraph

概述 JobGraph 是 StreamGraph 优化后的产物&#xff0c;客户端会将优化后的 JobGraph 发送给 JM。接下来的文章涉及到一些前置知识点&#xff0c;没有看前几期的小伙伴最好看一下前几期&#xff1a; 【Flink】详解StreamGraph【Flink】浅谈Flink架构和调度【Flink】详解Flin…

【Flutter入门到进阶】Dart进阶篇---进阶用法

1 Dart对象扩展 1.1 extension 1.1.1 介绍 可以在不更改类或创建子类的情况下&#xff0c;向类添加扩展功能的一种方式。灵活使用 extension 对基础类进行扩展&#xff0c;对开发效率有显著提升。 1.1.2 需求 在开发项目中碰到需求&#xff1a;将单位为分的数值转换成单位为…