搜广推校招面经四十三
快手主站推荐算法
一、因果推荐和偏差消除在推荐系统中的应用
1.1. 因果推荐
因果推荐(Causal Recommendation)是指利用因果推断的方法来理解和优化推荐系统的行为。不同于传统的基于关联分析的推荐方法,因果推荐旨在揭示用户行为背后的真正原因,从而提供更加准确和个性化的推荐。
应用场景
评估推荐效果
- 传统评估:A/B测试可以评估推荐算法的效果,但只能提供平均处理效应(Average Treatment Effect, ATE)。
- 因果推断:通过异质性处理效应(Heterogeneous Treatment Effect, HTE)分析不同用户群体对推荐的不同反应,帮助理解哪些推荐策略对哪些用户更有效。
反事实推理
- 反事实预测:利用因果模型预测如果给用户推荐了不同的物品会发生什么,有助于优化推荐策略,例如平衡探索与开发(Exploration vs Exploitation)。
去偏学习
- 选择偏差:许多推荐系统依赖于观测数据进行训练,而这些数据往往存在选择偏差(Selection Bias)。因果推断可以帮助识别并纠正这种偏差,确保推荐结果更能反映真实用户偏好。
1.2. 偏差消除
常见偏差类型
- 选择偏差(Selection Bias):由于推荐算法倾向于向某些用户推荐某些项目,导致这些项目的反馈数据过多,其他项目的反馈数据过少。
- 流行度偏差(Popularity Bias):热门物品更容易被点击或购买,获得更多的曝光机会,冷门但可能高质量的物品得不到应有的关注。
- 位置偏差(Position Bias):用户更有可能点击页面上部的推荐项,即使这些项并非最优选项。
消除偏差的方法
逆概率加权(Inverse Propensity Scoring, IPS)
- 方法:通过对每个样本赋予一个权重来调整其重要性,这个权重通常是基于该样本被观察到的概率的倒数。IPS可以帮助修正因选择偏差导致的数据分布不均问题。
倾向得分匹配(Propensity Score Matching, PSM)
- 方法:通过构建一个“伪实验”环境,将相似但接受不同“治疗”的个体配对,以减少混杂因素的影响,从而更好地估计因果效应。
多任务学习与元学习
- 多任务学习:设计能够同时考虑多个目标的模型,如同时优化点击率和多样性,间接地缓解偏差问题。
- 元学习:使用元学习框架来学习如何快速适应新任务,从而对抗位置偏差和其他形式的选择偏差。
强化学习
- 动态调整:采用强化学习方法动态调整推荐策略,根据用户的即时反馈不断优化未来的推荐决策,以此来对抗位置偏差和其他形式的选择偏差。
1.3. 结合应用案例
案例1:反事实推荐系统
- 背景:某电商平台希望了解如果改变推荐策略会对销售产生怎样的影响。
- 方法:利用因果推断技术进行反事实推理,模拟不同的推荐策略,并评估其潜在影响。
案例2:去偏推荐系统
- 背景:新闻推荐平台发现热门新闻占据了大部分流量,导致长尾新闻缺乏曝光。
- 方法:通过IPS方法重新加权推荐列表,给予冷门新闻更高的展示机会,以提升内容多样性和公平性。
通过结合因果推断技术和偏差消除策略,推荐系统不仅可以提升推荐质量,还能确保推荐结果更加公平、透明和可解释。这对于改善用户体验、增加平台粘性以及维护长期健康发展都具有重要意义。
二、反事实问题与样本量问题在推荐系统中的探讨
2.1. 反事实问题
概念
反事实问题(Counterfactual Questions)是指在给定当前观测数据的情况下,提出并回答“如果情况不同会怎样?”的问题。在推荐系统中,反事实推理帮助我们评估不同的推荐策略对用户行为的影响。
应用场景
-
策略评估:
- 通过模拟不同的推荐策略来预测它们的效果,而无需实际实施这些策略。
- 例如,假设我们想知道如果改变推荐算法的排序逻辑会对点击率产生什么影响。
-
个性化推荐优化:
- 利用反事实推理为用户提供更个性化的推荐,探索新的推荐组合以提高用户体验和满意度。
方法
- 基于模型的方法:构建一个能够估计反事实结果的模型,如因果森林、结构因果模型等。
- 基于权重的方法:如逆概率加权(IPS),通过对每个样本赋予一个权重来调整其重要性,从而模拟不同的推荐策略。
2.2. 样本量问题
挑战
在处理反事实问题时,样本量不足是一个常见且重要的挑战。小样本量可能导致以下问题:
-
统计显著性不足:
- 当样本量过小时,即使观察到了某些效果,也可能因为偶然因素导致结果不具备统计显著性。
-
模型过拟合:
- 小样本量下训练的模型更容易过拟合训练数据,导致泛化能力差,在新数据上的表现不佳。
-
偏差增加:
- 样本量不足可能导致估计偏差增大,尤其是在存在选择偏差或位置偏差的情况下。
解决方案
增加样本量
- 数据增强:通过合成数据、迁移学习等方式增加有效样本数量。
- 联合实验设计:与其他研究机构合作共享数据资源,扩大样本池。
改进方法
-
正则化技术:
- 使用L1/L2正则化、Dropout等技术防止模型过拟合。
-
交叉验证:
- 在有限的数据上使用K折交叉验证来评估模型性能,确保模型具有良好的泛化能力。
-
贝叶斯方法:
- 贝叶斯推断可以在样本量较小的情况下提供稳健的估计,并允许引入先验知识以减少不确定性。
-
元学习:
- 元学习框架可以快速适应新任务,即使在样本量有限的情况下也能有效地学习和应用经验。
-
半监督学习:
- 利用未标注的数据进行预训练,然后结合少量标注数据微调模型,提升整体性能。
2.3. 实际案例
案例1:在线教育平台的课程推荐
- 背景:某在线教育平台希望了解如果改变推荐算法会对学生选课行为产生怎样的影响。
- 方法:由于无法大规模地频繁更改推荐算法,采用反事实推理技术模拟不同推荐策略的效果。同时,面对有限的学生行为数据,使用数据增强技术和交叉验证来保证模型的稳定性和准确性。
案例2:新闻推荐系统
- 背景:新闻平台发现热门新闻占据了大部分流量,冷门但高质量的文章缺乏曝光。
- 方法:利用IPS方法重新加权推荐列表,给予冷门文章更高的展示机会。面对有限的用户交互数据,采用贝叶斯方法结合少量高质量反馈数据进行稳健估计,确保推荐策略的有效性。
通过合理解决反事实问题和样本量不足的问题,推荐系统可以更好地理解用户需求,提供更加个性化和公平的服务,最终提升用户体验和平台的整体表现。
三、多维 Treatment 下排序一致性决策
在多维 Treatment(干预)场景中,每个样本可能受到多个 Treatment 的影响(如广告投放、价格折扣、推荐策略等)。为了评估 Treatment 的效果,通常需要对样本进行排序,但多维 Treatment 下的排序可能存在不一致性。
3.1. 排序一致性的挑战
- 多维度冲突:不同 Treatment 的效果可能在不同维度上表现不一致(如点击率提升但转化率下降)。
- 权重分配:如何合理分配不同 Treatment 的权重,以综合评估其效果。
- 目标冲突:不同目标(如收入、用户满意度)之间可能存在冲突,导致排序不一致。
3.2. 决策方法
(1)加权综合评分
将不同 Treatment 的效果加权求和,得到一个综合评分,然后基于综合评分进行排序。
- 公式:
Score = ∑ i = 1 n w i ⋅ Metric i \text{Score} = \sum_{i=1}^{n} w_i \cdot \text{Metric}_i Score=i=1∑nwi⋅Metrici
其中, w i w_i wi 是第 i i i 个 Treatment 的权重,$\text{Metric}_i $是第 i i i 个 Treatment 的效果指标。 - 优点:简单直观,易于实现。
- 缺点:权重分配可能主观,难以反映复杂关系。
(2)多目标优化
将多维 Treatment 的排序问题转化为多目标优化问题,寻找 Pareto 最优解。
- Pareto 前沿:找到一组解,使得在某一目标上的改进必然导致其他目标的退化。
- 优点:避免权重分配的主观性,能够平衡多个目标。
- 缺点:计算复杂度高,难以直接用于大规模数据。
(3)层次分析法(AHP)
通过层次分析法,将多维 Treatment 的效果分解为多个层次,逐层进行权重分配和排序。
- 步骤:
- 构建层次结构模型。
- 构造判断矩阵。
- 计算权重并进行一致性检验。
- 基于权重计算综合评分。
- 优点:系统化、结构化,适合复杂决策。
- 缺点:依赖专家经验,主观性较强。
(4)机器学习方法
使用机器学习模型(如排序模型、多任务学习模型)自动学习多维 Treatment 的排序规则。
- 模型选择:
- 排序模型(如 Learning to Rank)。
- 多任务学习模型(如 MMOE、PLE)。
- 优点:能够自动学习复杂关系,适合大规模数据。
- 缺点:需要大量标注数据,模型解释性较差。
(5)基于规则的决策
根据业务规则和经验,制定多维 Treatment 的排序规则。
- 示例规则:
- 优先选择点击率和转化率均较高的 Treatment。
- 对于冲突情况,根据业务优先级进行取舍。
- 优点:灵活性强,易于理解和调整。
- 缺点:规则设计依赖经验,难以处理复杂场景。
四、S learner和T learner具体怎么做,各自优劣势?
见【元学习器的使用】
相关文章:
搜广推校招面经四十三
快手主站推荐算法 一、因果推荐和偏差消除在推荐系统中的应用 1.1. 因果推荐 因果推荐(Causal Recommendation)是指利用因果推断的方法来理解和优化推荐系统的行为。不同于传统的基于关联分析的推荐方法,因果推荐旨在揭示用户行为背后的真…...
Android打造易用的 WiFi 工具类:WifiUtils 封装实践
Android在全局范围内使用WifiUtils工具类,我们可以将其设计为一个单例,并通过Application类进行初始化。这样可以确保在整个应用程序中只有一个WifiUtils实例,并且可以在任何地方访问它。以下是实现全局使用的步骤和代码示例: 记…...
010-Catch2
Catch2 一、框架简介 Catch2 是一个基于 C 的现代化单元测试框架,支持 TDD(测试驱动开发)和 BDD(行为驱动开发)模式。其核心优势在于: 单头文件设计:v2.x 版本仅需包含 catch.hpp 即可使用自然…...
Kubernetes Pod的生命周期概述
概述 在Kubernetes的世界中,Pod作为最基本的应用进程单元, 其生命周期也代表着应用进程的整个生命周期。了解其生命周期是掌握云计算中一个计算单元如何在Kubernetes世界周转的基石。 本期文章主要针对于Pod的生命周期的不同阶段进行介绍,让读者能够对…...
Linux服务器使用docker离线安装MySQL
今天记录一下,Linux的docker安装MySQL镜像的步骤,以后安装任何镜像都可以仿照本篇文章。 因为我有一台云服务器是联网的,所有我的步骤就是把需要的镜像都在云服务器下载好,再保存下来,传到本地的不联网服务器。 其实我…...
软件安全分析与应用之Web安全(二)
2.3 第 3 题 Web 安全 2.3.1 撰写安装报告 要求录屏 (1)Vmware; 首先找到.iso镜像 点击下一步我接受 下一步 下一步 下一步 下一步 点击升级等待完成安装 (2)kali-linux 克隆kali 等待安装 克隆成功 然后开始启…...
CEH与OSCP:网络安全认证对比分析
在网络安全领域,渗透测试被视为至关重要的一环,帮助企业检测和修复系统漏洞。为提升行业标准,许多认证应运而生,其中CEH和OSCP作为行业认可度较高的认证,广泛被网络安全从业者选择。尽管这两者都涉及渗透测试领域&…...
如何通过强化学习RL激励大型语言模型(LLMs)的搜索能力?R1-Searcher来了
R1-Searcher,这是一种使用 RL 增强 LLM 的 RAG 能力的新框架,通过两阶段强化学习(RL)实现LLM在推理过程中自主调用外部检索系统,突破模型固有知识限制。 为了通过探索外部检索环境来激励大语言模型的搜索能力,设计了一种基于结果的两阶段强化学习方法,通过定制的奖励设计…...
AI重构电商内容体系:企业如何突破生产、管理、分发三重门?
在电商内容需求激增的2025年,AI技术已成为破解内容生产低效、管理混乱、分发粗放的核心工具。特赞科技服务案例显示,企业通过AIGC数字资产管理方案可实现效率300%提升。 内容科技驱动电商新范式 电商内容已从"商品说明书"演变为体验经济载体…...
版本控制器Git(1)
文章目录 前言一、初识Git问题引入解决方案注意事项 二、Git安装三、Git配置与基本操作Git创建Git配置用户名称和地址认识工作区、暂存区、版本库添加文件到仓库添加文件到暂存区提交暂存区内容到本地仓库 查看提交历史 四、Git 暂存区、HEAD、对象库及文件Git内部结构概览查看…...
VMware安装Windows server 2016
1、新建虚拟机,选择自定义模式 2、选择兼容性 4、命名虚拟机 5、固件类型 EFI 虚拟磁盘类型,不同电脑推荐的类型不同,用默认的就行 删除声卡和打印机 检查网络配置 选择本地的Windows server 2016的系统镜像,系统镜像可以去Window…...
【编程向导】-JavaScript-基础语法-类型检测
类型检测 类型检测的方法: typeofinstanceofObject.prototype.toStringconstructor typeof typeof 操作符返回一个字符串,表示未经计算的操作数的类型。 typeof undefined; // "undefined" typeof null; // "object" typeof 10…...
Python并发编程实战:突破GIL限制的工程化解决方案
一、GIL的本质与影响范围 **全局解释器锁(Global Interpreter Lock,GIL)**是CPython解释器的核心机制,其本质是一个互斥锁,保证同一时刻只有一个线程执行Python字节码。这一设计使得: ✅ 简化内存管理:避免多线程竞争对象引用计数 ❌ 限制多核性能:CPU密集型多线程程序…...
FPGA学习篇——Verilog学习之全加器的实现
跟着野火的视频学习了一下全加器的实现~ 1 半加器和全加器原理 首先,解释一下为什么全加器的 公式还可以写成以下形式: (1)首先我们要明白: 因为由真值表来看,他们是不相同的(当ab1时ÿ…...
嵌入式学习L6网络编程D4多进程并发
多线程 客户端 /*./client serv_ip serv_port */ #include "net.h"void usage (char *s) {printf ("\n%s serv_ip serv_port", s);printf ("\n\t serv_ip: server ip address");printf ("\n\t serv_port: server port(>5000)\n\n"…...
四层协议攻防手册:从SYN Flood到UDP反射的深度防御
一、四层协议攻击类型与特征 攻击类型协议层特征SYN FloodTCP大量半开连接,SYN_RECV状态堆积UDP反射放大UDP小请求包触发大响应(如NTP、DNS响应)TCP分片攻击TCP发送异常分片耗尽重组资源连接耗尽攻击TCP建立大量空闲连接占用端口资源 二、TC…...
hive开窗函数
进入hive [root@hadoop01 conf]# hive ... hive (default)> show databases; OK database_name default Time taken: 0.528 seconds, Fetched: 1 row(s)创建数据库 hive (default)> create database test; hive (default)> use test;创建表 字段名字段字段类型学号S…...
【技术白皮书】内功心法 | 第二部分 | Telnet远程登录的工作原理
远程登录的工作原理 背景介绍远程登录远程登录的服务模式远程登录服务的实现基础远程登录服务的运行模式Telnet服务为什么不被操作系统管理 Telnet协议的原理网络虚终端(NVT)结束标示NVT的原理NVT屏蔽差异 背景介绍 绝大多数计算机都是运行多用户操作系…...
AnyPlace助力Franka突破物体形状与配置多样性挑战
物体几何形状与放置配置多样性的挑战 在机器人操作领域,物体放置一直是一个复杂且富有挑战性的任务。由于物体的几何形状和放置配置的多样性,实现稳健且可推广的物体放置变得尤为困难。 传统的机器人放置方法往往依赖于大量的特定任务演示,…...
【工控】线扫相机小结 第五篇
背景介绍 线扫相机通过光栅尺的脉冲触发, 我在调试线扫过程中,发现图像被拉伸,预设调节分配器。图像正常后,我提高的相机的扫描速度(Y轴动的更快了)。 动的更快的发现,图像变短了(以…...
【Prometheus】层层解析prometheus如何监控k8s核心组件
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
泄露测试仪CTS的Sentinel I28使用
前言:本文档主要讨论CTS Sentinel I28的使用方法,设备图片如下: 具体文档可从下面链接下载: https://download.csdn.net/download/qq_34047402/90471262 泄露测试仪CTS的SentinelI28使用资源-CSDN文库 [注意] 调压方式,若选择机械式调压,那么测试的压力值只能有1个,…...
Python字典,集合
一.字典 在 Python 中,字典(dict)是一种非常重要且常用的数据结构,它用于存储键值对. 如下为字典的创建,打印键,打印值,和清空的操作 二.集合 在 Python 中,集合(set)是一种无序且唯一的数据…...
【数据分析大屏】基于Django+Vue汽车销售数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
目录 一、项目背景 二、项目创新点 三、项目功能 四、开发技术介绍 五、项目功能展示 六、权威视频链接 一、项目背景 汽车行业数字化转型加速,销售数据多维分析需求激增。本项目针对传统报表系统交互性弱、实时性差等痛点,基于DjangoVue架构构建…...
Ubuntu用户安装cpolar内网穿透
前言 Cpolar作为一款体积小巧却功能强大的内网穿透软件,不仅能够在多种环境和应用场景中发挥巨大作用,还能适应多种操作系统,应用最为广泛的Windows、Mac OS系统自不必多说,稍显小众的Linux、树莓派、群辉等也在起支持之列&#…...
关于sqlalchemy的ORM的使用
关于sqlalchemy的ORM的使用 二、创建表三、使用数据表、查询记录 二、创建表 使用Mapped来映射字段 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker,Mapped,mapped_columnBase declarative_base() engine create_engin…...
C 语言分支与循环:构建程序逻辑的基石
在 C 语言的世界里,分支和循环结构是编程的核心内容,它们赋予了程序根据不同条件执行不同操作以及重复执行特定代码段的能力,让程序变得更加智能和高效。今天,我们就深入探讨 C 语言分支和循环的相关知识,助力大家夯实…...
J-LangChain - Agent - 编排一个 ReAct + Function Call 反应链
系列文章索引 J-LangChain 入门 介绍 j‑langchain 是一款基于 Java 的 AIGC 编排框架,致力于集成多种大模型(LLM)调用及 RAG 工具。自 1.0.8 版本起,我们引入了工具函数(Function Call)调用能力…...
Rust 之一 基本环境搭建、各组件工具的文档、源码、配置
概述 Rust 是一种强调性能、类型安全和并发性的通用编程语言。它强制执行内存安全,使用其特有的所有权机制,而无需传统的垃圾收集器。Rust 不强制执行编程范式,但受到函数式编程思想的影响。 最初是由 Mozilla 员工 Graydon Hoare 在 2006 年…...
详细介绍 Jupyter nbconvert 工具及其用法:如何将 Notebook 转换为 Python 脚本
nbconvert 是 Jupyter 提供的一个非常强大的工具,允许用户将 Jupyter Notebook 文件(.ipynb)转换成多种格式,包括 Python 脚本(.py)、HTML、PDF、LaTeX 等。你可以通过命令行来运行 nbconvert,也…...
C语言之预处理
预处理 一.头文件的包含1.1头文件的作用1.2包含头文件的方式- 包含标准库头文件- 包含用户自定义头文件 1.3嵌套文件包含 二.条件编译2.1条件编译的作用2.2条件编译的指令 三.预定义符号四.define4.1define定义常量4.2#define定义宏4.2.1定义宏时常见错误 4.3宏替换的规则4.4带…...
AcWing--869.试除法求约数
题目: 给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一个整数 ai。 输出格式 输出共 n 行,其中第 i 行输出第 i 个整数 ai 的所有…...
【HeadFirst系列之HeadFirstJava】第16天之深入解析 Java 集合与泛型:高效管理数据的终极指南!(含代码实战)
Java 集合与泛型全解析:数据结构的奥秘(基于 Head First Java 第 16 章) 在 Java 开发中,我们经常需要存储和操作大量数据。如何高效地存储、检索和操作数据?如何避免数组的局限性?Java 集合框架ÿ…...
【从零开始学习计算机科学】操作系统(七)文件管理
【从零开始学习计算机科学】操作系统(七)文件管理 文件管理文件的逻辑结构文件的读写方式文件的物理结构与组织文件目录空闲块管理文件的共享文件的权限控制与保护文件系统的其他功能文件管理 文件管理主要涉及文件的逻辑组织和物理组织,目录的结构和管理。所谓文件管理,就…...
Stable Diffusion F.1模型全面解析
一、引言:生成式AI的变革与SD模型的演进 生成式AI的崛起 扩散模型(Diffusion Model)成为图像生成领域的主流范式,其通过逐步去噪过程实现高保真图像合成。Stable Diffusion(SD)作为开源社区标杆,…...
基于SpringBoot的手机销售网站设计与实现(源码+SQL脚本+LW+部署讲解等)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
上海利氪科技-再次续订MappingSpace
2024年6月,智能底盘系统方案商利氪科技完成C轮融资,本轮融资规模超10亿元人民币。 成立于2021年,利氪科技短短三年时间就已获得近20亿元融资。 利氪科技是领先的智能线控底盘系统方案商。公司聚焦新能源汽车和自动驾驶核心领域,依…...
go注册rpc接口
1.定义proto文件: syntax "proto3";package pb;service Service { rpc RPC (Request) returns (Reply) {} }message Request {string Action 1;int64 TraceID 2;string Payload 3; }message Reply {int32 Code 1;int64 TraceID 2;string Pa…...
如何在Spring Boot中校验用户上传的图片文件的两种方法
在现代应用中,用户上传图片是一个常见的需求。无论是社交平台、电子商务网站还是任何需要用户交互的应用,图片上传功能都显得尤为重要。但合理地校验用户上传的图片文件是必不可少的步骤,避免不合规的文件影响系统的稳定性和安全性。本文将介…...
如何将一个项目推送到gitlab
1. 初始化本地项目为 Git 仓库 若本地项目还不是 Git 仓库,要先将其初始化为 Git 仓库。在项目根目录下打开终端,执行如下命令: git init 2. 添加文件到暂存区 使用 git add 命令把项目中的文件添加到暂存区。若要添加所有文件࿰…...
【JavaWeb学习Day24】
Web前端实战 Vue工程化 Vue是一款用于构建用户界面的渐进式的JavaScript框架。(官方:https://cn.vuejs.org) Vue项目工程化:在企业级的前端项目开发中,把前端开发所需求的工具、技术、流程、经验等进行规范、标准化。…...
Scratch034豌豆发射(下)
知识回顾 1、克隆体点击角色的判断 2、使用克隆体时“停止该角色其他脚本”积木的作用范围。 效果演示 提示:这里可以添加本文要记录的大概内容每隔一段时间,舞台右侧就会出现多个除草机向左移动 点击不同位置的豌豆射手,可以发射豌豆攻击对应位置的除草机 除草机被豌豆击中…...
nacos下载及安装
下载官方最新稳定版 github下载较慢,推荐下面的下载链接 Nacos Server 下载 | Nacos 官网 点击下载和试用下载最新稳定版 Nacos Server 下载 | Nacos 官网 配置检查(可选) 默认情况下,Nacos 使用内置的 Derby 数据库&#x…...
javase集合框架Map篇
一、常见的Map的实现 有HashMap、Hashtable、LinkedHashMap、TreeMap、ConcurrentHashMap。 二、HashMap和Hashtable 的区别 HashMap:底层是基于数组链表,非线程安全的,默认容量是16、允许有空的健和值。 Hashtable:基于哈希表…...
【RAGFlow】windows本地pycharm运行
原因 由于官方只提供了docker部署,基于开源代码需要实现自己内部得逻辑,所以需要本地pycharm能访问,且docker运行依赖得其余组件,均需要使用开发服务器得配置。 修改过程 安装python 项目依赖于Python 版本:>3.1…...
STM32初始安装
前言 很多人刚买来STM32就迫不及待地想要用它来写程序,看见STM32开发版和ST-Link上有几个插口就直接连接,结果就像我一样一不小心就导致ST -Link烧坏了😂 所以本篇博客将做最基础的但是对于小白来说最重要的教学,STM32的线路连接…...
数据库系统概论(二)数据模型
数据库系统概论(二)数据模型 数据库系统概论(二)数据模型前言一、数据建模二、概念模型三、数据模型的三要素四、层次模型五、网状模型六、关系模型 总结(核心概念速记): 数据库系统概论&#x…...
深入理解C语言链表:数据结构的基石
在C语言的编程宇宙中,链表就像是一座稳固的基石,支撑着众多复杂程序的构建。它以独特的魅力和强大的功能,在解决各类编程难题时发挥着至关重要的作用。今天,就让我们一同深入探索链表的奥秘。 目录 一、链表初相识 二、链表的结…...
微信小程序文件存储和获取的详细方案
在微信小程序中,要根据索引(如自定义标识符)检查是否存在对应的文件,可以通过以下方案实现。这里假设你已通过某种方式将文件路径与索引关联存储(例如使用本地缓存 Storage),以下是完整流程&…...
java BCC异或校验例子
需求 对一个十六进制的字符串进行BCC校验 方法 private static String XORCheck(String rawMsg) {// 16进制字符串需要转成10进制数组进行校验,然后再返回16进制字符串用于与原来的字符匹配byte[] bytes HexDumpMsgFormat.hexStr2DesBytes(rawMsg);return BytesUt…...