多啦X梦521
论文: 论文题目:《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:
燕然铭石
参考书本: 项亮, 推荐系统实践. 2012 本文系阅读笔记
1.网站用户基数增多,矩阵难以构造,时空复杂度增加。
2.难以对推荐结果做出解释。
该算法会因为你购买过《数据挖掘导论》而给你推荐《机器学习》。不过, ItemCF 算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。 该算法认为,物品 A 和物品 B 具有很大的相似度是因为喜欢物品 A 的用户大都也喜欢物品B 。
基于物品的协同过滤算法可以利用用户的历史行为给推荐结果提供推荐解释,比如给用户推荐《天龙八部》的解释可以是因为用户之前喜欢《射雕英雄传》。
基于物品的协同过滤算法主要分为两步。 (1) 计算物品之间的相似度。 (2) 根据物品的相似度和用户的历史行为给用户生成推荐列表。
具体公式(ij直接的相似度):
N(i)表示喜欢物品i的用户数。
但是如果物品j很热门,几乎每个人都喜欢,则关系度会接近于1。(如可能很多人都会买《新华字典》或《哈利波特》)
为了避免推荐热门物品,则有公式:
这个公式惩罚了物品j的权重,减轻了热门物品会和很多物品相似的可能性。 尽管上面的公式分母已经考虑到了 j 的流行度,但在实际应用中,热门的 j 仍然会获得比较大的相似度。因此可在分母上进行惩罚。
但不能完全解决,两个不同领域的最热门物品之间往往具有比较高的相似度。这个时候,仅仅靠用户行为数据是不能解决这个问题的,因为用户的行为表示这种物品之间应该相似度很高。此时,我们只能依靠引入物品的内容数据解决这个问题,比如对不同领域的物品降低权重等。这些就不是协同过滤讨论的范畴了。
可以首先建立用户-物品倒排表,即每一个用户建立一个包含他喜欢的物品的列表。
比如电影,一般来说,同系列的电影、同主角的电影、同风格的电影、同国家和地区的电影会有比较大的相似度。
在得到物品之间相似度后,itemCF运用以下公式计算用户u对一个物品j的兴趣:
S(j,K) 与物品j最相似的K个物品的集合
为物品相似度。 即用户u对物品i的兴趣程度,这里可看做有过行为为1。
对既属于用户喜欢的物品,又在与j物品相似的物品集合内的每一个物品,得到权重相加和(即相似度乘感兴趣程度)。
精度(准确率和召回率) 可以看到 ItemCF 推荐结果的精度也是不和 K 成正相关或者负相关的,因此选择合适的 K 对获得最高精度是非常重要的。 流行度 和 UserCF 不同,参数 K 对 ItemCF 推荐结果流行度的影响也不是完全正相关的。 随着 K 的增加(流行物品相对增多),结果流行度会逐渐提高,但当 K 增加到一定程度,流行度就不会再有明显变化。 覆盖率 K 增加会降低系统的覆盖率(流行率增加)。
A.
假设有这么一个用户,他是开书店的,并且买了当当网上 80% 的书准备用来自己卖。那么,他的购物车里包含当当网 80% 的书。假设当当网有 100 万本书,也就是说他买了 80 万本。从前面对 ItemCF 的讨论可以看到,这意味着因为存在这么一个用户,有 80 万本书两两之间就产生了相似度,也就是说,内存里即将诞生一个 80 万乘 80 万的稠密矩阵。
John S. Breese 在论文中提出了一个称为 IUF ( Inverse User Frequence ),即用户活跃度对数的倒数的参数,他也认为活跃用户对物品相似度的贡献应该小于不活跃的用户,他提出应该增加 IUF参数来修正物品相似度的计算公式:ItemCF-IUF算法
同ItemCF相比,降低了流行度,提高了推荐结果的覆盖率。
B.
物品相似度归一化。
Karypis 在研究中发现如果将 ItemCF 的相似度矩阵按最大值归一化,可以提高推荐的准确率。 其研究表明,如果已经得到了物品相似度矩阵 w ,那么可以用如下公式得到归一化之后的相似度矩阵 w' :
相似度的归一化可以提高推荐的多样性。[解释看原书]
1903年,蒋观云在日本出版的《新民丛报》上发表的《神话、历史养成之人物》是中国人撰写的第一篇神话学论文。蒋观云(1866~1929),名智由,原名国亮,字观云
如果对您来说这篇讠仑文重要的话觉得还是不要直接投网上冒那个险,除非真的完美没得缺陷!要想有保障点不如去找专业点的信用高的机构发表,这样对自己也有利些!发表人飘过
很多医务工作者在职位晋升上都需要发表论文,可以说如今想要发表论文是非常难的了,但由于发论文需求的人群数量很大,杂志版面却不多,很多人在投稿后都没有消息,对于首次
普朗克一、生平简介普朗克,M.(Max Planck 1858~1947)近代伟大的德国物理学家,量子论的奠基人。1858年4月23日生于基尔。1867年,其父
克里斯塔·沃尔夫,1949至1953年在耶拿和莱比锡学日耳曼学。1949年,加入德国统一社会党。1953至1959年,在德国作家协会工作,自1956年起,任柏林