文章目录
简介
我将不定期带来推荐方面的论文研读。
我会比较直入主题,讲论文中的主要部分和精华进行提炼和总结,希望大家能有所收获。
作者
来自石川老师的团队,国内比较有名的新闻推荐团队。
这篇论文发表在ACL 2020,是北邮和微软亚研院合作的。
Core problem
- 在基于图的模型中如何更好的学习user 和 News的表示
- 真实世界中user-news interaction 是来自于高阶复杂的潜在偏好因子的,这如何提取
什么是潜在偏好因子
example:
对用户u1来说,
他点击了d1,其实是因为他喜欢“娱乐”所以点击了d1
他点击了d2,其实是因为他喜欢“政治”所以点击了d2
这里“娱乐” , “政治” 就是两个偏好因子。
Current method
主要存在两个缺点。
- 忽略了在不同的偏好因子对于邻居节点的重要性其实是不同的, 在图的思路下看。
- 很少去挖掘高阶的结构信息
Main work
- 提取高阶User-News 关系表示,基于图
- 使用邻居路由算法将学习到的表示分解为不同的喜好因子子空间
- build 偏好正则器,就是一个分类器,提高不同的分解子空间的表示
- 真实线上测试表现较好
Assumption
-
news
每一篇news ,我们只考虑title 和 profile -
profile
对于profile,我们只考虑entities 和 其types
entities
example:
Braylon is tianyu, who is a student.
其中Braylon 和 tianyu就是两个entity
- all in all
a news is converted to three vectors:
Architecture
- 新闻内容信息提取器
- GNUD论文的标题就是这个
- Preference Regularizer
News Content Information Extractor
目的:获取新闻的一个表示向量 hd
实现:
使用PCNN,分别提取title和profile,然后将h_title和h_profile进行concate.
GNUD
- 将User-news 关系用bipartitle图表示
- Graph Conv layer with preperence Disentanglement
这是重点,这篇文章的支点就是PD,所以这个layer是关键。我们分开来讲,首先明确这个layer的作用或者说是mudi是什么:
我们输入的是hd和hu,然后希望输出yu,这个yu是融合了他的邻居的特征的,同时具有k个PD子空间表示。(yd相同)
这里conv并不是我们常用的一个简单的接口nn.Conv1d什么的,这里只是一个符号。
接下来我们展开:
conv Layer:
- outputs:
k个元素就是k个PD子空间
做法:
首先进行一次map,就是线性变化到k个子空间
但是我们想要的是Zu,k,他和Si,k的区别就是我们还需要将neighbor的feat和Si,k进行整合,才能得到Z。
想整合neighbor特征就需要NRA算法:
NRA算法:
其中最关键的就是4, 5
rd,k表示用户u点击d根据第k个偏好子空间特征的概率,这里用点积表示相似度,然后转换成概率:
一旦得到rd,k我们就能得到Zu,k
这里嵌入就是用的简单的加法
最终得到了:
- 然后对conv layer进行stack
论文中说的是及stackL层。
Preference Regularizer
目的:
使得每一个PD子空间能反映单独的PD特征
估计Zu,k输入第k个子空间的可能性,
因为是无监督,所以使用互信息最大化进行optim,所以得到损失函数
其中最后的[k]实在是没看懂,不过我读了源码,其实没有[k]的事。
Training Loss
- 定义损失函数1:
这里使用的就是我们得到的yd和yu,不过 S ^ \hat{S} S^表示将yu和yd经过全连接之后相乘的结果。
-
增加上面提到的PR Loss
-
Overall loss
Note
如果是一个用户一个新闻也没点过,或者是一个新闻一个人也没看过,在graph中就会使孤立节点,这时候我们用S表示Z。