小花匠M
论文:论文地址: 论文题目:《Session-based Recommendation with Graph Neural Networks》SR-GNN github: 基于会话的推荐一般是将序列会话建模,将整个session进行编码,变成一个隐向量,然后利用这个隐向量进行下一个点击预测。但是这种方法没有考虑到item直接复杂的转换(transitions)关系,也就是item之间在点击的session中除了时间顺序外还有复杂的有向图内的节点指向关系,所以之前的方法不足以很好的对点击序列进行建模。 现有基于会话的推荐,方法主要集中于循环神经网络和马尔可夫链,论文提出了现有方法的两个缺点: 1)当一个session中用户的行为数量十分有限时,这些方法难以获取准确的用户行为表示。如当使用RNN模型时,用户行为的表示即最后一个单元的输出,论文认为只有这样并非十分准确。 2)根据先前的工作发现,物品之间的转移模式在会话推荐中是十分重要的特征,但RNN和马尔可夫过程只对相邻的两个物品的 单向转移关系 进行建模,而忽略了会话中其他的物品。 为了克服上述缺陷,本文提出了用图神经网络对方法对用户对session进行建模:下面具体介绍怎么进行图序列推荐 V = {v1,v2...vm}为全部的item,S = { }为一个session里面按时间顺序的点击物品,论文的目标是预测用户下一个要点击的物品vs,n+1,模型的任务是输出所有item的预测概率,并选择top-k进行推荐。 我们为每一个Session构建一个子图,并获得它对应的出度和入度矩阵。 假设一个点击序列是v1->v2->v4->v3,那么它得到的子图如下图中红色部分所示:另一个例子,一个点击序列是v1->v2->v3->v2->v4,那么它得到的子图如下:同时,我们会为每一个子图构建一个出度和入度矩阵,并对出度和入度矩阵的每一行进行归一化,如我们序列v1->v2->v3->v2->v4对应的矩阵如下:这个矩阵里面的值是怎么计算的呢?下面讲一下: 看左边的出度矩阵,第一行为 0 1 0 0 ,代表着v1->v2,因为v1,只有一个指向的item,所以为1;看第二行,0 0 1/2 1/2,因为v2有指向v3和v4的边,所以进行归一化后每一个值都变成了1/2。入度矩阵的计算方法也是一样的,就不再说了。 本文采用的是GRU单元进行序列建模,将图信息嵌入到神经网络中,让GRU充分学习到item之间的关系,传统的GRU只能学到相邻的两个物品之间的关系,加入图信息后就能学到整个session子图的信息。 计算公式如下:为了刚好的理解这个计算过程,我们还是使用之前那个例子:v1->v2->v3->v2->v4来一步步分析输入到输出的过程。 (1) 是t时刻,会话s中第i个点击对应的输入, 是n✖️2n的矩阵,也就是会话子图的完整矩阵,而 是其中一行,即物品vi所对应的那行,大小为1✖️2n,n代表序列中不同物品的数量。 如果按照例子来看,如果i取2,那么 为 [0 0 1/2 1/2 1/2 0 1/2 0] 进一步的,可以把 :拆解为[ , ] (2) 可以理解为序列中第i个物品,在训练过程中对应的嵌入向量,这个向量随着模型的训练不断变化,可以理解为隐藏层的状态,是一个d维向量。 (3) H是d*2d的权重向量,也可以看作是一个分块的矩阵,可以理解为H=[Hin|Hout],每一块都是d*d的向量。 那么我们来看看计算过程: 1)[ ..., ] ,结果是d * n的矩阵,转置之后是n*d的矩阵,计作 2) : H相当于[ ],即拆开之后相乘再拼接,因此结果是一个1 * 2d的向量。 上面就是完整的第i个点击的输入的计算过程,可以看到,在进入GRU计算之前,通过跟As,i矩阵相乘,把图信息嵌入到了神经网络中取,加深了神经网络学习到的item之间的交互信息。 此外,就是GRU的计算过程了,跟原始的GRU不一样的地方在于输入从xt变成了嵌入了图信息的as,i。 通样也有更新门和重置门,计算方法跟原始GRU一模一样。 这里的 其实就是相当于原始gru中的 ,只不过在SR-GNN里面,进行一轮运算的时候i是没有变化,相当于每个物品单独进去GRU进行计算,得到自己的向量,也就是说在GRU的计算过程中, 是不断变化的,看一下源码更易于理解: hidden就是公式里面的 ,在gru的每一个step计算中都会进行更新,这里我有个疑问,如果所有item的hidden都更新的话,那么应该是整个序列中所有的item并行进入GRU中进行计算,每一个step都得到自己的vector,当每个item的vector更新后,下一个step就重新根据新的 计算 ,接着计算下一个step。 计算过程大概就是下面这样:这里有四个GRU并行计算,没次更新自己的hidden状态,输入则考虑所有的hidden和图信息。 从上面的图看来,每一个item都要进行T个step得到自己的item-vec,所以经过T个step后,我们就得到了序列中所有item的向量,即:图中用蓝色框框画出来的向量,有了这些向量后,我们怎么得到预测结果呢?这就引入了下一个问题。 观察上面的模型结构,我们看到attention,没错,我们认为一个session中的这些item-vec并不都对预测结果产生影响,有些item对结果影响很大,有些影响很小,所以我们进行了加权求和。同时,论文认为session对最后一个item-vec,s1=vn是重要的,所以单独拿出来:公式(6)就是简单的attention操作,其实从公式上来看就是计算每个vi跟最后一个向量vn的权值,然后进行加权求和。 在最后的输出层,使用sh和每个物品的embedding进行内积计算,这里vi应该是item的embedding层出来的向量,而不是后面一直更新的hidden:最后通过一个softmax得到最终每个物品的点击概率: 损失函数为交叉熵损失函数:从数据上来看,SR-GNN超过了经典的GRU4REC,这也说明了图信息的嵌入能带来更好的推荐效果。 本论文很巧妙的将图信息嵌入的神经网络中,更高地让GRU学习到每个item之间的关系,不再局限于相邻的物品之间进行学习。近年来,图神经网络的思想和方法屡屡被用在推荐系统中,学好图神经网络应该是推荐系统的下一个热潮。
虎潜山林
论文: 论文题目:《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》 地址: 这是阿里妈妈发表在2020SIGIR上面的又一篇佳作,让我们来阅读一下这篇论文吧。 在CTR/CVR预估领域中,用户历史行为对CTR/CVR预估的建模是很有指导意义的,用户的历史行为序列中潜藏着用户丰富的”兴趣点“,用户的每一次行为都是某个方面兴趣的一种反应。比如我喜欢各种口红产品、喜欢洗面奶、但是又对某个牌子不是特别感兴趣,基于这些兴趣的驱动,我可能浏览、点击过很多相关领域的内容或商品,那这些历史行为是否对我未来行为的预测有帮助呢,答案是肯定的。正是基于上述这种主观的行为模式,我们才需要对用户的历史行为进行建模,用户行为队列越长,包含的用户兴趣也就越丰富,但是同样也会带来更大的挑战,其实用户的兴趣是发散的多元的,如何从发散多元的用户兴趣中找到真正对当前任务有帮助的兴趣是十分重要的。 在介绍这篇论文之前建议先去看一下阿里的另一篇论文MIMN,也是基于用户长序列进行CTR预估的论文,但是MIMN存在着几个问题,一个是因为,当用户行为序列的长度进一步增加(例如,增加10倍或比十倍更多)时,MIMN无法精确捕获给定特定候选项的用户兴趣。另一个是因为,MIMN不能很好的解决延时和存储这两个瓶颈上的棘手问题,也就是说部署到线上到时候如何才能做到延时跟其他轻量模型相近。 在淘宝中,用户的浏览序列长度可能达到上千甚至上万个,怎么高效且有效的利用这种长序列信息呢?阿里妈妈提出了SIM模型来进一步从用户丰富的长期历史行为队列中挖掘用户有价值的兴趣点,并且提供一种长行为序列线上服务化的可行性方案,接下来就来看看这篇论文吧。 模型总览: SIM分为两个阶段,这两个阶段都有自己的核心部分,文章中将长序列用户行为特征的建模分为了两个模块,即Genral Search Unit(GSU)和Exact Search Unit(ESU),这两部分就是两个阶段的核心模块了。先简单的介绍下这两个模块的作用吧。GSU如图所示,简单理解就是从几百上千的用户长序列中挑选出TopK个跟候选Item最相似的K个Item,类比与推荐系统中的召回模块,先降低长序列物品的长度,在进行后续任务。另一个是ESU,这个模块的作用是对刚刚GSU抽取出来对K个物品进行序列建模,得到一个能代表用户长序列兴趣对向量,并利用这个向量进行后面对排序。 GSU的主要任务是从长度为T的序列中抽取出K个跟候选item相似的item,GSU有两种方式来选取TopK个物品,分别是hard-search 和soft-search。前面也提到了GSU类比于推荐系统中的召回阶段,而在多路召回中,一般也有基于Embedding的召回和基于策略规则的召回,其中hard-search就是基于规则的召回,soft-search就是基于Embedding的召回,下面来详细讲一下这两种方法。 这种方法比较直观而且实施起来比较简单,就是我们从候选行为序列中按照给定规则筛选出与当前目标任务相关的候选集,举个例子,我在淘宝上历史浏览过很不同种类的商品(比如电子产品、口红、男鞋等等),当候选广告是iphone12时,hard-search方法会从我历史行为队列中筛选出电子产品相关的行为进行建模,用于PCTR预估,而口红、男鞋大概率就不会对这次预估产生影响,通过上面这个例子大家应该能明白这种基于规则和策略的思路。论文中指出hard-search方法使用的是商品类别作为筛选的标准。 这种方法是基于Embedding的抽取方式,从上面的模型图的左侧可以看到整个soft-search的结构。这个部分也是一个子模型,模型的输入是候选Item和长序列,目标是CTR预估,用这种方式来学习候选Item和长序列Item的embedding信息。有了Embedding后,就可以将候选广告embedding和历史行为中的embedding算一个内积相似度,利用近似最近邻检索方法(论文中用的是ALSH)来得到topK相关的候选行为序列。 在这个子model中,DNN的输入是候选item 和Ur的concat,其中Ur:注意,如果用户行为增长到一定程度,则不可能将整个用户行为直接输入模型。 在这种情况下,可以从长序列用户行为中随机采样子序列集,这些行为仍需遵循原始序列的相同分布。 这种方法的缺点就是计算开销比较大,不如基于规则的hard-search方便,优点就是效果应该会更好一些。但是论文中也提到了两种方法在效果上的差异不是特别的大,所以最后基于性能和效果的折中,采用了hard-search这种比较简单的方式。 从模型整体上来看,这部分主要是利用从GSU抽取出来的K个Item得到一个能代表用户长期兴趣的向量,并配合其他特征送的DNN里面做整体的CTR预估任务。 论文中对这K个来自GSU对item是用self-attention进行序列建模的: 其中 为: concat中第一个是原始的embedding,第二个是关于时间的embedding。 根据self-attention的方式,我们又得到了一个向量h(K)。 这里,第二个子model也进行了ctr预估,特征是模型图上面画出来 input,还有个dien,dien前面的文章以及介绍过了,就不再赘述。 最后的loss是: 其中α和β是控制损耗权重的超参数。 在我们的实验中,如果GSU使用软搜索模型,则将α和β都设置为1。具有硬搜索模型的GSU是非参数的,并且α设置为0。 广告推荐系统对线上的计算耗时要求还是比较严格的,因为要保证用户最基本的用户体验。随着用户行为序列的进一步增长,采用传统的方式直接对长序列用户行为进行计算耗时和内存占用会增长的特别快,所以需要有针对性的对线上系统进行一定的升级和改造。文章提到在hard-search和soft-search的选择中,是基于大量的离线实验结果最终决定采用hard-search这种方便快捷有效的方式,同时信息损失也在可以接受的范围内。 一般的线上部署的系统架构图是这样: 为了让SIM能更好的给用户带来低延时的体验,阿里构建了SIM的Online Seving结构: 可以看到对于用户的行为序列,论文采用的是对每个用户采用的是两层索引的结构:key-key-value,第一个key是user_id,第二个key是category ids,value是用户行为序列中属于对应类别的item。用这种方式可以很快的通过这个索引树找到属于统一category的物品。线上A/B Test实验效果: 用户的历史行为对于整个CTR/CVR预估任务越来越重要了,如果不考虑时间和存储,那么把所有的序列输入到模型中作为长期兴趣关键点是可以精确的定位出用户的长期兴趣的,但是由于性能的原因就不得不考虑用特殊的方法对这个长序列进行一次筛选,筛选的K个物品都是跟候选Item相似的物品,能做到裁剪的效果还不会带来CTR预估的损失。在进行筛选过程中还分为了两种方法,但是为了部署到线上,就要考虑性能最好的hard-search方式进行TopK筛选任务,这种方式跟Embedding筛选的效果是差不多的,但是速度比Embedding快,所以采用这种方式。 未来应该还会有更多针对序列推荐的论文,单纯的对长序列阶段还带来一定的兴趣偏差,所以如何有效挖掘用户更丰富行为特征背后的商业价值是需要好好思考的。
豆豆腐腐点
论文: 题目:《A Contextualized Temporal Attention Mechanism for Sequential Recommendation》 地址: 序列推荐任务很少使用时间和上下文信息对h(h就是rnn,gru等序列建模网络输出的状态)进行加权,www这篇论文融合了上下文和时间信息的加权信号,一起看看吧,虽然笔者觉得这篇论文非常笨重。。 这篇论文的背景其实可以放在sequence recommendation任务中去看待,根据历史记录中用户的先后行为来预测用户的偏好对于现代推荐系统而言具有挑战性且至关重要。现有的大多数序列推荐算法都将重点放在顺序动作之间的传递结构上,但是在对历史事件对当前预测的影响进行建模时,很大程度上会忽略时间和上下文信息。 论文认为,过去事件对用户当前动作的影响应随时间推移以及在不同背景下发生变化。因此,我们提出了一个基于上下文和时间的注意机制,该机制可以学会权衡历史行为对行为的影响,不仅影响行为是什么,而且还影响行为发生的时间和方式。更具体地说,为了动态地校准自注意机制的相对输入依存关系,我们设计了多个参数化的核函数来学习各种时间动态,然后使用上下文信息来确定对每个输入遵循哪些weight kernel函数。 上面的说法可能有点晦涩难懂,下面结合一张图来描述一下以上图中所示的在线购物场景为例:系统获得了一系列用户行为记录,并且需要推荐下一组商品。 我们应该注意,在此场景中,我们假设这些交互行为不是彼此独立的, 这更好地反映了推荐系统只能访问脱机数据和部分用户行为记录的情况。好了,接着看上图中的场景,用户在过去的一段时间内点击来网球拍,手机,运动鞋,智能手环,然后在昨天一直在浏览手机,那么这个时候我们需要预估用户的下一次点击,这个时候的用户正想买一个手表,那么这个时候系统是给用户推荐运动手表呢,还是推荐电子手表呢,因为用户过去的浏览有运动类的物品和智能设备的物品。 按照时间的分段性来看:长期的历史记录表明用户对购物体育相关产品感兴趣。 现在,用户正在寻找手表,该系统可以推荐一些运动手表。 从本质上讲,长期的用户历史记录通常可能会携带稀少但至关重要的用户偏好信息,影响着现在的意图,而最近的交互操作应该会更能代表用户在将来的意图。 按上下文细分:由于用户仔细浏览几个智能手机(比平均时间间隔短得多的时间间隔),因此可以认为这些物品跟当前用户的偏爱非常相关,因此智能手表可能比传统手表更受青睐。 通常,用户浏览日志的某些时间段可能看起来是异构的,这个时间段里面充满了用户的短期兴趣偏好,用户在这个时间点上会以重复的方式专注于一小部分同类物品。 很容易理解,时间因素可以理解为用户的长期兴趣偏好,即使在很遥远的历史,也会对现在的兴趣产生影响,上下文偏好可以理解为用户的短期兴趣偏好,也就是用户在近期浏览的物品表征了用户现在的短期意图。说白了就是对用户进行长短期兴趣建模。 本来不想说这三个问题的,无奈部分论文说的太抽象了,或许是越抽象越容易中稿? 说实话这篇论文在解释时间跟上下文关系的时候说的太晦涩难懂了,笔者看的也是很头疼,比如下面这段话: 首先,我们看第一个问题,我的理解就是用self-attention进行序列建模,第二个就是确定时间因素和上下文因素的影响,第三个就是综合考虑时间和上下文的影响。 还是直接看模型吧,扯一堆什么因果关系看得头大:用户空间 U ,大小为U;物品空间 V ,大小为V。 用户的历史行为序列为{ },其中 ={( , ), ( , ) , ... },其中 用户u的交互时间, 代表交互的物品。 模型的输入为包括窗口大小为L的用户历史记录:{ ( ) i: 0 -> L},当前需要推荐的时间戳 ,输入序列的embedding X表示: 同时将输入序列的时间信息使用时间戳差来表示: 模型整体上分为三个部分:content-based attention,temporal kernels和contextualized mixture 三层模型可以表示为: 其中, 根据content X来计算每个输入的权重,输出权重序列α ∈ ; 将时间信息 T 通过K temporal kernels计算每个输入的temporal权重β ∈ ; 从 X 中提取context信息,并结合前两个阶段获得的α 和β 来计算得到最终的contextualized temporal权重γ ∈ 。 最终被推荐的物品的表示为: 其中,F-out是一个feed-forward层。 这里用到的是self-attention机制,具体的细节不在赘述,只需要知道结果输出就行:其中 表示最后一个物品的输入embedding,其实就是用最后一个物品的embedding作为key,self-attention最后一层的状态 作为query来计算 的。 基于观察:用户随意浏览的物品对短期的影响会急剧下降,但是在长期来说仍有着重要的作用。用户仔细浏览过的物品对用户短期的兴趣有着重要的作用。 所以,文章提出了很多temporal kernels来建模这种时间变化,不同的kernel函数 : → 如下所示: (1) = ,假设一个用户操作的影响会随着时间指数下降,但是永远不会消失。 (2) ,假设一个用户操作的影响会随着时间而减弱,最终可以忽略不计。 (3) -alT + b,假设一个用户操作的影响会随着时间线性下降,之后的softmax操作会将某个时间段内的影响置为0。 (4) 假设一个用户操作的影响不受时间影响。 根据K个kernal函数{ },我们可以将 T 转为K个temporal权重集合: 作为下一阶段的输入。 这一阶段的目标是基于提取到的context信息融合前两个阶段获得的content和temporal信息。 使用Bidirectional RNN结构来获得context信息。从输入序列embedding表示X中,我们可以计算得到循环隐藏层的状态: 其中,⊕是拼接操作,C_attr是可选择的context特征(可以是特定推荐系统中每个行为的属性,表示行为发生时的上下文),本文中只使用了Bi-RNN的输出作为context特征。 行为i的context特征需要映射为一个长度为K的权重向量,每一个元素 都是这个行为经过 后的结果,使用feed forwaed层Fγ将它们映射到概率空间 ,然后经过softmax操作得到概率分布:最后将context和temporal信息进行融合:其中, , 其中,r是每一个item的分数,对于给定的用户,通过softmax层对item分数进行归一化,该层会在item表上产生概率分布,也就是进行多分类的意思。其中Ns是根据频率进行负采样的负样本。
asp+access企业网站设计与实现(论文+程序+答辩ppt) 【学校图书管理】 你看一下行不,可以的我就发给你了 == =================
论文:论文地址: 论文题目:《Session-based Recommendation with Graph Neural Networks》SR-GN
传统 文化 是在特定的民族或群体在生产及生活实践中,人们不断 总结 并创造的智力成果、具有鲜明的文化标志。下文是我为大家搜集整理的关于传统文化的
初中议论文写作教学作为作文教学的重要组成部分,对学生创新、思辨、认识等方面都有一定的帮助。以下是我为大家整理的关于初二议论文题目,给大家作为参考,欢迎阅读!
提供一些资料,供参考。1 、叶圣陶语文教育思想研究2 、张志公语文教育思想研究3 、国正语文教育思想研究4 、语文课堂语言艺术初探5 、语文课堂调控艺术初探6