论文阅读:MOON: Generative MLLM-based Multimodal Representation Learning for E-commerce Product Understanding

这篇文章和MOON技术报告有大量重复,建议先阅读MOON技术报告读书笔记。 基本信息 论文标题:MOON: Generative MLLM-based Multimodal Representation Learning for E-commerce Product Understanding 作者单位:阿里 论文链接:https://arxiv.org/abs/2508.11999 来源:WSDM 2026 Motivation:论文要解决的问题是什么 多模态信息在电商应用的挑战如下: 传统CLIP方法只能学习图片和文本的1对1关系,但是电商场景经常是一个商品标题对应多张商品图片,故传统CLIP已经不太能胜任这种场景,而MLLM可以 电商图片有很多噪声,比如背景、无关商品、促销信息等,需要去噪之后再进行表征学习 领域缺乏电商场景下通用多模态表征的benchmark数据集 对比学习预训练 如图Fig 4所示,整体模型结构和MOON技术报告中的基本一样: 样本构造:使用q2i下单信号构造正样本pair,使用同类目的其他商品作为难负例,使用时空负例采样扩大负例样本数量 训练任务:对比学习,InfoNCE loss 输入特征:包括标题、图片、类目、属性等特征 图片去噪:图片会先使用Qwen2.5-VL进行主体识别,主体识别时同时输入图片和商品标题,让模型提取出符合标题的图片主体。然后会把去噪前后的图片都输入到MLLM中进行表征学习 表征提取:使用MLLM最后一层所有token的hidden states进行mean pooling后得到 本文相比MOON技术报告的创新点在Fig 5,即作者把MLLM中的FFN改造成了MoE结构,作者认为输入给MLLM的特征太多,不同特征反应了商品在不同方面的特点,比如图片、标题、类目、属性等,因此这个MoE让模型能动态自适应关注商品的不同特征。 结果 因为本文的目标是训练通用多模态表征,为了验证通用表征的效果,作者在2个数据集的3个任务上进行了系统性评测,结果如图Fig 1所示,本文的方法比传统方法以及其他MLLM方法都要好。通过消融实验发现,主要提升来自3个创新点:1)图片主体识别;2)MoE;3)扩充负例。 评论 可借鉴 使用MoE让emb关注商品不同特征,这个思路挺好的 可改进 论文整体创新性不够,MLLM生产商品多模态表征的思路很多年前都有了,快手的QARM,小红书的NoteLLM很早就发表了,但本文完全没有引用 电商图片使用主体识别进行去噪的思想之前沃尔玛也发表了,本文没有任何引用:https://bitjoy.net/posts/2025-10-08-vl-clip-paper-reading/。而且图像去噪需要使用另一个MLLM大模型,会增加模型推理和部署的成本,有办法把这一步合并到主模型中吗? 本文第三个创新点提出了通用多模态表征评测benchmark,但并没有提供数据和代码链接 对比学习样本只有下单的Q2I信号,没有点击、加购信号,也没有I2I信号。难负例是同类目其他商品,有假负例的风险很高。比如Q=“手机”,I=“华为手机”,那用“小米手机”作为难负例肯定是不合适的。 MoE结构的Router输入的是商品的所有特征x,感觉不太合理,感觉可以只输入类目信息,因为不同类目的表征关注重点不同,比如服饰类目更多关注图片,而3C数码更多关注标题属性等 离线对比实验的时候,并没有说明不同多模态模型输出的dimension是否一致,是否公平 没有线上AB效果

April 23, 2026 · 1 min

论文阅读:MOON Embedding: Multimodal Representation Learning for E-commerce Search Advertising

基本信息 论文标题:MOON Embedding: Multimodal Representation Learning for E-commerce Search Advertising 作者单位:阿里 论文链接:https://arxiv.org/abs/2511.11305 来源:arxiv Motivation:论文要解决的问题是什么 多模态信息在电商搜推系统中有很重要的作用,本文介绍了阿里在应用多模态信息过程中积累的实战经验,洋洋洒洒31页,介绍内容很多,核心围绕着多模态应用的三步走策略:“Pretraining, Post-training, and Application”,介绍了预训练方法、下游应用方法、工程架构优化等内容。 总体流程 总体流程如图Fig1所示,上面是算法流程,下面是工程架构。算法包括三个流程:MLLM预训练、多模态表征后训练、多模态表征下游应用。工程包括两个环节:表征生产、表征消费。 MLLM预训练(Pretraining) 阿里并不是基于开源MLLM微调生产多模态表征,而是他们内部预训练了一个MLLM,叫TBStars-VL,是一个4B的模型。和通用MLLM一样,TBStars-VL也在通用数据集上进行过NTP的预训练,除此之外,TBStars-VL还在淘宝内部的电商数据上进行过预训练,预训练的任务主要是面向电商场景的QA任务,比如Fig1左上角展示的针对商品图片的描述、商品属性抽取、标题生成、图片主体识别等。这一阶段的预训练主要是给TBStars-VL注入电商领域知识。这部分论文介绍篇幅很短,没有具体细节。 多模态表征后训练(Post-training) 由于TBStars-VL是基于NTP任务训练好的生成式模型,没法直接产出多模态表征,故还需要进行多模态表征后训练,其实就是对比学习微调。 在这个环节,作者把TBStars-VL的生成式单向attention改成了双向attention,以输出层的mean pooling结果作为表征输出。训练任务是经典的对比学习+InfoNCE loss。 在正样本构造方面,本文使用了多种q2i数据,比如图搜图、文搜文、文搜商品(图文)等,协同信号使用了点击、加购、下单等信号。样本统计数据如Table 2所示。虽然本文挖掘了不同协同关系的q2i正样本,但没说这些数据具体怎么用的,是混在一起shuffle训的话,其实学了个四不像。不如每种q2i数据都单独训一套表征。 这一阶段对比学习训练的负样本就是in-batch负例。 完成上述后训练之后,作者后续还进行了一轮精调,即只用下单的q2i正样本,且对所有下单q2i进行了如下清洗: 相似度去重 对于同一个item关联的多个正样本query,使用之前的模型产出q和i的表征,只保留(q,i)相似度最低的pair。作者认为相似度高的pair可能是热门的简单样本,所以只保留相似度最低即难度最大且长尾的(q,i)样本,加强对这部分数据的学习 对训练集中的所有(q,i) pair,把属于同一个spu的sku样本合并,增加样本的多样性,同时避免batch内出现同spu的不同sku互为假负例的情况 最后统计训练集中的(q,i)对应的类目分布,将训练样本的类目分布和线上曝光商品的类目分布对齐,对商品占比高的类目降采样 NER去重 对query和sku的标题文本进行NER,认为实体数量少于2个的文本蕴含信息太少,把这部分样本删掉 此外,这次精调还额外使用了负样本,包括2种负采样方法: 难负例采样。对于正样本(q,i) pair,把和i属于同一个类目的其他商品i’作为i的难负例。这一点我感觉难负例太强了,会出现很多假负例,比如搜“手机”,购买了“小米手机”,但并不意味着“华为手机”就和搜索词“手机”是负例关系。 时空负采样。听着很高级,但其实也是常规操作:时间负采样就是memory bank的思路,空间负采样就是把其他GPU上的emb gather到当前GPU作为负样本。 最后,这一阶段精调的loss也不再是InfoNCE loss了,而是circle loss,这个和InfoNCE loss有点类似,后续有空了研究清楚。 多模态表征应用(Application) 多模态表征在排序模型中的应用结构如图Fig 5所示,相对比较简单,就是用多模态表征和行为流的多模态表征计算相似度,然后用相似度对行为流进行加权求和。 工程架构优化 多模态应用的全链路周期很长,作者在每个环节都进行了很多工程优化,如下图Fig7所示。个人读下来这些优化也比较常规,大部分优化方法我们都用过。由于这部分不是算法关注的重点,不展开介绍了。 效果评估 在效果评估上,作者发现基于图像表征的搜索召回率可以作为优化表征模型的一个代理指标,能和下游排序任务的指标对应上。但是个人认为这个结论不具有普适性,而且这两个指标还是不太一样,搜索召回率本质上是一个召回任务,而下游是排序任务,对emb的细粒度区分能力要求更高。 评价 可借鉴 最后精调使用的样本,使用(q,i)下单样本,并且进行了复杂的数据清洗,得到的数据质量很高,可以参考这些方法进行数据清洗 最后精调使用了circle loss,说是能提升正负例的区分能力,后续可参考 可改进 论文太长了,现在大厂都喜欢写很长的technical report,但是太长了可读性不太好,很多车轱辘话反复说,不够精简,而且重点不突出,创新性不突出 对比实验严重不足,比如为什么需要用内部的TBStars-VL,电商数据pretraining的收益有多大,和直接微调开源MLLM的对比效果如何? Q2I的难负例是否会造成很多假负例? 最后精调的时候,为什么要用circle loss,和使用InfoNCE loss对比效果如何 使用MLLM最后一层的mean pooling,这种和加特殊token的方法哪个更好? 使用图像搜索召回率作为排序指标的代理指标,合理吗?具有普适性吗? Table 3,recall@k指标,k越大recall@k越低,不合理吧,应该越高吧?

April 18, 2026 · 1 min

论文阅读:LREF: A Novel LLM-based Relevance Framework for E-commerce

基本信息 论文标题:LREF: A Novel LLM-based Relevance Framework for E-commerce 作者单位:京东 论文链接:https://arxiv.org/abs/2503.09223 来源:WWW25 Motivation:论文要解决的问题是什么 电商搜索相关性任务是指给定搜索词query和商品item,判断两者在语义上是否相关。针对这个问题,业界通常微调BERT来做判别式任务。随着LLM的兴起,大家都在尝试将LLM应用到搜索相关性任务上,但LLM做搜索相关性任务存在3个挑战: 如何获得高质量数据。对于大模型微调来说,开源大模型本身已经具备很强的世界知识了,针对常规的(q,i)相关性问题已经能比较好地处理。微调进一步提升大模型效果的关键在于如何准备高质量的(q,i)相关性数据。 LLM微调的时候,如何增强LLM在电商场景下根据特定规则进行推理的能力,即如何激发大模型按一定规则进行推理,再判断相关性 大模型有时候过于仁慈,有时候倾向于把不相关的商品判断成很相关,如何纠正大模型的这种问题是个挑战 总之直接把LLM用到相关性判别问题上,有很多挑战,需要逐一解决。 数据筛选方法 首先需要认识到的是,电商相关性任务通常需要人工标注大量的(q,i,label)三元组数据来训练相关性模型。相关性label通常分为5档:Exact, Significant, Marginal, Trivial, and Irrelevant。 作者发现LLM本身已经具备比较强的通识的相关性判别能力,需要重点加强的是LLM针对难例的相关性判别能力,故需要从大量人工标注数据中筛选出难例进行微调。此外,人工标注数据中也存在一些噪声,需要把这些噪声过滤掉。总之,在数据筛选这个环节,核心目标就是如何从大量人工标注数据中筛选出高质量的难例样本。 如图Fig 1所示,作者微调了3个大模型来做数据筛选,3个大模型都是从开源的LLaMA-2-7B 开始微调: Initial Model (IM): 初始模型,从人工标注数据中随机采样(q,i,label)微调LLM得到。由于人工标注数据和线上曝光数据分布一致,即简单样本占大多数,故IM可识别常规简单的q-i相关性问题,但对长尾难例识别能力不足 Challenge Identifier (CI): 把人工标注数据按照曝光分布划分成热门、腰部、尾部(q,i,label),每一部分都采样等比例的样本,用来训练CI。其实本质上就是增加了腰尾部数据的占比,提升CI对中长尾样本(难例)的识别能力 Mislabeled Supervisor (MS): 从人工标注数据中随机选一些样本(q,i,label),问GPT当前标注结果label最有可能替换成哪个,如果GPT回答是label’,则说明label和label’都有可能是合理的。因此,进一步推测人工标注的时候,人类也可能出错,把label’误标成label(或反之)。故用(q,i,label’)数据微调MS,在后续数据筛选中,把MS预估结果作为潜在的错误结果 微调得到上述3个模型之后,最终筛选出来的样本如下,L(x)表示人工标注结果。下面的数据有两个含义: 难样本:IM预测错,CI预测对 去掉噪声样本:如上所述,MS预估结果是潜在的错误结果,所以对于MS(x)=L(x)的样本,人工标注的L(x)也是潜在错误样本,需要把这些样本去掉,即条件MS(x)≠L(x) 多CoT微调 经过上面的环节,我们已经拿到了高质量的难样本(q,i,label),接下来开始正式微调LLM进行相关性判别任务了。由于LLM都是decoder-only架构,在相关性判别的时候,增加CoT能激发LLM的推理能力,提升判别效果。为此,作者设计了3个CoT微调任务: 专家解释:Expert Explaining Chain of Thought (EE-CoT),把(q,i,label)喂给GPT,让GPT解释为什么q和i的相关性结果是label,得到EE-CoT,因此得到新的标注数据(q,i,label,EE-CoT)。微调相关性大模型的时候,喂给大模型(q,i),让其输出EE-CoT和label。 遵守规则:Rule Adherence Chain-of-Thought (RA-CoT),把(rule, q, i, label)喂给GPT,让GPT根据rule,推导出q和i的相关性是label的过程,得到RA-CoT,因此得到新的标注数据(rule, q, i, label, RA-CoT)。微调相关性大模型的时候,喂给大模型(rule, q, i),让其输出RA-CoT和label。 决策反思:Decision Reflection Chain of Thought (DR-CoT),对样本(q,i,label)随机生成错误结果incorrect decision,得到样本(incorrect decision,q,i,label)。把(incorrect decision,q,i,label)喂给GPT,让其分析incorrect decision为什么错误,并给出推导过程,得到DR-CoT,因此得到新的标注数据(incorrect decision,q,i,label,DR-CoT)。微调相关性大模型的时候,喂给大模型(incorrect decision,q,i),让其输出DR-CoT和正确label。 简要总结一下,这个环节就是用GPT做CoT的伪标注,然后通过数据蒸馏的方式把CoT能力蒸馏到相关性大模型中。 ...

April 5, 2026 · 1 min

论文阅读:Retentive Relevance: Capturing Long-Term User Value in Recommendation Systems

基本信息 论文标题:Retentive Relevance: Capturing Long-Term User Value in Recommendation Systems 作者单位:Meta 论文链接:https://arxiv.org/abs/2510.07621 来源:arxiv Motivation:论文要解决的问题是什么 现有推荐系统通常以用户的短期行为作为优化目标,例如用户的click、like等。但是这些短期信号通常存在噪声,且比较稀疏,而且难以捕捉用户的长期需求和留存情况。 本文提出了一种基于调查问卷的留存相关性模型(Retentive Relevance),通过设计针对后续留存的调查问卷,直接获得用户的长期留存信号。并据此训练了一个长期留存模型,用此模型的打分来校准排序模型的打分,由此让推荐系统更加关注用户的长期留存价值。 举个我自己脑补的例子:比如你刷抖音的时候点了一个段子手的搞笑视频,你看完了但是觉得并不搞笑,由于没有显式负反馈,推荐系统只能获取到你点击了这个视频,并且也看完了的正向信号,所以推荐系统在后续训练的时候会把这个搞笑视频当做正样本,再给你推荐类似的搞笑视频。这种以短期行为作为优化目标的方法,无疑是误导了推荐系统,对用户的长期留存是有害的。 如果此时APP弹出来一个调查问卷,问你看完这个视频之后,你以后还会回来看类似的视频吗?你如果点击了是或者否,则系统就能显式获取到你的长期留存label,也就是你对此类视频的真实兴趣情况,这种真实反馈比click或者完播更加可靠,而且是和长期价值高度相关的(复访)。有了这种标注数据,则可以训练一个长期留存的模型,预估用户u对商品i的长期留存概率。用这个打分来修正传统的以即时行为为优化目标的推荐系统的打分。让推荐系统在推荐视频的时候能更多地关注用户的长期留存指标。 调查问卷设计方案 作者对比了3种不同的问卷方案: Retentive Relevance:问以后是否会再回来看类似视频(看未来,长期价值) Interest Matching:问当前视频是否符合用户兴趣(问当下,即时兴趣) Worth Your Time:问当前视频是否值得看(问当下,即时价值) 注意:Interest Matching和Worth Your Time并不等价,感兴趣的视频并不一定值得花这么多时间去看(例如没有营养的搞笑视频),有价值的视频并不一定感兴趣(例如枯燥无味的高数视频)。并且这两者都是对当前观看视频的即时反馈,而Retentive Relevance则更加宽泛一些,它不问用户对当前视频是否感兴趣或者是否有价值,而是问用户以后还会不会回来看类似的视频,非常巧妙,如果用户觉得感兴趣或者有价值,以后都有可能会回来看类似的视频,所以Retentive Relevance能一定程度上覆盖Interest Matching和Worth Your Time,并且是对未来的长期价值的直接提问。 论文中还展示了调查问卷的app界面: 调查问卷结果的分析 一致性分析 三种问卷调查结果的一致性比较高,说明三种调查问卷有比较大的overlap,结果比较可靠。 Retentive Relevance showed substantial correlations with Worth Your Time (r = 0.63, p < 0.001, 95%CI [0.71, 0.75]) and Interest Matching (r = 0.58, p < 0.001, 95% CI [0.66, 0.70]). ...

April 4, 2026 · 1 min

论文阅读:QARM V2: Quantitative Alignment Multi-Modal Recommendation for Reasoning User Sequence Modeling

这篇论文是QARM V1的升级版,建议先看QARM V1的阅读总结。 基本信息 论文标题:QARM V2: Quantitative Alignment Multi-Modal Recommendation for Reasoning User Sequence Modeling 作者单位:快手 论文链接:https://arxiv.org/abs/2602.08559 来源:arxiv Motivation:论文要解决的问题是什么 QARM V1确定了“LLM微调→生产SID→排序模型应用”的多模态在排序场景应用的范式,本文发现QARM V1存在如下不足: (1)QARM V1用于LLM微调的i2i训练数据有很多噪声 QARM V1有2种生产i2i样本的方法: 使用swing这种i2i召回模型收集i2i pair。这个方式容易受到商品热度的偏置,如Fig2a所示,酱油和洗衣液被swing判定为i2i正样本,只不过是因为他们都很热门,并不是因为他们在多模态语义上相似。 使用U2I召回模型收集i2i pair。这个方式召回的i2i正样本pair灵活多变,很容易出bad case。 总之,QARM V1构造的i2i正样本有很多噪声,需要去噪。 (2)QARM V1使用RQ-KMeans生产的SID序列冲突率太高 QARM V1使用3层RQ-KMeans训练产出SID序列,作者发现电商商品的分布非常不均匀,甚至是二八分布的情况,即少数几类商品量非常大,大多数类目的商品数量很少。如果只用RQ-KMeans进行分层残差聚类,在商品分布不均匀的情况下,产出的SID序列的冲突率很高。如图Fig3a所示,KMeans聚类严重依赖于数据分布,当数据分布本身不均匀的时候,聚类结果本身也是不均匀的,这就会导致SID序列冲突。 使用推理大模型去噪的I2I样本构造方法 如下图Fig4所示,针对QARM V1的i2i样本噪声多的问题,本文分别使用Qwen3-0.6B和Qwen3-8B对swing和u2i模型召回的i2i样本进行清洗,清洗的prompt如下图所示,就是让大模型判断i2i pair的两个商品是否是相似或者相关商品,输出yes或no。作者认为u2i模型召回的i2i pair更加灵活多变,所以使用了更大的8B模型对这部分数据进行清洗。经过作者的清洗,发现QARM V1的i2i样本中有10%的swing召回的i2i和70%的U2I召回的i2i都是噪声,这噪声的比例也太大了吧。。。 除此之外,为了增强emb对商品的理解能力,作者又使用更大的多模态大模型Qwen2.5-VL-72B,对商品进行理解,生成针对该商品的QA pair,作为后续NTP任务的训练数据。如上图Fig4右上角部分,针对那个辣条,Qwen2.5-VL-72B生成的QA会问这个商品名称是啥,回答是:亲嘴烧。这一步使用的prompt如下图所示。 微调LLM产出多模态表征 微调结构如Fig4下图部分,LLM输入包括标题、图片、属性等特征,此外还新增了3个特殊token <EMB>,用这3个特殊token的输出mean pooling得到最终的多模态emb,然后进行对比学习训练。不理解为啥需要用3个特殊token,1个足够了吧? 上述对比学习结构都比较常规,本文新增的是对QA pair的NTP任务,就是在三个特殊token后面,让LLM继续以NTP的形式生成QA pair,即样本构造环节通过大模型产出的QA pair。 而且这个NTP任务是以三个特殊token为起点的,因为LLM都是decoder-only结构,为了让NTP任务只看到前面三个特殊token,而不看到开头的标题、图片等商品信息,作者设计了Three-Segment Attention Mask,即NTP任务最多看到三个特殊token往后的token。作者这么设计的原因,是希望通过NTP训练,让特殊token产出的商品表征,能够蕴含QA pair里面的信息。 基于Res-KmeansFSQ的SID序列生产 QARM V1是直接使用3层RQ-KMeans残差聚类生产SID序列,作者在Fig3a中认为电商数据天然的不均匀性,会导致KMeans聚类出来的sid存在很大的冲突。为了缓解这个问题,作者将最后一层的KMeans替换成FSQ。其实正如Fig3a所示,KMeans是对向量空间的柔性的量化,而FSQ直接就是四舍五入,是刚性的量化,在码本空间比较大的情况下,FSQ的冲突率比KMeans低。 如下图所示,M^2就是第二层的残差,在公式(3)中,先通过σ函数把残差映射到0~1之间,然后乘以量化值域L,相当于把残差投影到长度为L的线段上,Fig3b的网格等宽网格很好理解。有关FSQ的介绍可以参考这篇博客:https://spaces.ac.cn/archives/9826 基于多模态表征及SID序列的用户行为建模方法 多模态emb和SID序列在排序模型中的应用也比较常规。整体还是TWIN或者说SIM的先GSU进行soft-search,然后在ESU进行target attention。具体来说,作者在GSU使用的是原始多模态emb进行soft-search,在ESU使用的是SID序列和排序模型进行端到端训练。最终离在线效果都有很大的提升。 ...

March 21, 2026 · 1 min

论文阅读:Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup

基本信息 论文标题:Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup 作者单位:CMU 论文链接:https://arxiv.org/pdf/2101.06983 来源:arxiv 一、问题 对比学习通常使用InfoNCE loss进行训练,公式如下(1): 其中: \(s_i\)是anchor,\(f(s_i)\)是anchor embedding,\(f\)是anchor encoder \(t_{r_i}\)是\(s_i\)对应的positive,\(g(t_{r_i})\)是positive embedding,\(g\)是positive encoder \(t_j \in T\)是batch内其他\(s\)对应的positives,作为\(s_i\)的in-batch negatives。在没有hard negative的情况下,即每条样本是<anchor, positive>这种二元组的情况下,\(|T|\)等于batchsize \(\tau\)是温度系数,通常是一个常数,为讨论方便,后续省略该参数 在经典的双塔对比学习场景下,函数\(f\)和\(g\)通常是两个不同的网络(比如CLIP);在LLM/VLM emb场景下,函数\(f\)和\(g\)通常是共享参数的 对于对比学习,通常有in-batch negatives数量\(|T|\)越大,效果越好。但\(|T|\)越大,意味着batchsize也越大,训练时占用的显存也越多。如何在增大\(|T|\)的情况下不显著增加显存占用,是个很大的挑战。 二、方法 通常我们会使用梯度累积的方法在不增加显存的情况下增大batchsize,但梯度累积只适用于instance-wise loss,即每条样本的loss计算是独立的,这样可以把大batch拆成多个小batch分别计算梯度,然后累加起来。 但是由于对比学习loss计算时涉及到anchor和in-batch negative的运算,即对比学习loss是batch-wise loss,直接把大batch拆成多个小batch不加额外处理的话,小batch内的in-batch negatives就少了,影响对比学习效果。 本文的核心思想是,把公式1中的 对比学习loss 对 模型参数 的梯度求解过程拆分成:loss对表征\(f(s)\)的梯度 乘以 表征 对 模型参数 的梯度。由于只有loss计算需要batch-wise的运算,故上述拆解只有前半部分需要batch-wise运算,后半部分仍然可以instance-wise的计算然后梯度累加。下面来看具体过程。 为方便讨论,我们只看loss对\(f\)的参数的梯度求解过程(比如在\(f\)和\(g\)共享参数的情况下),对\(g\)的梯度求解过程的分析类似。 根据链式法则,对比学习loss \(\mathcal{L}\)对\(f\)的参数\(\Theta\)的梯度求解过程如下:把它拆解成第一项是\(\mathcal{L}\) 对表征\(f(s_i)\)的梯度,第二项是表征\(f(s_i)\)对模型参数\(\Theta\)的梯度,两项相乘就是loss \(\mathcal{L}\)对模型参数\(\Theta\)的梯度。 通过上述拆解为什么能显著降低显存呢,详细分析如下: 对于公式(2)右边第一项\(\frac{\partial \mathcal{L}}{\partial f\left(s_{i}\right)}\),根据公式(1)可以得到第一项的梯度如下公式(5)。也就是说第一项的梯度只与batch内所有的表征\(f(s)\)和\(g(t)\)有关,而与模型参数\(\Theta\)无关。所以我们可以先进行一次不含梯度的前向过程,拿到batch内所有的表征\(f(s)\)和\(g(t)\),由此可计算出公式(5),即loss \(\mathcal{L}\)对表征的梯度。由于这次前向不包含梯度(类似inference过程),所以不用记录各种中间激活值(activations)和梯度,可以大大节省显存,详细可看https://mingchao.wang/4KTgtnFc 的分析(即模型训练过程中activations是占显存的大头)。 计算完公式(5)之后,可以把这部分梯度缓存起来,用于后续计算。这部分缓存的梯度只需要额外占用\((|S|d+|T|d)\)的显存,显著小于海量的模型参数和中间activations的参数量。 对于公式(2)右边第二项\(\frac{\partial f\left(s_{i}\right)}{\partial \Theta}\),这部分梯度就是表征\(f(s_i)\)对模型参数\(\Theta\)的梯度,和常规梯度没什么两样,是instance-wise的,即每个样本的这个梯度计算是独立的。因此可以像常规梯度累积一样,进行mini-batch的计算,然后累加起来。为了完成这第二个过程,需要对每个样本\(s_i\)重新进行一次前向计算,由于需要对参数\(\Theta\)求梯度,所以这一次前向需要记录所有梯度和activations中间值。但是由于这个过程每个样本\(s_i\)可以独立计算,所以可以像梯度累积一样,把大batch拆分成多个小batch,每个mini-batch进行前向计算并进行梯度反向传播,所以显存峰值由mini-batch size决定,也不会太大。 ...

January 25, 2026 · 10 min

论文阅读:Large Reasoning Embedding Models: Towards Next-Generation Dense Retrieval Paradigm

基本信息 论文标题:Large Reasoning Embedding Models: Towards Next-Generation Dense Retrieval Paradigm 作者单位:阿里巴巴 论文链接:https://arxiv.org/abs/2510.14321 来源:arxiv 一、问题 电商emb召回场景,目前的方法都是直接字面语义上的对比学习训练(direct-embedding methods),即q2i的对比学习训练。对于复杂、困难的query,语义理解能力不足,比如下图Fig1中的query=“比茶更提神的饮料”,仍然会召回很多茶,因为字面理解没有理解query背后的深层含义。 二、方法 使用LLM强大的推理能力(reasoning),先推理出CoT,然后基于CoT再产emb。比如上面的例子中,经过LLM推理之后,推理出咖啡、红牛等关键词,通过这些关键词再去产emb然后召回,效果就好很多。 2.1 训练样本构造方法 如下图Fig2中的Data Construction部分: 收集线上query,尤其是那种困难query,就是在现有direct-embedding表现不好的query 把这些query喂给现有召回模型,得到召回商品集合① 然后使用强大的Qwen3-30B-A3B-Instruct生产CoT扩展信息 Unconstrained Reasoning:首先不加任何限制地生产CoT,尽可能利用大模型的世界知识和推理能力,生产充分完全的CoT信息 Information Extraction:由于上一步产出的CoT信息太长了,不利于线上推理,因此把上一步产出的CoT和原始query再次输入给大模型,让大模型抽取其中的关键信息,以keyword list形式输出 Post Processing:最后对上一步抽取的关键词进行后处理,去除重复词,去除query中已有的词等,得到精简、干净的关键词列表,列表最大长度是16 接着把query和CoT喂给已有的向量召回模型,得到扩展的召回商品集合② 由于要训练模型的Reasoning能力,所以只取出集合②-①的差集部分,这部分是CoT带来的增益商品集合 最后使用相关性模型对商品集合②-①进行过滤,过滤出相关的商品 通过上述步骤,产出约7.5kw的<query, CoT, item>三元组 把上述样本划分成两部分,7.1kw的<query, CoT, item>三元组用于Cold start预训练;剩余400w的<query, item>用于RL微调 2.2 Cold Start预训练 对应图Fig2左下角部分,该模块通过大规模的<query, CoT,item>三元组数据预训练,想要达到两个目的:一是让基础模型具备think能力;二是让基础模型产出的emb和下游q2i任务对齐。 这里使用的基础模型是Qwen2.5-3B-Instruct,比生产CoT的模型(Qwen3-30B-A3B-Instruct)小,其实也有点蒸馏的感觉,把大模型的CoT能力蒸馏到小模型中。 训练任务包括两个,一个是CoT的NTP loss(对应图中的SFT loss),另一个是q2i的对比学习InfoNCE loss。query塔和item塔共享参数,他们的emb都是最后一个特殊token <emb> 的emb。 Loss组合: 2.3 RL微调 上一步的SFT主要进行模仿学习,模仿更大的大模型的think能力,小模型本身的reasoning能力受限,接下来需要用GRPO对小模型进行RL微调。RL微调同时对生产CoT和生产emb两个任务都有作用,具体看下面的reward: RL微调设计了3个reward: Format Reward:产出的CoT格式符合“<think> Specific CoT </think><emb>”就得1分,否则得0分 Length Reward:产出的CoT格式符合长度限制(<=16)就得1分,否则得0分 Retrieval Accuracy Reward:联合原始query和产出的CoT产出的增强query emb,与batch内所有的item emb求相似度,正确item所在的排名为\(rank(d_i)\),再根据公式12计算一个排名的reward。核心思想是:正确的item与query的相似度排名越高则reward越大(即rank值越小则reward越大)。 最后,上述3个reward通过三个β系数组合起来: ...

December 13, 2025 · 1 min

论文阅读:Enhancing Embedding Representation Stability in Recommendation Systems with Semantic ID

基本信息 论文标题:Enhancing Embedding Representation Stability in Recommendation Systems with Semantic ID 作者单位:Meta 论文链接:https://arxiv.org/pdf/2504.02137 来源:RecSys 2025 Motivation:论文要解决的问题是什么 搜推广的模型严重依赖于item id embedding的表征质量,但在工业场景下,搜推广的id表征存在如下挑战: id量级非常大,常常是数十亿甚至是百亿的规模。因此,通常不可能给每个id一个单独的embedding(即文中的individual embedding, IE),IE的成本太高 id分布非常不均匀,马太效应严重。文中统计:0.1%的头部item占据了25%的曝光量;5.5%的腰部item占据了50%的曝光量;94.4%的尾部item只占据了25%的曝光量 id分布漂移严重:搜推广场景中item的变化非常频繁,无时无刻不在发生着新id的产生和旧id的退出,而且不同id存活的时间周期也不尽相同,所以id的准入准出策略很难完美适配所有item 针对上述问题,常见的做法是对item id采用hash然后查emb的方式(即文中的random hash,RH),将所有id hash到一个固定大小的空间,然后查emb。但是RH方式有如下缺点: 存在hash冲突,把不相关的id hash到一个桶里,导致语义混乱,学习效果不佳 无法解决id分布漂移的问题,比如hash到同一个桶的A、B两个id,如果B出现频率变高,则会带偏A的分布,影响了A的效果 无法进行知识共享,例如新出了商品iphone15,iphone15无法共享到老的iphone14的emb知识,iphone15的id emb必须完全重新学习。针对这种情况,作者做了一个更加极端的AA实验,就是copy一个完全相同的商品,只换item id,如果是IE或者RH策略,则新商品由于id emb是随机初始化的,效果不佳,这是id-based的通病 基于前缀n-gram的semantic id表征方法 针对上述问题,作者沿用了semantic id的思路,首先使用内容理解团队产出的文本、图片等多模态emb,然后基于过去3个月的item多模态emb,训练RQ-VAE模型,并产出所有item的semantic id。 上述过程都是常规操作,重点在于如何基于semantic id得到item emb表征。假设semantic id是L层,每层的codebook size是K: 最常规的做法:每层都初始化一个K*d的emb table,每层sid查各自的emb table,然后把L层的sid emb加起来。但是本文完全没有提这种方法,也没有和这种方法比较,非常奇怪。 为了比较,我个人再详细描述下这种常规做法。比如老item A的sid是(c1,c2,c3);新来一个item B,它的sid是(c1,c2,c4)。用常规方法,A的emb是c1+c2+c3,B的emb是c1+c2+c4。两者c1、c2是可以共享的,所以常规方法也能起到一定的知识共享的效果,共享项有2项:c1、c2。但是因为RQ-VAE的沙漏问题,c2很有可能是沙漏瓶颈,信息量不足。 作者对比了Table 1中的几种方法: Trigram和Fourgram差不多,如果L=3用Trigram、L=4用Fourgram的话,本质上是把L个sid映射成了一个无冲突的int。但是这种方法映射出来的int数量太多了,是\(K^L\)。如果K=1024、L=3,则\(K^L\)就已经超过10亿了,这和直接无冲突的IE方法一样了,而且存在新id无法共享老id学到的知识的问题 All bigrams,就是所有的sid的2-gram。还是上面的例子,A的emb相当于\(c_1c_2+c_2c_3\),B的emb相当于\(c_1c_2+c_2c_4\),两者可共享\(c_1c_2\)项,相比于常规方法,虽然共享项数变少了,但粒度更精细了,孰好孰坏未可知。由Table 2可知,All bigrams的效果至少比Trigram和Fourgram好很多了,而且如果层数L越大,可共享项越多 Prefix-ngram(简称Prefix-SID方法),本文提出的新方法,把所有前缀组合成新id查emb,然后所有emb再求和。还是上面的例子,A的emb相当于\(c_1+c_1c_2+c_1c_2c_3+c_2+c_2c_3+c_3\),B的emb相当于\(c_1+c_1c_2+c_1c_2c_4+c_2+c_2c_4+c_4\),两者可共享\(c_1, c_1c_2, c_2\)三项,比之前的所有方法可共享的信息都多,而且如果层数L越大,可共享项越多,因此这种方法的效果最好,训练也最稳定 实验结果很丰富,做了很多分析,Prefix-SID方法有如下优势: 相比于IE和RH方法,Prefix-SID方法对中长尾item的提升尤其显著,因为新id和老id的表征有了知识共享 对id分布漂移问题更不敏感:由于电商模型训练时消费数据的顺序是和数据的时间一致的,比如一个月的数据,按照1号、2号、…31号这样的时间先后顺序依次训练,理论上4号的模型在4号的测试集上的效果是最好的。作者做了一个实验,分别用20号和4号的模型都在4号的测试集上进行评测,看看20号的模型指标相比4号降低了多少。作者发现,使用Prefix-SID方法和IE方法,两者的指标降低幅度都差不多,都比较小。首先IE方法由于不存在hash冲突,所以20号的模型仍然能比较好地预测4号的数据;其次,Prefix-SID方法虽然有hash冲突,但是因为冲突的item都是语义相似的,可以进行新老item的知识共享,所以这个冲突反而是好事,对模型效果无影响。但是作者发现RH方法的20号的模型在4号数据上评测指标下降比较多,因为有hash冲突,而且冲突是随机的,20号的分布已经变化很大了,导致在4号数据上效果不佳。Table 4的指标越小越好。 基于Prefix-SID方法虽然也有hash冲突,但是冲突到同一个semantic id的item表征更相似,而RH冲突到同一个桶里的item是完全随机的,相似度差。作者以IE为base,把Prefix-SID和RH都各自都冲突到同一个桶的IE emb提取出来,计算类内相似度和类间相似度,发现基于Prefix-SID的类内相似度方差小,类间距离大,说明Prefix-SID确实能把相似item聚到一起。 评论 可借鉴 基于Prefix-SID方法确实能提高新item和老item的信息共享数量,方法值得借鉴 论文实验分析很丰富 可改进 基于Prefix-SID方法居然没有和最常规的加和方法比较,是本文最大的不足

October 9, 2025 · 1 min

论文阅读:VL-CLIP: Enhancing Multimodal Recommendations via Visual Grounding and LLM-Augmented CLIP Embeddings

基本信息 论文标题:VL-CLIP: Enhancing Multimodal Recommendations via Visual Grounding and LLM-Augmented CLIP Embeddings 作者单位:沃尔玛 论文链接:https://arxiv.org/pdf/2507.17080 来源:RecSys 2025 Motivation:论文要解决的问题是什么 多模态q2i召回通常使用CLIP的对比学习方式进行训练,在电商场景下存在2个问题: CLIP这种方式通常是对图片整体的表征,缺乏细粒度的目标检测能力,尤其在电商场景,比如fig1,卖衣服场景,传统CLIP只能识别整张图片是一件T恤,难以关注T恤上的图案等细节特征;另外,电商图片往往存在很多附加背景、道具、模特等元素,会影响主体物体的表征 电商标题、属性等文本描述通常参差不齐,存在错误、堆砌、图文不符等问题,导致CLIP训练时图文对齐效果不佳 VL-CLIP解决方案 针对图片的处理: 将图片和商品类型(product type)输入到开源模型Grounding DINO中,让模型进行目标检测,将可信度超过某个阈值且可信度最高的区域抠出来,输入到CLIP的图像encoder中。通过这步预处理,相当于对电商图片进行了关键主体识别和提取,只提取和商品最相关的主体进行图像表征。文中使用的图像编码器是ViT-B/32。 针对文本的处理: 将商品的类型、标题、描述、性别、年龄等文本描述以及图片本身输入到Summarizer多模态大模型,让大模型产出精简、准确的文本描述\(q_0\) 将\(q_0\)和商品图文信息输入到Evaluator多模态大模型,让大模型对\(q_0\)的质量进行评判,如果\(q_0\)质量很好,则直接输出<STOP>;否则指出\(q_0\)的问题所在,并说明改进方法 如果第2步输出不是<STOP>,则将第2步的输出再输入到Refiner大模型,让大模型根据第2步的结果继续调整并输出更优的文本描述\(q_i\) 不断重复第2、3步,直到输出<STOP>,或者最多重复5遍 将产出的精准的文本描述q输入到CLIP的文本encoder中,文中使用的是BERT系列。产出的emb维度是512 上述Summarizer、Evaluator、Refiner都是VLM,文中使用的是GPT-4o,三个任务的prompt设计参考论文附录Table 9 上述对图片和文本的处理本质上是去噪,提取图片的主体物品、让文本描述更加精准。 产出多模态emb之后,后续的操作就是常规的召回流程了,使用HNSW进行ANN召回。 评论 可借鉴 使用Grounding DINO对图片进行主体识别,值得借鉴 使用VLM对商品标题、描述等文本信息进行去噪,值得借鉴 但如果商品量级很大的话,这两个步骤估计会很耗时 可改进 如果是q2i场景,直接用query文本是不是更真实,更接近搜索日子的真实数据分布?

October 8, 2025 · 1 min

论文阅读:Generative Recommendation with Semantic IDs: A Practitioner’s Handbook

基本信息 论文标题:Generative Recommendation with Semantic IDs: A Practitioner’s Handbook 作者单位:Snap 论文链接:https://arxiv.org/pdf/2507.22224 来源:CIKM 2025 这是CIKM 2025的一篇resource文章,比较简单。核心内容是开源了一个基于semantic id的生成式推荐框架GRID,可以很方便地做各种消融对比实验。 主要内容 主要结论如下: 对于semantic id生成算法,简单的RQ-KMeans效果反而是最好的,好于R-VQ和RQ-VAE 生产pretrain emb的LLM模型参数量越大,效果越好,但是提升幅度有限 生产semantic id的codebook size和网络层数并不是越大越好,常规的3层,每层256个id效果反而最好 生成式推荐时,是否需要在用户行为序列基础上增加一个user id,实验发现增加user id效果反而变差,不增加user id效果最好 生成式网络结构encoder-decoder对比decoder-only,发现前者效果更好,因为前者能充分学习到行为序列完整的信息 对行为流进行滑动窗口数据增强能提升模型的泛化能力 当semantic id到item存在映射冲突时,随机选一个item的效果和对冲突item追加一个区分标识(digit),两者效果差不多 在生成式beam search的时候,限制只输出合法semantic id和不增加限制,两者效果差不多 评论 看这篇文章主要是想看看不同semantic id生产方法的对比,发现RQ-KMeans居然比RQ-VAE更好。个人感觉这两个方法效果应该差不多,后者应该更好点才对。首先,RQ-VAE的量化loss本质上和KMeans聚类是一个意思;其次,RQ-VAE还增加了一个重构loss,感觉产出来的semantic id和原始emb的信息损失应该更少。 此外,本文的所有实验都是基于亚马逊的公开数据集,数据量肯定不能和真正的工业数据集相提并论,所以文中很多结论有可能只适用于本文的设定,换一个场景估计结论就变了,所以看看就好。 最后,文中很多结论只写了现象,要是能增加原因分析就好了。

October 7, 2025 · 1 min