京东搜索EE链路演进 | 京东云技术团队

导读

搜索系统中容易存在头部效应,中长尾的优质商品较难获得充分的展示机会,如何破除系统的马太效应,提升展示结果的丰富性与多样性,助力中长尾商品成长是电商平台搜索系统的一个重要课题。其中,搜索EE系统在保持排序结果基本稳定的基础上,通过将优质中长尾商品穿插至排序结果中将优质商品动态展示给用户,提升用户体验与搜索结果丰富性,是破除马太效应的一大助力。

本文将从搜索EE近期的全量迭代出发,展现其链路演进的整体脉络,包含:EE自适应动态探测模型——EE场景建模方式升级——打分与穿插两阶段一致性升级——探测与自然流量全局联动优化四个阶段,梳理对搜索EE的思考与下一步迭代方向。

全文目录:

1. EE自适应动态探测模型

2. EE场景建模方式升级

3. 打分与穿插两阶段一致性升级

4. 感知上下文的品牌店铺维度探测

5. 总结与展望

一、EE自适应动态探测模型

传统EE模型从商品曝光置信度、打分置信度等角度出发,决策EE商品的展示位置以及穿插位置,较少从用户浏览意图与探索意愿的差异化角度,来考量探测力度。其可能导致用户在宽泛浏览与挑选商品时,缺少丰富的商品选择,在决策购买时反而穿插了探索商品的误判情景,影响用户的搜索体验,不能充分发挥搜索EE系统的探索和利用(Explore & Exploit)两大能力。

针对以上探测错配情况,可尝试在EE模型中显式建模用户的“逛”、“买”探索偏好,进一步结合偏好,自适应调整搜索EE的利用与探索力度。对于偏“逛”用户增强EE探索力度,提供更丰富的探索展示;对于购买意愿明显的用户,提供更直接的购买选择。通过对用户探索偏好的显式建模,能够在提升用户的转化效率的同时提升搜索结果丰富性。

1.自适应探索模型优化

相较于原有EE模型,自适应探索对EE模型的自适应探索能力进行了升级,主要体现在如下三点:(1)对用户探索偏好进行差异化建模:“逛” "买"用户提供动态差异化探测力度,在转化效率和搜索丰富性中取得平衡。(2)以用户浏览深度为子任务建模到EE模型中:以浏览深度作为用户意愿的重要指标,并建模到EE模型中,显式增强模型对用户浏览意愿的感知。(3)提升模型对探索性特征利用性:对探索偏好的显式建模,提升探索性特征在模型中的学习权重,在EE过程中对探索特征进行充分利用。

2.方案实践

为了增强EE模型的自适应探索能力,针对原有EE模型进行如下升级:

(1)探索偏好网络Explore-Net

在保持原有的EE模型主网络Exploit-Net基础上,添加了探索偏好网络Explore-Net(图中左下绿色部分),提升模型对用户探索意图的差异化建模。

①输入特征优化

考虑到用户的探索意图只与个人特性、搜索词相关,因此Explore-Net的输入特征仅使用用户侧、Query侧中相关特征。

为进一步度量特征与探索偏好的关联性,统计不同浏览深度下各特征的分布差异,剔除了未与浏览深度明显相关特征,如搜索词长度等,精简特征空间提升预估精度。

②模型显性建模

EE原模型的输入中包含探索性特征,但在进行搜索排序任务中易被其他特征掩盖导致利用率不强,在探索偏好建模中显式构建了探索偏好网络Explore-Net,对用户探索意图进行独立建模构建,增强探索性特征的重要性。

优化后的EE模型具有Exploit-Net与Explore-Net双塔结构,Exploit-Net对商品进行精准化打分,对候选商品进行充分利用;Explore-Net对用户探索意愿进行建模,根据用户偏好动态调整探索力度,共同构成商品探索与利用的完整机制。

(2)用户浏览深度回归任务构建

在原有的训练过程基础上,添加了用户浏览深度回归任务(图中左上红色部分),提升模型对用户浏览意愿的感知性,增强EE模型的自适应探索能力。

①辅助任务选择

浏览深度作为用户浏览意愿的直观体现,表现了用户的探索意愿,因此使用浏览深度预估任务作为模型训练的辅助任务,对用户偏好进行显式建模。

在辅助任务类型的考量上,综合考虑了将浏览深度划分不同区间进行预测的分类任务,以及对浏览深度的回归任务。在实验中分类任务体现出较为明显的头尾倾向性,输出值分布不均匀,实践中最终选用了回归任务作为辅助任务。

②回归任务设计

在样本数据分析中,发现用户的浏览深度差异化极大。为了平衡浏览深度的差异,保障模型输出值的均匀性与差异性,对浏览深度标签进行了log平滑放缩,并选用RMSE-loss作为辅助任务的损失函数对浏览深度任务进行构建。

在模型训练中头尾样本相对较少,对过浅和过深的两类样本预测准确性偏低。为平衡样本间差异,在损失函数的样本权重设计中,对由浅到深相应样本,其权重为先减小后增大的 “凹形”权重,平衡头尾和腰部样本的准确性。

(3)Explore-Net与主网络的二次融合

Explore-Net 和 Exploit-Net 进行了融合(图中中上红色部分),增强模型整体对探索性特征的利用,提升EE隐层embedding丰富性,对探索偏好较强的用户提升了不确定性打分,提升探索商品的范围和丰富度。

①特征融合

由于在用户浏览深度回归任务上对用户的探索偏好进行了显式建模,Explore-Net的输出embedding对探索性特征进行了高维抽取,能够对用户偏好进行自适应建模。

为让探索偏好特征更好地参与到整体任务训练中,平衡打分的精准性与差异化,将Explore-Net的深层表征与Exploit-Net的深层表征进行拼接融合,提升EE模型隐层embedding的丰富性和表征能力,提升模型打分能力。

②不确定性预估融合

用户的探索偏好与商品的不确定性预估有直接的相关关联。对于探索意图较强的用户,提升商品打分的不确定性,助力更丰富的商品穿插到搜索结果中,反之亦如此。因此在不确定性预估模块中,设计在探索表征层面进行融合。

在不确定性预估(SVGP)模块中,将浏览深度回归网络输出值与方差预估部分进行了二次融合,对于探索偏好较强的用户,显式强化了商品不确定性打分,提升探索力度。

3.升级效果

(1)探索利用效果分析

①EE模型打分结果分析:

在相同的预测集上,统计了平均打分探测力度随浏览深度变化情况

结论:相比原模型,自适应探索模型的平均探测力度,随浏览深度增大而逐渐增大,体现出session维度的显著差异化。

②EE实验位下穿插商品位置分析:

在各实验位下,统计平均插入位置与浏览深度的变化情况。

结论:Test桶结果,随着浏览深度增大,商品的平均插入位置相比原模型有所前移,探索力度增强。

核心结论:通过以上对探索利用的效果分析,自适应探索模型符合设计预期,在浏览深度较低的session下插入商品较少,探索力度较弱;在浏览深度较深的session下,EE模型的探索意愿更强,模型探索力度更大,穿插商品位置有所前移。

(2)线上效果

保持搜索效率持平的情况下,EE核心指标提升明显并全量上线,流动性、探索成功率提升近 0.5%。

商品建模方式思考:

差异化建模用户探索意图后,EE模块实现了对不同用户自适应调整探索并取得了一定收益。用户侧建模方式优化后,对商品侧建模方式进行升级改造,将是进一步提升EE探测模型的合理切入点。

二、EE场景建模方式升级

原主网络建模方式为点击率单任务,点击作为转化的前置行为,建模点击行为实现对潜力中长尾的探索助力。同时在实践中,通过样本label进行动态权重调整,隐式建模转化属性,兼顾转化效率。

仅建模点击对高转化属性商品并不友好,同时是对标题党行为的潜在鼓励,和EE模块优化整体生态环境、打造搜索长期价值的初衷有所偏差。因此升级思路不再局限于仅关注曝光后获得点击这一前置链路行为,而是对整体转化链路进行建模,关注商品的多维度属性。

1.EE场景建模方式优化

在原有基础上引入转化行为的显式建模任务,将主网络结构从点击单任务升级为点击转化多任务,以多任务方式增强不同行为的建模质量,实现对商品的更全面、更准确建模。

2.方案实践

在EE自适应探索机制基础上,EE场景建模方式升级对原有模型进行了如下优化与升级:

(1)SVGP模块交互方案设计

原模型中主网络和辅助模块在SVGP模块中交互,新版方案中辅助任务是否需要与SVGP模块进行交互? 即随机高斯过程是否需要同样作用于建模转化任务,是方案设计首要考虑的问题。

具体实验中,发现SVGP会导致收敛后AUC指标在千分位级别降低,即其在引入不确定性功能的同时,会轻微降低模型效果。考虑到目前SVGP模块已带来所需的探索能力,难以通过多SVGP堆叠方式带来收益。因此升级方案选择将辅助任务构建成纯净任务,其仅建模商品属性而不构建对应的SVGP模块。

(2)多任务网络框架实现

EE探测线上耗时较低,建模方式升级后需延续这一目标。虽然主流多任务结构MMOE性能更为优越,但线上耗时将有增加风险,因此选择更轻量级的share bottom方式,在基本不增加线上耗时的情况下完成多任务建模。升级方案把多任务被设计为双任务模型,使用低层网络进行表征抽取,在高层维度使用两个tower分别建模主任务和辅助任务。

①任务组合选取

选择双任务为ctr任务+ctcvr任务,考虑到点击样本比订单样本更丰富, ctr正样本更多,对于需要大量引导点的SVGP模块更为友好。同时点击相对购买行为的不确定性更高,在点击预测上引入不确定性打分更为合理,因此将ctr作为主任务、ctcvr为辅助任务进行配置。

②模型结构迭代

前述迭代过程中模型结构如图中间所示,低层网络编码输入信息后使用两个浅层tower分别学习不同任务, 该结构潜在缺点为一方面可能导致低层网络梯度被某个任务主导(例如ctr任务),另一方面上层tower过浅可能导致任务学习不够充分。

进一步探索仅共享特征、增加任务tower深度的网络结构。在多任务分数融合方式相同的情况下,新结构线上表现更佳,因此最终结构如上图最右所示,使用较深的tower head建模各自任务,彼此间仅共享特征。

③融合方式迭代

上述模型在离线指标上取得了不错的收益且线上表现更优,但遇到了大盘效率和EE相关指标无法同时提升的问题。分析梳理现有方案实验后,认为目前多任务融合方式相对朴素、存在改善提升空间。

选取带权相加、直接相乘和幂次指数相乘三种方式。由于缺乏合适的理论量化分析工具,因此选择从实验结果出发选取最优融合方式和融合系数,为此开发了离线融合寻参模块,将predict时各head打分结果保存后,通过网格搜索方式选取最优参数。

通过在多组数据上遍历寻优确定不同融合方式的最优系数,并基于此开展线上实验选取表现最优方式,最终我们选取带权相加方式,在EE指标提升的同时保持大盘效率指标持平。

3.升级效果

(1)模型建模升级效果分析

①EE模型打分区分度分析:

在相同的预测集上,统计了离线打分分布情况

结论:分布由橙色线条(原版)变为蓝色线条(升级后版本),整体更加平缓,保证不同商品彼此更具备区分度。

②EE探测次数分析:

统计线上打分分布情况,对线上探测情况进行分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

结论:横轴为曝光数量大于等于N,纵轴为distinct sku数量,下图表明模型升级后在仅探索一次的dst sku数量上有所下降,减少偏随机的一次性探测,但在多次探索商品上有所提升,表明test更倾向于探索中腰部商品。

(2)线上效果

搜索效率持平情况下,流动性指标、探索成功率提升显著并全量上线。

链路一致性思考:

完成EE打分模型优化后,能够一定程度实现探索力度随用户探索意愿的动态调整。但从整体EE链路上看 (候选集生成 → EE打分 → 动态展示),EE动态穿插决策与打分阶段相互独立,其结果由一个xgb回归模型决定,两个阶段的联动关系和一致性程度弱。如何跟随用户浏览意愿,将 EE打分→ 动态展示 两个环节能够同步、一致性地调整,是进一步的优化方向。

三、打分与穿插端到端一致性升级

打分与穿插展示两个阶段一致性未能对齐,可能导致激进的模型打分无法匹配上丰富的穿插展示,无法同步放大EE的探测效果。此外,两个阶段分别由两个模型独立控制,也增加了维护和迭代成本。

面对此一致性问题,升级了端到端打分与穿插方案。EE模型中建模的用户浏览意图,不仅影响EE探测的力度大小,也同时决定动态穿插展示的策略强弱。两阶段的决策过程端到端实现,将流量进行更合理分配,宽泛意图的用户能够达到探测更激进、穿插更多的共振。

1.端到端动态穿插机制优化点

端到端动态穿插机制在原有自适应探索基础上,升级点主要体现在如下三点:

(1)浏览深度预估精准度升级:在EE探索偏好建模网络Explore-net基础上,提升浏览深度预测精准度。

(2)EE流量精准化分配:根据session浏览深度分布,动态分配各深度下穿插商品量,提升EE穿插商品占比调控可操作性。

(3)模型打分与动态穿插数量端到端一致性增强:采用EE主模型的浏览深度,映射得到当前session下穿插商品数量,端到端解决EE穿插商品数量与EE商品打分两个任务,提升两阶段一致性。

2.方案实践

在EE自适应探索机制基础上,端到端动态穿插机制对原有动态穿插机制进行了如下优化与升级:

(1)动态穿插机制端到端建模

①浏览深度预估任务优化

浏览深度代表了用户在session下的浏览意愿,是EE流量进行合理分配的基础性指标。在不同浏览深度的session下,匹配适合数量的EE商品能在保障效率的前提下提升搜索结果丰富性。

进一步优化了自适应探索模型中Explore-Net对浏览深度预估子任务的准确性,对其输出的浏览深度预估值进行评估,其准度明显高于原有xgb模型,可以对原有xgb模型进行替换。

②端到端建模浏览深度与模型打分

自适应探索实验中使用Explore-Net对模型打分进行差异化探索,其中的浏览深度预估任务可以沿用到穿插商品数量任务中,使模型具有端到端建模两个子任务的能力。

(2)合理设计浏览深度与穿插商品数量映射

在准确预估浏览深度的情况下,通过将浏览深度预估值映射到穿插数量中,保障穿插数量与模型打分一致性,在更深的session下有更多的商品穿插数量和更强的探测力度。

3.升级效果

(1)动态穿插效果分析

①浏览深度预测准度分析:

对比两模型的浏览深度预估准确性,使用均方根对数误差(Root Mean Squared Logarithmic Error, RMSLE)指标进行衡量

结论:在同样的验证集下,Explore-net模型的预估精度明显优于原模型。

②探索打分、动态穿插一致性效果分析:

检查各浏览深度下base与test两个机制下各浏览深度下预设的插入商品曲线和穿插商品数量分布图。

结论:

  • 比较蓝色(test)与黄色(base)两根实线,在较浅的session下,新旧机制穿插商品数量基本持平;在较深的session下,新机制相较于旧机制插入商品数量更多,体现了探索较强时新的穿插机制会探索更多商品。
  • 通过蓝色实线与虚线,黄色实线与虚线两组曲线对比,新穿插机制下预期插入数量曲线与实际插入数量曲线更贴合,说明穿插数量设定更为合理,新的穿插机制与商品打分一致性更强。

(2)线上效果

搜索效率持平情况下,EE核心指标有一定提升并全量上线。

流量整体联动优化思考:

在对EE流量进行整体优化后,商品探索力度与EE流量分配能够随用户浏览意愿进行自适应调整,但从全局商品展示结果中看,EE探测流量与自然流量相互独立,两者之间并未建立充分的联动与结合。

将视角逐渐放宽到整个排序链路,如何做好EE流量与自然流量的联动,发挥EE在搜索排序链路后置位的优势充分补充与优化自然流量是下一个关心的问题。

四、感知上下文的品牌店铺维度探测

在搜索链路中,EE处于相对后置的位置,然而原EE系统未充分利用这一感知优势,对前序排序结果感知能力较弱。在一些强势品牌、店铺主导的关键词下,存在头部品牌、店铺扎堆现象,优质新品、中长尾商品无法露出,马太效应明显。

对此问题,尝试跳出仅考虑商品维度探测的局限,从更高的品牌、店铺维度视角,对排序结果进行全局性联动优化,建立感知上下文的多维度探测能力。其设计旨在增强对上下文排序结果的感知能力,并在自然流量中对商品分布进行联动优化,系统性缓解排序链路的马太效应。

1.感知上下文的多维度探测机制优化点

感知上下文的多维度探测机制在原有EE探测能力基础上,进行了如下三个方面的优化:

(1)新增EE探测系统对上下文感知能力:对EE前的排序上下文结果进行充分的感知,对自然流量下原有搜索排序结果进行自适应的穿插优化。

(2)实现EE探测维度的扩展:除了现有支持的商品粒度探测,从更宏观的品牌、店铺等维度视角对排序生态进行优化。

(3)EE流量与自然流量联动全局性优化:缓解部分词下头部品牌和店铺扎堆现象,提升排序多样性,避免对头部品牌、店铺商品进行更多探测、加剧马太效应。

2.方案实践

本次升级在原有的搜索EE穿插机制下进行了如下能力的增强与优化:

(1)新增上下文感知能力

在原有搜索EE穿插机制基础上,新增加上下文感知能力,对搜索词属性和上下文排序结果的商品分布进行计算,指导后续的穿插过程

①感知query词属性

为保障搜索排序结果合理性,避免产生体验性问题,感知上下文能力将判断query词是否是品牌词(如:华为)或型号词(如:iphone),决定是否开启品牌维度探测;判断query词是否是精准店铺词,决定是否开启店铺维度探测。

②排序结果商品分布

新增上下文排序结果感知能力,通过统计上链路搜索结果排名前k的商品中的品牌和店铺的分布情况,判断是否存在品牌或店铺的集中现象,进而决定是否开启多维度探测能力。

(2)优化原有穿插机制

在感知能力作为多维度探测启动开关基础上,优化了原有的穿插机制,通过EE展示效果与自然流量结果联动提升搜索结果丰富性与多样性,对搜索结果进行直接高效的影响。

①由感知能力模块判断用户搜索意图和商品分布,决定是否进行多维度探测

对用户搜索意图直接的搜索词动态开启多维度探测功能,如query为品牌词或型号词则不应进行品牌维度探测,如query为店铺词则不进行店铺维度探测,避免影响搜索结果的准确性。考量搜索结果的前k个商品的品牌/店铺分布,判断是否存在头部品牌/店铺扎堆的问题,当同一品牌/店铺下商品占比超过p%后,不再插入该类型EE商品。

②穿插结果优化

如不再插入该类型EE商品,在候选商品中剔除该类型,其余商品按照EE打分结果插入到排序结果中,不影响EE穿插过程与穿插数量,保障EE穿插位置和展现效果合理性。

3.升级效果

(1)多维度探测效果分析

①EE穿插曝光占比分析:

在EE穿插过程中,由于部分EE模型打分较高的头部品牌/店铺的商品在EE候选商品中被剔除,剩余商品模型打分稍低导致穿插位置发生后移或无法穿插进排序结果中,为了避免EE穿插曝光占比降低,提升了各浏览深度下EE穿插商品的配额。实验期间EE曝光占比base与test基本持平。

②多维度探测体验分析:

下面对比了多款热词下EE穿插商品情况。

结论:在多组query词下,test机制相较于base机制在穿插的过程中减少了头部品牌/店铺的插入,增强了展示结果的丰富性,缓解马太效应;同时注意到test机制由于部分头部品牌/店铺商品被滤除,穿插位置相对有所后移,在排序靠后的位置受配额影响多插入1-2个商品,整体曝光量与base基本一致,与分析一的结论一致。

(2)线上效果

在保持搜索效率持平的情况下,多样性指标大幅提升并全量上线。

五、总结与展望

本文重点阐述了在搜索EE机制迭代过程中的思考与演进历程,搜索EE作为优化搜索生态与缓解搜索马太效应的重要工具,在演进过程中也围绕搜索结果丰富性和体验性进行了系统性优化。

在优化思路上,不断寻找EE系统的瓶颈问题,在自适应探索机制和建模方式升级提供差异化商品探索力度;将商品打分与穿插商品个数进行联动,端到端优化EE流量分配问题;之后将视野扩展到全局流量,通过多维度探索机制联动自然流量,使EE流量作为自然流量的互相补充。整体思路体现出从商品间探索打分优化——EE流量个性化分配——与自然流量全局优化的迭代进程。

搜索EE后续还将面临更多的问题和挑战,后续会继续沿用这样的迭代思路在更多方面进行探索与深入:

  • 扩展EE模型的训练样本空间,优化现有任务建模方案。
  • 搜索EE向更广链路辐射,打造全链路EE探索能力。
  • EE覆盖更广商品建模,打造更完善的中长尾商品泛化表征。

今天的分享就到这里,谢谢大家。

作者:京东零售 才子嘉,赵恒

来源:京东云开发者社区 转载请注明来源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/120101.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#-SQLite-使用教程笔记

微软官网资料链接(可下载文档) 教程参考链接:SQLite 教程 - SQLite中文手册 项目中对应的system.dat文件可以用SQLiteStudio打开查看 参考文档:https://d7ehk.jb51.net/202008/books/SQLite_jb51.rar 总结介绍 1、下载SQLiteS…

RK3399平台开发系列讲解(内核调试篇)IO 数据工具:iostat和iotop

🚀返回专栏总目录 文章目录 一、iostat 命令二、/proc/diskstats 文件三、iotop 命令沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 在 Linux 系统上,iostat 和 iotop 这两个 IO 数据工具非常常用。它们都是性能分析领域中不可缺少的工具性软件。 一、iostat 命令…

mysql主从复制与读写分离

一,主从复制 1,为什么要做主从复制 单台mysql在安全性,高可用和高并发方面都无法满足实际的需求,所以可以选择配置多台主从数据库服务器以实现读写分离。 2,主从复制的原理 主从复制是为了保证数据的完整性&#xff0c…

界面控件DevExpress .NET应用安全 Web API v23.1亮点:支持Swagger模式

DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。 DevExpress 今年第一个重要版本v23.1日前已正式发布了,该版本拥有众多新产品和数十…

javaee spring aop实现事务 项目结构

spring配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:context"http://www.springframewo…

最小生成树Kruskal、Prim算法C++

什么是最小生成树 连通图&#xff1a; 在无向图中&#xff0c;若从顶点v1到顶点v2有路径&#xff0c;则称顶点v1和顶点v2是连通的。如果图中任意一对顶点都是连通的&#xff0c;则称此图为连通图。 生成树&#xff1a; 一个连通图的最小连通子图称作为图的生成树。有n个顶点的…

ARM编程模型-寄存器组

Cortex A系列ARM处理器共有40个32位寄存器,其中33个为通用寄存器,7个为状态寄存器。usr模式和sys模式共用同一组寄存器。 通用寄存器包括R0~R15,可以分为3类: 未分组寄存器R0~R7分组寄存器R8~R14、R13(SP) 、R14(LR)程序计数器PC(R15)、R8_fiq-R12_fir为快中断独有 在不同模…

centos中得一些命令 记录

redis命令 链接redis数据库的命令 redis-cli如果 Redis 服务器在不同的主机或端口上运行&#xff0c;你需要提供相应的主机和端口信息。例如&#xff1a; redis-cli -h <hostname> -p <port>连接成功后&#xff0c;你将看到一个类似于以下的提示符&#xff0c;表…

手写Mybatis:第12章-完善ORM框架,增删改查操作

文章目录 一、目标&#xff1a;完善增删改查二、设计&#xff1a;完善增删改查三、实现&#xff1a;完善增删改查3.1 工程结构3.2 完善增删改查类图3.3 扩展解析元素3.4 新增执行方法3.4.1 执行器接口添加update3.4.2 执行器抽象基类3.4.3 简单执行器 3.5 语句处理器实现3.5.1 …

【Eclipse】Project interpreter not specified 新建项目时,错误提示,已解决

目录 0.环境 1&#xff09;问题截图&#xff1a; 2&#xff09;错误发生原因&#xff1a; 1.解决思路 2.具体步骤 0.环境 windows 11 64位&#xff0c;Eclipse 2021-06 1&#xff09;问题截图&#xff1a; 2&#xff09;错误发生原因&#xff1a; 由于我手欠&#xff0c;将…

YOLOV8实例分割——详细记录环境配置、自定义数据处理到模型训练与部署

前言 Ultralytics YOLOv8是一种前沿的、最先进的&#xff08;SOTA&#xff09;模型&#xff0c;它在前代YOLO版本的成功基础上进行了进一步的创新&#xff0c;引入了全新的特性和改进&#xff0c;以进一步提升性能和灵活性。作为一个高速、精准且易于操作的设计&#xff0c;YO…

搭建个人hMailServer 邮件服务实现远程发送邮件

文章目录 1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工…

拓扑排序算法 -- dfs、bfs

210. 课程表 II 该题用到「拓扑排序」的算法思想&#xff0c;关于拓扑排序&#xff0c;直观地说就是&#xff0c;让你把⼀幅图「拉平」&#xff0c;⽽且这个「拉平」的图⾥⾯&#xff0c;所有箭头⽅向都是⼀致的&#xff0c;⽐如上图所有箭头都是朝右的。 很显然&#xff0c;如…

视频汇聚/视频云存储/视频监控管理平台EasyCVR部署后无法正常启用是什么问题?该如何解决?

安防监控/视频监控/视频汇聚平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;视频云存储/安防监控汇聚平台EasyCVR支持多种播放协议&#xff0c;包括&#xff1a;HLS、HTTP-FLV、WebSoc…

物联网应用中蓝牙模块怎么选?_蓝牙模块厂家

在蓝牙模块选型前期&#xff0c;一定要了解应用场景以及需要实现的功能&#xff08;应用框图&#xff09;&#xff0c;以及功能实现过程中所能提供调用的接口&#xff08;主从设备&#xff0c;功能&#xff09;&#xff0c;考虑模块供电&#xff0c;尺寸&#xff0c;接收灵敏度…

“深入探究SpringMVC的工作原理与入门实践“

目录 引言1. 什么是SpringMVC?1.1. 模型1.2. 视图1.3. 控制器 2. SpringMVC的工作流程2.1. 客户端发送请求2.2. DispatcherServlet的处理2.3. 处理器映射器的使用2.4. 处理器的执行2.5. 视图解析器的使用2.6. 视图的渲染 3. SpringMVC的核心组件4. 弹簧MVC总结 引言 SpringMV…

GitHub打不开解决方法——授人以渔

打不开GitHub的原因之一&#xff0c;DNS地址解析到了无法访问的ip。&#xff08;为什么无法访问&#xff1f;&#xff09; 1、打开GitHub看是哪个域名无法访问&#xff0c;F12一下 2、DNS解析看对应的域名目前哪个IP可以访问 DNS解析的网址&#xff1a; &#xff08;1&#x…

3D开发工具HOOPS Publish如何快速创建交互式3D PDF文档?

HOOPS Publish是一款功能强大的SDK&#xff0c;可以创作丰富的工程数据并将模型文件导出为各种行业标准格式&#xff0c;包括PDF、STEP、JT和3MF。HOOPS Publish核心的3D数据模型是经过ISO认证的PRC格式(ISO 14739-1:2014)&#xff0c;它为装配树、拓扑和几何、产品制造信息和视…

将序数与比特币智能合约集成:第 1 部分

将序数与比特币智能合约集成&#xff1a;第 1 部分 最近&#xff0c;比特币序数在区块链领域引起了广泛关注。 据称&#xff0c;与以太坊 ERC-721 等其他代币标准相比&#xff0c;Ordinals 的一个主要缺点是缺乏对智能合约的支持。 我们展示了如何向 Ordinals 添加智能合约功…

分布式 - 服务器Nginx:基础系列之Nginx静态资源优化配置指令sendfile | tcp_nopush | tcp_nodelay

文章目录 1. sendfile 指令2. tcp_nopush 指令3. tcp_nodelay 指令 1. sendfile 指令 请求静态资源的过程&#xff1a;客户端通过网络接口向服务端发送请求&#xff0c;操作系统将这些客户端的请求传递给服务器端应用程序&#xff0c;服务器端应用程序会处理这些请求&#xff…