简介

我将不定期带来推荐方面的论文研读。
我会比较直入主题,讲论文中的主要部分和精华进行提炼和总结,希望大家能有所收获。

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

作者

来自石川老师的团队,国内比较有名的新闻推荐团队。
这篇论文发表在ACL 2020,是北邮和微软亚研院合作的。

Core problem

  1. 在基于图的模型中如何更好的学习user 和 News的表示
  2. 真实世界中user-news interaction 是来自于高阶复杂的潜在偏好因子的,这如何提取

什么是潜在偏好因子
example:
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
对用户u1来说,
他点击了d1,其实是因为他喜欢“娱乐”所以点击了d1
他点击了d2,其实是因为他喜欢“政治”所以点击了d2
这里“娱乐” , “政治” 就是两个偏好因子。

Current method

主要存在两个缺点。

  1. 忽略了在不同的偏好因子对于邻居节点的重要性其实是不同的, 在图的思路下看。
  2. 很少去挖掘高阶的结构信息

Main work

  1. 提取高阶User-News 关系表示,基于图
  2. 使用邻居路由算法将学习到的表示分解为不同的喜好因子子空间
  3. build 偏好正则器,就是一个分类器,提高不同的分解子空间的表示
  4. 真实线上测试表现较好

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:

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

Architecture

  1. 新闻内容信息提取器
  2. GNUD论文的标题就是这个
  3. Preference Regularizer

News Content Information Extractor

目的:获取新闻的一个表示向量 hd

实现:

使用PCNN,分别提取title和profile,然后将h_title和h_profile进行concate.

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

GNUD

  1. 将User-news 关系用bipartitle图表示

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

  1. Graph Conv layer with preperence Disentanglement

这是重点,这篇文章的支点就是PD,所以这个layer是关键。我们分开来讲,首先明确这个layer的作用或者说是mudi是什么:

我们输入的是hd和hu,然后希望输出yu,这个yu是融合了他的邻居的特征的,同时具有k个PD子空间表示。(yd相同)

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

这里conv并不是我们常用的一个简单的接口nn.Conv1d什么的,这里只是一个符号。

接下来我们展开:

conv Layer:

  • outputs:
    新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
    k个元素就是k个PD子空间

做法:
首先进行一次map,就是线性变化到k个子空间
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
但是我们想要的是Zu,k,他和Si,k的区别就是我们还需要将neighbor的feat和Si,k进行整合,才能得到Z。

想整合neighbor特征就需要NRA算法:

NRA算法:
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
其中最关键的就是4, 5
rd,k表示用户u点击d根据第k个偏好子空间特征的概率,这里用点积表示相似度,然后转换成概率:
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
一旦得到rd,k我们就能得到Zu,k
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
这里嵌入就是用的简单的加法

最终得到了:

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

  1. 然后对conv layer进行stack
    论文中说的是及stackL层。

Preference Regularizer

目的:
使得每一个PD子空间能反映单独的PD特征

估计Zu,k输入第k个子空间的可能性,
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

因为是无监督,所以使用互信息最大化进行optim,所以得到损失函数
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
其中最后的[k]实在是没看懂,不过我读了源码,其实没有[k]的事。

Training Loss

  1. 定义损失函数1:

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement
新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

这里使用的就是我们得到的yd和yu,不过 S ^ \hat{S} S^表示将yu和yd经过全连接之后相乘的结果。

  1. 增加上面提到的PR Loss
    新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

  2. Overall loss

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

Note

如果是一个用户一个新闻也没点过,或者是一个新闻一个人也没看过,在graph中就会使孤立节点,这时候我们用S表示Z。

Experiments Res

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

新闻推荐论文 Graph Neural News Recommendation with Unsupervised Preference Disentanglement

相关文章: