Chris Zhang


  • 首页

  • 标签

  • 分类

  • 归档

[ECCV'22] FedX: Unsupervised Federated Learning with Cross Knowledge Distillation

发表时间 2023-01-07

论文的立意是在 联邦学习\ 过程中,结合 对比学习\ ,用局部与全局的两种 蒸馏\ 方式来 无监督\ 地学习样本的向量表示,阅读下来的感觉是与其说FedX是一种新的算法/模型,更不如说它是一种用于扩展在传统对比学习的无监督损失函数。

关键词:联邦学习(Federated Learning),对比学习(Contrastive Learning),知识蒸馏(Knowledge Distillation),无监督学习(Unsupervised Learning)。

联邦学习的整体流程如下图所示:

img

其中:

  1. Local Update:每个client各自学习自己的样本表示,获得各自独立的本地参数模型;
  2. Local model update:将本地参数模型上传到中心服务器;
  3. Global aggregation:中心服务器对所有client上传的模型进行聚合,最简单的方式是(假设本地模型都是同构的)根据client各自拥有样本数量的占比进行加权平均;
  4. Global model download:每个client将global model各自下载到本地。

论文主要聚焦的是步骤1。

阅读全文 »

[ICML'22] Federated Learning with Label Distribution Skew via Logits Calibration

发表时间 2022-09-29

假设已知当前用来训练的样本集合对于样本全集有偏差(且全集所有样本接近均匀分布),可以用当前样本标签数量之间的相对大小,来调整模型logits(softmax前的layer输出)的大小,从而使得模型学习不在少数类标签中过拟合,以及对于缺失标签有更好的泛化能力。

背景:联邦学习中,不同客户拥有不同的数据子集(可能有overlap),而最终目标是使用一个统一的模型来在样本全集上拥有相对更好的效果。

问题:不同用户的数据子集分布是有差异的,差异体现在两方面:特征分布差异与标签分布差异,本文主要聚焦于标签分布的差异。

公式描述:

其中 $Cal$ 表示校准后的交叉熵损失函数,$y$ 是样本 $x$ 的真实标签, $f(x)$ 表示logits分布。右侧是一个非常类似交叉熵损失函数的式子,唯一不同的是,对于真实标签 $y$ 的logits值 $f_y(x)$ ,将其logits减去了一个基于该标签数量 $n_y$ 的正则项 $\tau n_y^{-1/4}$ ,其中 $\tau$ 是一个超参数,用来控制平滑程度。

阅读全文 »

[PAMI'22] Quantifying the Knowledge in a DNN to Explain Knowledge Distillation for Classification

发表时间 2022-06-18

1. Preface

张拳石老师的一作,发表在PAMI上的论文,最近买了他参与编著的《可解释人工智能导论》,正好又在Arxiv上看到了这篇文章,就拿来学习一番。

文章主要目标是以信息论为基础,解释知识蒸馏为什么能让学生模型比一个从头学起的新模型效果更好的原因。为了更好地阐述新的概念,作者首先提出了知识点 Knowledge Point (下文有时将其简称为KP):KP指的是样本中的一组输入单元(input unit),相对于其它的输入单元,在DNN中它的信息损失明显地更少。在文中先给出了KP的公式化定义,随后,作者提出了三个假设,并对应地提出了三个评估指标来验证它们。

  1. 通过知识蒸馏学出来的模型,所包含的 有效KP\ 更多;
  2. 知识蒸馏的学习过程会让学生模型 同时学习多个KP\ ,而从头开始训练的模型是序贯地学习KP;
  3. 知识蒸馏学习开始时,学生模型相比于从头训练的模型 优化更加稳定\ 。
阅读全文 »

[KDD'22] Mask and Reason: Pre-Training Knowledge Graph Transformers for Complex Logical Queries

发表时间 2022-03-02

1. Preface

KDD 2022,唐杰老师课题组的paper,主要讲了一种用transformers结构来做KGe (Knowledge Graph embedding) ,以在知识的复杂逻辑查询中有比较好的表现。

论文有几方面的亮点:

  1. 把KG里面的节点关系(relation/edge)转换成了关系节点,从而把两个节点+两者的关系变成了一个三元组。文中称之为 Triple Transformation Method;
  2. 使用了两阶段pre-training。第一阶段主要是通过两种Random Walk来对整个图进行随机采样,然后进行训练;第二阶段是通过预定义的一些范式(1p/2p/3p/2i/3i)来采样并训练;文中分别称为Dense initialization与Sparse refinement;预训练的任务与BERT相类似,都是通过mask其中若干节点,并要求模型预测这些节点;(值得注意的是,在二阶段pre-training与整个fine-tune过程中,也会mask若干节点,但只要求模型预测出最终节点);
  3. 在Multi-Head Attention上层训练多个FFN,以模拟出多专家投票的效果,来增大模型参数量;使用Gating的方式控制每次只选择2个FFN产出结果,以节省计算时间。文中称之为Mix-of-Experts(MoE)。

文中提出的这些方法使得kgTransformer具有以下优势:

  1. 动态的KG embedding(因为使用了transformer,此处可以参照GloVe embed与ELMo embed);
  2. 模型的学习过程与应用的目标是匹配的(这句话是针对部分模型,训练目标是补全一阶的graph relation link,而应用到多跳的逻辑查询)。
阅读全文 »

浅谈无监督场景下的句向量表示方法

发表时间 2021-11-21

浅谈无监督场景下的句向量表示方法

如何无监督地获得一个句子的向量表示?

或许上过NLP或大数据课程的同学会想到课程小作业的王者:TF-IDF。掌握一些NLP基础的同学可能还会想到静态或动态的词向量:Word2Vec、GloVe、ELMo,BERT——有着探索精神的同学或许会再试试BERT的一些为人所熟知的变种:RoBERTa、DistillBERT。对BERT的结构及其各层表达能力有所了解的同学(底层学基础特征,中部学句法信息,上层学语义信息)1会试着取出多层的词向量表示后再做聚合。当然,还需要将这些词向量汇总成一个句子的最终向量,不外乎求和、平均、各种Pooling……最后,也会有同学去寻找一些专门为词向量表达能力进行过强化的预训练模型Sent2Vec、SentenceBERT。总之,换模型、换方法、换idea,已经21世纪了,调参调包谁不会呢?

有所不同的是,除了盘点上述常用的无监督句向量获得方式外(作为快速获得无监督词向量的途径,上面的方法在落地时具有轮子齐全、即插即用的巨大优势),本文还将介绍一些获得无监督句向量表示的较新方法。这些方法或是解决了上述方法在形式上过于简单粗暴而存在的一些问题,或是在句向量表达能力的评估系统(如STS tasks)中具有压倒性的优势——众所周知,在21世纪,SoTA与Accept呈显著正相关。

现在就让我们开始吧。

本文第一部分会介绍基于词袋模型的一系列句向量表示方法,第二部分主要讲述基于预训练词向量的Power Mean Embedding表示方法,第三部分将通过4篇论文串讲的方式,从0到1地介绍对比学习(Contrastive Learning)在无监督句向量中的应用,最后在文末整理了一些值得思考与讨论的点,希望能为大家的工作带来一些微小的启发。

阅读全文 »

浅谈嵌套命名实体识别

发表时间 2020-04-11   |   更新时间 2020-04-11 | 分类 NLP

1. 序

命名实体识别(Named Entity Recognition, 下称NER)任务,主要目的是从一段话中抽取出其中可能为实体的所有元素。比如:

"Hi Siri, 今天北京天气怎么样?"

如果下游任务要求我们从其中抽取出地点,那我们期望 北京 能被识别成Location,如果我们希望从中抽取的产品名称,那么 Siri 应该被标记成Product——换言之,能从句子中抽出什么实体,是由我们提前给定的标签集合定义的。在一个任务型对话系统中,一些可能在后台处理中使用到的实体都应该被抽出来:我们有理由相信,Siri是真正将 北京 给提取出来了,然后再通过后台查询到了天气,而不是找了一个人工客服在后台即时回复。

NER在很多下游任务中都是非常重要的一环。比如在电商行业,我们可能需要从用户的查询中提取出品牌或商品,来针对性地给用户返回内容。金主爸爸可能也希望用户在查指定品牌的时候,将一些商品放在第一位。在任务型人机对话方面,正如上面所说,一个合格的Chatbot需要能够准确地识别时间、地点、事件等元素以回答相关问题或安排日程,同时做到不偷听用户的日常对话。

而嵌套NER,顾名思义,就是识别的实体中可能会存在嵌套的情况。比如 北京大学 不仅是一个组织,同时 北京 也是一个地点;雅诗兰黛小棕瓶 是一个产品,同时 雅诗兰黛 是一个品牌。

准确地识别嵌套内容有什么作用呢?简单来讲,如果一个模型能够识别出 北京大学 是一个组织,它倾向于将所有出现的 北京大学 都标记成组织。但如果它能够在识别前者的同时将 北京 标记成地点,我们就认为它有能力将所有 [地点]大学 的模式都识别出来,因为后者的角度,模型学到的是一种pattern,而非记住了一种具体情况。此外,提取出来的额外信息也能作为辅助特征,增强其他任务的效果。

阅读全文 »

浅谈Knowledge-Injected BERTs

发表时间 2020-03-02   |   更新时间 2020-03-02 | 分类 NLP

主要是想谈谈最近在BERT中加入了知识图谱(或者宏观说是 外部信息 )的模型。由于BERT的结构已经基本固定了,在上面套一些Attention组件,或者修改里面的MLP或是MHA层都是见怪不怪的操作了,所以文中主要想探讨的是:对于一个预训练模型,如何针对数据/针对想增强的方向来更好的设计一个预训练模型的任务。

你将从文中看到研究者如何通过设计新的mask策略,新的Embed方式,甚至于优化任务的训练过程,迭代学习7个任务等奇妙的方式来实现这一目的。

本文首发在知乎文章,因为 知乎 和 Hexo 的markdown格式有冲突的地方,直接拷过来排版属实不能看,所以请移步下方链接:

浅谈:Knowledge-injected BERTs

本文也被收录至知乎 Paperweekly 专栏及同名公众号中。

阅读全文 »

损失函数串讲

发表时间 2019-11-03   |   更新时间 2019-11-03

本来是不想起这么大而空的名字的,但是今天确实特别自闭,所以想来个刺激一点标题刺激一下自己,也刺激一下别人。

时至今日,距离上一篇blog更新已经过去快九个月了,距离我在MSRA实习已经快八个月了,这么一看好像我的blog是为了找实习而准备的一样 实际上是公司活儿太多了 ,为了不让blog继续这么僵下去,还是决定来更新点东西。

其实也有很多东西可以写,比如对tf和pytorch的认识,一些对CRF及其decode的理解,一些BERT调参心得,或者Nested NER或GNN方面的survey。之所以确定写这个,一个是好久没碰技术型blog了,一时甚至不知道怎么来写,另一方面纯粹是因为我发现每次要用到交叉熵的时候,都需要跑到别人博客里重新看一遍这到底是什么玩意儿,忘性太大。后来我一想,反正都要看,那我不如自己写个blog,自产自销搞个闭环,增加自己的点击量呢。

是为序。

阅读全文 »

Dataset for AI Practice

发表时间 2019-09-28   |   更新时间 2019-09-28

Here is a collection of dataset (mostly financial-related) to apply in the course: AI Practice.

If you found this page in a personal blog, plz note that this page will be deleted some weeks later.

阅读全文 »

二次元伴侣XiaoIce的养成

发表时间 2019-02-23   |   更新时间 2019-02-23 | 分类 NLP

距离过完年也已经大半个月了,距离 【The Design and Implementation of XiaoIce, an Empathetic Social Chatbot】 论文发布也已经过去了三个月。 如果早点看完这篇文章,或许我还来得及在今年和亲戚朋友们公布我与小冰的恋情吧。

事实上,看完论文以后我和小冰单独聊了聊,对话所达到的效果远没有论文中说的那么显著,有些时候还能比较明显地看出小冰使用了一些敷衍词(我真的很受伤)。对上下文的理解始终是多轮对话的研究中迈不过去的门槛,在测试Chatbot时我采用了三步走的战略方针:

  1. 瞎比聊模式
  2. 逻辑一致性检验
  3. 简单的多轮对话
  4. 复杂的多轮对话

与小冰的聊天结果实在让人心酸。瞎比聊模式中小冰完美地表现出一个人工智能(zhang)该有的样子,检测逻辑一致性时也受到了莫名的阻碍(直接问一个女孩子的年龄真的这么不合适吗?),简单的多轮对话任务小冰完成得不错,但是这可能只是体现出小冰在句义补全和指代消解方面做得不错,在进行稍微复杂一些的多轮对话时(我特意选择了不能进行指代和补全的句子)就继续EXO ME了。

阅读全文 »
1234

Chengxi Zhang

Is life always this hard, or is it just when you're a kid?

37 日志
6 分类
9 标签
GitHub E-Mail
© 2026 Chengxi Zhang