论文《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)

总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Esp32连接微信小程序蓝牙】附Arduino源码《 返回10007 相同特征id冲突问题》

前言 最近接了一个外包&#xff0c;发现了esp32连接小程序会有很多bug&#xff0c;所以接下来会慢慢更新解决方案&#xff0c;还是需要多接触项目才能进步呀兄弟们&#xff01; 附上uuid的生成链接&#xff1a; // See the following for generating UUIDs: // https://www.uu…

Minillama3->训练tokenizer

GitHub - charent/ChatLM-mini-Chinese: 中文对话0.2B小模型(ChatLM-Chinese-0.2B),开源所有数据集来源、数据清洗、tokenizer训练、模型预训练、SFT指令微调、RLHF优化等流程的全部代码。支持下游任务sft微调,给出三元组信息抽取微调示例。中文对话0.2B小模型(ChatLM-Chi…

Peewee,一个既小巧又强大的 Python 库-轻松实现数据库的增删改查

目录 01初识 Peewee 为什么选择 Peewee? 02安装与配置 安装 Peewee 配置 Peewee 03定义模型 定义简单模型 定义复杂模型 04基本操作 创建记录 查询记录 更新记录 删除记录 05高级操作 复杂查询 事务处理 使用信号 模型迁移 06实战案例 简单博客系统 任务管…

C语言最终文章-二叉树

文章目录 前言二叉树的性质二叉树的存储方式顺序存储堆及其应用TopK问题堆排序 链式存储二叉树的练习1.二叉树查找值为x的节点2.判断是否为完全二叉树LC226.翻转二叉树[LC572. 另一棵树的子树](https://leetcode.cn/problems/subtree-of-another-tree/description/)两道选择题 …

python操作注册表没有权限(error:5拒绝访问)

在IDE中运行 1. Openkey( , , accesswinreg.KEY_ALL_ACCESS) 2. 管理员方式运行Vscode或PyCharm 如果要打包成应用呢&#xff1f; 怎么处理权限问题&#xff1f;

Python 循环语句

在Python当中&#xff0c;循环语句用于重复执行特定的代码块&#xff0c;知道某个条件不再满足为止。Python中常用的循环有两种&#xff1a;for 循环 和 while 循环&#xff0c;下面我会分别详细解释它们的用法和特点 for 循环 for循环用于遍历可迭代对象(iterable)&#xff0…

522. 最长特殊序列 II

题目 给定字符串列表 strs &#xff0c;返回其中最长的特殊序列的长度。如果最长特殊序列不存在&#xff0c;返回 -1。 特殊序列定义如下&#xff1a;该序列为某字符串独有的子序列&#xff08;即不能是其他字符串的子序列&#xff09;。 字符串 s 的子序列可以通过删去字符…

学习笔记——网络管理与运维——SNMP(基本配置)

四、SNMP基本配置 1、SNMP配置举例 整个华为数通学习笔记系列中&#xff0c;本人是以网络视频与网络文章的方式自学的&#xff0c;并按自己理解的方式总结了学习笔记&#xff0c;某些笔记段落中可能有部分文字或图片与网络中有雷同&#xff0c;并非抄袭。完处于学习态度&#x…

PaddleOCR学习——PP-OCR系列

相关知识前置&#xff1a; PP-LCNet PP-LCNetV3 PP-LCNetV3系列模型是PP-LCNet系列模型的延续&#xff0c;覆盖了更大的精度范围&#xff0c;能够适应不同下游任务的需要。PP-LCNetV3系列模型从多个方面进行了优化&#xff0c;提出了可学习仿射变换模块&#xff0c;对重参数…

人脸识别系统---年龄预测

一、预测年龄 1.加载预训练的人脸检测模型 face_cascade cv2.CascadeClassifier(haarcascade_frontalface_default.xml)2.加载预训练的性别和年龄识别模型 gender_net cv2.dnn.readNetFromCaffe(deploy_gender.prototxt, gender_net.caffemodel) age_net cv2.dnn.readNet…

Qwen-VL图文多模态大模型LoRA微调指南

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 大模型应用向开发路径&#xff1a;AI代理工作流大模型应用开发实用开源项目汇总大模…

数据可视化实验二:回归分析、判别分析与聚类分析

目录 一、使用回归分析方法分析某病毒是否与温度呈线性关系 1.1 代码实现 1.2 线性回归结果 1.3 相关系数验证 二、使用判别分析方法预测某病毒在一定的温度下是否可以存活&#xff0c;分别使用三种判别方法&#xff0c;包括Fish判别、贝叶斯判别、LDA 2.1 数据集展示&am…

软件改为开机自启动

1.按键 win R,输入“shell:startup”命令, 然后就可以打开启动目录了&#xff0c;如下&#xff1a; 2.然后&#xff0c;把要开机启动的程序的图标拖进去即可。 参考&#xff1a;开机启动项如何设置

App端接口用例设计方法和测试方法

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前言 接口测试作为测试的重要一环&#xff0c;重点关注的是数据层面的输入输出&#xff0c;今天…

白帽子最喜欢用什么渗透测试工具?看看哪些是你用过的

一、白帽子最喜欢用什么安全工具? 2020 年的 HackerOne 黑客报告中,统计过白帽子们最喜欢用的软硬件工具。 从图中可以看到,89% 的白帽子都会使用 Burp Suite 这个 Web 应用安全测试工具,有 39% 会尝试自己写工具,第三名的 Fuzzers 是模糊测试工具。再后面主要是一些代理…

时间复杂度 空间复杂度分析

时间复杂度就是需要执行多少次&#xff0c;空间复杂度就是对象被创建了多少次。 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(2^n) < O(n!) < O(n^n) 这里写目录标题 时间复杂度O(1)O(logn)、O(nlogn)O(mn)、O(m*n)最好、最坏情况时间复杂度平均情况…

SD-WAN在教育行业的应用及优势解析

随着教育领域的数字化转型&#xff0c;网络技术的需求变得愈发迫切。作为一种前沿的网络解决方案&#xff0c;SD-WAN正在为教育行业提供强有力的支持。本文将详细探讨SD-WAN在教育行业的应用&#xff0c;并分析其为教育行业带来的众多优势。 实现多校区高效互联 教育机构通常拥…

使用Multipass编译OpenHarmony工程

Multipass 是一个轻量级虚拟机管理器&#xff0c;支持 Linux、Windows 与 macOS&#xff0c;这是为希望使用单个命令提供全新 Ubuntu 环境的开发人员而设计的。使用 Linux 上的 KVM、Windows 上的 Hyper-V 和 macOS 上的 HyperKit 来以最小的开销运行 VM&#xff0c;同时它还可…

数据结构试题 16-17

先这样吧&#xff0c;&#xff0c;专业课不是统考&#xff0c;我发现每年的卷子风格都不太一样&#xff0c;侧重点也不一样。以及21的和16的发生了很大的改变。等明年1月再看看吧 那就先over啦 数据结构撒花&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&am…

Zenity向Ubuntu系统发送通知

文章目录 前言 一、Zenity是什么&#xff1f; 二、使用步骤 1.确认是否已安装 2.使用 三. 结论 前言 大家都知道&#xff0c;久坐带来的后果有多么痛苦&#xff0c;但是每天上班&#xff0c;一坐一整天&#xff0c;想着起来活动一下&#xff0c;干起活来就又忘啦&#x…