首页 > 其他分享 >CNE-SUE论文阅读笔记

CNE-SUE论文阅读笔记

时间:2024-07-20 20:19:42浏览次数:11  
标签:编码 SUE 新闻 用户 笔记 CNE 集群 tilde 节点

Neural News Recommendation with Collaborative News Encoding and Structural User Encoding论文阅读笔记

Abstract

存在的问题:

​ 现有的研究通常将新闻标题和内容分开编码,而忽略了它们之间的语义交互,这对于新闻文本的理解是不够的。此外,以往的模型只对用户的浏览历史进行编码,而没有利用用户浏览新闻的结构相关性来明确反映用户的兴趣。

提出方法:

​ 在这项工作中,我们提出了一个由协同新闻编码(CNE)和结构用户编码(SUE)组成的新闻推荐框架,以加强新闻和用户表征学习。CNE 配备了双向 LSTM,通过交叉选择和交叉关注模块对新闻标题和内容进行协同编码,从而学习语义交互式新闻表征。SUE 利用图卷积网络提取用户历史的聚类结构特征,然后利用聚类内和聚类间注意力模块学习分层的用户兴趣表征。

Introduction

​ 现有的新闻推荐模型通常将新闻标题和内容分开编码,并对用户的浏览历史进行编码,而没有明确的结构建模。我们认为,这些编码限制了新闻和用户表征的能力。为了加强新闻和用户编码,这项工作建立在新闻和用户表征学习这两个方面的基础上:

对新闻标题和内容之间的语义互动进行编码

​ 标题和内容在新闻中扮演着不同的角色,但它们又是相辅相成的。新闻标题提炼了内容的信息,而内容则解释了标题的细节。以往的研究将新闻标题和内容视为两个独立的文本特征,从而导致了 "语义编码困境"。这种困境是双向的,因为

  • (i) 虽然新闻标题比内容短得多,但根据经验,标题编码的性能要优于内容编码;这可以归因于人类总结的标题自然地代表了关键信息;
  • (ii) 新闻标题总是主观和修辞性的,以吸引潜在读者。这导致了严重的文本数据稀缺问题。带有不可见术语、隐喻和歧义的新闻标题使得人们很难理解标题措辞有限的新闻

​ 前人提出的新闻编码器要么只从标题中提取特征,要么将标题和内容分开编码,然后对它们进行串联或注意力融合。这种分别对标题和内容进行编码而不利用其语义交互的做法不足以用于新闻文本理解。

利用分层聚类结构对用户兴趣与新闻的相关性进行编码:

​ 虽然用户通常对不同的新闻主题有不同的兴趣,但她浏览过的同一主题的新闻往往有一定的逻辑关联。将用户兴趣的各个方面编码到特定群组中后,就可以利用兴趣群组之间的相关性来聚合整体用户表征。

​ 以往的研究通常将用户历史记录表述为有序的线性新闻序列。但是这种将用户历史视为新闻序列的编码方法无法明确模拟用户兴趣与新闻之间的分层相关性。

​ 与线性序列相比,分层聚类更适合代表用户的不同兴趣。由于相关新闻共享特定兴趣集群中的信息,因此用户历史可以结构化地编排为特定的兴趣集群。用分层聚类结构对用户历史记录进行编码,能更精确地表示新闻与用户兴趣的相关性。

​ 为了解决上述问题,我们在这项工作中提出了协同新闻编码(CNE)和结构用户编码(SUE),以学习语义交互式新闻表征和分层用户表征。

Method

​ 整体的模型结构如下:

pkTsCGt.png

协同新闻编码(CNE)

交叉选择编码

​ 还是传统开局,把标题单词序列和内容单词序列转化为单词嵌入。

​ 首先,采用两个并行双向 LSTM,分别从标题和内容词嵌入中提取序列特征

\(\overrightarrow{h}_i^t=\overrightarrow{LSTM}^t(w_i^t,\overrightarrow{h}_{i-1}^t,\overrightarrow{c}_{i-1}^t)\\\overleftarrow{h}_i^t=\overleftarrow{LSTM}^t(w_i^t,\overleftarrow{h}_{i+1}^t,\overleftarrow{c}_{i+1}^t)\)

​ \(\{h^t\},\{c^t\}\)分别是LSTM的隐藏状态和单元状态。 第 i 个标题序列特征融合为\(h_i^t=[\overrightarrow{h}_i^t;\overleftarrow{h}_i^t]\)。我们认为标题(内容)的全局语义信息保存在其 LSTM 单元状态中,并将最后的前向\(\overrightarrow{c}_N^t\)和后向\(\overleftarrow{c}_1^t\)连接起来作为语义记忆向量\(m^t\)。

\(m^t=[\overrightarrow{c}_N^t;\overleftarrow{c}_1^t]\)

​ 为了促进标题和内容之间的语义交互,我们设计了一个门控交叉选择网络。具体来说,我们利用语义记忆向量\(m^{c(t)}\),通过一个 sigmoid 门函数对序列特征\(\{h^{t(c)}\}\)进行特征重新校准。这个门函数背后的动机是利用内容(标题)记忆向量\(m^{c(t)}\)从第 i 个标题(内容)序列特征\(h_i^{t(c)}\)中交叉选择重要的语义信息。

\(Gate_i^t=\sigma(W_g^hh_i^t+W_g^mm^c+b_g)\\\tilde{h}_i^t=Gate_i^t\odot h_i^t\)

​ \(\tilde{h}_i^t\)是第 i 个标题序列特征\(h_i^t\)与内容记忆向量\(m^c\)交互的交叉选择特征。这是标题与内容语义交互协作的第一阶段。

交叉注意力编码

​ 基于交叉选择序列特征\(\{\tilde{h}\}\),我们设计了一个两阶段注意力模块来学习标题和内容的交叉注意力表征。首先,我们使用自我注意层来学习顺序\(\{\tilde{h}\}\)的自注意表征。

\(\alpha_{self}^t=softmax(v^\mathsf{T}tanh(W\tilde{h}^t+b))\\r_{self}^t=\sum_{i=1}^N\alpha_{self,i}^t\tilde{h}_i^t\)

​ 然后,我们使用自我关注表示\(r_{self}\)作为查询,并使用\(\{\tilde{h}\}\)作为键值对来构建交叉关注层。这是协作标题-内容语义交互的第二阶段。

\(\alpha_{cross}^t=Attention(r_{self}^c,\{\tilde{h}^t\})\\r_{cross}^t=\sum_{i=1}^N\alpha_{cross,i}^t\tilde{h}_i^t\)

​ 我们对自我关注表征\(r_{self}\)和交叉关注表征\(r_{cross}\)进行元素求和(记为 ⊕),得出标题和内容语义交互表征,即 \(r^t\)和 \(r^c\)。最后,我们将 \(r^t\)和 \(r^c\)合并为协作新闻表示\(r^n\)。

\(r^n=[r^t;r^c]=[r_{self}^t\oplus r_{cross}^t;r_{self}^c\oplus r_{cross}^c]\)

结构用户编码(SUE)

基于集群的用户历史记录编码

​ 用户编码器用于从用户的浏览历史记录中学习用户兴趣表征。为了形成用户兴趣的聚类结构,我们分两步构建了一个分层聚类图:

集群内子图

​ 我们以新闻的主题类别标签构建原始聚类图。我们将浏览过的新闻视为节点 {Vn},并为这些共享相同类别标签的节点添加双向边 {En},从而构建子图\(\mathcal{G}^1=(V_n,E_n)\)。{Vn}的每个新闻节点都与嵌入\(r^n\)相关联。每个聚类包含多个具有特定主题的浏览新闻,反映了用户兴趣的一个方面。

集群间子图

​ 除了集群内的用户兴趣细化,集群间的相关性建模对于充分利用用户历史的整体信息也至关重要。对于G1中的每个集群Ci,我们添加了一个新的集群代理节点\(V_p^i\)。我们将双向边 {\(E_p^1\)} 添加到同一簇内的新闻节点 {Vn} 和代理节点 {Vp} 上,并通过双向边 {\(E_p^2\)} 将 {Vp} 完全连接起来,从而构建子图\(\mathcal{G}^2=(\{V_n,V_p\},\{E_p^1,E_p^2\})\)。{Vp} 的节点嵌入以零嵌入\(r^p\)开始。簇间的新闻节点信息通过簇代理节点聚合。

​ 分层聚类图 G 由聚类内子图和聚类间子图组成:\(\mathcal{G}=\{\mathcal{G}^1,\mathcal{G}^2\}\)。我们将历史特征矩阵定义为\(H^0=[r^n;r^p]\in\mathbb{R}^{(|V_n|+|V_p|)\times d}\)。对于图 G,我们使用图卷积网络来提取用户历史的结构表征。为了缓解深度 GCN 的过度平滑问题,在相邻的 GCN 层添加了残差连接。

\(H^{l+1}=ReLU(\tilde{D}^{-\frac12}\tilde{A}\tilde{D}^{-\frac12}H^lW^l)+H^l\)

​ 最后的用户表示为:

\(r^h=\{H_i^L\}_{i=1}^{|V_n|}\in\mathbb{R}^{|V_n|\times d}.\)

集群内的注意机制

​ 给定 |Vn| 用户浏览过的新闻所隐含的 |C| 兴趣集群,每个集群 Ci 中有 |Ci | 条新闻。结构化用户历史表示\(r^h\)可表示为:

​ \(r^h=\{r_i^h\}_{i=1}^{|C|}=\left\{\{r_{i,j}^h\}_{j=1}^{|C_i|}\right\}_{i=1}^{|C|}.\)

​ 为了得出与候选新闻相关的集群内特征,我们设计了一个集群内关注层,将候选新闻表示\(r_{can}^n\)作为查询,将集群 Ci 的第 j 个集群内特征\(r_{i,j}^h\)作为键值对

\(\alpha_i^{intra}=Attention(r_{can}^n,\{r_i^h\})\\r_{cl,i}^{intra}=\sum_{j=1}^{|C_i|}\alpha_{i,j}^{intra}r_{i,j}^h\)

​ 集群内特征\(r_{cl,i}^{intra}\)参与集群 Ci 的节点级特征\(\{r_{i,j}^h\}_{j=1}^{|C_i|}\),与候选新闻表示\(r_{can}^n\)相关联。\(r_{cl,i}^{intra}\)细化了图 G 簇 Ci 中的第 i 个用户兴趣表征。

集群间的注意机制

​ 在进行集群间建模之前,先要进行非线性变换,将原本是集群 Ci 中节点级特征线性组合的\(r_{cl,i}^{intra}\)投影到集群级特征空间中。

\(\tilde{r}_{cl,i}^{intra}=ReLU(\tilde{W}r_{cl,i}^{intra}+\tilde{b})+r_{cl,i}^{intra}\)

​ 为了得出与候选新闻相关的簇间特征,我们设计了一个簇间关注层,将候选新闻表示 \(r_{can}^n\)作为查询,将图 G 的第 i 个簇内特征\(\tilde{r}_{cl,i}^{intra}\)作为键值对。

\(\alpha^{inter}=Attention(r_{can}^n,\{\tilde{r}_{cl}^{intra}\})\\r_{cl}^{inter}=\sum_{i=1}^{|C|}\alpha_i^{inter}\tilde{r}_{cl,i}^{intra}\)

​ 集群间特征\(r_{cl,i}^{inter}\)参与集群 Ci 的节点级特征\(\{\tilde{r}_{cl,i}^{intra}\}_{i=1}^{|C|}\),与候选新闻表示\(r_{can}^n\)相关联。通过集群内和集群间的关注,\(r_{cl}^{inter}\)在簇图 G 中分层聚合用户兴趣表示。\(r_{cl}^{inter}\)被当作用户表征\(r^u\),即\(r^u=r_{cl}^{inter}\)。

点击预测和模型训练

​ 点击预测还是用户与新闻之间表示的点积。损失函数还是传统损失函数

\(\mathcal{L}=-\sum_{i=1}^{|\mathcal{D}|}log\frac{exp(\hat{y}_i^+)}{exp(\hat{y}_i^+)+\sum_{j=1}^Kexp(\hat{y}_{i,j}^-)}\)

总结

​ 整理一下,这篇文章不是很好懂,主要是SUE部分,CNE感觉讲的还是比较清楚的,这里就重点总结一下SUE。

​ SUE首先是要构建两个图,都是根据新闻的类别来进行图的构建的,第一个图是对共享相同类别的节点添加边,节点就是浏览过的新闻。这样会形成多个不连通的子图。第二个图是先对相同类别的节点进行一下聚类,其实也是在第一个图的基础上,然后添加一个代理节点,同一类的节点都连接到这个代理节点上,然后联通每个代理节点。

​ 构建好两个图之后,就将这两个图合并,然后进行图卷积,得到最后所有的新闻节点的表示。之后按照集群来对这些新闻节点的表示应用注意力机制。

​ 首先是集群内的注意机制,使用候选新闻表示作为查询来进行注意力的设计。最后得到每个集群的一个集群内表示,用于后续的集群间表示

​ 然后是集群间的注意机制,先对所有集群内表示应用一个线性变换,然后再使用候选新闻作为查询,给每个集群内表示获取一个权重系数,然后进行加权聚合,获得集群间的一个表示,这个表示就是最后的用户表示。

标签:编码,SUE,新闻,用户,笔记,CNE,集群,tilde,节点
From: https://www.cnblogs.com/anewpro-techshare/p/18313708

相关文章

  • 苍穹外卖学习笔记——第十二天
    数据统计(Excel报表)工作台需求分析和设计工作台是系统运营的数据看板,并提供快捷操作入口,可以有效提高商家的工作效率。产品原型工作台展示的数据今日数据订单管理菜品总览套餐总览订单信息名词解释营业额:已完成订单的总金额。有效订单:已完成订单的数量。订单完成......
  • Datawhale AI 夏令营——CV图像竞赛(Deepfake攻防)——Task3学习笔记
        这一篇是在数据增强的方向上发力,尝试提升模型的表现。        数据增强的目的是通过人工方式增加训练数据的多样性,从而提高模型的泛化能力,使其能够在未见过的数据上表现得更好。对于图像而言,数据增强包括例如视角、光照、遮挡等情况,使得模型能够学习到......
  • acwing学习笔记-数学知识
    文章目录数学知识一、质数1、试除法判定质数2、开方判定质数3、分解质因数4、筛质数(1)、埃氏筛法(2)、线性筛二、约数1、试除法求约数2、约数个数总结数学知识数学真是一个令人摸不着头脑的一个东西,小小的质数都可以把你拿捏得死死的一、质数1、试除法判定质......
  • 【学习笔记】线段树优化建图
    前言2023.5.31贺了线段树优化建图板子。当时那段时间还被\(bobo\)一顿乱\(D\),让我多写点\(DP\),数学,少些点重复的数据结构。2024.7.19没想到暑假集训CSP提高模拟2\(T3\)放了个线段树优化建图板子,加上之前线段树优化建图代码是贺的,今年寒假本想找时间步一下的结果没去......
  • 学习笔记第六天
    1.循环结构概述 定义:在给定条件成立时,反复执行某程序段; 要素:循环变量初始化语句;            循环的执行条件;      有使循环趋于结束的语句;2.while循环 格式:while(表达式)语句;特点:先判断条件,后执行语句3.do-while循环格式:do语句whi......
  • Tool-Gitlab-Issue-template
    Tool-Gitlab-Issue-template创建一个高效的Bug报告Issue模板。.gitlab/issue_templates/bug.md以下是一个推荐的GitLabBugReportIssue模板示例。可以根据项目的具体需求调整这个模板:---title:"[BUG]简短描述问题"labels:bugassignees:---###描述请详细描述......
  • 7/20 训练笔记
    闲话调试约一个下午后发现极大值设小了。CardboardBox考虑开两个堆\(q_1\)和\(a_2\),一个存入所有一颗星星的取法,另一个存入所有两颗星星的取法。每次两颗两颗比较,然后如果某一次取了一颗星星,那么(设这颗星星对应关卡编号为\(i\))把\(b_i-a_i\)压入堆中。还有一些别的......
  • DatawhaleAI夏令营 机器学习方向 学习笔记
    电力需求预测挑战赛理解赛题【训练时序预测模型助力电力需求预测赛题任务给定多个房屋对应电力消耗历史N天的相关序列数据等信息,预测房屋对应电力的消耗。赛题数据赛题数据由训练集和测试集组成,为了保证比赛的公平性,将每日日期进行脱敏,用1-N进行标识。即1为数据集最近一天,......
  • 谷粒商城实战笔记-36~44-Vue
    文章目录一,36-前端基础-Vue-介绍&HelloWorld1,MVVM思想直接操作DOM的示例使用Vue和MVVM的示例MVVM与DOM操作的主要区别2,Vue简介3,Vue的使用步骤3.1新建项目3.2安装依赖3.3使用Vue二,37-前端基础-Vue-基本语法&插件安装1,v-model1.1,双向绑定1.2,vue的双向绑定1.2.1html......
  • 谷粒商城实战笔记-35-前端基础-ES6-模块化
    文章目录一,什么是模块化二,export1.`export`语法2.批量导出3.默认导出三,import1,import语法2,批量导入一,什么是模块化模块化编程是一种软件设计技术,它将程序分解为独立的、可复用的部分,每个部分负责执行特定的功能。这种设计方法在多种编程语言中都有应用,包括Jav......