夏侯将军YY
论文: 题目:《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是根据频率进行负采样的负样本。
稥油菋精
论文: 论文题目:《Neural Graph Collaborative Filtering》 论文地址: 本论文是关于图结构的协同过滤算法,在原始的矩阵分解和基于深度学习的方法中,通常是通过映射描述用户(或物品)的现有特征(例如ID和属性)来获得用户(或物品)的嵌入。从而利用user和item的embedding进行协同召回。但是作者认为这种方法的固有缺点是:在user与item的interaction数据中潜伏的 协作信号(collaborative signal) 未在嵌入过程中进行编码。这样,所得的嵌入可能不足以捕获协同过滤效果。 让我们一起来看一下本论文是怎么利用数据中潜伏的协作信号的吧。 推荐算法被广泛的运用在各个领域中,在电商领域,社交媒体,广告等领域都发挥着至关重要的作用。推荐系统的核心内容就是根据用户以前的购买和点击行为来评估用户对一个物品的喜爱程度,从而针对每个用户进行个性化推荐。协同过滤算法认为历史行为相似的用户之间的兴趣是相同的,所以给用户推荐的是同类型用户的爱好,也就是UserCF,而ItemCF给用户推荐的是跟历史行为相近的物品。 传统的协同过滤方法要么是基于矩阵分解,要么是基于深度学习的,这两种方法都忽略了一个非常关键的信息---user和item交互的协作信号,该信号隐藏在user和item的交互过程中。原始的协同过滤方法忽略了这种信息,所以在进行user 和 item representation时就不足以较好的进行embedding。 本论文通过将用户项交互(更具体地说是二分图结构)集成到embedding过程中,开发了一个新的推荐框架神经图协同过滤(NGCF),该框架通过在其上传播embedding来利用user-item图结构。这种方法在用户项目图中进行高阶连通性的表达建模,从而以显式方式将协作信号有效地注入到embedding过程中。 在介绍模型之前先来讲解一下什么是useritem interaction以及什么是高阶的useritem interaction。 我们先看左边的图,这个图就是useritem interaction,u1是我们待推荐的用户,用双圆圈表示,他交互过的物品有i1,i2,i3。在看右边这个树形结构的图,这个图是u1的高阶interaction图,注意只有l > 1的才是u1的高阶连接。观察到,这么一条路径,u1 ← i2 ← u2,指示u1和u2之间的行为相似性,因为两个用户都已与i2进行了交互。而另一条更长的路径,u1←i2←u2←i4暗示u1可能会点击i4,因为他的相似用户u2之前已经购买过i4。另一方面,用户u1在l = 3这一层会更倾向于i4而不是i5,理由是i4到u1有两条路径而i5只有一条。 当然这种树结构是不可能通过构建真正的树节点来表示的,因为树模型比较复杂,而且结构很大,没法对每个用户构建一个树,这样工作量太大了。那么怎么设计模型结构可以达到跟这个high-order connectivity的效果呢,这个就要运用到神经网络了。通过设计一个embedding propagation layer来表示这种embedding 在每个层之间的传递。 还是拿上面那张图举例子,堆叠两层可捕获u1←i2←u2的行为相似性,堆叠三层可捕获u1←i2←u2←i4的潜在推荐以及信息流的强度(由层之间的可训练权重来评估),并确定i4和i5的推荐优先级。 这个跟传统的embedding是一样的,都是对原始的userID和itemID做embedding,跟传统embedding不同的地方是,在我们的NGCF框架中,我们通过在用户-项目交互图上传播embedding来优化embedding。 由于embedding优化步骤将协作信号显式注入到embedding中,因此可以为推荐提供更有效的embedding。 这一层是本文的核心内容,下面我们来进行详细的解读。 从直观上来看,用户交互过的item会给用户的偏好带来最直接的依据。类似地,交互过某个item的用户可以视为该item的特征,并可以用来衡量两个item的协同相似性。 我们以此为基础在连接的用户和项目之间执行embedding propogation,并通过两个主要操作来制定流程:消息构建和消息聚合。 Message Construction(消息构建) 对于连接的user-item对(u,i),我们定义从i到u的消息为: 其中ei是i的embedding,eu是u的embedding,pui是用于控制每次传播的衰减因子,函数f是消息构建函数,f的定义为: 其中W1和W2用来提取有用的embedding信息,可以看到W2控制的i和u直接的交互性,这使得消息取决于ei和eu之间的亲和力,比如,传递更多来自相似项的消息。 另一个重要的地方是Nu和Ni,pui = 1/ 。Nu和Ni表示用户u和item i的第一跳邻居。 从表示学习的角度来看,pui反映了历史item对用户偏好的贡献程度。 从消息传递的角度来看,考虑到正在传播的消息应随路径长度衰减,因此pui可以解释为折扣因子。 Message Aggregation 聚合方法如下 : 其中 表示在第一嵌入传播层之后获得的用户u的表示。激活函数采用的是leakyrelu,这个函数适合对pos和neg信号进行编码。 另一个重要的信息是 ,它的定义如下: 这个信息的主要作用是保留原始的特征信息。 至此,我们得到了 ,同样的方法,我们也能获得 ,这个都是first order connectivoty的信息。 根据前面的计算方式,我们如果将多个Embedding Propagation Layers进行堆叠,我们就可以得到high order connectivity信息了: 计算方式如下: 当我看到这里的时候,我的脑子里产生了一个大大的疑惑,我们在计算第l层的eu和ei时都需要第l-1层的信息,那么我们怎么知道ei和eu在第l层是否存在呢?也就是说出现u侧的总层数l大于i侧总层数的时候,我们如何根据第l-1层的ei来计算第l层的e呢?经过思考,我感觉应该是这样的,训练样本应该是一条path,也就是这个例子是u1 ← i2 ← u2 ← i4这条path,所以可以保证u1跟i4的层数l是一样的,所以不存在上面那个层数不匹配的问题。 ps:看到后面的实验结果才知道L是固定的所以每一层都不会缺失。 还有一个就是,不同层之间的W是不一样的,每一层都有着自己的参数,这个看公式就知道,理由就是我们在提取不同层信息的时候需要不同的W进行信息提取。 另一个疑惑是pui到底是不是每一个l层都一样?这里看公式好像就是指的是第一跳的Nu和Ni进行就计算的结果。 这部分内容是为了在进行batch训练的时候进行矩阵运算所推导的数学过程,其实跟之前我们讲的那个过程在数学上的计算是完全一样的,你想象一下,如果不用矩阵进行运算,在训练过程中要如何进行这么复杂的交互运算。 当进行了l层的embedding propagation后,我们就拥有了l个eu和l个ei,我们将他们进行concate操作: 这样,我们不仅可以通过嵌入传播层丰富初始嵌入,还可以通过调整L来控制传播范围。 最后,我们进行内积计算,以评估用户对目标商品的偏好: 采用的是pair-wise方式中的bpr loss:
众有情殇
论文: 论文题目:《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快,所以采用这种方式。 未来应该还会有更多针对序列推荐的论文,单纯的对长序列阶段还带来一定的兴趣偏差,所以如何有效挖掘用户更丰富行为特征背后的商业价值是需要好好思考的。
论文查重软件排行榜以下三个好。 1、知网论文查重软件数据库比较强大,并且可以分类对论文进行检测,有本科论文查重入口,硕博论文查重入口,职称论文查重入口,初稿论文
论文: 题目:《A Contextualized Temporal Atte
综述类: 1、Towards the Next Generation of Recommender Systems: A Survey of the
是毕业论文吗?如果是当代文学的话,值得从纯文学角度研究的作家其实不多,我也推莫言,但我推的是莫言的《生死疲劳》,此外可以写写阎连科《受活》,阎连科是世界上仅承认
参考文献可以在百度学术中找到。 毕业论文参考文献规范格式一、参考文献的类型参考文献(即引文出处)的类型以单字母方式标识,具体如下:M——专著 C