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

news2024/11/24 12:01:21

论文《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.coloradmin.cn/o/1831466.html

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

相关文章

Kubernetes 1.18 部署 Traefik2.0

Kubernetes 1.18部署 Traefik2.0 参考资料&#xff1a; Traefik 2.0 官方文档&#xff1a;https://doc.traefik.io/traefik/v2.0/Kubernetes 1.18.3 部署 Traefik2.0&#xff1a;https://www.cnblogs.com/heian99/p/14608414.html 1. Traefik 介绍 traefik 是一款反向代理、…

“我们系统太丑了,怎么办?”一文告知你B端升级的正确姿势

我经常听到客户吐槽自己的B端系统不好看&#xff0c;客户老是吐槽&#xff0c;但是自己的工程师又是那个水平也不能强求&#xff0c;也找过一些外部设计师&#xff0c;设计的界面还不如原来的&#xff0c;这种情况下给怎么办呢&#xff1f;本位为大家解答下。 一、B端系统界面…

Git管理(Linux版本)

在Linux中我们如何把自己的代码上传到gitee中呢&#xff0c;本期将为大家讲解详细的步骤。 目录 查看Linux环境是否存在git工具 在gitee上创建代码仓库 复制仓库的HTTP路径到Linux中 代码上传 在仓库下创建文件或者将文件移动到仓库下 使用三板斧进行文件的上传 add …

IT入门知识大纲(0/10)

IT入门知识大纲 引言 什么是IT&#xff1f; 信息技术&#xff08;Information Technology&#xff09;&#xff0c;互联网技术是指在计算机技术的基础上开发建立的一种信息技术 。互联网技术通过计算机网络的广域网使不同的设备相互连接&#xff0c;加快信息的传输速度和拓宽信…

过滤器和拦截器的基本知识

过滤器和拦截器的基本知识 前提提要&#xff0c;由于过滤器和拦截器的相关函数是没有返回值的&#xff0c;所以我们像前端返回数据时需要使用到HttpServletResponse中的相关函数&#xff0c;且需要配合阿里巴巴的插件fastjson将返回信息转为json格式&#xff0c;或者使用gson转…

网络运维:企业数字化转型的基石

在数字化时代&#xff0c;网络已经成为企业运营不可或缺的一部分。网络运维作为确保网络稳定、安全和高效运行的关键环节&#xff0c;其重要性不言而喻。本文将探讨网络运维的重要性&#xff0c;并分析其在企业数字化转型中的作用。 网络运维的定义 网络运维&#xff0c;也称…

(自动深色模式)Windows 10 Auto Dark Mode

需求 想让Win10像手机那样&#xff0c;到点自动切换深色模式/浅色模式 解决方案 Windows 10 Auto Dark Mode – Win10 自动深色模式 GitHub&#xff1a;https://github.com/Armin2208/Windows-Auto-Night-Mode/

【Python】PySide6使用入门和注意事项

文章目录 前言关于PySide和PyQtQt Designerpyside6在vscode中ui文件转换兼容性问题主程序结构蓝牙协议初探&#xff08;应用层&#xff09; 前言 最近在开发一个带界面的软件&#xff0c;需要使用蓝牙&#xff0c;然后找到一个开源仓库使用的是Qt里面的Qbluetooth模块&#xff…

使用ARK工具ATool清除典型蠕虫MyDoom

1 概述 在长期的日常安全事件监测过程中&#xff0c;安天CERT经常捕获到大量的MyDoom蠕虫样本和传播该蠕虫的钓鱼邮件。受害主机感染MyDoom后会被放置后门&#xff0c;以便攻击者下发后续恶意软件&#xff0c;进行攻击或窃密等操作。MyDoom蠕虫最早发现于2004年&…

语音质量评价方法之MOS

引言 在语音增强、语音合成、语音转换、声音转换、语音克隆、语音修复等等领域&#xff0c;常常要对输出的语音进行评价。对语音的质量评价一般关注两个方面&#xff0c;即主观评价和客观评价。主观评价就是人凭借听觉感受对语音进行打分&#xff0c;客观评价比较广泛&#xf…

吉林省教育学院学报杂志社吉林省教育学院学报编辑部2024年第5期目录

“研培一体”理论与实践 教师培训管理共同体的职能定位与价值追求 张岩; 1-3 数字化转型背景下教师培训工作的发展路径 李春光; 4-6 挖掘数智潜能&#xff0c;推进教师培训融合创新 鲍赫; 7-9《吉林省教育学院学报》投稿&#xff1a;cn7kantougao163.com 精准培…

网络安全等级保护制度详解,一文掌握核心要点!

一、等级保护制度发展情况 等级保护制度的法律依据 《计算机信息系统安全保护条例》&#xff08;1994年General Office of the State Council第147号令&#xff09; 公安部主管全国计算机信息系统安全保护工作。 计算机信息系统实行安全等级保护&#xff0c;安全等级的划分…

夏季河湖防溺水新举措:EasyCVR+AI视频智能监控系统保障水域安全

近日一则新闻引起大众关注&#xff0c;有网友发布视频称&#xff0c;假期在逛西湖时&#xff0c;发现水面上“平躺”漂浮着一名游客在等待救援。在事发3分钟内&#xff0c;沿湖救生员成功将落水游客救到了岸边。 随着夏季的到来&#xff0c;雨水增多&#xff0c;各危险水域水位…

ensp模拟器USG6000V1配置DCHP功能

接着上一篇配置&#xff0c;继续本篇的内容。开启DHCP功能非常简单&#xff0c;只需几个命令即可。实验拓扑图也非常简单&#xff0c;如下&#xff1a; 开启防火墙DHCP功能&#xff1a; [USG6000V1]dhcp enable 选择DHCP接口并设置接口IP地址&#xff0c;这里给g1/0/0配置2网…

Chromium 开发指南2024 Mac篇-编译前的准备工作(一)

1.引言 Chromium 是一款开源的网页浏览器项目&#xff0c;作为 Google Chrome 浏览器的基础&#xff0c;其卓越的性能和广泛的应用使其成为众多开发者研究和学习的对象。对于希望深入了解浏览器内核&#xff0c;或是计划在 Chromium 基础上开发自定义浏览器的开发者来说&#…

【leetcode刷题】面试经典150题 88.合并两个有序数组

leetcode刷题 面试经典150 88. 合并两个有序数组 难度&#xff1a;简单 文章目录 一、题目内容二、自己实现代码2.1 实现思路2.2 实现代码2.3 结果分析 三、 官方解法3.1 直接合并后排序3.1.1 算法实现3.1.2 代码实现3.1.3 代码分析 3.2 双指针3.2.1 算法实现3.2.2 代码实现3.2…

Android ViewModel实现和原理

ViewModel实现和原理 前言1. 使用1.1 gradle准备1.2 模拟场景1.3. LiveData和ViewModel1.4 更新数据 2. 原理与源码解读2.1 添加观察者2.2 setValue2.3 post 参考资料 前言 ViewModel的主要基于观察者的设计模式&#xff0c;他主要分为两个部分&#xff1a; 提供者Provider&a…

Codesys 获取系统年、月、日、时、分、秒、星期几 +解决时区问题+ ST语言编程实现代码

一、 效果如图所示 二、功能说明 发现获取的时间比北京时间多一个时区&#xff08;8个小时&#xff09;&#xff0c;解决时区问题获取时间后&#xff0c;单独把年月日时分秒提取出来&#xff0c;单独保存在变量中获取星期几&#xff0c;保存在变量中 三、Codesys用ST语言实现…

【MySQL统计函数count详解】

MySQL统计函数count详解 1. count()概述2. count(1)和count(*)和count(列名)的区别3. count(*)的实现方式 1. count()概述 count() 是一个聚合函数&#xff0c;返回指定匹配条件的行数。开发中常用来统计表中数据&#xff0c;全部数据&#xff0c;不为null数据&#xff0c;或…

【C++】模板初级

【C】模板初级 泛型编程函数模板函数模板的概念函数模板格式函数模板的原理函数模板的实例化模板参数的匹配原则 类模板类模板格式类模板的实例化 泛型编程 当我们之前了解过函数重载后可以知道&#xff0c;一个程序可以出现同名函数&#xff0c;但参数类型不同。 //整型 voi…