- 博客(122)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【CTR模型系列汇总】十五篇博文、十九个模型梳理CTR预估模型(20220802更新)
一、【机器学习基础04】矩阵分解(Matrix Factorization)二、【特征交叉-CTR】FM-based Recommendation Model:FM、FFM三、【特征交叉-CTR】特征交叉:Wide & Deep、Deep & Cross Network四、【特征交叉-CTR】真伪DeepFM:DeepFM、xDeepFM五、【挖掘兴趣-CTR】YouTubeNet、DIN六、【挖掘兴趣-CTR】Deep Interest Evolution Network for
2022-03-21 22:16:12
3405
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 【GCN-RS系列汇总】十三篇文章、十六个模型梳理图神经网络协同过滤模型(附代码实现)
整理了博客已有的GCN-RS的文章,持续更新中。一、【基础知识:DeepWalk、Node2Vector、GCN】二、【经典工作:NGCF、LightGCN、LR-GCCF】三、【多行为推荐:MBGCN】四、【多关系推荐:GHCF】五、【对比学习SGL】六、【Item-KNN + WMF = UltraGCN】七、【也是KNN算法:How Powerful GCN RS】八、【YouTubeNet、MF又一春:SimpleX】九、【GCN的难负样本:MixGCF】(附赠Simplify
2022-03-21 21:39:36
1087
1
原创 【视觉预训练】《BEIT: BERT Pre-Training of Image Transformers》 ICLR 2022
核心思想是:让 BEIT 看很多的图片,随机盖住一些 image patches,让 BEIT 模型预测盖住的patches是什么,不断计算预测的 patches 与真实的 patches 之间的差异,利用它作为 loss 进行反向传播更新参数,来达到 Self-Supervised Learning 的效果。BEIT 也是在做类似的事情,即能够把一个输入的 image 进行编码,得到一堆 vectors,并且这些个 vectors 也结合了 image 的上下文。具体而言,作者训练了一个。
2022-09-30 11:00:57
1382
1
原创 【多模态】MoE解决多模态单双塔问题 VLMo: Unifified Vision-Language Pre-Training with Mixture-of-Modality-Experts
之前在秋招和写毕业论文,一个月没更了。毕业论文交了,开更。
2022-09-20 13:45:38
4107
5
原创 【推荐系统中的Hash 3】Deep Hash:Learning to Embed Categorical Features without Embedding Tables KDD‘21
作者也觉得他这种方法不能满足同质性Equal Similarity,因此提出对于物品ID、用户ID,在encode之后再拼接上属性(年龄、性别、品牌等),然后在输入到DHE中解码,为最终生成的embedding补充同质性。项为1,其他都为0。,即一个特征分别落到了k个桶中,分别从embedding table取出向量,并且把最后的结果concat到一起或者做avg-pooling。作者说,这里是受到GAN网络的启发,用服从高斯分布的随机变量做GAN网络的输入。2、无法处理新出现的特征(OOV)。
2022-08-21 23:27:14
1261
原创 【推荐系统中的Hash 2】局部敏感哈希(利用冲突)
首先将2维数据点组织成二叉树的结构,比如先用红色的线把点云一分为二,再用深蓝色的线把各自片区的点云一分为二,以此类推,直到每个片区只剩下一个点,这就完成了空间索引的构建。比如,希望找到点 q 的 k 个邻接点,我们就可以先搜索它相邻子树下的点,如果数量不够,我们可以向上回退一个层级,搜索它父片区下的其他点,直到数量凑够 k 个为止。局部敏感哈希的基本思想是希望让相邻的点落入同一个“桶”,这样在进行最近邻搜索时,我们仅需要在一个桶内,或相邻几个桶内的元素中进行搜索即可。kd-tree的实现是改造的线段树。
2022-08-21 23:23:32
475
原创 【超长序列建模】美团CIKM‘22:《Sampling Is All You Need on Modeling Long-Term User Behaviors for CTR Prediction》
如果直接只用一个哈希函数的话,那么这样计算得到的用户兴趣表征误差肯定是非常大的。为了减小误差,作者采用了 simHash 的一个变种:(m,τ) - parameterized simHash,也就是同时采样 m 个哈希函数生成 m 个 binary 的哈希指纹,然后将每 τ 个哈希指纹串在一起视为一个新的 τ 位的哈希签名,而后用这个 τ 位的哈希签名去计算 item 间的碰撞。直接用 item 间的哈希碰撞概率来近似他们的相似度,从而避免 element-wise 的相似度计算**。...
2022-08-14 14:33:55
1256
3
原创 【超长序列建模】阿里ETA:《End-to-End User Behavior Retrieval in Click-Through Rate Prediction Model》
最自然想到的方法就是target attention,让target item与每个historical item逐一点积,这兜兜转转由回到了起点,我们就是从attention出发来的。现在找到了一个功能和target attention类似,但是复杂度低的多的方法了。一种解决方法是SimHash。SimHash的优点在于其。,SimHash后得到。...
2022-08-14 14:31:43
1293
原创 【冷启动】Transform Cold-Start Users into Warm via Fused Behaviors in Large-Scale Recommendation SIGIR‘22
主要有三点:(1)将冷启动用户的嵌入预热,其实就是加了一个冷启动用户embedding,(2)为了利用冷启动用户的少量行为来帮助表征用户,提出了通过Label Encoding(LE)同时建模正负反馈混合序列,类似于卷积层里有负样本。冷启动用户的user embedding刚开始是随机初始化的,为了消除初始随机初始化embedding的的影响,类似MAML的思想,用全局平均embedding来辅助。类似于图卷积中加负样本,在用户的序列行为中也考虑负反馈物品,即对用户曝光但未点击的item。...
2022-08-10 23:20:35
634
原创 【超长序列建模】万级别:SIM《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click
这个时候干脆模仿起推荐系统的召回、精排方法,对序列特征再做一次“召回”和“精排”:第一阶段Genral Search Unit(GSU)通过相对粗略的搜索模式,提取行为序列中与候选 AD 较相关的节点,第二阶段Exact Search Unit(ESU)通过精准搜索的模式,得到序列与候选 AD 的关系,并形成 embedding 供 MLP 使用。因为引入的是超长的用户行为序列,用户行为间横跨较长的时间,用户行为的分布是不同的,所以给每个用户行为引入了一个时间状态属性。来表达每个行为的时间状态属性。...
2022-08-10 23:18:35
655
原创 【超长序列建模】千级别:MINM《Practice on Long Sequential User Behavior Modeling for Click-Through Rate Predictio
当序列行为超长时,意味着一个节点有数十万条边,这个时候一阶关系都过于稠密,更不用说利用高阶关系了。
2022-08-10 23:16:27
616
原创 【冷启动】快手《POSO: Personalized Cold Start Modules for Large-scale Recommender Systems》
既然需要不同用户群模型,那就以当前模型为基础,通过加权得到某个用户群的模型,再进行加权得到某个用户的模型,两次加权可以通过一个gate网络合并。显然,冷启用户的特征分布和全量用户的特征分布差别很大,但是冷启动用户样本一般占全量样本5%以下,因此模型主要受正常用户的影响。,强迫模型关注到这个特征,POSO的核心思想也类似,即对每个用户学习对应的模型,不受其他用户样本的影响,做到完全基于用户自己的个性化。,在基础的单个模型中引入个性化模块,使模型对每个用户在模型结构层面进行个性化响应,实现模型结构的个性化。..
2022-08-01 23:41:11
3240
1
原创 【多任务模型】腾讯MFH《Multi-Faceted Hierarchical Multi-Task Learning for a Large Number of Tasks
特别是task非常多的时候又有新的问题一般一个MTL模型只能处理2~6个任务,对于10~20个任务一般需要2~3个MTL模型,所以当任务数量多起来的时候1、task之间会有复杂的关系;以往的MTL都是在微观级别上创新Switcher的结构,以提高合作学习的效率,这一定程度上是因为他们的场景task少,negativetransfer没这么严重。类似FM的思想,将多棵H-MTL交叉,每棵树是一个强语义表示,像FM一样对每棵树进行“特征交叉”,自动的构造多个任务的组合,从而提高了学习的效率和质量。......
2022-08-01 23:37:57
983
原创 【多任务CTR】阿里ESMM:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conve
pCVR=pCTCVR/pCTR,即分别训练一个CTCVR和CTR模型,然后相除得到pCVR,但是这样有一个明显的缺点是真实场景预测出来的pCTR、pCTCVR值都比较小,“除”的方式容易造成数值上的不稳定。”,想象一个场景,一个item,可能因为头图很丑,它被某个user点击的概率很低,但这个item内容本身完美符合这个user的偏好,若user点击进去,那么此item被user转化的概率极高。现在感觉解决方案已经呼之欲出了CVR是的样本是有偏的、CTR是无偏的,CTCVR样本是无偏的!......
2022-08-01 23:34:30
685
原创 【多任务优化】DWA、DTP、Gradnorm(CVPR 2019、ECCV 2018、 ICML 2018)
L=i∑Li显然这种做法有很大问题,因为不同task的label分布不同,同时不同task的loss量级也不同,整个模型很可能被一些loss特别大的任务主导。L=i∑wi∗LiL=i∑wi(t,θ)∗Lit是训练的step,theta是模型其他参数。但是这种做法也不一定有人工设计权重好。一些设计wi(t,θ)...
2022-07-25 22:47:00
1484
原创 【多任务模型】Progressive Layered Extraction: A Novel Multi-Task Learning Model for Personalized(RecSys‘20)
腾讯的视频推荐团队,建模的目标包含用户的多种不同的行为点击,分享,评论等等。score=pVTRwVTR×pVCRwVCR×pSHRwSHR×…×pCMRwCM×f(videolen)其中w是超参,表示相对重要性。
2022-07-25 22:44:31
220
原创 【多任务学习】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts KDD18
在模型层面理解,我们在单目标中经常会花费大量的精力“找强特征”和“删冗余特征”输入到模型,提高模型效果。那么切换到MTL时,每个task所需要的“强特”和排斥的“负特”是不同的,MTL的目的就是对每个task尽可能的找到他们的强特和负特。在优化层面理解,多个task同时优化模型,某些task会主导了模型的优化过程,淹没了其他task。从监督信号的角度理解,MTL不仅仅是任务,也是一种数据扩增,相当于每个task多了k-1个监督信号来辅助学习,一些特征可以从其他task学的更好。...
2022-07-25 22:39:45
397
原创 【RS采样】A Gain-Tuning Dynamic Negative Sampler for Recommendation (WWW 2022)
这样选出的负样本是得分靠近正样本的,可以为训练过程提供比较大的梯度,从而提供更多的信息。实验还发现,真实负样本的。的正样本集合和负样本集合,意味着每个正样本分别要对所有负样本算loss,等于所有的正样本共享了负样本信息,而不是一对一对的分别优化,效率更高,信息更多。文章提出一个基于期望增益的采样器,在训练过程中根据正负样本之间差距的期望的变化,动态指导负采样,可以识别假负样本。分析真实和虚假负样本的H和G的分布,可以看出在训练过程中H越来越高的是假负样本,真实负样本的G越来越高。用户交互过的物品集合,...
2022-07-21 00:23:13
683
1
原创 【GCN-RS】Learning Explicit User Interest Boundary for Recommendation (WWW‘22)
是一个标量,只和userembedding有关,所以对于popularitybias大的用户,s往往都很大,这个时候给他限定一个比较高的margin值,相当于设定一个动态的marginloss。在loss里可以看作是一种针对高频user的惩罚正则化。也可以看作一种debias的方法,还有一种可能,优化正样本loss。...
2022-07-21 00:12:21
234
原创 【GCN-RS】Region or Global? A Principle for Negative Sampling in Graph-based Recommendation (TKDE‘22)
在GCN-RS里,负采样应该选取距离user中间的区域,太近的区域一般是用户聚合的物品,太远的没什么信息量,距离不远不近的样本可以看作是信息量比较大的难样本。类似于MixUp技术,为了得到user的难负样本,不仅仅和user。远小于整个物品集,但我在数据集上统计仅仅是3-hop,绝大部分。是超参数,用于平衡用户和物品的影响。累计分数,但是如果不在中间区域的话,不计数。定义距离userk阶的物品是中间区域。越近的物品,作为负样本的概率越大。有关,还和user的正样本。中用两种策略得到难负样本。...
2022-07-21 00:10:55
694
原创 【GCN-RS】MCL: Mixed-Centric Loss for Collaborative Filtering (WWW‘22)
Pointwise和pairwise损失函数挖掘的信息太少了,只是采样样本,然后更新权重。是指正样本的距离比距离最小的负样本的距离减阈值还要大的样本。是指负样本的距离比距离最大的正样本的距离加阈值还要小的样本。为了从可用的偏好信息中挖掘更多的信号,考虑了难样本和全局信息。...
2022-07-21 00:10:03
336
原创 【对比学习】Understanding the Behaviour of Contrastive Loss (CVPR‘21)
即损失函数对所有负样本的相似度的梯度是相等的。越大,负样本的梯度项也越大,也就给予了负样本更大远离该样本的梯度。(可以理解为focalloss,越难梯度越大)。趋近于无穷大时,ContrastiveLoss几乎退化成SimpleLoss,对所有负样本的权重相同。但是满足这一条件的损失函数很多,比如一个最简单的函数。该损失函数要求第i个样本和它另一个扩增的(正)样本之间的相似度。之间尽可能大,而与其它实例(负样本)之间的相似度。设置为一个小数字,这篇文章从分析温度参数。的分母是相同的,所以。...
2022-07-21 00:07:46
452
原创 【多模态】《HiT: Hierarchical Transformer with Momentum Contrast for Video-Text Retrieval》ICCV 2021
对于一对video-Text样本,text输入QueryTextEncoder和KeyTextEncoder,video抽帧,然后拉成序列再输入QueryVideoEncoder和KeyTextEncoder。所以一共有4个Encoder模型获得输入,分别有两个模型(Query-Key)的输入是相同的,Key模型是由Query模型动量更新的。快手和北大的工作,视频文本检索任务,即让视频和文本对齐,已经用于快手的各个场景中。然后又在底层和顶层计算loss,又翻倍,因此一共有4个loss。...
2022-07-21 00:03:58
596
原创 【多模态】《TransRec: Learning Transferable Recommendation from Mixture-of-Modality Feedback》 Arxiv‘22
通用推荐的实现是基于一个常见的推荐场景,即用户的物品交互行为由**混合模态(MoMMixture-of-modality)**的物品组成,用户交互的物品可以是文本(text)形式,视觉(vision)(图像/视频等)形式,或两种模态形式都存在。但是推荐系统在该方向发展缓慢,模型的可迁移性范围有限,通常只适用于一个公司内部的业务场景,无法实现广义上的可迁移性和通用性。文章还验证了数据对于模型的上限,越多的预训练数据对于TransRec的性能提升越大,在工业界中有源源不断的数据可以扩充。...
2022-07-20 23:57:51
406
原创 【GCN多模态RS】《Pre-training Representations of Multi-modal Multi-query E-commerce Search》 KDD 2022
session的划分规则是同一个用户前后2次搜索间隔不超过30分钟作为窗口来构建搜索session,文章先展示了MMsession普遍更长,甚至9%包含10个query以上,另一方面MMsession的点击次数明显少于纯文本session,说明MMsession的意图还是很复杂的,MMsession的表征学习还是很重要的。考虑的场景是多模态querysession,即一个session是文本和图像的query,目的是建模这个session的表征,从而实现CTR或者Query推荐。...
2022-07-20 23:55:01
469
原创 【Debias】Model-Agnostic Counterfactual Reasoning for Eliminating Popularity Bias in RS(KDD‘21)
图a是我们一般推荐模型的假设,即用户和物品的匹配程度可以反映是否会产生交互。但是事实上应该如图c所示,产生交互不仅仅和匹配程度有关,还和用户和物品本身的偏差有关物品的流行度、用户是否喜欢流行物品。...
2022-07-20 23:46:50
447
原创 【GCN-RS】Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for RS (SIGIR‘22)
我曾经也做过实验,把这个公式的分子置为1,即不考虑扩增图结构后表征依然相似,NDCG指标反而升的更高,所以SGL的确实不太有用。因此这两个扰动可以看作在原始embedding的方向,各自伸缩了一些。然后带入对比学习loss,就可以用了。则输出-1,否则1。...
2022-07-20 23:44:34
205
原创 【CTR】《Towards Universal Sequence Representation Learning for Recommender Systems》 (KDD‘22)
现有方法依赖于显式的商品ID建模,存在迁移性差和冷启动的问题(即使各个推荐场景的数据格式是完全相同的)。序列推荐是根据用户点击过的item序列,学习出一个序列表征,然后根据表征预测下一个item,建模表征的模型有RNN、CNN、GNN、Transformer、MLP等。微调时把所有Transformerencoderfix(PLM的本来就是fixed的),只微调MoE那一块的参数,即利用MoE让预训练模型快速和新领域适配、融合。核心思想是利用与商品相关的文本(如商品描述、标题、品牌等)来学习可。...
2022-07-20 23:41:05
979
原创 【GCN-RS】Towards Representation Alignment and Uniformity in Collaborative Filtering (KDD‘22)
为了验证BPR以及其他loss在优化的过程中会优化对齐兴和均匀性,作者在不同的方法上进行了实验,随着训练过程进行,对齐和均匀性会得到相应的优化和改善。而缺乏对CF中表征的期望属性进行研究,这对于理解现有CF方法的基本原理和设计新的学习目标很重要。随机初始化后,Uniformity很好,Alignment很差,前期学习过程主要是优化Alignment,后期的性能提升主要来自于Uniformity。这也比较好理解,正样本相近是好实现的,但是在样本分布均匀的基础上实现正样本相近是需要花费effort的。...
2022-07-20 23:37:33
786
1
原创 【GCN-CTR】DC-GNN: Decoupled GNN for Improving and Accelerating Large-Scale E-commerce Retrieval WWW22
第二个子图和第三个子图得到的embedding,进行对比学习,同一个节点在两个视图的embedding是正例,不同节点是负例。,比如targetnode是user,给这个节点采样三个子图出来,每个子图出了targetnode之外,分别只包含user、query、item节点。用Taobao近7天的记录作为数据集,有三类节点user、query和item,每个节点都有丰富的节点属性设备、年龄等。然后在已有子图的基础上,和SIGN那篇一样,直接将不同阶卷积的向量拼接起来。有边连接的是正例,然后采集。...
2022-07-19 23:36:12
507
原创 【6篇文章串讲ScalableGNN】围绕WWW 2022 best paper《PaSca》
文章先归纳了ScalableGNN的架构范式。Sampling-based的方法不算ScalableGNN,因为这些模型在训练过程中还需要聚合邻居节点,分布式场景下通信开销避免不了。
2022-07-19 23:29:14
839
原创 【GCN】《Adaptive Propagation Graph Convolutional Network》(TNNLS 2020)
为每个节点赋予一个停止单元,该单元输出一个值控制Propagation是否应该继续进行下一跳。聚合时停止单元的输出值就是聚合每跳的权重。可以理解成为每个节点找到自己的感受野。传播的步数应该由每个节点自身决定的,因此给每个节点附加一个线性二分类器作为传播过程的“停止单元”。看起来符合直觉稀疏的图感受野一般更大,稠密的图一般只聚合1~2阶邻居。是通常设置为一个很小的值0.01,保证传播一次之后也可以终止。是该节点当前迭代应该停止的概率(0~1)。这个惩罚项控制了信息在图上传播的“难以程度”。...
2022-07-19 23:19:25
264
原创 【图攻防】《Backdoor Attacks to Graph Neural Networks 》(SACMAT‘21)
这种RandomizedSubsampling的防御方法可以一定程度上降低攻击效果,但是和数据集、triggersize有很大关系,当triggersize大于某个阈值的时候,CertifiedDefense就完全失效了,这就是GNN里CertifiedDefense的安全半径。作者尝试用相同的参数fixtrigger或者多生成几种randomtrigger,发现指标影响不大,降低的很少,作者解释说GNN可以把结构相似的trigger和label联系在一起。控制trigger子图的四个参数。...
2022-07-18 23:16:44
780
原创 【AI4Code最终章】AlphaCode:《Competition-Level Code Generation with AlphaCode》(DeepMind)
不同于CodeX的GPT,只用Transformer的decoder,这里用的是完整的Transformer,既有encoder也有decoder。encoder输入是题目的描述(也包括题目的tags、solution使用的语言、题目中的样例),decoder的输出对应的ground-truth是一个solution,可以是对的,也可以是错的。在10次程序竞赛的成绩。模型训练分为预训练和微调,然后预测阶段先大规模采样(召回)得到一百万,然后聚类和过滤得到1000个(粗排),然后选出10个提交(精排)。...
2022-07-18 23:10:57
609
原创 【AI4Code】CodeX:《Evaluating Large Language Models Trained on Code》(OpenAI)
CodeX尝试了从头训练和基于GPT-3的参数fine-tuning,结果发现基于GPT-3的参数fine-tuning并没有取得效果上的提升,但基于GPT-3的参数fine-tuing可以收敛的更快,因此,论文中都采用的是这种训练策略。CodeX是在Github的159GB的代码文本上无监督的训练的,论文造了一个和HumanEval数据集格式一致的SupervisedFine-Tuning数据集,在这个数据集上fine-tuning后的模型效果更好。这点想的有点科幻了。...
2022-07-18 23:07:07
1765
原创 【AI4Code】《Pythia: AI-assisted Code Completion System》(KDD 2019)
它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是“抽象”的,是因为这里的语法并不会表示出真实语法中出现的每个细节。一种是将代码解析为抽象语法树(AST),每个节点包括两个属性type和value,所以每个节点需要两个embedding。,LSTM的输出经过一个线性层后,直接和候选集里的token的embedding做内积,然后对内积结果做softmax。,缺点是用户下拉菜单的时间可能要长于直接打代码的时间。,不过代码补全任务的候选集更小。...
2022-07-18 23:02:01
360
原创 《Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions》 S&P 2022
代码经常包含bug,Copilot在大量未经审查的代码上训练,模型肯定已经学习了脆弱的或者包含bug的代码。这篇文章系统性地分析了Copilot推荐不安全代码的。为了开展此分析,本文promptCopilot在与高风险网络安全弱点相关的场景中生成代码,例如那些来自MITRE的“前25名”常见弱点枚举(CWE)列表。本文在三个维度上探索Copilot的表现——产生漏洞的广泛性、prompt对产生漏洞的影响、受影响领域的广泛性。...
2022-07-18 22:54:01
428
原创 【AI4Code】《Unified Pre-training for Program Understanding and Generation》 NAACL 2021
此外,分析表明PLBART学习程序语法、样式(例如,标识符命名约定)、逻辑流程(例如,else块内的if块等效于elseif块)对程序语义至关重要,因此即使在有限的注释下也表现的很好。PLBART基于BARTbase架构,使用seq2seq去噪预训练来利用PL和NL中的未标记数据,这里有三种噪声策略标记屏蔽、标记删除和标记填充,将有噪音的序列输入encoder,原始序列加上位置偏移输入decoder,目标是去除噪声恢复原序列。decoder的最后一个输出送入线性分类器中分类。...
2022-07-14 22:38:34
437
原创 【AI4Code】《IntelliCode Compose: Code Generation using Transformer》 ESEC/FSE 2020
生成树的时候使用beamsearch,beamwith为K,假设最终生成的序列长度为L,模型一共需要预测K*L次,但是模型可以batch执行,所以一共只需要L次。4)在预训练时,加入一个languagetypeclassification任务,即多一个head,每次预测该语言的类型。对序列token化的处理,一个是用subtoken来缩小词表,一个是屏蔽字符串以防止敏感数据泄漏。1)忽略语言之间的不同,用统一的模型训练多种语言【实验表明这种方式比单独对单语言训练效果更差】...
2022-07-14 22:36:29
580
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人