Chris Zhang


  • 首页

  • 标签

  • 分类

  • 归档

CTR模型中数值特征的embedding - [KDD'21] An Embedding Learning Framework for Numerical Features in CTR Prediction

发表时间 2024-07-23   |   更新时间 2024-07-23

最近在做一些ratio预估方面的工作,看了华为诺亚实验室和上交合作的一篇文章,正好借机把CTR模型中关于数值特征的embedding方法整理一下。

  1. No Embedding:数值拼接后作为特征直接输入到模型中;
    1. [Google Play] Wide & Deep
    2. [JD] DMT
    3. [YouTube] DNN: 原始值、乘方、开方三者拼接
    4. [Facebook] DLRM: 两层全连接
  2. Field Embedding:多用于学术界。每一个数值都对应一个向量,数值的embedding是值与向量的乘积;
  3. Discretization:离散化,多用于工业界。离散边界的选择有下面三种方式:
    1. 基于固定距离/固定频数;
    2. 取对数(Kaggle某比赛的冠军使用过)后向下取整;
    3. 基于模型的分桶方式,如GBDT

论文提出:离散化的方式存在三个比较关键的问题:

  1. 分桶指标的选择比较固定,往往需要一个独立的模块,没法做成端到端的方式;
  2. 桶的上边界和上一个桶的下边界,两者数值相差可能很小,但实际的embedding差异很大;
  3. 同一个桶的上边界和下边界,两者数值相差可能很大,但实际的embedding是相同的。

论文主要的思路是将每个数值域的桶都用可学习的矩阵形式表示(行数为桶,列数为每个桶的embedding),随后学习一个长度为桶数的权重,来将每一个数值转化为每一个桶的权重。

阅读全文 »

[WWW'23] Que2Engage: Embedding-based Retrieval for Relevant and Engaging Products at Facebook Marketplace

发表时间 2024-07-23   |   更新时间 2024-07-23

Facebook(Meta) 发表的一篇关于使用对比学习+多任务学习,增强推荐商品相关性的一篇文章,目前在Facebook Marketplace里A/B测试了两周,能够将用户-推荐商品的交互率增加4.5%。

有意思的一点是,这个一作哥们一次性在arXiv上挂了两篇文章,发表在不同的顶会上,起了类似的名字 名称+解释+facebook marketplace ,说明F家的线上值得介绍的新方法应用还挺多。 然而还是被美国马裁员了4/5,令人唏嘘。

文章一如工业界的行事风格,不整弯弯绕绕的理论分析,直接给方法+线上效果,有种简单有效的美。


文章的亮点在于,除了比较基础的对 <用户query,推荐商品> 使用对比学习来获得两者的表示以外,还加入了另一个任务来更好地匹配线上的推荐逻辑。具体来说,由于线上的推荐过程包含了检索、排序在内的多阶段步骤,所以仅仅获得语义相关的向量表示是不够的(例如,基于cos-similarity优化的对比学习向量表示只能增强检索阶段的效果,但对排序阶段的效果增强不够显著,甚至会起负作用)。作者引入了easy/hard negative sample的概念,加入了另一个学习任务,使得获得的向量表示对线上使用更加有效。

img


阅读全文 »

Transformer family

发表时间 2024-07-23   |   更新时间 2024-07-23

Notion link

去年在组里给大家分享的一些关于大模型的知识。那个时候GPT-3并没有掀起太大波浪,在 talk to transformer 网站上它的表现和小冰属于卧龙凤雏。那个时候NLP监督任务还风靡BERT+fine-tune的模式。

Lilian Weng 上个月翁荔的博客,相较于我自己的总结,这篇文章更加前沿,也更有逻辑。

[CIKM'22] Retrieval Based Time Series Forecasting

发表时间 2024-07-23   |   更新时间 2024-07-23

论文主要提出了一种基于检索的时间序列预测方法。主要想解决在真实场景中,大部分的时间序列预测所能够获得的观测样本非常有限(如想要预测的时序长度占总时序的80%或以上),例如在智慧交通领域,预测传感器损耗的道路的交通情况,或者在环境监测领域,对某些环境恶劣、无法放置传感器的地点的温度变化情况。特别地,在工业场景中,也会存在基于少量的时序数据来预测未来许多天的场景,如广告行业中的流量预测、广告投放量估计等。

值得注意的是,本文使用的是关系检索,而非基于内容的检索,因为在输入时序数据很短的情况下,数据很可能是不够稳定的,从而导致检索到不可靠的时序片段。

论文的贡献主要有以下三个方面:

  1. 文章从条件熵的角度量化了时序预测的不确定性,并且论证了在拥有相似参考时序片段的情况下,会让模型更加轻松地学习到时序的模式;
  2. 文章提出了一个用于时序预测的两阶段算法ReTime,由关系检索的内容合成两部分构成;该方法也能够简单地扩展到时空序列预测、或是时序插值场景中去;
  3. 文章用了两个真实世界的数据集里验证了ReTime算法的有效性。
阅读全文 »

[CIKM'22] Towards Understanding the Overfitting Phenomenon of Deep Click-Through Rate Prediction Models

发表时间 2024-07-23   |   更新时间 2024-07-23

讨论了为什么在绝大部分的基于DNN的CTR模型训练过程中,第一个epoch之后效果最好,从第二个epoch开始反而效果开始下降。

充满了很多实验的一篇文章,直接说结论:

  • 与该现象有关的因素
    • 模型结构:DNN会有该现象,而LR就不会;
    • 优化算法:收敛速度越快的算法越会出现该现象;
    • 特征的稀疏性:特征越稀疏(w/ 长尾),越容易出现该现象。
  • 与该现象无关的因素
    • 模型参数量:把模型embed层减到只有一个float值,此时DNN模型的参数和LR很相似,但DNN还是会有过拟合现象;
    • 激活函数;
    • batch size;
    • weight decay;
    • dropout;

最后,作者提出了一个假设:在CTR模型训练过程中出现过拟合现象,是因为未训练的样本(包括一个epoch都没训练的样本,或者测试集的样本),分布与已训练的样本非常不一样。这里的分布指的是embedding向量与其样本标签的联合分布,随后通过实验验证了这个假设。

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

发表时间 2024-07-23   |   更新时间 2024-07-23

论文的立意是在 联邦学习\ 过程中,结合 对比学习\ ,用局部与全局的两种 蒸馏\ 方式来 无监督\ 地学习样本的向量表示,阅读下来的感觉是与其说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

发表时间 2024-07-23   |   更新时间 2024-07-23

假设已知当前用来训练的样本集合对于样本全集有偏差(且全集所有样本接近均匀分布),可以用当前样本标签数量之间的相对大小,来调整模型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

发表时间 2024-07-23   |   更新时间 2024-07-23

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

发表时间 2024-07-23   |   更新时间 2024-07-23

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,而应用到多跳的逻辑查询)。
阅读全文 »

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

发表时间 2024-07-23   |   更新时间 2024-07-23

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

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

或许上过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)在无监督句向量中的应用,最后在文末整理了一些值得思考与讨论的点,希望能为大家的工作带来一些微小的启发。

阅读全文 »
123

Chengxi Zhang

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

32 日志
6 分类
9 标签
GitHub E-Mail
© 2024 Chengxi Zhang