论文阅读:GALA: Generative Aligned Learning for Adaptive Multimodal Representation in the Taobao Shangou Recommender System

基本信息 论文标题:GALA: Generative Aligned Learning for Adaptive Multimodal Representation in the Taobao Shangou Recommender System 作者单位:阿里 论文链接:https://arxiv.org/abs/2607.29213 来源:ICDE 2026 Motivation:论文要解决的问题是什么 目前在电商模型中使用多模态特征主要遵循两阶段范式:首先进行多模态预训练,这一阶段主要目的是对齐图文语义空间;然后将预训练的多模态表征加入到排序模型中,这一阶段主要目的是对齐基于用户行为的排序目标。 作者认为这两个阶段比较割裂,任务目标也不一致,导致效果欠佳。因此本文的方法就是在两阶段中间新增了一个阶段,变成了三阶段范式。新增的中间阶段是用第一阶段的emb在排序任务上进行GRPO微调,相当于将emb一定程度上对齐了排序目标,对原有的两阶段范式进行了桥接。此外,也对原有的两阶段进行了各自的优化。 主要应用场景是淘宝闪购外卖场景。 整体流程 三阶段的整体流程如图Fig2所示: Stage1:多模态预训练,对齐图片、文本等各种模态 Stage2:多模态后训练,针对下游基于用户行为的排序任务微调多模态表征 Stage3:多模态排序应用,设计了Gating机制自适应融合多模态表征和ID表征 多模态预训练 样本构造 外卖与电商有个很大的区别是,外卖搜索结果页是店铺排序,而电商是商品排序。 作者基于搜索下单日志,对每个店铺,拿到其最高频下单的10个query,以及这10个query下最高频购买的5个商品。由此拿到了三元组<query, shop, item>,其中shop有店铺文本描述信息text;item有商品图片image和文本text。 对齐任务 有了上述三元组样本之后,多模态预训练有两个对齐任务,第一个任务是商品本身的图片和标题的对齐,差不多是标准的CLIP或者对比学习了,没有难负例,直接用的in-batch负例。 $$ \begin{equation} \mathcal{L}_{\mathrm{I2T}} = -\log \frac{\exp(t \cdot i_{+})/\tau}{\sum_{j=0}^{K} \exp(t \cdot i_{j})/\tau}, \end{equation}\tag{1} $$第二个任务是query到shop的对齐,包含三个子任务:query对齐店铺描述、query对齐高频商品图片、query对齐图文融合表征。如下图Fig4所示,图文融合作者采用的是Google T5的cross attention方式。最后把三个loss以不同系数加权起来。第二个任务的对比学习方式与第一个任务完全一样,也是InfoNCE loss和in-batch负例。 $$ \begin{equation} \mathcal{L}_{\text{Q-Align}} = w_1 \mathcal{L}_{\text{Q-Text}} + w_2 \mathcal{L}_{\text{Q-Image}} + w_3 \mathcal{L}_{\text{Q-Fusion}}. \end{equation}\tag{2} $$本文的多模态backbone是GME模型。 ...

October 18, 2026 · 1 min

论文阅读:Bridging Language and Items for Retrieval and Recommendation: Benchmarking LLMs as Semantic Encoders

基本信息 论文标题:Bridging Language and Items for Retrieval and Recommendation: Benchmarking LLMs as Semantic Encoders 作者单位:加州大学 论文链接:https://arxiv.org/abs/2403.03952 来源:ACL 2026 Motivation:论文要解决的问题是什么 文本模态emb的效果评测通常使用MTEB评测集(https://arxiv.org/abs/2502.13595),但是这个评测集的任务是通用场景的emb召回排序任务,无法反应emb在搜推场景下的效果。 通用场景和搜推场景在emb使用方面存在如下差异: Emb在搜推场景只作为一个基础特征,上层有比较复杂的搜推模型。但MTEB评测任务都是直接用emb进行相似度检索。两者使用方式有较大差别 搜推场景的文本通常比较短,且存在关键词堆砌,噪声较多。而MTEB中的文本通常是格式规范的句子或者段落。两者文本数据分布差别较大 因此,emb在MTEB和搜推场景下的效果可能不完全一样。本文的核心就是提供一个针对电商搜推场景的评测集及评测任务,作搜推场景的benchmark。 Amazon Reviews 2023 dataset 本文最大的贡献是提供了一个大规模的搜推数据集:Amazon Reviews 2023 dataset。这个数据集爬取了1996~2023年之间的33个类目的所有用户评论数据,主要包括两部分,一部分是(user, item, review)评论数据,另一部分是(item, info)商品信息。而且难能可贵的是,用户评论、商品标题、图片都是明文数据,可以进行多模态分析。如下Table1和Table2所示,该数据集无论是数据规模还是时间跨度,相比其他数据集都有明显优势。 数据下载地址见:https://amazon-reviews-2023.github.io/,该页面中分不同类目对数据集进行了拆分,拆分之后,在每个类目,用户的历史行为就比较短了,如下Table3的Avg.#Items Per User,用户的平均行为长度只有2~3,太短了。如果想做较长的用户行为建模的实验,可以试着把所有类目的数据合并一下。 搜推评测任务 基于Amazon Reviews 2023 dataset,本文评测emb的方法如图Fig1上半部分: 提取item的文本信息(包括标题、描述等) 使用冻结的LLM emb编码器得到item emb 用item emb训练下游的搜推模型,并在不同任务上评测搜推模型的效果 本文设计了3个搜推评测任务,如图Fig1下半部分 序列推荐:把用户历史行为按照时间先后顺序排列,然后使用Transformer decoder建模,loss是last item预测任务,多分类交叉熵损失 协同过滤:把用户行为进行pooling聚合得到用户表征,然后与商品表征进行对比学习,类似U-I双塔模型,没有考虑用户行为序列的时序关系 产品搜索:根据真实query或者大模型合成的query,使用query emb进行ANN搜索,根据搜索结果和真实结果计算排序指标,这个任务是一个zero-shot的无需训练的评测任务 评测结果 整体的评测结果如下Table 6所示: 有如下结论: Emb在本文的搜推数据集上的性能表现与在通用的MTEB数据集上的性能表现差异很大。如图Fig 2所示,在MTEB表现一般的GritLM,在本文表现很不错;而在MTEB表现很好的Qwen3,在本文表现一般。侧面说明不同任务的数据分布差别很大,没有哪一种emb能够通吃所有任务。 Emb模型的scaling up,在不同任务上的表现并不一样。作者发现,如果下游的搜推模型比较简单,比如是协同过滤模型,则emb模型scaling up能带来下游任务的提升。但是如果下游搜推模型本身已经比较复杂了,比如是序列推荐的Transformer,则上游emb模型的scaling up在下游任务中能带来的提升有限。 ...

October 18, 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

论文阅读: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

论文阅读:Progressive Semantic Residual Quantization for Multimodal-Joint Interest Modeling in Music Recommendation

基本信息 论文标题:Progressive Semantic Residual Quantization for Multimodal-Joint Interest Modeling in Music Recommendation 作者单位:网易云音乐 论文链接:https://arxiv.org/pdf/2508.20359 来源:CIKM 2025 Motivation:论文要解决的问题是什么 多模态emb在搜推的应用方式,通常是先将多模态emb转换成semantic id,然后把semantic id用到搜推模型中,这种方式有如下两个问题: 模态内语义退化:多模态emb转换成semantic id通常使用RQ-VAE或者RQ-KMeans的方法,这种方法在不断残差的过程中,后续残差聚类结果已经不能反映初始emb的聚类效果了。其实就是semantic id的沙漏问题,具体可以看这篇文章,后续有空再分享这个问题。 简单来说,如下图所示,初始有DJ、Rock、Lullaby、Choir四个类,但是对残差emb(即RQ-VAE的第二层)聚类的话,初始的四个类的item就打散了,会聚到不同的簇中,也就是RQ-VAE的后续层的聚类效果已经和初始emb的聚类效果很不一样了,这就是文中说的语义退化问题 模态间建模差异:搜推场景的item通常有多种模态特征,比如文本、图像、音频等,传统方法在多模态融合方面比较简单,不能很好地捕捉多模态之间的关系。 PSRQ生产semantic id 本文是音乐推荐场景,主要用到两种模态:text和audio,分别用百川和MERT提取text和audio的模态emb。 生产semantic id的方法如下图所示: fig2a是传统的RQ-KMeans的方法,每一层都用上一层的残差进行聚类。如上文所述,由于沙漏问题,会导致后续层次的semantic id存在语义退化问题 fig2b是本文新提出的PSRQ量化方法,在RQ-KMeans基础上,每一层除了有上一层的残差向量,还会concat上初始emb减去残差emb后的向量。这样就能区分出残差相似,但初始emb不同的item了,也就避免了RQ方法的沙漏问题,后续semantic id也能保留初始emb的语义信息。fig1d能看出来第二层semantic id仍然能够反映初始emb的分类效果。 Semantic id在下游的应用方法 如下图所示: 每个item有两套多模态emb:text和audio,但是有三套semantic id,除了text和audio各自产一套semantic id之外,还会把text和audio的emb concat起来,再产一套semantic id,相当于多模态融合的semantic id semantic id的emb在排序模型中随机初始化,然后端到端训练 semantic id在用户建模时,使用DIN模型,query用的是多模态融合的semantic id emb,行为流分别用text和audio的semantic id emb。作者说这种方法既能捕捉到单模态细粒度的信息,又能建模跨模态的交互信息 评论 可借鉴 PSRQ的semantic id生产方法确实很有意思,在每一层都用上原始emb,这样不同簇的item在每一层都能分开,不会出现沙漏问题,使得每一层的semantic id都能保留原始emb的语义聚类信息 产了多套semantic id,单模态semantic id是常规操作;多模态emb concat后也产一套semantic id,是个创新点 用户建模时query用多模态semantic id,行为流用单模态semantic id,也是个创新点,虽然论文说这种方法效果最好,但是有点存疑 论文有个实验结果对比了不同semantic id量化方法的效果,结论是:PSRQ > RQ-KMeans = RQ-VAE > VQ > PQ 可改进 pretrain emb和semantic id的生产都没有对齐协同信号 semantic id在下游应用时直接端到端训练,而没有使用codebook初始化,会不会丢失信息比较多? 产semantic id的过程中,模态内语义退化的问题,描述了现象,但是没有用定量的指标来说明问题,感觉可以借鉴【论文阅读:Empowering Large Language Model for Sequential Recommendation via Multimodal Embeddings and Semantic IDs】的方法,定量说明后续层的semantic id的聚类效果或者说区分能力相比初始emb已经相差甚远了 fig2b中,第一层的codebook的dim=d,后续层的codebook的dim=2d,那么后续层的残差dim也是2d,那么初始emb怎么和后续的残差emb相减呢,维度对不上啊?我理解可能是这样的,后续层聚类的时候用的是concat的dim=2d的emb,但是算聚类中心的时候只用了残差本身的emb,这样就能解释得通了,但是文中对这部分的细节没有解释。

October 6, 2025 · 1 min

论文阅读:DAS: Dual-Aligned Semantic IDs Empowered Industrial Recommender System

基本信息 论文标题:DAS: Dual-Aligned Semantic IDs Empowered Industrial Recommender System 作者单位:快手 论文链接:https://arxiv.org/pdf/2508.10584 来源:CIKM 2025 Motivation:论文要解决的问题是什么 Semantic id生产时,要么没有和协同信号对齐(fig2(1)),要么是两阶段对齐方式(fig2(2)): 例如LETTER先生成协同emb,然后和semantic id对齐 或者例如QARM,先协同对齐emb,再生产semantic id 把协同对齐和生产semantic id分成两个阶段,天然有信息损失,不是最优的。本文的目的就是把生产协同emb,以及semantic id的协同对齐放到一个模型中联合训练完成,尽量减少信息损失(fig2(3))。 主模型 主模型如上图所示,中间的ICDM是user和item的双塔模型,用于学习user和item的协同id-based emb;两边分别是生产user和item的semantic id的量化模型。 中间的ICDM就是经典的召回双塔模型,使用点击样本进行训练,唯一不同的是,在user和item塔都有流行度去偏模块,用于学习user和item的无偏emb,后续user和item的semantic id协同对齐用的也是无偏的emb。 两边分别是user和item的semantic id量化模型,两者比较类似,以item为例: 先把item的各种信息,如title、desc、ocr等信息用文本构造成prompt,输入到LLM,借助LLM的summary和reasoning能力,产出item的详细描述 然后把LLM产出的描述再输入到一个预训练的embedding模型PLM,文中用的是bge m3模型,得到item emb 后续就是标准的RQ-VAE过程了 需要注意的是,上述前两步,分别用到了LLM和PLM两个大模型,而且看图上这两个模型都是freeze的,也就是说并不微调这两个大模型。后续协同对齐用的emb是RQ-VAE重构emb的中间层结果,即图中的item quantized emb。 semantic id的协同对齐方面,有三大类对齐任务: U2I对齐:量化user emb和协同item emb对齐、量化item emb和协同user emb对齐 U2U和I2I对齐:量化user emb和协同user emb对齐、量化item emb和协同item emb对齐 U2U和I2I的共现对齐:点击相同item的两个量化user emb对齐、同一个user点击的两个item的量化item emb对齐 由于fig3中的协同模型和semantic id模型是联合训练的,总共有3大类loss: 中间的ICDM的双塔召回模型的loss 两边的产semantic id的loss 三个模块的对齐loss 评论 可借鉴 把semantic id的生产和协同信号对齐统一成一阶段的模式,信息损失更少 中间的ICDM模型生产协同emb时进行了去偏,协同对齐的时候用的是去偏的emb,这是其他论文很少提到的 可改进 太复杂了!3个模块,3大类loss,每类loss又有很多个小loss,总loss数量加起来有十多个。。。 任务太多,各种去偏、对齐loss,真的不会互相影响吗? 中间的ICDM模块有必要吗?我理解ICDM本质是为了训练产出协同emb,但是因为训练样本本身是点击样本,样本本身已经包含了搜推场景的协同信号,也就是ICDM本身没必要存在了,直接用相同的样本训练两边的semantic id量化模型就行了,也能实现在训练semantic id的过程中,完成协同信号的对齐 生产semantic id的emb来自LLM和PLM,但是这两个大模型都是freeze的,如果把这两个模型也sft,效果会不会更好?其实我原本以为的一阶段就是这样的,这也是我在【论文阅读:Empowering Large Language Model for Sequential Recommendation via Multimodal Embeddings and Semantic IDs】中提到的一阶段方法。

October 5, 2025 · 1 min

论文阅读:QARM: Quantitative Alignment Multi-Modal Recommendation at Kuaishou

基本信息 论文标题:QARM: Quantitative Alignment Multi-Modal Recommendation at Kuaishou 作者单位:快手 论文链接:https://arxiv.org/pdf/2411.11739 来源:CIKM 2025 Motivation:论文要解决的问题是什么 多模态emb在搜推场景应用时通常采用如下图的两阶段方式,先预训练多模态emb,然后作为一个冻结特征放到搜推模型中。这种方式存在2个问题: 表征不对齐:多模态emb预训练的任务通常是图片分类或者文本的MLM,和下游搜推任务不对齐 表征不更新:多模态emb在搜推任务中作为冻结特征,没有更新 本文的方法就是想要解决上述2个问题。 对齐搜推任务的多模态emb预训练 为了解决多模态emb表征不对齐的问题,本文提出的多模态emb预训练任务直接对齐搜推场景,使用U2I和I2I召回模型,挖掘出相似item pair,然后通过对比学习微调多模态大模型。 具体来说,通过U2I和I2I模型,能够拿到item emb;然后用每一个target item emb去行为流中检索出最相似的商品,作为trigger item emb。<trigger, target>构成一对正样本,然后进行对比学习训练。 通过召回模型构造的训练样本,和搜推场景的协同信号对齐了,解决了开头提到的第一个问题,即表征不对齐的问题。 Semantic id生产方法 Semantic id的生产方法如上图右半部分所示,有两种方式: VQ:直接圈定一定数量(如N)的item emb作为底池,编号1~N,然后任意来一个item emb,通过对底池emb进行KNN搜索,找出top-k相似商品,假设是(a,b,…,k),则VQ编码的semantic id就是(a,b,…,k)。文中取k=25,感觉挺大的。。。 RQ-Kmeans:对圈定的N个item emb不断进行Kmeans聚类、求残差、残差继续Kmeans聚类的过程。文中取迭代次数为L=6,但是没说每次聚到多少个类。 注意:文中的RQ-Kmeans方法和RQ-VAE还不一样,RQ-Kmeans没有训练过程,也没有重构loss,纯粹是每次进行聚类,然后选聚类中心作为码本的过程。文中也没有对比过为啥不用RQ-VAE。 产出两套semantic id之后,直接在下游排序任务中进行端到端更新,解决开头提到的表征不更新的问题。具体建模方法比较常规,不是本文的重点,略讲。 评论 可借鉴 多模态emb预训练任务是i2i的,直接和下游搜推任务对齐 semantic id有两种产出方式,VQ和RQ-Kmeans,尽可能多地保留原始多模态emb的信息 可改进 多模态emb预训练和下游任务对齐,在2025年不算新鲜事了,常规操作。而且文中i2i的构造过程依赖U2I和I2I召回模型,有外部依赖,不够漂亮 VQ的方法,k=25这也太长了吧,相当于一个小型行为流了,会导致下游任务的特征处理更复杂 为什么用RQ-Kmeans而不是RQ-VAE,没有任何说明与对比 从pretrain emb量化成semantic id的过程中,存在严重的信息丢失,这在Empowering Large Language Model for Sequential Recommendation via Multimodal Embeddings and Semantic IDs论文中有讨论

October 4, 2025 · 1 min

论文阅读:Empowering Large Language Model for Sequential Recommendation via Multimodal Embeddings and Semantic IDs

基本信息 论文标题:Empowering Large Language Model for Sequential Recommendation via Multimodal Embeddings and Semantic IDs 作者单位:香港城市大学&腾讯 论文链接:https://arxiv.org/pdf/2509.02017 来源:CIKM 2025 Motivation:论文要解决的问题是什么 LLM4SR的基本范式如下,即用LLM直接来做搜推的范式(这种方式在学术界常见,但在工业界不常见)。由于LLM的输入词表范围是有限的(通常比较小),因此其token emb dim通常比较大,比如2048或者4096;而搜推场景的item量级很大,而且在不断更新,因此工业界经典的id-based的搜推模型的item emb dim通常比较小,比如64或128。经典的id-based的搜推模型能比较好地学习到搜推场景的协同信号,为了让LLM模型也能感知这种信息,LLM4SR范式通常会先预训练一个id-based的经典搜推模型,然后将其中的item id emb通过下图的Linear Projection的映射层,映射到LLM token emb的空间,让LLM也能感知搜推的协同信号。 上述LLM4SR范式存在两个问题: 维度坍缩:id-based训出来的id emb dim比较小(如64),LLM token emb dim比较大(如4096),在由id emb通过Linear Projection映射到toen emb的过程中,虽然64映射到4096空间了,但扩维后的矩阵存在低秩问题,即还是只利用了4096中的64维的空间。 论文中,作者分两种情况进行了分析,如果Linear Projection只是一个线性层的话,通过公式推导能得出上述结论;如果Linear Projection包含非线性变换,作者通过实验分析也发现了维度坍缩的现象。 灾难遗忘:除了使用id-based模型产出的id emb,LLM4SR也常用多模态模型产出item emb表征,然后转换成semantic id输入到LLM4SR中。在这种情况下,产出的semantic id通过会遗忘多模态item emb的信息,导致下游LLM4SR的效果不佳。 论文中,作者用公式9来衡量semantic id保留pretrain多模态emb的信息量。具体来说,如果行为流中的商品序列是{A,B,C,D},target item是E。使用pretrain多模态emb能计算出E和A~D的相似度,例如相似度<E,A> > <E,B>。如果将pretrain多模态emb转换成semantic id,然后由semantic id恢复出新的A~E的emb之后,再计算E和A~D的相似度,如果仍然有<E,A> > <E,B>,则认为一致(concordant),否则不一致(disconcordant)。这个分析方法挺好的,通过这个指标能估算出转换成semantic id之后,仍然保留原有pretrain多模态emb对搜推场景的序关系的保留程度。 作者发现,转换成semantic id之后,信息只保留了37.14%;进一步,如果semantic id是在下游任务中端到端训练的,则信息只保留了5.5%,也就是说94.5%的pretrain emb的序的信息都丢掉了,也就是灾难遗忘。 Semantic id构建方法 3套emb来源,一套id-based经典搜推模型产出的包含协同信号的emb,另外两套是LLM2CLIP产出的多模态文本和图片emb。作者提到传统CLIP对长文本处理能力较弱,所以升级到LLM2CLIP,能更好地处理长文本。 Semantic id构建方法是经典的RQ-VAE的方法,但有如下两个改进点: 将emb的重构loss由MSE升级成MMD (maximum mean discrepancy),MSE是计算原始emb和重构emb的欧式距离的误差,而MMD是计算两个分布的diff,实验表明能MMD比MSE能保留更多的pretrain多模态emb信息(即上述公式9),保留44.36% 对量化后的emb做了对齐,因为LLM2CLIP本身进行了图文模态的对齐,所以文中只新增了id emb分别和文本、图片模态的对齐 此外,还有一点论文没提但可能和常规RQ-VAE不同之处,就是原始emb在进行RQ-VAE之前,有一个Encoder升维的操作,在重构loss前对应有一个Decoder降维的操作,而semantic id量化恢复emb是Decoder之前的那个。这一升一降,估计也有助于缓解维度坍缩。 ...

October 4, 2025 · 1 min

论文阅读:LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation

摘要 GCN模型是不是越复杂越好呢?这篇文章分析发现,GCN中常用的矩阵变换(feature transformation)和非线性激活函数(nonlinear activation)没有作用,甚至有反作用,据此作者提出了一个非常简单的GCN模型LightGCN,模型参数只有节点的embedding。这么简单的模型在推荐任务上,比大多数复杂模型的性能都要好,而且作者从理论分析了如此设计存在的若干好处。 简介 作者所在团队在2019年发表了一个NGCF的模型,该模型基于user和item的交互关系网络,使用GCN训练得到user和item的embedding,然后使用embedding相似度进行推荐。 简单来说,第k+1层的user和item的embedding使用如下公式计算。其中的W1是直接对embedding进行变换的矩阵,W2是对user和item点乘之后进行变换的矩阵;而σ是非线性激活函数。 以user为例,右边有两项,第一项是对user在第k层的embedding进行矩阵变换;第二项是邻居聚合。其中邻居聚合又有两项,第一项是对item的embedding进行矩阵变换;第二项是对user和item点乘之后进行矩阵变换。 作者发现,对于协同过滤任务来说,由于user和item都只有ID本身,没有很多的属性,所以并不需要复杂的矩阵变换和非线性激活函数。言下之意是,如果节点有丰富的属性信息的话,非线性变换和激活有用?感觉可以这么理解:有些属性重要,有些属性不重要,所以需要非线性激活函数进行识别?如果只有节点ID的话,ID的embedding的所有维度都是重要的,不需要非线性激活,直接线性加权聚合就行了。 然后作者对NGCF模型进行了简单的消融实验,如下表所示,NGCF就是原始的NGCF,NGCF-f、-n、-fn分别表示去掉矩阵变换W1和W2、去掉非线性激活函数σ、同时去掉W1、W2和σ。很意外的是,-f、-n、-fn居然都比原始的NGCF效果好,而且-fn效果最好。说明对于只有user和item顶点,没有属性的网络来说,不用过于复杂的矩阵变换和非线性激活,效果反而更好。 按道理NGCF的参数空间比NGCF-f大,且前者能覆盖后者(只需要把W1和W2设置成单位矩阵),为什么前者的效果反而比后者差呢?作者进一步分析了两者训练时的loss和recall曲线,发现NGCF的参数空间虽然比NGCF-f大,但其收敛后的loss更大,recall更小。也就是说训练效果反而不如NGCF-f。作者认为,加入过多的矩阵变换和非线性变换,导致模型过于复杂,难以训练到较好的效果。据此,作者提出了一个更简单的模型LightGCN,具体看下一节介绍。 方法 既然前面分析说矩阵变换和非线性激活函数会起副作用,LightGCN的方法非常简单,就是把这两个操作去掉。如公式3所示,每个节点的embedding表示直接等于其邻居的embedding的线性加权求和,既没有矩阵变换,也没有非线性激活函数,如此的简单。而且,对比公式3和公式1可知,LightGCN没有显式使用自回路,即计算某个节点的embedding的时候,只用了其邻居的embedding,没有用自己的embedding;而NGCF在公式1中使用了自回路。 其网络结构图如下: 最后,节点的最终embedding等于其各层embedding的加权求和。如公式4所示,权重系数α可以手工指定,也可以使用注意力网络来自动学习。为简便起见,本文直接设置为等权重,所有系数都等于1/(K+1),相当于所有层embedding求平均。 节点最终embedding等于各层embedding的加权求和有如下三个好处: GNN存在over-smoothing的问题,即随着网络层数越深,深层网络的输出结果趋向于相同。即所有节点的最后一层的输出有可能很接近。而如果把所有层加起来的话,能一定程度上缓解这个问题 GNN不同层捕获的语义信息不一样,使用所有层输出能增强表达能力,这个和CNN的道理是类似的。 所有层embedding求和可以捕获自回路的信息。也就是说虽然公式3没有显式使用自回路,但计算顶点最终embedding时(公式4)可以隐含自回路的信息,这个后面会给出证明。 除此之外,由于LightGCN很简单,所以也很好训练,更容易收敛,收敛效果更好。总之,虽然LightGCN很简单,但它很强大,而且有很多好处。 模型分析 接下来,作者分析了为什么LightGCN可以学习到自回路,其证明思路是这样的。另一篇工作SGCN和这篇工作很像,也做了很多简化,且显式添加了自回路。作者通过分析发现LightGCN可以表达SGCN的形式,间接说明LightGCN隐含可以考虑自回路。下面是具体的证明过程。 首先定义user和item的交互矩阵\(\mathbf{R}\in \mathbb{R}^{M\times N}\),其中M和N分别表示user和item的个数。\(\mathbf{R}_{ui}\)为1表示u和i有交互,等于0表示没有交互。则全图的邻接矩阵可以表示为公式6: 公式3的矩阵形式可以表示成公式7,其中矩阵D为度矩阵。对照下原始的GCN公式,其实就是把原始GCN的变换矩阵W和非线性激活函数σ去掉了。 由于LightGCN是将多层embedding加权求和,所以最终结果是公式8: 然后作者对SGCN的公式进行了简单的变换,发现形式上和公式8是一致的,所以LightGCN也能隐含学习到自回路特征。 此外,作者还分析了另一个模型APPNP,APPNP借鉴pagerank的思想,可以缓解GNN过深带来的over-smoothing问题。然后作者如法炮制,对APPNP的公式进行变换,发现也和公式8等价,所以LightGCN也能缓解GNN的over-smoothing问题。其实这个从LightGCN不只使用最后一层,而是使用所有层embedding就能得到这个结论,不需要这么大费周章证明。 实验 最后是实验环节。作者将LightGCN和本文开头提到的NGCF进行了对比,实验结果表明,LightGCN的性能相比NGCF有显著提升,而且比NGCF-fn也高。作者提到,虽然NGCF-fn已经去掉了矩阵变换和非线性激活函数,但NGCF-fn仍然还有自回路、user和item的点积、dropout等等,还是比较复杂,不好训练。而LightGCN非常简单,只有embedding和邻居的线性加权,所以LightGCN还是比NGCF-fn好。真的很神奇啊,照这个说法,难道连dropout也会起副作用? 此外,在消融实验中,作者还对比了LightGCN和LightGCN-single,LightGCN-single是只用LightGCN的最后一层作为节点的embedding。作者发现,当网络层数增大到4层时,LightGCN-single性能显著下降,出现了over-smoothing的问题。而LightGCN由于多层组合的操作,不会有over-smoothing的问题。考虑到性能和收益,LightGCN使用了3层神经网络。 评价 结果有些意外,LightGCN这么简单的模型,效果居然比复杂模型还要好?感觉即使是NGCF,模型也不复杂啊,和CV、NLP那些大模型相比简单多了,怎么就训练不好了呢?难道是GNN特有的现象? 感觉和数据有关,本文测试的数据是只包含user和item顶点,顶点没有属性。如果是属性图的话,也许结论会有变化。 不过至少提供了调参的思路:去掉矩阵变换、去掉非线性激活函数、甚至是去掉dropout。。。另外重要的一点是,不要只用最后一层的embedding,而是组合所有层的embedding进行加权求和。 另外,本文开篇提到的NGCF和本文是同一批作者,自己批判自己一年前发表的工作,不免让人担心这篇工作的可靠性。。。以及当时的NGCF难道没有做本文开篇的消融实验吗?难道不应该吗?

May 8, 2022 · 1 min