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

这篇论文关注于新闻推荐系统中的用户新闻表示学习,特别是如何从高阶复杂偏好因子中提取信息。作者提出了一种基于图的模型,通过邻居路由算法分解用户和新闻的表示为不同偏好子空间,并构建偏好正则器以增强这些子空间的表示。实验表明该方法在线上测试中表现出色。
摘要由CSDN通过智能技术生成

简介

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

作者

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

Core problem

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

什么是潜在偏好因子
example:
在这里插入图片描述
对用户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:

在这里插入图片描述
在这里插入图片描述

Architecture

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

News Content Information Extractor

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

实现:

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

在这里插入图片描述

GNUD

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

在这里插入图片描述

  1. 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
在这里插入图片描述
这里嵌入就是用的简单的加法

最终得到了:

在这里插入图片描述

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

Preference Regularizer

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

估计Zu,k输入第k个子空间的可能性,
在这里插入图片描述

因为是无监督,所以使用互信息最大化进行optim,所以得到损失函数
在这里插入图片描述
其中最后的[k]实在是没看懂,不过我读了源码,其实没有[k]的事。

Training Loss

  1. 定义损失函数1:

在这里插入图片描述
在这里插入图片描述

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

  1. 增加上面提到的PR Loss
    在这里插入图片描述

  2. Overall loss

在这里插入图片描述

Note

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

Experiments Res

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值