论文《Dual-Contrastive for Federated Social Recommendation》阅读

论文《Dual-Contrastive for Federated Social Recommendation》阅读

  • 论文概况
  • Motivation
  • Methodology
    • Client Local Computing
    • Center Server Aggregation
  • 总结

今天简单总结一下一篇关于联邦推荐方面的论文《Dual-Contrastive for Federated Social Recommendation》,主要简单介绍一下论文的思路,具体pipeline 就先不介绍了。

论文概况

论文由宁波大学 Linze Luo等人完成,发表在IJCNN 2022上(CCF C类会议),完成了模型 DFSRDual-Contrastive Federated Social Recommendation)。论文主要是在联邦社会化推荐中加入了对比学习,优化embedding refine过程。论文存在一定的组织混乱和写作问题,这里按照数据流方式进行组织一下。
Architecture

Motivation

作者主要强调联邦学习中的 Non-IID 问题,即 每个客户端代表一个用户,每个用户的偏好是不同的,因此这种非独立同分布的情况 造成了性能的下降。

Methodology

在这里的介绍中,我们将计算内容分为本地计算(Client Local Computing
)和服务器聚合(Center Server Aggregation)两个过程。下面分别进行介绍。

Client Local Computing

本地计算基于MF 矩阵分解完成,具体如下:
L M F = ∑ j ∈ V i ∪ V i ′ ( r i j − u i ⊤ v j ) . (1) L_{MF} = \sum_{{j}\in {V_i \cup V_i^\prime}} (r_{ij} - \mathbf{u}_{i}^{\top}\mathbf{v}_{j}). \tag{1} LMF=jViVi(rijuivj).(1)
在此基础上,加入 (1)社会化对比项 和 (2)物品侧对比项。
(1)社会化对比项 使得 好友靠近,非好友远离,这里加入了一个阈值进行过滤,并在具体训练过程中不在一开始几轮训练中加入,已获得更精确的embedding。具体如下所示:

L U − C o n = 1 ∣ U i ∣ ∑ u j ∈ U i − log ⁡ exp ⁡ ( sim ⁡ ( u i , u j ) / τ u ) exp ⁡ ( sim ⁡ ( u i , u j ) / τ u ) + J i , J i = ∑ u k ∈ U ~ i ′ exp ⁡ ( sim ⁡ ( u i , u k ) / τ u ) , U ~ i ′ ← { u k ∣ sim ⁡ ( u i , u k ) < δ u , u k ∈ U i ′ } , (2) \begin{aligned} L_{{U-Con}} &= \frac{1}{\left|U_i\right|} \sum_{\mathbf{u}_{j} \in \mathbf{U}_{i}}-\log \frac{\exp \left(\operatorname{sim}\left(\mathbf{u}_{i}, \mathbf{u}_{j}\right) / \tau_u\right)}{\exp \left(\operatorname{sim}\left(\mathbf{u}_{i}, \mathbf{u}_{j}\right) / \tau_u\right)+J_i}, \\ J_i &=\sum_{\mathbf{u}_{k} \in \tilde{U}_i^{\prime}} \exp \left(\operatorname{sim}\left(\mathbf{u}_{i}, \mathbf{u}_{k}\right) / \tau_u\right), \\ \tilde{U}_i^{\prime} &\leftarrow \left\{\mathbf{u}_{k} \mid \operatorname{sim}\left(\mathbf{u}_{i}, \mathbf{u}_{k}\right)<\delta_u, \mathbf{u}_{k} \in U_i^{\prime}\right\},\end{aligned}\tag{2} LUConJiU~i=Ui1ujUilogexp(sim(ui,uj)/τu)+Jiexp(sim(ui,uj)/τu),=ukU~iexp(sim(ui,uk)/τu),{uksim(ui,uk)<δu,ukUi},(2)
这里的 U i ′ U_i^{\prime} Ui 表示 随机采样的 非邻接用户。

(2)物品侧对比项 使得 上一轮 epoch 的参数 与 经过 aggregation 的 global 参数靠近, 自己 与 上一轮的自己 疏远。具体如下:

L V − C o n = − log ⁡ exp ⁡ ( o g l o b a l ) exp ⁡ ( o g l o b a l ) + exp ⁡ ( o p r e v ) , o g l o b a l = sim ⁡ ( V i ( t ) , V g l o b a l ( t ) ) / τ v , o p r e v = sim ⁡ ( V i ( t ) , V i ( t − 1 ) ) / τ v , (3) \begin{aligned} L_{V-Con}&=-\log \frac{\exp \left(o_{g l o b a l}\right)}{\exp \left(o_{g l o b a l}\right)+\exp \left(o_{p r e v}\right)}, \\ o_{global} &= \operatorname{sim}\left(\mathbf{V}_{i}^{(t)}, \mathbf{V}_{{}global}^{(t)}\right) / \tau_v, \\ o_{p r e v}&=\operatorname{sim}\left(\mathbf{V}_{i}^{(t)}, \mathbf{V}_{i}^{(t-1)}\right) / \tau_v, \end{aligned} \tag{3} LVConoglobaloprev=logexp(oglobal)+exp(oprev)exp(oglobal),=sim(Vi(t),Vglobal(t))/τv,=sim(Vi(t),Vi(t1))/τv,(3)

L = L M F + μ u L U − C o n + μ v L V − C o n . (4) L=L_{MF}+\mu_u L_{U-Con}+\mu_v L_{V-Con}. \tag{4} L=LMF+μuLUCon+μvLVCon.(4)

经过固定轮次 E E E 的训练,本地模型完成训练。并将得到的模型梯度 上传 到 center server,中心服务器完成梯度的 聚合。
梯度上传过程中,加入了 Local Differentiate Privacy,这里不再赘述。

Center Server Aggregation

server 通过 interacted items 的数量 作为权重,进行加权求均值,完成聚合:
w t + 1 = ∑ i ∈ S t n i n σ w t + 1 i , n σ = ∑ i ∈ S t n i . (5) w_{t+1} = \sum_{i \in S_t}\frac{n_i}{n_\sigma} w_{t+1}^i, \quad n_\sigma=\sum_{i \in S_t} n_i. \tag{5} wt+1=iStnσniwt+1i,nσ=iStni.(5)

总结

在基于联邦学习的社会化推荐基础上,加入了两个对比化项,完成本文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java | Leetcode Java题解之第162题寻找峰值

题目&#xff1a; 题解&#xff1a; class Solution {public int findPeakElement(int[] nums) {int n nums.length;int left 0, right n - 1, ans -1;while (left < right) {int mid (left right) / 2;if (compare(nums, mid - 1, mid) < 0 && compare(n…

【Linux 内存管理】

文章目录 1. 为什么要有虚拟内存呢&#xff1f;&#x1f50d; 1. 为什么要有虚拟内存呢&#xff1f;&#x1f50d;

如何实现element表格合并行?

前两天我一个朋友咨询我element表格合并行的问题,他研究了很久,已经开始怀疑是不是element UI出现了bug,然后跟我一阵沟通,最终解决了问题,他的问题在于他把事情想复杂了,接下来我们一起来看一下这个经典“案例”,很多人真的很有可能走入这个误区,当然老鸟就不用看了,…

读AI新生:破解人机共存密码笔记04计算的极限

1. 计算的极限 1.1. 光靠速度是无法给我们带来人工智能的 1.1.1. 在速度更快的计算机上运行糟糕的算法并不会使算法变得更优秀&#xff0c;这只意味着你会更快地得到错误的答案 1.1.2. 数据越多&#xff0c;错误答案出现的机会就越大 1.…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 石碑文字组合(200分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

[C++][数据结构][哈希表]详细讲解

目录 1.哈希概念2.哈希冲突3.哈希函数4.哈希冲突解决5.闭散列1.何时扩容&#xff1f;如何扩容&#xff1f;2.线性探测3.二次探测 6.开散列(哈希桶)1.概念2.开散列增容3.开散列思考只能存储key为整形的元素&#xff0c;其他类型怎么解决&#xff1f;除留余数法&#xff0c;最好模…

一季度直播6000场,同比增长60%,遥望科技透露重要信息

6月17日&#xff0c;经由深圳证券交易所许可&#xff0c;遥望科技&#xff08;股票代码&#xff1a;002291&#xff09;正式对《年报问询函》进行公开回复&#xff0c;就经营的多个维度做出解释和回应。 在回复中&#xff0c;遥望科技预测2024年毛利率为14.4%&#xff0c;相比…

【CSS in Depth2精译】1.1.1 样式表来源

您添加到网页的样式表并非浏览器呈现样式的唯一来源。样式表有三种不同的类型或来源。您添加到页面的样式称为 作者样式&#xff08;author styles&#xff09;&#xff1b;此外还有 用户样式&#xff08;user styles&#xff09;&#xff0c;即终端用户设置的自定义样式&#…

configure: error: library ‘crypto‘ is required for OpenSSL

1、执行命令&#xff1a;./configure --prefix/opt/app/postgresql --with-openssl 报错&#xff1a; 2、解决办法 执行命令&#xff1a;yum install openssl-devel 重新执行 ./configure --prefix/opt/app/postgresql --with-openssl

充电学习—3、Uevent机制和其在android层的实现

sysfs 是 Linux userspace 和 kernel 进行交互的一个媒介。通过 sysfs&#xff0c;userspace 可以主动去读写 kernel 的一些数据&#xff0c;同样的&#xff0c; kernel 也可以主动将一些“变化”告知给 userspace。也就是说&#xff0c;通过sysfs&#xff0c;userspace 和 ker…

探索序列到序列模型:了解编码器和解码器架构的强大功能

目录 一、说明 二、什么是顺序数据&#xff1f; 三、编码器解码器架构的高级概述&#xff1a; 3.1 编码器和解码器架构的简要概述&#xff1a; 3.2 训练机制&#xff1a;编码器和解码器架构中的前向和后向传播&#xff1a; 四、编码器解码器架构的改进&#xff1a; 4.1.…

一道session文件包含题

目录 环境说明 session文件包含getshell 审计源码 session包含 base64在session中的解码分析 题目&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Q0BN08b8gWiVE4tOnirpTA?pwdcate 提取码&#xff1a;cate 环境说明 这里我用的是linux&#xff0c;也可以用p…

【论文阅读】-- DeepVisualInsight: 深度分类训练时空因果关系的时间旅行可视化

中文标题 摘要引言动机举例相关工作时间旅行可视化的属性符号定义邻居保护属性边界距离保持属性逆投影保持属性暂时保存属性 方法 δ \delta δ-边界估计(k)-BAVR综合体建设逆投影保持时间连续性 评估案例分析结论参考文献 摘要 了解深度学习模型的预测在训练过程中是如何形成…

[WTL/Win32]_[中级]_[MVP架构在实际项目中应用的地方]

场景 在开发Windows和macOS的界面软件时&#xff0c;Windows用的是WTL/Win32技术&#xff0c;而macOS用的是Cocoa技术。而两种技术的本地语言一个主打是C,另一个却是Object-c。界面软件的源码随着项目功能增多而增多&#xff0c;这就会给同步Windows和macOS的功能造成很大负担…

Linux-远程访问及控制

一、SSH远程管理 SSH&#xff08;Secure Shell&#xff09;是一种安全通道协议&#xff0c;主要用来实现字符界面的远程登录、远程复制等功能。SSH 协议对通信双方的数据传输进行了加密处理&#xff0c;其中包括用户登录时输入的用户口令。与早期的 Telent&#xff08;远程登录…

【Spine学习11】之 战士攻击动作 思路总结(手动调整贝塞尔曲线实现前快后慢)

拿到一份psd文件先观察检查一下图片顺序有没有问题&#xff0c; 重点看一下人物的腿部分层&#xff0c;&#xff08;如果是大小腿分开画的就网格可打可不打&#xff0c;如果是连在一起画的&#xff0c;那必须打网格&#xff09; 拿着剑的时候剑和手的层级有没有错位&#xff0c…

HCS-华为云Stack-容器网络

HCS-华为云Stack-容器网络 容器隧道overlay VPC网络

第〇篇:深入Docker的世界系列博客介绍

深入Docker的世界系列博客介绍 欢迎来到“深入Docker的世界”系列博客&#xff0c;这是一次旨在全面探索Docker容器化技术的冒险之旅。从基础原理到高级应用&#xff0c;再到实践案例分析&#xff0c;我们将深入挖掘Docker的每一个角落&#xff0c;帮助你不仅掌握这项技术的实…

FreeRtos-09事件组的使用

1. 事件组的理论讲解 事件组:就是通过一个整数的bit位来代表一个事件,几个事件的or和and的结果是输出 #define configUSE_16_BIT_TICKS 0 //configUSE_16_BIT_TICKS用1表示16位,用0表示32位 1.1 事件组适用于哪些场景 某个事件若干个事件中的某个事件若干个事件中的所有事…

第10章 文件和异常

第10章 文件和异常 10.1 从文件中读取数据10.1.1 读取整个文件10.1.2 文件路径10.1.3 逐行读取10.1.4 创建一个包含文件各行内容的列表10.1.5 使用文件的内容10.1.6 包含一百万位的大型文件10.1.7 圆周率值中包含你的生日吗 10.2 写入文件10.2.1 写入文件10.2.2 写入多行10.2.3…