- 博客(180)
- 收藏
- 关注
原创 Agentic 知识库:Agent Wiki不是取代向量数据库,而是让 Agent 学会“多模态思考”
摘要: 阿里云提出的Agentic知识库并非替代向量数据库,而是通过多模态存储架构(Markdown/Wiki、向量数据库、图数据库)与智能路由机制,解决传统RAG知识库的痛点(知识碎片化、语义模糊、复杂关系处理难)。其核心在于Agent根据问题类型动态选择最优存储组合,例如用图数据库处理多跳关系,向量库补充语义细节,Wiki存储权威知识,实现1+1>2的效果。阿里云通过AnalyticDB等产品落地该架构,形成“摄入-检索-回写”闭环,推动Agent从临时检索升级为长期知识中枢。
2026-05-15 18:09:41
370
原创 从 `cat file.txt` 到屏幕:一次 Linux 文件读取的完整旅程
本文深入解析了从终端输入 cat file.txt 到文件内容显示的完整流程。首先 Shell 解析命令并启动 cat 进程,随后 cat 通过 fopen() 触发 open() 系统调用,内核执行路径解析获取文件 inode。读取时,fread() 利用标准 I/O 缓冲减少系统调用次数,数据经内核 VFS、文件系统、page cache 和 DMA 传输到达用户空间,最终通过 fwrite() 输出到终端。文章还对比了通过文件名解析(路径A)和文件描述符(路径B)获取 inode 的不同机制,揭示了
2026-05-14 15:41:24
322
原创 一次抓包引发的思考:Base64 和加密到底是什么关系?
本文通过分析一个前端请求案例,深入解析了Base64编码与加密的关系。Base64并非加密,而是将二进制数据转换为文本格式的编码方式,使其能在HTTP、JSON等文本协议中安全传输。文章指出,现代加密算法输出二进制数据后,通常需要Base64编码才能进行网络传输,并详细解释了请求参数和JWT Token中的Base64应用场景。同时强调真正的安全性依赖于密钥管理而非Base64本身,前端通常只负责编码/解码而非解密。最后用流程图清晰展示了加密与Base64编码的协作关系,说明二者是相辅相成的技术组合。
2026-05-14 14:05:58
303
原创 从零构建运维Agent:全网方案调研、架构设计、与核心避坑指南
运维Agent不是一个"把LLM接上运维系统"就能做好的事。LLM负责理解,代码负责执行— 不要让LLM直接操作生产从1个场景开始— 全能Agent是一个陷阱安全边界必须硬编码— 诊断可以循环,执行必须审批技术路线上,MCP直连适合起步和中等规模,UModel语义层是规模化后的必然方向。两者的核心差异不是"哪个更好",而是"哪个适合你当前的阶段"。记忆管理同理——MVP用Markdown文件简单直接,规模上来后再引入向量数据库做粗筛,两者不是替代关系而是互补关系。
2026-05-12 17:28:58
359
原创 运维 Agent 开发第一步:别急着写代码,先用这四步给你的地基做次体检
摘要: 运维Agent智能体开发常因忽视基础建设而失败。本文提出5R模型作为"Agent-Ready运维"的地基框架: Reality - 确保可观测数据完备性 Rules - 建立自动化操作的边界规则 Runway - 构建标准化执行通道 Records - 实现全过程审计追踪 Refine - 形成知识沉淀闭环 通过RestartBot案例展示五要素联动机制,并附上包含20项检查要点的实操清单,帮助团队在开发Agent前系统评估运维基础成熟度。强调智能运维需先夯实底层能力,避免陷入&
2026-05-12 11:22:20
331
原创 从救火到防火:解读华为的确定性运维方法论,以及AI扮演的真正角色
《华为运维方法论:从救火到防火的确定性实践》摘要: 华为提出了一套以"确定性运维"为目标的方法论,核心由三大工具组成:1)KPI树将模糊目标拆解为可量化指标;2)PDCA循环实现持续优化;3)War Room机制应对重大故障。这套体系形成"指标监控-日常优化-应急响应"的闭环,使运维从被动救火转向主动预防。值得注意的是,该方法是为人设计的协作框架,AI作为辅助执行者,通过学习沉淀的Runbook知识来加速决策执行。这种"人类制定战略-AI高效执行"
2026-05-11 11:30:06
489
原创 [特殊字符] 从 Redis 缓存穿透到布隆过滤器,再到布谷鸟过滤器:一次穿透防护的进化之旅
摘要: 缓存穿透是指请求的数据在缓存和数据库中都不存在,导致大量请求直接穿透到数据库,引发性能问题。传统解决方案(如缓存空对象或参数校验)存在局限性,而布隆过滤器能高效拦截不存在的 key,但其不支持删除且存在误判率。针对动态删除场景(如用户注销、商品下架),布谷鸟过滤器通过指纹和桶结构实现了删除功能,空间效率更高,但实现稍复杂。两者各有适用场景:布隆过滤器适合数据只增不减的业务,布谷鸟过滤器更适合需要动态删除的场景。合理选择过滤器可有效保护数据库,提升系统稳定性。
2026-05-11 10:09:29
362
原创 【高并发实战】Redis + Lua 脚本解决秒杀超卖问题(从第一版到第二版的演进)
本文通过一个秒杀案例,展示了如何从存在超卖风险的分步操作实现,迭代到使用原子操作的Lua脚本解决方案。第一版代码由于"查库存"和"扣库存"操作分离,在高并发下会出现超卖问题。第二版通过Lua脚本将这两个操作打包成原子操作,利用Redis单线程特性确保执行期间不会被中断,从而彻底解决超卖问题。文章详细解析了Lua脚本实现原理,并提供了Java代码示例,最后总结了Redis+Lua方案的优势及适用场景。
2026-05-08 21:15:38
385
原创 Linux 进程、管道与变量隔离深度解析
本文系统梳理了Linux Shell中head/tail命令组合、进程模型、变量隔离与管道原理四大核心知识点。通过实验验证:1) head -N | tail -1可精准提取文件第N行;2) Linux采用父子进程树结构,子进程继承父进程环境变量;3) export打破变量隔离,使子进程能访问父进程变量;4) 管道通过文件描述符重定向实现进程间通信,$$和$BASHPID展现了命令解析与执行时的差异。这些原理对Shell脚本编写和系统管理至关重要。
2026-05-07 11:34:32
263
原创 从磁盘到内存:一次文件读取的 CPU-DMA 协作之旅
本文通过分析cat /etc/passwd命令的执行过程,深入揭示了Linux系统中数据从磁盘到屏幕的完整流程。重点探讨了CPU、DMA控制器、内存控制器等硬件组件如何协同工作,详细比较了PageCache命中与未命中两种场景的差异。文章从用户态系统调用、内核态处理、硬件交互三个层面展开,解释了SSD性能优势的本质原因,并分析了mmap、direct I/O等技术差异的底层原理。通过这一案例,读者可以深入理解Linux存储子系统的运作机制,为性能优化提供理论基础。
2026-05-07 11:14:24
276
原创 深入理解 ReAct 循环:从 LLM 决策到工具执行的完整闭环
本文深入解析了AI Agent开发中ReAct范式的核心机制,重点讲解了工具调用与结果回传的实现细节。文章指出,多数教程仅停留在LLM输出tool_call阶段,而忽略了关键的"执行工具并回传结果"环节。作者详细剖析了完整的ReAct交互流程:从LLM决策、工具解析与执行,到结果回传与多轮循环决策。特别强调了call_id在多轮工具调用中的匹配机制,并提供了完整的Python实现代码,展示了如何正确封装执行结果并关联原始调用。通过系统化的讲解,填补了AI Agent开发中这一关键环节的知
2026-04-27 17:58:11
441
原创 从词袋模型到 Transformer:一步步理解注意力机制
本文系统梳理了NLP词向量技术的演进历程,从最初的词袋模型到Transformer核心的Self-Attention机制。词袋模型仅统计词频,无法捕捉语义;N-gram虽能处理局部词序但面临维度爆炸;TF-IDF可识别关键词但仍属词袋范畴。Word2Vec突破性地赋予词固定向量,但无法处理多义词。最终Transformer通过Self-Attention实现动态上下文编码:每个词通过Query、Key、Value机制获取包含全局信息的向量,Multi-Head设计捕捉多维度关系,位置编码保留序列信息,从而完
2026-04-21 14:00:45
376
原创 堆排序建堆复杂度分析:为什么从下往上是 O(N),从上往下是 O(NlogN)?
堆排序的两种建堆方式存在时间复杂度差异:从上往下建堆(逐个插入元素,使用上浮操作)的时间复杂度为O(NlogN),因为后期插入的深层节点需要多次上浮;而从下往上建堆(从最后一个非叶子节点开始下沉调整)的时间复杂度为O(N),因为约一半的叶子节点无需调整,且高层节点下沉次数较少。关键差异在于处理顺序和节点分布特性,后者利用完全二叉树中叶子节点占比高的特点显著降低了调整成本。实际应用中应优先选择O(N)的从下往上建堆方式,尽管堆排序整体复杂度仍为O(NlogN)。
2026-03-11 17:26:55
370
原创 Master 公式(主定理):递归算法时间复杂度分析的利器
Master公式是分析分治递归算法时间复杂度的有效工具,适用于形如T(N)=aT(N/b)+O(N^d)的递归关系。通过比较log(b,a)与d的大小关系,分为三种情况确定时间复杂度:当log(b,a)<d时为O(N^d),log(b,a)>d时为O(N^log(b,a)),相等时为O(N^dlogN)。该公式适用于问题规模按比例缩小的情况,但不适用于线性减少规模(如斐波那契数列)或子问题个数非常数的递归。通过典型示例(如归并排序、二分查找)展示了公式的应用方法,并提供了快速判断流程图和常见算法
2026-03-07 16:43:52
578
原创 Semantic Kernel Python 进阶:Prompt 模板中的函数嵌套调用实战
摘要: Microsoft Semantic Kernel(SK)的Python版本支持在Prompt模板中直接调用函数,实现模块化AI应用开发。通过双大括号{{...}}语法,可嵌套调用Semantic/Native函数,支持变量插值和链式处理。本文演示了环境配置、项目结构设计,并通过实战示例展示:(1)Native Function调用(如文本统计);(2)Semantic Function嵌套(如总结→翻译的链式处理)。SK的分离式文件管理(skprompt.txt+config.json)和混合编程
2026-03-02 15:24:57
1023
原创 Semantic Kernel Python 原生函数完全指南:单参数与多参数的最佳实践
Native Function(原生函数)是 Semantic Kernel 中允许你将现有的 Python 代码封装为可被 AI 调用的函数单元。数学计算数据库查询API 调用(REST、数据库等)文件操作任何需要精确控制的业务逻辑单参数保持简单:直接,无需Annotated多参数使用 Annotated:每个参数添加,帮助 LLM 理解使用具体类型strintfloatbool等,避免模糊的Any提供默认值:可选参数给默认值,提高灵活性添加返回值注解让 LLM 理解输出异步支持。
2026-03-02 11:47:17
805
原创 Semantic Kernel 语义函数(Semantic Function)完全指南
语义函数是Semantic Kernel中通过自然语言定义的可调用AI功能单元,由提示词模板(skprompt.txt)和模型配置(config.json)组成。其核心特点包括:1) 非程序员可通过编辑文本文件修改AI行为;2) 使用变量占位符实现动态内容生成;3) 每个函数拥有独立的配置参数。与原生函数相比,语义函数更侧重自然语言处理能力,而原生函数则提供编程逻辑控制。实际应用中需注意配置的独立性和参数继承优先级,遵循文件结构规范,将不同功能的语义函数组织为独立的Skill插件。
2026-03-02 10:46:39
544
原创 ShardingSphere 与 @DS 注解如何共存?深度解析分库分表数据源的整合方案
本文探讨了在高并发系统中整合ShardingSphere与@DS注解的解决方案。核心矛盾在于两者作为不同的数据源管理层存在冲突,直接混用会导致分片失效等问题。正确的做法是将ShardingSphere作为"黑盒数据源"注册到动态数据源框架中。文章详细解释了ShardingSphere的工作原理,强调其分片规则完全依赖显式配置而非自动发现。关键整合技巧是采用"fake配置"机制:先在Java代码中创建ShardingSphere数据源Bean,再在YAML中声明同名空配
2026-02-26 10:40:50
562
原创 深度解析 OpenAI Assistant API:从核心架构到实战场景
OpenAI Assistant API 是新一代智能体开发接口,提供开箱即用的智能体能力,相比传统Chat Completions API具有显著优势。它自动维护对话上下文,无需手动拼接历史消息;内置文件读取、代码执行、函数调用等核心功能;支持创建可复用的智能体模板;提供安全的沙箱环境运行代码;并具备回答可追溯性。该API适用于知识库问答、数据分析、多轮对话和外部系统集成等场景,通过Assistant、Thread、Message、Run四个核心对象实现智能交互。开发者可快速构建具备复杂能力的AI应用,显
2026-02-25 16:51:48
1210
原创 一文读懂IaaS、PaaS、SaaS区别(附DevOps平台实战场景,新手必看)
硬件 → IaaS(基础设施) → PaaS(开发平台) → SaaS(成品软件)底层是基础,上层是基于底层搭建的服务;层级越高,用户需要做的事情越少,门槛越低。IaaS:管基础设施,给运维用,自己搭环境;PaaS:管开发平台,给程序员用,自己写代码;SaaS:管成品软件,给所有人用,自己直接用。
2026-02-25 11:36:13
2205
原创 深入解析MCP与agent skill
本文探讨了AI智能体技术从聊天模型向实用工具转型的关键挑战——如何安全高效地连接LLM与外部世界。重点介绍了模型上下文协议(MCP)这一开放标准,其通过三层架构(客户端-服务器-工具)实现"一次开发,到处使用"的目标。MCP提供三大核心原语:执行工具(Tools)、只读资源(Resources)和预设提示词(Prompts),并支持多种传输协议。文章还对比了MCP与Agent Skills的关系,前者提供执行能力,后者定义知识流程,二者协同工作。最后给出GitHub集成和天气查询两个实战
2026-02-09 18:12:08
940
原创 从 SAS 到 MAS:构建高效、可扩展的 AI Agent 架构演进
架构决策权执行权上下文控制SAS单 Agent单 Agent差Executor好Basic MASPlannerPlanner很好⭐⭐⭐⭐⭐场景推荐架构简单问答基础 SAS工具密集长对话Basic MAS超复杂任务通用 AI Agent 平台⭐⭐⭐⭐⭐Agent 架构的本质,不是模型有多强,而是“谁在什么时候,知道什么,能做什么”。
2026-02-07 12:04:57
665
原创 Word2Vec 的作用与局限:它为什么只能“生成向量”,却无法真正生成合理的句子?
摘要: Word2Vec作为自然语言处理的里程碑模型,其核心功能仅是将词语映射为静态向量(如Skip-gram/CBOW),并非生成模型,文本生成实际依赖后续的RNN/LSTM等结构。其三大缺陷显著影响生成质量: 静态向量:多义词(如“苹果”)被迫共享单一向量,导致语义混淆,生成内容可能局部合理但整体矛盾; 局部窗口限制:仅捕捉固定窗口内的上下文,无法建模长距离依赖,生成易“跑题”; 上下文对称性:忽略词序和语法关系(如“狗咬人”与“人咬狗”差异),削弱逻辑表达。 这些缺陷使基于Word2Vec的生成模型难
2026-01-29 16:48:36
470
原创 从 Word2Vec 到 Transformer:Attention 是如何被“逼出来的”?
本文从Word2Vec的三大核心缺点(静态向量、窗口限定、上下文对称)出发,推导出Attention机制的必然性。文章指出,理想的词向量应能根据上下文动态生成,而Word2Vec的固定表示无法区分词语在不同语境下的含义。通过分析上下文词的重要性差异,自然引出加权求和的Attention雏形。详细阐述了从Word2Vec的点积相似度到Attention打分函数的演进过程,包括Query、Key、Value的引入逻辑,以及Transformer如何通过多层Attention实现动态语义表示和文本生成。最终论证了
2026-01-29 16:47:14
641
原创 从一次“Statement Closed”错误说起:深入理解 Druid 与 HikariCP 连接池的核心差异与配置之道
摘要(148字): 本文深入分析数据库连接池的核心机制,揭示Druid与HikariCP在面对MySQL连接超时时的本质差异。通过真实案例展示Druid因minIdle误解导致的"僵尸连接"问题,并对比两种连接池的设计哲学:HikariCP采用主动销毁策略(max-lifetime),而Druid依赖验证机制(test-on-borrow)。文章提供关键参数配置建议,指出HikariCP适合高性能场景,Druid则满足企业级监控需求,帮助开发者根据业务特点做出合理选择。
2026-01-27 17:03:02
610
原创 深入理解MySQL页分裂:从原理到优化的全面解析
MySQL页分裂机制解析 MySQL的InnoDB引擎通过B+树索引组织数据,当插入数据导致页空间不足时会触发页分裂机制。页分裂分为叶子节点分裂和非叶子节点分裂两种场景,通过迁移一半数据来维持B+树的平衡特性,保证所有叶子节点处于同一层级。顺序插入(如自增主键)相比随机插入(如UUID)能显著减少页分裂频率,性能差异可达10-100倍。联合索引的插入遵循最左前缀排序规则。页分裂会带来IO开销、数据移动和锁竞争等性能影响,优化策略包括使用自增主键、批量有序插入、调整填充因子等。可通过监控系统状态和索引碎片化程
2026-01-14 11:23:07
782
原创 使用 KMS 管理阿里云 OSS 临时凭证(AK/SK/STS):原理、对比与实战代码示例
本文对比了在生产环境中使用长期AK/SK和短期STS凭证的安全差异,并提供了Java实现示例。长期凭证虽简单但风险高,而通过KMS下发的短期STS凭证能有效降低风险,支持细粒度权限控制和集中审计。文章详细展示了三种实现方式:直接使用长期AK/SK、一次性STS token以及自定义KMS+CredentialsProvider方案。其中第三种方案包含本地缓存和提前失效策略,演示了如何安全获取并刷新临时凭证。所有示例均为通用实现,不含任何公司私有代码。
2026-01-09 18:09:06
948
原创 在 MySQL 表关联中是否需要遵循联合索引的最左匹配原则?
摘要: 本文探讨了MySQL联合索引在表关联查询中的优化机制,重点分析了关联条件顺序与索引顺序不一致时是否影响索引使用。实验表明,即使JOIN条件顺序与联合索引列顺序不同,MySQL优化器仍能基于最左匹配原则智能调整,确保索引高效利用。关键结论:1)优化器自动适配条件顺序;2)等值条件不影响最左匹配;3)联合索引在JOIN中仍有效。该发现对复杂查询优化具有指导意义,说明MySQL优化器具备智能调整能力,开发者无需严格匹配条件顺序。(149字)
2026-01-07 15:48:10
838
原创 一次「varchar 时间字段」导致的 MySQL 索引选择问题实战分析
摘要:本文针对千万级数据表中varchar类型时间字段的查询优化问题,提出在不修改索引和字段类型的前提下,将BETWEEN范围查询改为IN枚举查询的解决方案。通过分析执行计划发现,原查询因字符串比较导致全表扫描1200万行,优化后利用索引仅扫描342行。同时解释了联合索引失效原因:缺少中间列导致后续条件无法使用。最终总结MySQL索引选择机制——优先考虑IO成本,而非业务逻辑,并提出varchar时间字段应优先使用IN查询、注意联合索引连续性等优化原则。(150字)
2026-01-05 18:28:45
372
原创 深入浅出解析 Word2Vec:词向量的训练与应用
如果我们选择“rests”作为输入词(即中心词),Skip-gram 的任务是预测“rests”周围的词,比如“he”,“in”,“peace”。在文本分类、情感分析等 NLP 任务中,我们可以将每个单词映射到 Word2Vec 词向量空间,然后通过对文本中所有词向量的平均或者加权平均,得到一个文本的向量表示。例如,在学习过程中,“cat”和“dog”这样的词,因为有相似的语义和上下文,模型会通过 Skip-gram 或 CBOW 的训练机制使得它们的词向量在高维空间中靠得更近。
2025-12-09 15:08:44
807
原创 [特殊字符] Python 多返回值完全解析:Java 开发者必须掌握的 tuple unpacking 技巧
特性PythonJava是否支持多返回值✔ 支持(tuple)✘ 不支持调用方式需要对象 / Map代码简洁度非常高一般典型语法自定义类、Map多返回值 + tuple unpacking 是 Python 的核心优势之一,也是在数据处理、AI、后端开发中大量使用的语法。
2025-11-30 10:25:00
458
原创 Python 字典取值的两种常见方式:直接访问与 `get()` 方法
直接访问字典name = result["document"][0] # 可能会引发 KeyError 或 IndexError# 使用 get() 安全访问name = documents[0] if documents else None # 安全访问,不会抛出异常通过这种方式,你可以更灵活地处理字典的键值对,确保代码更加健壮和可维护。如果你有更多问题或疑惑,欢迎继续提问!希望这篇博客能帮助你更好地理解 Python 中字典访问的不同方式,以及如何选择合适的方式来确保代码的安全性和可读性。
2025-11-28 10:35:34
449
原创 【深入理解 Python 中的 `if __name__ == “__main__“:` 语法】
在 Python 编程中,是一种非常常见且实用的写法。它用于决定当前 Python 文件是作为运行,还是作为被导入到其他 Python 程序中。这种结构可以帮助你在同一个文件中同时实现可重用的模块功能和独立执行的功能,极大地提高代码的灵活性和可维护性。本文将深入解析的作用、背后的原理以及它在实际开发中的应用。__name__在 Python 中,__name__是一个内置的特殊变量,它用于标识当前模块的名字。根据模块的使用方式,__name____name__import__name__.py通过。
2025-11-27 17:00:57
430
原创 【深入理解 Python 中的 `kwargs` 语法】
在 Python 中,**kwargs是一种非常常见的语法结构,它允许我们在函数定义中接收任意数量的key=value的形式)。尽管**kwargs在 Python 代码中频繁出现,但许多开发者可能对它的实际含义和用途感到模糊。本文将详细解析 Python 中的**kwargs语法,帮助你理解它的工作原理及实际应用。**kwargs**kwargs并不是一种特殊的数据类型,它实际上是一个,用于表示。在 Python 中,**kwargs是一个字典(dict),它将函数调用时传入的所有命名参数以。
2025-11-27 14:29:38
447
原创 【Python 类型注解:不仅仅是注释】
在 Python 中,类型注解是指对函数或变量的类型进行标注,目的是让开发者更清晰地知道参数和返回值的预期类型。通过类型注解,代码的可读性大大提高,也能让静态分析工具提前捕获潜在的类型错误。
2025-11-27 13:56:15
592
原创 深入浅出:反向传播算法(Backpropagation)核心原理
具体来说,反向传播能够有效地计算每一层的梯度,并通过梯度下降法更新每一层的权重。通过链式法则和梯度计算,反向传播算法能够有效地传递误差,计算每一层的梯度,并通过梯度下降法更新权重,使得神经网络逐渐收敛,达到最优解。反向传播的本质是通过链式法则(Chain Rule),把最终输出的误差“反向”地传递到每一层网络中,逐层计算梯度,从而调整权重,达到减少误差的目的。使得深度神经网络的训练变得更加高效和可行,它能够帮助我们在复杂的多层网络中计算出每一层权重的梯度,并通过梯度下降法更新这些权重,最终实现模型的优化。
2025-11-17 17:00:58
1223
原创 一步步理解梯度下降:从下山到预测房价
梯度下降,就是在误差函数形成的“半球形山谷”中,通过计算局部的斜率(偏导), 一步步沿着误差减少最快的方向(梯度反方向)走,最终找到误差最小的点(最优的 (k, b))。以上内容是我结合哔哩哔哩的大神有趣的理工男有趣的理工男的梯度函数讲解。
2025-10-31 18:30:52
1046
原创 理解 HTTPS 和 Burp Suite 证书信任机制
HTTPS(HyperText Transfer Protocol Secure)是基于 HTTP 协议的一种加密协议,用于保障网络通信的安全性。它通过 SSL/TLS 协议加密数据,防止中途被窃听或篡改。每个使用 HTTPS 协议的网站,都有一个由受信任的证书颁发机构(CA)签发的 SSL/TLS 证书。证书信任链CA 证书:证书颁发机构(CA)是一个可信的第三方,它会为网站签发数字证书。浏览器在安装时会内置多个根证书,这些根证书是由全球各大受信任的 CA 提供的。验证过程。
2025-10-29 13:50:55
759
原创 Java 反序列化中的 boolean vs Boolean 陷阱:一个真实的 Bug 修复案例
基本类型适合简单的数值计算,但在序列化/反序列化场景中容易出问题包装类型虽然占用更多内存,但提供了更好的语义表达和空值处理能力在 DTO、API 响应、数据库映射等场景中,优先使用包装类型这个看似简单的boolean到Boolean的改动,实际上解决了一个深层次的序列化语义问题。这也提醒我们在开发过程中要仔细考虑数据类型的选择,特别是在涉及序列化的场景中。关键词:Java、反序列化、boolean、Boolean、Feign、微服务、JSON、序列化陷阱。
2025-10-29 13:50:25
525
原创 从高维稀疏到低维稠密:推荐系统中的向量进化
本文探讨了推荐系统中从高维稀疏向量转向低维稠密向量(embedding)的必要性。高维稀疏向量(如词频、TF-IDF)虽然直观,但存在计算复杂度高、语义表达力差和维度灾难等问题。相比之下,低维稠密向量通过Word2Vec、BERT等模型学习语义空间表示,能更好地理解语义、提高计算效率并支持冷启动推荐。实验表明,embedding能有效捕捉词语间的语义关系,而不仅是字面匹配。这种转变使推荐系统从简单的统计匹配升级为真正的智能推荐,实现了更深度的语义理解、更高效的运算和更强的泛化能力。
2025-10-14 09:54:23
782
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅