当前位置: 首页 > news >正文

论文笔记-WSDM2025-ColdLLM

论文笔记-WSDM2025-Large Language Model Simulator for Cold-Start Recommendation

  • ColdLLM:用于冷启动推荐的大语言模型模拟器
  • 摘要
  • 1.引言
  • 2.前言
  • 3.方法
    • 3.1整体框架
      • 3.1.1行为模拟
      • 3.1.2嵌入优化
    • 3.2耦合漏斗ColdLLM
      • 3.2.1过滤模拟
      • 3.2.2精炼模拟
    • 3.3模拟器训练
      • 3.3.1LLM训练
      • 3.3.2耦合过滤模型训练
    • 3.4实现策略
      • 3.4.1实际部署
      • 3.4.2复杂性分析
  • 4.实验
    • 4.1实验设置
    • 4.2模型性能
    • 4.3消融实验
    • 4.4超参数实验
    • 4.5在线评估
  • 5.总结

ColdLLM:用于冷启动推荐的大语言模型模拟器

⚠️这篇论文的前身是arXiv2024-Large Language Model Interaction Simulator for Cold-Start Item Recommendation(相关博客: 论文笔记-arXiv2024-LLM-InS ),可以移步查看LLM-InS。

论文: Large Language Model Simulator for Cold-Start Recommendation
代码: 无

摘要

冷启动商品仅依赖于内容特征,这限制了它们的推荐性能。目前的模型通过内容特征生成嵌入,但未能解决核心问题:缺乏历史行为数据。

为了解决这个问题,本文引入LLM模拟器框架,该框架利用大语言模型模拟用户与冷启动商品的交互,从根本上解决了冷启动问题。然而,仅使用 LLM 来遍历所有用户可能会在亿级系统中引入显著的复杂性。为管理计算复杂性,本文提出了一个用于在线推荐的耦合漏斗 ColdLLM 框架。ColdLLM 通过训练的耦合过滤器有效地将候选用户数量从亿级减少到数百,从而使 LLM 能够在过滤后的用户集上高效运行。

1.引言

当前的模型通常利用冷启动商品的内容特征生成嵌入。一类模型是生成模型,试图训练一个映射函数,以确保生成的嵌入接近行为嵌入。另一类模型是dropout 模型,通过结合生成的嵌入和行为嵌入进一步增强推荐模型的适应性。然而,现有的解决方案并未完全解决冷启动的根本问题:冷启动商品缺乏行为数据,这使得冷启动商品与热门商品本质上存在差异。这一根本差异造成以下三个限制:

  1. 内容-行为差距:合成嵌入仍然是基于内容特征生成的。这种方法导致合成嵌入与实际用户行为和交互学习得到的嵌入之间存在显著差异。
  2. 次优的冷推荐性能:当前的冷启动模型通常专注于将冷商品与热门商品一起推荐,而对热门商品的影响不大,未能显著提升热门商品的推荐性能。
  3. 内容推荐与行为推荐的混淆:现有的冷启动模型通常进行混合推荐,即将内容特征嵌入和行为嵌入混合在一起。

大语言模型(LLMs)在解决上述限制方面显示出潜力,因为LLMs能够从内容特征中理解用户偏好,并预测用户对商品的意图。然而,将 LLM 应用于冷启动商品推荐面临以下挑战:

  1. 冷启动行为的模拟:在没有实际交互数据的情况下训练 LLM 以预测用户对商品的意图是一项挑战。
  2. 模拟的效率:LLM 在推理效率上面临约束。为大量用户模拟冷商品的用户行为会产生显著的计算复杂性。
  3. 大规模推荐的可扩展性:目前缺乏成熟的框架利用 LLM 来解决大规模推荐系统中的冷启动商品问题。

因此,本文提出了一种新颖的 LLM 模拟器框架,从根本上解决商品冷启动问题。为了解决设计挑战,引入了 LLM 模拟器的定制结构,包括用户上下文构建、提示设计和模拟过程。为了加速模拟过程,提出了用于在线推荐的 ColdLLM,它通过训练的耦合过滤器有效地将候选用户从数十亿缩减到数百。该过滤器与 LLM 一起训练,以支持其模拟。本研究的关键贡献可以总结如下:

  • 正式定义行为模拟问题,并提出了一种新颖的 LLM 模拟器框架,从根本上解决冷启动推荐问题。
  • 为模拟器提出一种定制的训练策略和在线推荐应用策略。
  • 广泛的离线实验证明模型在冷推荐性能上超越了现有解决方案 21.69%,为期两周的 A/B 测试进一步验证了 ColdLLM 的有效性。

2.前言

用户集和商品集分别表示为 U U U I I I。有历史交互的商品称为热商品,记为 I w ​ I_w​ Iw;没有历史交互的商品称为冷商品,记为 I c ​ I_c​ Ic。每个热商品都有一个交互用户序列 s i \mathbf{s}_i si。对于冷商品 j j j,交互用户序列为空集,即 s j = ∅ \mathbf{s}_j = \emptyset sj=。通过历史交互的用户-商品对,可以学习每个用户和热商品的行为嵌入向量,记为 e u ​ \mathbf{e}_u​ eu。用 C C C 表示商品的内容,每个商品都有各自的内容特征,记为 c i ​ \mathbf{c}_i​ ci。对于用户,收集商品内容列表,记为 C u ​ C_u​ Cu

本文聚焦于最具挑战性的严格冷启动问题,从商品冷启动的角度来看,冷商品缺乏任何历史行为。在这种限制下,热商品和冷商品的推荐方式有所不同。热商品通过历史用户序列进行推荐,这些序列通常编码为行为嵌入。正式地,热推荐可以定义为:
在这里插入图片描述
其中 Emb c f ( ⋅ ) \text{Emb}_{cf}(\cdot) Embcf() 表示用于行为嵌入的协同过滤函数。冷商品的用户序列集为空,这使得冷商品的推荐定义为:
在这里插入图片描述

3.方法

ColdLLM的框架图如图2所示:
在这里插入图片描述

3.1整体框架

传统模型主要通过合成嵌入构建方法来解决冷启动问题,这可能导致冷商品与热商品之间存在自然差距。一种基本解决方案是为每个冷商品模拟用户行为,然后通过行为嵌入优化获得冷商品的嵌入。

3.1.1行为模拟

行为模拟总结了所有历史行为以及用户和商品的信息,以模拟可能的用户,这些用户可以帮助更新冷商品的嵌入。考虑到这一点,本文利用 LLM 分析所有积极的历史行为,作为生成冷商品用户序列的模拟器。具体而言,ColdLLM 过程可以正式定义为:
在这里插入图片描述
在理想情况下,ColdLLM 可以访问冷商品 c i \mathbf{c}_i ci 的信息、整个用户集 U U U、所有用户的完整历史交互 H H H 以及所有商品的内容细节 C C C

3.1.2嵌入优化

通过为冷商品模拟用户序列,这些商品被转化为热商品。通过模拟的行为,推荐系统利用现有的行为嵌入优化结构,利用训练好的用户和热商品嵌入来优化冷商品的嵌入。在离线数据集中,这种模拟甚至可以丰富训练数据,进一步增强用户表示。对于在线大规模平台,模拟的交互仅用于更新冷商品的嵌入。最终用于下游任务的冷嵌入可以正式表示为:
在这里插入图片描述
其中 Emb o p t ( ⋅ ) \text{Emb}_{opt}(\cdot) Embopt() 表示推荐系统的一般行为嵌入优化器, e i ( c ) ​ \mathbf{e}^{(c)}_i​ ei(c) 表示冷商品 i i i 的嵌入, s i ( c ) ​ \mathcal{s}^{(c)}_i​ si(c) 是冷商品的模拟用户序列。 E \mathbf{E} E 表示所有训练好的热嵌入,包括用户和热商品。

3.2耦合漏斗ColdLLM

与传统的基于嵌入的模型相比,原始的 ColdLLM 不适用于十亿规模的推荐。本小节提出了耦合漏斗 ColdLLM,以高效且有效地整合耦合过滤模型,并模拟冷启动项目的行为。

3.2.1过滤模拟

过滤过程的目的是将亿级数据集中潜在用户减少到几十到几千个范围。基于嵌入的过滤模型能够有效地将用户和项目嵌入到向量中,但在捕捉用户的内容级意图和项目的高级内容信息时遇到困难。为了解决这个问题,本文用 LLM 处理的嵌入增强过滤模型。

本文使用 LLM 提取项目的内容嵌入,然后应用匹配函数将该嵌入映射用于行为过滤,表示如下:
在这里插入图片描述
其中, f i ​ f_i​ fi表示项目 i ​ i​ i的过滤嵌入, F I ( ⋅ ) ​ F_I(\cdot)​ FI()是映射函数, L L M e m b ( ⋅ ) ​ LLM_{emb}(\cdot)​ LLMemb()是 LLM 嵌入读取函数。

嵌入读取函数的设计旨在从 LLM 中提取内容嵌入。具体而言,首先获得最后一层的嵌入,该嵌入代表处理后的标记信息,然后应用均值池化以推导任何给定冷启动项目的内容特征嵌入:
在这里插入图片描述
其中, E ( L ) ( c i ) [ j ] ​ E^{(L)}(c_i)[j]​ E(L)(ci)[j]表示 LLM 的第 𝐿 层的第 𝑗 个嵌入。这里, c i \mathbf{c}_i ci代表项目的内容特征, c i [ j ] \mathbf{c}_i[j] ci[j]指的是 c i \mathbf{c}_i ci 中的第 j j j个标记, ∣ c i ∣ |\mathbf{c}_i| ci表示 c i \mathbf{c}_i ci中标记的总数。

为了过滤出可能与冷启动项目互动的用户,同时考虑内容嵌入和行为嵌入。使用映射后的用户嵌入和映射后的项目嵌入的点积来识别前 𝐾 个最高得分候选:
在这里插入图片描述
其中, F U F_U FU 是用户的映射函数。

3.2.2精炼模拟

过滤之后使用大型语言模型(LLMs)进行检查和增强。在每次迭代中,将用户的上下文和项目的内容输入到 LLM 中,LLM 会输出用户是否会与该项目互动的预测,显示“是”或“否”。精炼模块考虑了三个技术细节方面:

(1)上下文构建:利用过滤过程中获得的项目嵌入来筛选相关项目。

(2)设计prompt:包含三个部分,即固定prompt,用户上下文和项目内容。

(3)精炼:遍历过滤后的用户集,仅保留被 LLM 模拟器预测为“是”的用户。

3.3模拟器训练

3.3.1LLM训练

采用低秩微调策略,以确保 LLM 能够捕捉推荐场景的数据分布。

3.3.2耦合过滤模型训练

耦合过滤模型有两个设计方案:1. 反映用户与项目的行为;2. 与 LLM 结合。具体而言,利用两对嵌入的组合来实现这一目的。

行为过滤的训练

对于每个给定的用户-项目对 ( u , i ) (u, i) (u,i),随机选择一个负对 ( u , j ) (u, j) (u,j)。这些对可以集合表示为三元组 ( u , i , j ) (u, i, j) (u,i,j)。行为过滤的输出可以表达为: Y ^ u i ( B ) \hat{Y}^{(B)}_{ui} Y^ui(B)。使用 BPR 损失来优化行为过滤模型的推荐性能:
在这里插入图片描述
其中 σ ( ⋅ ) \sigma(\cdot) σ() 是 sigmoid 函数。该损失鼓励过滤模型将积极项目的排名高于消极项目。此外,本文还利用 ALDI 中的对齐损失来帮助行为过滤的训练。

耦合 ColdLLM 过滤的训练

对于耦合的 LLM 过滤,应用 Y ^ u i ( L ) \hat{Y}^{(L)}_{ui} Y^ui(L)来过滤用户。除了 BPR 损失,引入耦合的 ColdLLM 损失,以保持与耦合过滤模型中的 ColdLLM 的相似性:
在这里插入图片描述

3.4实现策略

3.4.1实际部署

如图 3 所示,ColdLLM 框架由三个主要组件组成:(i) 在线服务;(ii) 在线训练(嵌入更新);(iii) 离线模拟。
在这里插入图片描述

当新项目上传到平台时,首先利用ColdLLM模拟用户交互以进行嵌入更新。这些模拟的用户-项目对随后被输入到在线嵌入更新结构中。由于这些交互是模拟的而非实际用户行为,仅更新冷项目的嵌入。最后,将更新后的冷项目嵌入传送到在线推荐服务。

3.4.2复杂性分析

ColdLLM 的计算复杂性主要包括三个部分:耦合过滤复杂性、耦合精炼复杂性和嵌入更新复杂性。

(1)耦合过滤:利用类似 FAISS 的相似性索引框架,可以高效地将候选用户从数十亿缩减到数百,复杂度为O(1),大约耗时 60 毫秒。

(2)耦合精炼:使用微调的 LLaMA-7B 模型来精炼过滤后的候选,以识别 20 个合格用户。该过程对于每个用户-项目对大约需要 200-400 毫秒。总的来说,LLM 精炼阶段的时间不超过 8 秒。

(3)嵌入更新:在线嵌入过程利用模拟的交互在 120 毫秒内优化冷项目的嵌入。

4.实验

4.1实验设置

数据集:CiteULike和ML-10M

基线:

  1. 基于 Dropout 的嵌入模拟模型:DropoutNet、MTPR 和 CLCRec

  2. 基于生成的嵌入模拟模型:DeepMusic、MetaEmb、GNP、GAR和 ALDI

  3. 行为模拟模型:UCC和MIGCN

为了进一步验证 ColdLLM 的普遍性,在三个广泛使用的推荐骨干网络上验证这些模型:MF、NGCF和 LightGCN。

评估指标:Recall@20 and NDCG@20

4.2模型性能

在这里插入图片描述

结论:

  1. ColdLLM 在当前方法上实现了显著的提升。从表中可以看出,ColdLLM 在不同的数据集和骨干网络上均表现出优势。

  2. 基于生成的嵌入模拟模型在热门和整体推荐中的表现通常优于基于 Dropout 的嵌入模拟模型。这表明,通过相同的嵌入层强制热门行为嵌入与冷内容嵌入对齐,可能会导致热门项目推荐的性能下降。

  3. 现有的行为模拟模型在整体和热门推荐中保持了相对良好的性能,但在冷推荐中表现不足。这可能是因为仅基于内容信息和深度神经网络(DNN)进行的行为生成不足以准确模拟冷项目的行为。

4.3消融实验

在这里插入图片描述
结论:

  1. w/o LSF 和 w/o BF 的性能下降表明了过滤模拟的有效性。

  2. w/o LSF & R 和 w/o BF & R 的模型表现出比 w/o LSF 和 w/o BF 更显著的性能下降,表明了精炼阶段的必要性。

4.4超参数实验

在这里插入图片描述
结论:

  1. 过滤候选数量K的影响:从结果中可以看出,整体和热门推荐的最佳结果是在适中的 K K K 值下实现的,例如 CiteULike 中的 K = 10 K=10 K=10。相反,对于冷推荐,较大的 K K K 更有利,其中 K = 50 K=50 K=50 在 CiteULike 中产生最佳结果。然而,过大的 K K K 可能会通过引入来自无关交互的噪声而降低性能。

  2. 学习率的影响:从图中可以观察到,三种推荐任务在相似的最佳学习率下达到了最佳结果,这表明学习率的调整对所有三个任务均适用。

4.5在线评估

为了验证 ColdLLM 在工业环境中的有效性,本文在一个大型电子商务平台上进行了在线 A/B 测试。实验持续了两周,涉及每组 5% 的用户。将 ColdLLM 与三种代表性基准进行比较:随机推荐、MetaEmb和 ALDI。表 3 展示了这些在线 A/B 测试的结果。
在这里插入图片描述
结论:

在所有指标上的显著提升突显了 ColdLLM 在解决实际推荐系统中商品冷启动问题的有效性。

5.总结

本文提出 ColdLLM,从根本上解决了大规模推荐系统中的冷启动问题,显著提高了性能和经济效益。在线和离线实验都验证了 ColdLLM 的有效性。基于这些观察,ColdLLM 为在大规模在线推荐中利用大语言模型开辟了新的可能性。

相关文章:

论文笔记-WSDM2025-ColdLLM

论文笔记-WSDM2025-Large Language Model Simulator for Cold-Start Recommendation ColdLLM:用于冷启动推荐的大语言模型模拟器摘要1.引言2.前言3.方法3.1整体框架3.1.1行为模拟3.1.2嵌入优化 3.2耦合漏斗ColdLLM3.2.1过滤模拟3.2.2精炼模拟 3.3模拟器训练3.3.1LLM…...

线代[8]|北大丘维声教授《怎样学习线性代数?》(红色字体为博主注释)

文章目录 说明一、线性代数的内容简介二、学习线性代数的用处三、线性代数的特点四、学习线性代数的方法五、更新时间记录 说明 文章中红色字体为博主敲录完丘教授这篇文章后所加,刷到这篇文章的读者在首次阅读应当跳过红色字体,先通读一读文章全文&…...

使用 C++ 和 gRPC 的常见陷阱及解决方案

文章目录 1. 环境配置的陷阱1.1 依赖版本冲突或混淆1.2 gRPC 工具缺失 2. 编译和链接的陷阱2.1 运行时库不匹配(/MT vs /MD)2.2 未解析的外部符号 3. Protobuf 文件生成的陷阱3.1 工具版本不匹配3.2 生成文件运行时库不一致 4. 运行时的陷阱4.1 缺少 DLL…...

《深度学习实战》第2集:卷积神经网络(CNN)与图像分类

《深度学习实战》第2集:卷积神经网络(CNN)与图像分类 引言 卷积神经网络(Convolutional Neural Network, CNN)是深度学习在计算机视觉领域的核心工具。从早期的 LeNet 到现代的 ResNet 和 Vision Transformer&#xf…...

AD(Altium Designer)器件封装——立创商城导出原理图和PCB完成器件封装操作指南

目录 1、立创商城下载原理图和PCB图 1.1 打开立创商城 1.2 寻找所需器件 1.3 确定所需芯片 1.4 打开原理图和PCB图 1.5 导出原理图 1.6 确定导出为AD文件 1.7 下载成功 1.8 导出PCB 1.9 确定导出为AD文件 1.10 原理图PCB下载成功 2、原理图和PCB图预处理 2.1 复制…...

DeepSeek掘金——调用DeepSeek API接口 实现智能数据挖掘与分析

调用DeepSeek API接口:实现智能数据挖掘与分析 在当今数据驱动的时代,企业和开发者越来越依赖高效的数据挖掘与分析工具来获取有价值的洞察。DeepSeek作为一款先进的智能数据挖掘平台,提供了强大的API接口,帮助用户轻松集成其功能到自己的应用中。本文将详细介绍如何调用D…...

LangChain系列:精通LangChain的合并文档链

LangChain的合并链旨在解决语言模型处理长文本时的上下文限制问题,包含Stuff、MapReduce、Refine和Rerank四种策略。Stuff链通过简单拼接文档块实现快速处理,适用于短文本但受限于模型token容量;MapReduce链采用分治思想,先独立处…...

rtcwake - Linux下定时唤醒计算机

rtcwake 是一个用于通过实时时钟(RTC)唤醒计算机的工具。它常用于在 Linux 系统中设置计算机在指定时间自动唤醒或关闭。以下是对命令 rtcwake -m off -s ${sleep_time} 的详细解析: 命令解析 bash复制 rtcwake -m off -s ${sleep_time} 1…...

MATLAB在投资组合优化中的应用:从基础理论到实践

引言 投资组合优化是现代金融理论中的核心问题之一,旨在通过合理配置资产,实现风险与收益的最佳平衡。MATLAB凭借其强大的数学计算能力和丰富的金融工具箱,成为投资组合优化的理想工具。本文将详细介绍如何使用MATLAB进行投资组合优化&#…...

什么是“可迭代”

在 Python 中,“可迭代”(Iterable)是一个非常重要的概念,它指的是任何可以被逐个访问其元素的对象。换句话说,如果一个对象支持迭代操作(比如可以通过 for 循环逐个访问其元素),那么…...

Python天梯赛10分题-念数字、求整数段和、比较大小、计算阶乘和

007-念数字 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu输入格式: 输入在一行中给出一个整数,如&…...

C#初级教程(6)——函数:从基础到实践

一、函数的核心价值:简化与复用代码 以游戏开发项目为例,在游戏中,角色的移动、攻击等行为并非只在单一场景中出现。设想一下,若每次需要角色执行这些行为时,都要重新编写对应的代码,那将是何等繁琐且易错的…...

【Bluedroid】AVRCP 连接源码分析(一)

一、AVRCP协议简介 AVRCP(Audio/Video Remote Control Profile)是蓝牙协议栈中的一个重要部分,它定义了蓝牙设备之间的音视频传输控制的流程和特点。AVRCP使得用户可以通过一个蓝牙设备(如手机)远程控制另一个蓝牙设备(如蓝牙耳机或音箱)上的音视频播放,如播放、暂停、…...

编程考古-忘掉它,Delphi 8 for the Microsoft .NET Framework

忘掉它吧,作一篇记录! 【圣何塞,加利福尼亚 – 2003年11月3日】在今日的Borland开发者大会上,Borland正式推出了Delphi 8 for Microsoft .NET Framework。这款新版本旨在为Delphi开发者提供一个无缝迁移路径,将现有的…...

Linux-Ansible基础模块

文章目录 模块Command模块Shell模块Script模块 🏡作者主页:点击! 🤖Linux专栏:点击! ⏰️创作时间:2025年02月22日19点21分 模块 Command模块 Command模块实践 ansible 192.168.1.100 -m com…...

正则表达式–断言

原文地址:正则表达式–断言 – 无敌牛 欢迎参观我的个人博客:正则表达式特殊字符 – 无敌牛 断言assertions 1、(?...):正向预查(positive lookahead),表示某个字符串后面应该跟着什么。但这个字符串本身…...

Swiper插件的运用和学习

Swiper中文网-轮播图幻灯片js插件,H5页面前端开发 Swiper 是目前最流行的免费开源轮播组件之一,它功能强大、高度可定制且兼容性好,支持移动端手势操作和丰富的交互动画。 下载Swiper压缩包 轮播图演示页面。可以看见各种不同切换效果的轮播图 然后解压…...

标准I/O与文件I/O

一、概念 标准IO:标准IO是指程序与标准输入(stdin)、标准输出(stdout)和标准错误(stderr)之间的输入输出操作。通常用于与用户交互或输出调试信息。文件IO:文件IO是指程序与文件系统…...

JavaScript函数-函数的参数

在JavaScript编程语言中,函数是组织代码和实现复杂逻辑的基本单元。而函数参数则是这些功能的重要组成部分,它们允许我们将数据传递给函数,从而使得函数更加通用和灵活。本文将深入探讨JavaScript函数参数的各种特性及其最佳实践。 参数基础…...

Android TabLayout 实现随意控制item之间的间距

效果 红色标注是不同的间距。 实现方式 1、xml中定义 <com.google.android.material.tabs.TabLayoutandroid:id"id/tab_layout"android:layout_width"wrap_content"app:tabIndicatorColor"color/color_FF00B2E3"app:tabBackground"a…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...