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

从信息论的角度看微博推荐算法

引言

在数字时代,推荐系统已成为社交媒体和其他在线服务平台的核心组成部分。它们通过分析用户行为和偏好,为用户提供个性化的内容,从而提高用户满意度和平台的参与度。推荐系统不仅能够增强用户体验,还能显著提升广告投放的效率和效果。随着技术的不断进步,信息论在推荐系统中的新兴应用逐渐显现,为推荐算法的优化提供了新的视角。
信息论是一门研究信息处理、存储、传输和通信的数学理论。其核心概念如熵、互信息和信道容量,为量化信息的不确定性、相关性和传输速率提供了理论基础。近年来,信息论在推荐系统中的应用逐渐增多,特别是在处理大规模数据和提高推荐质量方面显示出其独特的优势。
image.png
微博作为中国领先的社交媒体平台,拥有庞大的用户群体和丰富的内容生态。其推荐系统面临着诸多挑战,包括如何从海量内容中筛选出用户感兴趣的信息,如何在实时性要求下快速响应用户需求,以及如何在不断变化的用户行为中保持推荐效果的稳定性。本文将从信息论的角度探讨微博推荐算法实践,分析其在推荐系统中的具体应用和效果。

第一部分:信息论简介及在推荐系统中的应用

信息论简介

香农在其开创性著作《通信的数学理论》中首次提出了信息论。信息论的核心在于量化信息的不确定性和相关性。熵(Entropy)是衡量信息不确定性的度量,互信息(Mutual Information)则衡量两个信息源之间的相互依赖性,而信道容量(Channel Capacity)则描述了在特定信道下可以传输的最大信息量。当然,以下是信息论中几个核心概念的计算公式:

1. 信息熵(Entropy)

信息熵是衡量信息不确定性的度量。对于一个离散随机变量 ( X ) ( X ) (X) ,其概率分布为 ( P ( X ) ) ( P(X) ) (P(X)),信息熵 ( H ( X ) ) ( H(X) ) (H(X))可以计算如下:
H ( X ) = − ∑ i P ( x i ) log ⁡ 2 P ( x i ) H(X) = -\sum_{i} P(x_i) \log_2 P(x_i) H(X)=iP(xi)log2P(xi)
其中, ( P ( x i ) ) ( P(x_i) ) (P(xi)) 是随机变量 ( X ) ( X ) (X)取第 ( i ) ( i ) (i) 个值的概率, ( log ⁡ 2 ) ( \log_2 ) (log2) 表示以2为底的对数。

2. 信道容量(Channel Capacity)

信道容量是衡量信道传输信息的最大速率的度量。对于一个离散无记忆信道,其信道容量 ( C ) ( C ) (C) 可以计算如下:
C = max ⁡ P ( X ) I ( X ; Y ) C = \max_{P(X)} I(X;Y) C=maxP(X)I(X;Y)
其中, ( I ( X ; Y ) ) ( I(X;Y) ) (I(X;Y))是随机变量 ( X ) ( X ) (X) ( Y ) ( Y ) (Y)之间的互信息, ( P ( X ) ) ( P(X) ) (P(X))是信道输入的概率分布。

3. 互信息(Mutual Information)

互信息是衡量两个随机变量之间共享信息量的度量。对于两个离散随机变量 ( X ) ( X ) (X) ( Y ) ( Y ) (Y),其互信息 ( I ( X ; Y ) ) ( I(X;Y) ) (I(X;Y))可以计算如下:
I ( X ; Y ) = ∑ i ∑ j P ( x i , y j ) log ⁡ 2 ( P ( x i , y j ) P ( x i ) P ( y j ) ) I(X;Y) = \sum_{i} \sum_{j} P(x_i, y_j) \log_2 \left(\frac{P(x_i, y_j)}{P(x_i) P(y_j)}\right) I(X;Y)=ijP(xi,yj)log2(P(xi)P(yj)P(xi,yj))
其中, ( P ( x i , y j ) ) ( P(x_i, y_j) ) (P(xi,yj)) 是随机变量 ( X ) ( X ) (X) 取第 ( i ) ( i ) (i) 个值且 ( Y ) ( Y ) (Y)取第 ( j ) ( j ) (j)个值的联合概率, ( P ( x i ) ) ( P(x_i) ) (P(xi)) ( P ( y j ) ) ( P(y_j) ) (P(yj))分别是 ( X ) ( X ) (X) ( Y ) ( Y ) (Y)的边缘概率。

4. 连续随机变量的熵和互信息

对于连续随机变量,熵和互信息的计算需要使用积分而不是求和。例如:

  • 连续随机变量的熵
    H ( X ) = − ∫ p ( x ) log ⁡ 2 p ( x ) , d x H(X) = -\int p(x) \log_2 p(x) , dx H(X)=p(x)log2p(x),dx其中, ( p ( x ) ) ( p(x) ) (p(x))是随机变量 ( X ) ( X ) (X)的概率密度函数。
  • 连续随机变量的互信息
    I ( X ; Y ) = ∫ ∫ p ( x , y ) log ⁡ 2 ( p ( x , y ) p ( x ) p ( y ) ) , d x , d y I(X;Y) = \int \int p(x, y) \log_2 \left(\frac{p(x, y)}{p(x) p(y)}\right) , dx , dy I(X;Y)=∫∫p(x,y)log2(p(x)p(y)p(x,y)),dx,dy其中, ( p ( x , y ) ) ( p(x, y) ) (p(x,y))是随机变量 ( X ) ( X ) (X) ( Y ) ( Y ) (Y)的联合概率密度函数, ( p ( x ) ) ( p(x) ) (p(x)) ( p ( y ) ) ( p(y) ) (p(y)) 分别是 ( X ) ( X ) (X) ( Y ) ( Y ) (Y)的边缘概率密度函数。

这些公式为信息论在推荐系统和其他应用中提供了理论基础,帮助我们量化和优化信息的传输和处理。

推荐系统中的信息论应用

在推荐系统中,信息论的应用主要体现在以下几个方面:

  1. 量化信息价值:通过计算用户和物品之间的互信息,可以量化不同信息对用户的价值,从而优化推荐结果。
  2. 降低不确定性:利用熵的概念,可以量化用户需求和行为的不确定性,进而有针对性地降低这种不确定性,提高推荐质量。
  3. 评估算法性能:信息论提供了一种客观的度量方法,通过比较算法产生的推荐结果与实际需求之间的信息差距(如交叉熵损失),可以评价不同推荐算法的优劣。

具体而言:

  1. 基于熵的损失函数:例如二元交叉熵损失(BCELoss),在推荐系统中常用于衡量预测概率与实际标签之间的差异。通过最小化这种损失,可以优化推荐模型的预测效果。
  2. 量化用户和物品之间的互信息:通过计算用户的历史行为与推荐物品之间的互信息,可以发现用户对不同物品的兴趣程度,从而提供更精准的推荐。
  3. 降低用户需求和行为的不确定性:通过分析用户的行为序列和偏好,可以预测用户的需求变化,进而减少推荐过程中的不确定性。

第二部分:微博推荐算法的全链路信息论实践

推荐链条中的信息流动效率

推荐系统的设计通常包括物料、召回、排序和重排序等多个阶段。在这些阶段中,信息的流动效率直接影响到推荐结果的质量和用户体验。物料阶段主要涉及内容的筛选和预处理,召回阶段则通过算法从大量物料中快速筛选出可能感兴趣的内容,排序阶段则进一步优化这些内容的推荐顺序,而重排序则在用户实际浏览过程中动态调整推荐内容。
image.png
样本和特征在推荐系统中起着至关重要的作用。样本是推荐系统学习的基础,而特征则是描述样本属性的变量。通过提取和优化这些特征,可以提高推荐算法的准确性和效率。

提升召回的信息利用率

在召回阶段,FM模型被广泛应用于提升召回率。FM模型通过学习用户和物品之间的隐含特征,能够更准确地预测用户的兴趣。通过让召回和后续的排序在目标上更加一致,可以减少召回和排序的内耗,从而提高整体的推荐效果。
image.png
MIE(多兴趣建模)模型则通过输出多个EMBEDDING来增加信息含量。这种方法能够直接从用户的行为序列中捕捉到长短兴趣信息,减少信息损耗。例如,在某些图片推荐业务中,通过深度序列召回算法的应用,能够显著提升点击率、互动率和关注率。
image.png

提升排序的信息利用率

在排序阶段,门控网络如SENET的FIBINET被用于减少噪音内耗。
image.png
FIBINET通过引入特征重要性网络结构,能够更有效地利用特征信息,提高排序的准确性。SENet模块或其改进变体在许多互联网公司的线上推荐或广告系统中取得了显著的效果。

image.png
MASKNET则是Twitter也在使用的精排算法。它通过特征遮盖网络,能够在特征的Embedding逐步放大时,克服过拟合问题,稳定提高推荐效果。MASKNET的细粒度特征遮盖在Criteo公开数据集中表现优异,效果位居前列。
image.png
统一TRANSFORMER模型则是微博推荐算法中的一次尝试。通过统一Embedding,将所有特征视为观察序列,可以更有效地处理不同类型和长度的特征。统一Embedding后的Transformer输出与MLP(多层感知器)结合,能够预测数值结果。对于UID特征,尝试长短两种尺度的Embedding融合,能够解决低频ID的合理初始化问题。
通过这些方法,微博推荐算法在信息论的指导下,不断优化其推荐效果,提升用户体验。在后续章节中,我们将进一步探讨多目标提升样本信息利用率、工程和数据方面的信息增量和一致性,以及信息论视角中的AGI时代推荐算法。

第三部分:多目标提升样本信息利用率

在推荐系统中,多目标优化是一种提升推荐质量的有效方法。通过同时考虑多个目标,可以更全面地理解用户的需求和行为,从而提供更精准的推荐。

Twitter的十大目标案例分析

Twitter在其推荐系统中采用了多目标优化策略,通过考虑用户的正面和负面行为,以及二阶行为目标,来提升推荐效果。以下是一些具体的目标示例:

  1. 正面目标
  • is_favorited:用户点赞的概率。
  • is_replied:用户评论的概率。
  • is_retweeted:用户转发的概率。
  • is_shared:用户分享的概率。
  • is_video_playback_50:用户观看视频超过一半的概率。
  1. 负面目标
  • is_negative_feedback_v2:用户对内容的负面反应概率,例如“显示较少”或屏蔽推文作者。
  • is_report_tweet_clicked:用户举报推文的概率。
  1. 二阶行为目标
  • is_good_clicked_convo_desc_favorited_or_replied:用户点击后进入推文对话,然后进行回复或点赞的可能性。
  • is_good_clicked_convo_desc_v2:用户点击后进入推文对话,在那里停留至少2分钟的可能性。
  • is_profile_clicked_and_profile_engaged:用户打开推文作者资料并进行互动的可能性。
  • is_replied_reply_engaged_by_author:用户回复推文后,推文作者参与该回复的可能性。
  • is_tweet_detail_dwelled_15_sec:用户在推文详情页面停留超过15秒的可能性。

这些目标不仅涵盖了用户的基本互动行为,还考虑了用户在互动过程中的深度参与度,从而更全面地评估推荐内容的质量。

实际工作中的多目标应用

在实际工作中,微博推荐系统也采用了类似的多目标优化策略。通过添加更多的目标,可以更细致地分析用户的行为和偏好,从而提供更个性化的推荐。以下是一些可能的应用:

  • 用户停留时间:通过分析用户在推荐内容上的停留时间,可以评估内容的吸引力和相关性。
  • 用户反馈:通过收集用户的正面和负面反馈,可以调整推荐策略,减少不相关或不受欢迎的内容。
  • 用户互动深度:通过分析用户在推荐内容中的互动深度,例如评论、转发和点赞,可以更准确地预测用户的兴趣。

通过这些多目标优化策略,微博推荐系统能够更全面地理解用户的需求,提供更精准的推荐,从而提升用户体验和平台的参与度。

第四部分:工程和数据方面的信息增量和一致性

在推荐系统的工程和数据方面,信息的有效利用和一致性是关键。以下是一些具体的实践:

工程确保信息的有效利用
  1. 大规模模型容量:随着数据量的增加,推荐系统需要处理越来越多的样本和特征。因此,模型的容量需要不断扩大,以支持万亿样本和万亿参数的能力。
  2. 实时/在线模型更新:为了跟上业务的时变性,推荐系统需要实现实时或在线更新。这不仅包括模型的更新周期从天级别提升至分钟级别,还包括特征的秒级更新。
  3. 在线超参数调整:通过在线调整超参数,可以进一步提升推荐效果。例如,通过优化超参数,可以提升用户在推荐内容上的人均时长。
  4. 深度和复杂网络支持:为了捕获样本的复杂知识,推荐系统需要支持深度和复杂的网络结构。这有助于模型更高效地理解和预测用户的行为和偏好。
  5. 正确性保障:从正确的信息中学习是推荐系统成功的关键。工程上需要从多个方面校验和尽快发现问题,确保推荐系统从高质量的数据中学习。
数据方面的信息增量和一致性
  1. 多场景多业务:推荐系统需要支持多个场景和业务。通过设计配套的场景专家和共享专家的算法网络,可以更好地处理不同场景和业务的需求。后期还可以升级专家网络为NAS学习子专家网络的组合,进一步提升推荐效果。
  2. 多模态信息的加入:为了处理更丰富的内容类型,推荐系统需要加入多模态信息,如图片和视频。这包括Embedding的加入、Embedding合方案的比较和择优选用,以及万级以上类别的聚类加入。
  3. 多种行为序列的加入:用户的行为序列是理解用户偏好的重要信息。通过加入多种行为序列,可以更全面地分析用户的行为和偏好。
  4. 样本的链路一致性:在召回、排序粗排流程中,正样本学习需要考虑下发曝光样本,而负样本则采用各阶段负样本的勾兑。正样本可以根据曝光位置加权,从而提高推荐效果。

通过这些工程和数据方面的优化,推荐系统能够更有效地利用信息,提供更精准的推荐,从而提升用户体验和平台的参与度。

第五部分:信息论视角中的AGI时代推荐算法

AGI时代的推荐算法挑战

随着人工智能技术的不断进步,我们正逐步进入人工通用智能(AGI)时代。在这个时代,推荐算法面临着前所未有的挑战和机遇。AGI不仅需要处理更复杂的任务,还需要在更广泛的应用场景中提供更精准的推荐。

  1. Chat入口与推荐系统的结合
  • Chat入口,如ChatGPT,已成为用户获取信息和进行交互的重要方式。推荐系统需要与这些Chat入口结合,利用用户的实时反馈和交互数据,提供更个性化的推荐。
  • 这种结合不仅提高了推荐系统的响应速度和灵活性,也增加了推荐内容的多样性和丰富性。
  1. 信息的极大丰富与AIGC的生产力革命
  • AIGC(人工智能生成内容)技术的发展,使得内容的生产和分发变得更加高效和个性化。推荐系统需要适应这种变化,处理更大量的内容,并从中筛选出用户感兴趣的信息。
物料的丰富与生产及时性的量变
  1. AIGC在物料生产中的作用
  • AIGC技术可以快速生成大量高质量的内容,满足用户的多样化需求。推荐系统需要能够处理这些内容,确保推荐结果的及时性和相关性。
  • 物料的丰富性不仅提高了用户的满意度,也对推荐系统的算法和数据处理能力提出了更高的要求。
  1. 生产即分发的新逻辑
  • 在AGI时代,生产和分发的界限变得模糊。推荐系统需要实时处理生产的内容,并立即将其分发给用户。这种“生产即分发”的逻辑要求推荐系统具备更高的实时性和动态性。
创造即理解与水军博弈
  1. 信息生产与理解能力的同步增长
  • AGI时代的推荐系统不仅要能够生产内容,还要能够理解内容。这种“创造即理解”的能力使得推荐系统能够更深入地理解用户的需求和偏好,提供更精准的推荐。
  • 推荐系统需要不断学习和适应用户的行为和偏好,以保持推荐结果的相关性和吸引力。
  1. 面对水军和机器人的挑战
  • 在AGI时代,推荐系统还需要面对水军和机器人的挑战。恶意行为可能会影响推荐结果的准确性和公正性。
  • 推荐系统需要具备更强的抗干扰能力,通过算法和策略识别和过滤恶意行为,确保推荐结果的质量和可靠性。

总结

通过本文的探讨,我们可以看到信息论在推荐系统中的广泛应用和重要性。从信息论的基础概念到其在推荐系统中的具体应用,再到微博推荐算法的全链路信息论实践,信息论为推荐系统提供了一种新的视角和方法。通过量化信息价值、降低不确定性和评估算法性能,信息论帮助推荐系统更精准地理解用户的需求和偏好,提供更个性化的推荐。
同时,多目标优化、工程和数据方面的优化也是提升推荐效果的关键。通过综合考虑多个目标、支持大规模模型、实现实时更新、加入多模态信息和保持样本链路一致性,推荐系统能够更全面地理解用户的行为和偏好,提供更精准的推荐。

展望未来推荐系统在AGI时代的发展方向
  1. AGI时代的推荐系统
  • 在AGI时代,推荐系统将面临更多的挑战和机遇。随着AIGC技术的发展和Chat入口的普及,推荐系统需要不断适应新的应用场景和用户需求。
  • 推荐系统需要具备更高的实时性、动态性和抗干扰能力,以应对不断变化的环境和用户行为。
  1. 未来的发展方向
  • 推荐系统需要不断优化其算法和策略,提高处理大规模数据和多模态信息的能力。通过深度学习和机器学习技术,推荐系统能够更深入地理解用户的行为和偏好。
  • 同时,推荐系统还需要加强与用户的交互和反馈机制,利用用户的实时反馈和交互数据,提供更个性化和精准的推荐。
  • 最后,推荐系统需要在确保推荐结果的质量和可靠性的同时,处理好与水军和机器人的博弈,确保推荐结果的公正性和准确性。

相关文章:

从信息论的角度看微博推荐算法

引言 在数字时代,推荐系统已成为社交媒体和其他在线服务平台的核心组成部分。它们通过分析用户行为和偏好,为用户提供个性化的内容,从而提高用户满意度和平台的参与度。推荐系统不仅能够增强用户体验,还能显著提升广告投放的效率…...

CISC(复杂指令集)与RISC(精简指令集)的区别

RISC(Reduced Instruction Set Computer)和CISC(complex instruction set computer)是当前CPU的两种架构。 它们的区别在于不同的CPU设计理念和方法。 早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算&#x…...

自定义数据库连接的艺术:Laravel中配置多数据库连接详解

自定义数据库连接的艺术:Laravel中配置多数据库连接详解 在现代Web应用开发中,经常需要连接到多个数据库。Laravel,作为PHP界最受欢迎的框架之一,提供了强大的数据库抽象层,支持多种数据库系统,并且允许开…...

力扣高频SQL 50题(基础版)第八题

文章目录 力扣高频SQL 50题(基础版)第八题1581. 进店却未进行过交易的顾客题目说明思路分析实现过程准备数据:实现方式:结果截图:总结: 力扣高频SQL 50题(基础版)第八题 1581. 进店…...

【C++20】从0开始自制协程库

文章目录 参考 很多人对协程的理解就是在用户态线程把CPU对线程的调度复制了一遍,减少了线程的数量,也就是说在一个线程内完成对协程的调度,不需要线程切换导致上下文切换的开销。但是线程切换是CPU行为,就算你的程序只有一个线程…...

Docker 深度解析:从入门到精通

引言 在当今的软件开发领域,容器化技术已经成为一种趋势。Docker 作为容器化技术的代表,以其轻量级、可移植性和易用性,被广泛应用于各种场景。本文将从 Docker 的基本概念入手,详细介绍 Docker 的安装、基本操作、网络配置、数据…...

[C++] 模板编程-02 类模板

一 类模板 template <class T或者typename T> class 类名 { .......... } 1.1 两种不同的实现 在以下的两种实现中,其实第一种叫做成员函数模板&#xff0c;并不能称为类模板因为这种实现,我们在调用时,并不需要实例化为Product这个类指定指定特定类型。 // 实现1 clas…...

嵌入式C++、STM32、树莓派4B、OpenCV、TensorFlow/Keras深度学习:基于边缘计算的实时异常行为识别

1. 项目概述 随着物联网和人工智能技术的发展,智能家居安全系统越来越受到人们的关注。本项目旨在设计并实现一套基于边缘计算的智能家居安全系统,利用STM32微控制器和树莓派等边缘设备,实时分析摄像头数据,识别异常行为(如入侵、跌倒等),并及时发出警报,提高家庭安全性。 系…...

C++ //练习 15.30 编写你自己的Basket类,用它计算上一个练习中交易记录的总价格。

C Primer&#xff08;第5版&#xff09; 练习 15.30 练习 15.30 编写你自己的Basket类&#xff0c;用它计算上一个练习中交易记录的总价格。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块&#xff1a; /********************…...

3个方法快速找回忘记的PDF文件密码

为确保PDF文件的重要信息不轻易外泄&#xff0c;很多人都会给PDF文件设置打开密码&#xff0c;但伴随着时间的推移&#xff0c;让我们忘记了原本设置的密码&#xff0c;但这时&#xff0c;我们又非常急需要打开编辑这份文件&#xff0c;这时我们该怎么办呢&#xff1f;下面小编…...

排序算法:选择排序,golang实现

目录 前言 选择排序 代码示例 1. 算法包 2. 选择排序代码 3. 模拟排序 4. 运行程序 5. 从大到小排序 循环细节 外层循环 内层循环 总结 选择排序的适用场景 1. 数据规模非常小 2. 稳定性不重要 3. 几乎全部数据已排序 4. 教育目的 前言 在实际场景中&#xf…...

【测试】博客系统的测试报告

项目背景 个人博客系统采用了 SSM 框架与 Redis 缓存技术的组合 &#xff0c;为用户提供了一个功能丰富、性能优越的博客平台。 在技术架构上 &#xff0c;SSM 框架确保了系统的稳定性和可扩展性。Spring 负责管理项目的各种组件 &#xff0c;Spring MVC 实现了清晰的请求处理…...

PointCLIP: Point Cloud Understanding by CLIP

Abstract 近年来&#xff0c;基于对比视觉语言预训练(CLIP)的零镜头和少镜头学习在二维视觉识别中表现出了令人鼓舞的效果&#xff0c;该方法在开放词汇设置下学习图像与相应文本的匹配。然而&#xff0c;通过大规模二维图像-文本对预训练的CLIP是否可以推广到三维识别&#x…...

搜索(剪枝)

定义&#xff1a; 剪枝&#xff0c;就是减少搜索树的规模、尽早排除搜索树中不必要分支的一种手段。 在深度优先搜索中&#xff0c;有以下几类常见的剪枝方法: 优化搜索顺序排除等效冗余可行性剪枝最优性剪枝记忆化剪枝 例题1&#xff1a;AcWing 167.木棒 题目&#xff1a;…...

python基础知识点

最近系统温习了一遍python基础语法&#xff0c;把自己不熟知的知识点罗列一遍&#xff0c;便于查阅~~ python教程 Python 基础教程 | 菜鸟教程 1、python标识符 以单下划线开头 _foo 的代表不能直接访问的类属性&#xff0c;需通过类提供的接口进行访问&#xff0c;不能用 f…...

Android SurfaceFlinger——GraphicBuffer获取内存信息(三十一)

上一篇文章介绍了 GraphicBuffer 初始化的 initWithSize() 函数中的申请内存流程,这里我们看一下另一个比较重要的函数,GraphicBufferMapper. getTransportSize 获取内存信息。该函数通常在需要了解缓冲区的实际内存占用情况时调用,例如在调试内存使用情况或优化性能时。 一…...

基于 SASL/SCRAM 让 Kafka 实现动态授权认证

一、说明 在大数据处理和分析中 Apache Kafka 已经成为了一个核心组件。然而在生产环境中部署 Kafka 时&#xff0c;安全性是一个必须要考虑的重要因素。SASL&#xff08;简单认证与安全层&#xff09;和 SCRAM&#xff08;基于密码的认证机制的盐化挑战响应认证机制&#xff…...

通用多级缓件组件

背景 业界第三方缓存框架一般为redis&#xff0c;本地缓地ehcache或guava&#xff0c;一般通过spring提供的restTemplate操作缓存 然而这样会存在以下问题&#xff1a; 与缓存中间件强耦合需手动整合多级缓存不支持注解数据更新时无法自动刷新缓存存在缓存穿透、缓存击穿、缓…...

MindIE Service服务化集成部署通义千问Qwen模型

一、昇腾开发者平台申请镜像 登录Ascend官网昇腾社区-官网丨昇腾万里 让智能无所不及 二、登录并下载mindie镜像 #登录docker login -u XXX#密码XXX#下载镜像docker pull XXX 三、下载Qwen的镜像 使用wget命令下载Qwen1.5-0.5B-Chat镜像&#xff0c;放在/mnt/Qwen/Qwen1.5-…...

chrome 接口请求等待时间(installed 已停止)过长问题定位

参考: 解决实际项目中stalled时间过久的问题 背景: 测试反馈系统开 6 个标签页后, 反应变的很慢 定位: 看接口请求瀑布流, 已停止时间很长, 后端返回速度很快, 确定是前端的问题 推测是并发请求窗口数量的问题, 屏蔽部分一直 pending 的接口, 发现速度正常了, 搜到上面的参…...

HDialog特殊动画效果

基于HDialog的特殊动画效果实现 业务场景 在开发过程中直接使用HDialog所展现的效果很快&#xff0c;同时不能够与用户所点击位置进行交互&#xff0c;会造成用户的体验观感不够好。因此需要实现一种能够从用户点击按钮位置以可变动画效果所展现的Dialog效果。 工作原理及实…...

基因组挖掘指导天然药物分子的发现-文献精读34

基因组挖掘指导天然药物分子的发现 摘要 天然产物是临床药物的主要来源&#xff0c;也是新药研发过程中先导化合物结构设计和优化的灵感源泉。但传统策略天然药源分子的发现却遭遇了瓶颈&#xff0c;新颖天然产物的数量逐渐无法满足现代药物开发的需求和应对全球多药耐药的威胁…...

hcip学习 DHCP中继

DHCP 中继 在可能收到 DHCP Discover 报文的接口配置 DHCP 中继&#xff0c; 指明 DHCP 服务器的地址&#xff0c;然后将 DHCP 发现报文以单播的形式送到 DHCP 服务器上 DHCP 中继报文的源地址和目标地址怎么确定 1、源地址&#xff1a;收到 Discover 报文的接口地址 2、目…...

[Mysql-函数、索引]

目录 函数&#xff1a; 日期函数 字符串函数 数学函数 聚合函数 索引&#xff1a; 索引分类 慢查询 创建索引 函数&#xff1a; MySQL函数&#xff0c;是一种控制流程函数&#xff0c;属于数据库用语言。 MySQL常见的函数有&#xff1a; 数学函数 用作常规的数学运…...

org.eclipse.jgit 简单总结

org.eclipse.jgit 是一个用于处理 Git 版本控制系统的纯 Java 库。它允许你读取和写入 Git 仓库&#xff0c;执行如克隆、拉取、推送、提交等操作。下面我将通过几个例子来展示如何使用 org.eclipse.jgit 进行一些常见的 Git 操作。 1. 克隆仓库 克隆一个远程 Git 仓库到本地目…...

Fork软件笔记:一键拉取仓库所有模块

Fork是一个好用的git工具&#xff0c;只是没有中文而已&#xff08;不过不用翻译也能看使用&#xff09;。 工具下载地址&#xff1a;https://fork.dev/ 界面展示&#xff1a; 当项目中仓库模块比较多时&#xff0c;可以看到每个模块都是一个分页&#xff0c;每一个都要手动切换…...

常见的锂电保护芯片 单节锂电保护/双节锂电保护芯片

目前外出贸易的要求不断增多&#xff0c;出口的产品基本上都需要带上锂电保护芯片 以下是常见的单节锂电保护芯片的选型 包括了市面上大部分的可用型号。 锂电保护芯片的脚位上面基本都是通用&#xff0c;可以直接替代 双节的锂电保护使用情况较少&#xff0c;需要外置MOS管调节…...

初识Java(六)

一、String类 1、类中有操作字符串的方法 查找&#xff1a;找到某个字符是字符串内的第几个&#xff1a;charAt&#xff1b;找到某个字符在字符串内第一次出现的下标&#xff1a;index 替换&#xff1a;替换所有&#xff1a;replaceAll&#xff1b;替换首个&#xff1a;repla…...

Spring-原理篇-DispatcherServlet 初始化 怎么和IOC进行了打通?

委托模式的体现&#xff0c;在初始化醒目的时候Spring MVC为我们提供了一个DispatcherServlet&#xff0c;映射了所有的路径&#xff0c;所有的请求都会先到达这里然后被转发到具体的Controller 进行处理&#xff0c;此文来探索一下&#xff0c;DispatcherServlet 初始化的时候…...

关于swift- OC混编使用Pod遇到的2个错误

错误1 Cannot find interface declaration for UITableViewCell, superclass of "DEFUITalbleViewCell" Cannot find interface declaration for UIView, superclass of "DefUIView" Cannot find interface declaration for 系统类, superclass of "自…...

Golang | Leetcode Golang题解之第290题单词规律

题目&#xff1a; 题解&#xff1a; func wordPattern(pattern string, s string) bool {word2ch : map[string]byte{}ch2word : map[byte]string{}words : strings.Split(s, " ")if len(pattern) ! len(words) {return false}for i, word : range words {ch : patt…...

【Django5】模型定义与使用

系列文章目录 第一章 Django使用的基础知识 第二章 setting.py文件的配置 第三章 路由的定义与使用 第四章 视图的定义与使用 第五章 二进制文件下载响应 第六章 Http请求&HttpRequest请求类 第七章 会话管理&#xff08;Cookies&Session&#xff09; 第八章 文件上传…...

HTML--JavaScript操作DOM对象

目录 本章目标 一.DOM对象概念 ​编辑 二.节点访问方法 常用方法&#xff1a; 层次关系访问节点 三.节点信息 四.节点的操作方法 操作节点的属性 创建节点 删除替换节点 五.节点操作样式 style属性 class-name属性 六.获取元素位置 总结 本章目标 了解DOM的分类和节…...

Redis 缓存

安装 安装 Redis 下载&#xff1a; Releases tporadowski/redis (github.com) winr ----services.msc-----将redis 设置为手动(只是学习&#xff0c;如果经常用可以设置为自动) 安装 redis-py 库 pip install redis-py Redis 和 StrictRedis redis-py 提供 Redis 和 Str…...

Prozyme糖样本检测平台--GlykoPrep® Rapid N-Glycan Preparation with APTS

单克隆抗体已成为生物制药行业具有潜力的新兴蛋白候选药物。其药物研发流程包括一系列精细的控制和评估步骤&#xff0c;需要仔细、严格地监测目标化合物的治疗稳定性及有效性。因此&#xff0c;在商业化前的每个阶段对单克隆抗体进行全面表征是极其有益的。在大量研究成熟的蛋…...

力扣面试题(一)

1、给你两个字符串 word1 和 word2 。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。 char * mergeAlternately(char * word1, char * word2){int len1 strlen(word1);i…...

Python 输入输出

重点内容&#xff1a; 1、梳理掌握输入和输出函数的应用。 2、熟练使用int() float() str()等函数进行数据转换 3、常用转义字符在数据输入、输出中的应用 4、熟练使用ljust()、center()、rjust()等方法对字符位置进行控制。 5、灵活应用ASCII码、字母、数字及特殊字符解决…...

国服最强文字转音频?Fish Speech

官网文档与示例 Fish Speech V1.2 是一款领先的文本到语音 (TTS) 模型&#xff0c;使用 30 万小时的英语、中文和日语音频数据进行训练。我尝试用1066运行&#xff0c;但是质量不尽如人意&#xff0c;建议使用RTX系列的显卡进行推理。 使用结果展示 text """20…...

数据结构(6):图

1 图的基本概念 1.1 基本概念 1.1.1 定义【多对多的关系】 一个图不可能是空图&#xff01;&#xff01;&#xff01;一个图的顶点集一定是非空集&#xff0c;但是边集可以为空集&#xff01; 1.1.2 应用 1.2 无向图和有向图 弧头是有箭头的那一边&#xff0c;弧尾是没有箭头…...

kaggle使用api下载数据集

背景 kaggle通过api并配置代理下载数据集datasets 步骤 获取api key 登录kaggle&#xff0c;点个人资料&#xff0c;获取到自己的api key 创建好的key会自动下载 将key放至家目录下的kaggle.json文件中 我这里是windows的administrator用户。 装包 我用了虚拟环境 pip …...

前缀表达式(波兰式)和后缀表达式(逆波兰式)的计算方式

缀是指操作符。 1. 前缀表达式&#xff08;波兰式&#xff09; &#xff08;1&#xff09;不需用括号&#xff1b; &#xff08;2&#xff09;不用考虑运算符的优先级&#xff1b; &#xff08;3&#xff09;操作符置于操作数的前面。&#xff08;如 3 2 &#xff09; 1.1 中…...

智能井盖管理系统:城市窨井的井下“保镖”

随着城市化进程的加速&#xff0c;城市的生命线基础设施面临着越来越多的挑战。其中&#xff0c;旭华智能智能井盖传感器技术的发展为提升城市基础设施的安全性和管理效率提供了新的解决方案。它专门用于监控市政窨井、燃气井、供水井内的积水状况以及井盖状态&#xff0c;以增…...

vue3-环境变量-JavaScript-axio-基础使用-lzstring-字符串压缩-python

文章目录 1.Vue3环境变量1.1.简介1.2.全局变量的引用1.3.package.json文件 2.axio2.1.promise2.2.安装2.3.配置2.3.1.全局 axios 默认值2.3.2.响应信息格式 2.4.Axios的拦截器2.4.1.请求拦截器2.4.2.响应拦截器2.4.3.移除拦截器2.4.4.自定义实例添加拦截器 3.lz-string3.1.java…...

ubuntu下载docker依赖包

Ubuntu下载docker依赖包 ​ 公司对外客户一直偏向对安全性要求较高&#xff0c;因此在外部署服务得时候&#xff0c;安装docker是一件极为重要得事情&#xff0c;之前得服务器得系统是centos7。在上一家公司的时候&#xff0c;已经把docker所需得rpm包已经集成打包好了。并且d…...

java面向对象进阶进阶篇--《JDK8,JDK9接口中新增的方法、接口的应用、适配器设计模式》

个人主页→VON 收录专栏→java从入门到起飞 接口→接口和接口与抽象类综合案例 一、JDK8接口中新增的方法 在JDK 8中&#xff0c;接口新增了几个重要的特性和方法&#xff0c;其中最显著的是默认方法&#xff08;Default Methods&#xff09;和静态方法&#xff08;Static Met…...

15.2 zookeeper java client

15.2 zookeeper java client 1. Zookeeper官方1.1 依赖1.2 Zookeeper客户端连接测试1.3***************************************************************************************1. Zookeeper官方 1.1 依赖 <!-- 集成方式一:官方集成zookeeper依赖 --><dependenc…...

素材管理太繁琐?有这一个就够了!

引言&#xff1a; 在创意行业中&#xff0c;素材管理一直是设计师们的痛点。从灵感的捕捉到作品的完成&#xff0c;每一步都离不开素材的积累与整理。然而&#xff0c;传统的素材管理方式往往繁琐且效率低下&#xff0c;让人头疼不已。今天&#xff0c;我要介绍的这款智能素材管…...

KubeSphere 部署向量数据库 Milvus 实战指南

作者&#xff1a;运维有术星主 Milvus 是一个为通用人工智能&#xff08;GenAI&#xff09;应用而构建的开源向量数据库。它以卓越的性能和灵活性&#xff0c;提供了一个强大的平台&#xff0c;用于存储、搜索和管理大规模的向量数据。Milvus 能够执行高速搜索&#xff0c;并以…...

前端canvas——贝塞尔曲线

曲线之美&#xff0c;不在于曲线本身&#xff0c;而在于用的人。 所以就有了这期贝塞尔曲线。 新规矩&#xff0c;先上个GIT。 效果图 开局一张图&#xff0c;代码全靠编。 代码 画骨 先想着怎么画一个心形吧&#xff0c;等你想好了&#xff0c;就知道怎么画了。 首先就还…...

Elasticsearch模糊查询之Wildcard

{“wildcard” : { “LPR.keyword” : { “wildcard” : “${Keyword}”} }},你的示例中使用了 wildcard 查询&#xff0c;它适用于模糊搜索&#xff0c;允许使用通配符&#xff08;* 和 ?&#xff09;来匹配字段值。你使用了 keyword 子字段来确保精确匹配&#xff0c;这是一…...