导购是指在购物过程中为消费者提供指引和帮助的人或系统,旨在协助用户做出更优的购买决策。在电商平台中,导购通过推荐热卖商品、促销活动或个性化内容,显著提升用户的购物体验,同时推动销售额的增长。其核心目标是通过精准的引导,满足用户需求并促进商业价值最大化。
词分发:导购的重要组成部分
在电商导购体系中,词分发作为关键环节,主要聚焦于与关键词推荐相关的功能。这些功能包括但不限于下拉词、底纹词、热搜榜单、锦囊词以及风向标等。这些推荐词能够帮助用户快速定位感兴趣的商品或服务,降低搜索门槛,提高购物效率。例如,下拉词可以在用户输入搜索内容时提供智能提示,而热搜榜单则能引导用户关注平台上的热门趋势。
词分发平台的价值与功能
为了进一步优化词推荐的效率与一致性,词分发平台应运而生。该平台致力于打造一个通用、高效的词推荐生态系统,通过集成多种算法、工具和通用服务接口,为公司内不同业务域提供灵活的词推荐支持。其主要优势包括以下几点:
已支持社区、交易、营销30+导购场景。
个别场景示例
业务架构
平台架构
整体平台架构
平台+脚本化架构
脚本热部署功能在词分发搜索推荐引擎中发挥了重要作用,其主要目标是通过动态加载机制处理策略频繁变更的链路。实现这一功能的核心在于定义统一的抽象方法(具备相同出入参),将具体逻辑下放到 SDK 中,并通过后台打包、配置和推送流程,在线服务通过反射机制快速加载实现代码,再结合 AB 配置选择适用脚本。这种方法显著提升了策略调整的灵活性,同时减少了服务器重启的成本和时间。
在具体实施中,首先需要设计并实现统一的抽象方法,确保接口标准一致。随后,将具体的实现逻辑封装到 SDK 中,方便服务器端动态接收和加载。后台则负责提供打包、配置和推送功能,将实现代码整理为统一的包形式。当链路策略需要更新时,开发人员只需将新的实现代码上传至后台,完成打包、配置和推送操作。
在线服务在检测到新推送后,利用反射机制加载具体实现,并根据 AB 配置选择适用的脚本运行。这种动态加载方式无需重启服务,即可实现策略的即时切换和优化。整体而言,这一方法不仅提高了系统对策略变更的响应速度,还降低了维护成本,同时增强了系统的可靠性和稳定性,为词分发搜索推荐引擎的持续优化提供了有力支持。
主工程底座和脚本工程
在业务迭代的代码编写中,通常分为两种类型:主工程底座和脚本工程。
脚本热部署架构的存在原因
脚本热部署架构的存在主要出于以下原因:
串行架构
之前词分发业务一般都可以抽象为“预处理->召回->融合->粗排->精排->结果封装”等固定的几个阶段,每个阶段通常是有不同的算法或工程同学进行开发和维护。为了提升迭代效率,通过对推荐流程的抽象,将各阶段的逻辑抽象为“组件"+"配置”,整体的流程同样是一个配置,统一由“编排引擎”进行调度,同时提供统一的埋点/日志等。让工程或算法同学可以关注在自己的业务模块和对应的逻辑,而框架侧也可以做统一的优化和升级。
图化引擎架构演进
那为什么要去做“图化”/“DAG”呢?其实要真正要回答的是: 如何应对上面看到的挑战?如何解决目前发展碰到的问题?
从业界搜推领域可以看到不约而同地在推进“图化”/“DAG”。 从TensorFlow广泛采用之后,我们已经习惯把计算和数据通过采用算子(Operation)和数据(Tensor)的方式来表达,可以很好的表达搜索推荐的“召回/融合/粗排/精排/过滤”等逻辑,图化使得大家可以使用一套“模型”语言去描述业务逻辑。DAG引擎也可以在不同的系统有具体不同的实现,处理业务定制支持或者性能优化等。
通过图(DAG)来描述我们的业务逻辑,也带来这些好处:为算法的开发提供统一的接口,采用算子级别的复用,减少相似算子的重复开发;通过图化的架构,达到流程的灵活定制;算子执行的并行化和异步化可降低RT,提升性能。
图化是一种将业务逻辑抽象为有向无环图(DAG)的技术,其中节点代表算子,边表示数据流。不同的算子可以组合成子图,起到逻辑更高层封装的作用,子图的输出可供其他子图或算子引用。通过图化,策略同学的开发任务得以简化,转变为开发算子并抽象业务数据模型,而无需关注“并行化”或“异步化”等复杂逻辑,这些由 DAG 引擎负责调度。算子设计要求以较小粒度支持,通过数据流定义节点间的依赖关系。
图化引入了全新的业务编排框架,为策略同学提供了“新的开发模式”,可分为三部分:一是定义算子、图和子图的标准接口与协议,策略同学通过实现这些接口来构建业务逻辑图;二是 DAG 引擎,负责解析逻辑图、调度算子,确保系统的性能和稳定性;三是产品化支持,包括 DAG Debug 助手协助算子、图和子图的开发与调试,以及后台提供的可视化管理功能,用于管理算子、子图和图。整体架构可参考相关设计图。
图化核心设计和协议
节点‘算子’抽象封装——面向框架测
算子接口定义IDagTaskNodeExecutor<O>
/**
* dag 主节点注解
*/
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface DagNodeMetaProcessor {
/**
* 算子名字
* @return
*/
String name();
/**
* 算子描述
* @return
*/
String desc() default "";
}
/**
* 主工程节点任务-执行器
*
* @param <T>
*/
public interface IDagTaskNodeExecutor<T> {
T execute(DagStrategyContext dagStrategyContext);
图配置文件——面向框架测(使用者无需关心)
图分为图图,一个场景可以有多个图,可按实验制定不同的图;图定位为业务逻辑模版,可以将若干个独立算子组装为具有特定业务含义的“图”,图和算子一样可在场景大“图”中进行配置,即运行时可有多个“实例”,实现逻辑的复用和配置化。
面向业务使用者—如何配置
脚本化开发&灰度发布CICD
自迭代流程图
去脚本化后台执行配置,首先选择对应环境的对应集群服务(先预发验证,验证没问题,提merge给工程cr,合并后操作线上集群)。
脚本配置
如果是新加的脚步,选择配置,然后在配置页面对应类型的脚步后面选择新增,然后添加对应脚本类型的配置(一定要按类型添加,否则加载会失败),然后点击添加。
脚本构建
脚本发布
一次性全量发布(已有能力)
灰度发布
1. 通过cicd页面,构建完jar包后,点击右侧【灰度发布】按钮。
2. 跳转到灰度发布页面
3. 灰度中的jar包,列表表格状态显示灰度流量。
4. 在集群维度,有俩个jar,一个是灰度中的jar, 另外一个是基础base的jar。 表格显示如下:
DIFF评估平台
社区搜索评测平台是面向于内部算法、产品、研发同学使用的评测系统,主要用于建设完善得物社区搜索badcase评估标准体系,致力于提升用户搜索体验和搜索算法问题发现及优化两方面,提供完善的评测解决方案。
核心功能包含:query数据抽取、快照数据抓取、评测数据导出和评测标注结果效果统计分析。
干预平台
搜索底纹词、猜搜词、下拉词在搜索链路的前置环节出现,在用户没有明确的搜索需求时,对激发用户搜索需求有较大的作用,因此,这些场景既是资源位也需要严格把控出词质量。本需求计划在上述场景支持干预能力,支持在高热事件时干预强插,也支持干预下线某些不合适的词。
召回配置平台
在现代的搜索引擎系统中,多路召回是一个非常重要的组件,其决定了搜索引擎的性能和准确性。因此,多路召回的配置和管理,对于搜索引擎系统的性能、稳定性和可维护性来说是至关重要的。
在以前的词分发系统中,多路召回的配置是以JSON字符串的形式存在的。每次修改配置都需要对这个JSON进行手动的编辑,该过程非常耗费时间,随着召回路的增多,配置效率也会越来越低,而且这种方式容易出错。因此,我们需要一种更加高效、可视化的方法来管理和配置多路召回。
为了提高多路召回的配置效率和准确性,我们需要一种可视化的后台工具来替代手动修改JSON字符串的方式。这样的后台工具可以将多路召回的配置以更加直观和可视化的方式展示出来,让配置人员能够直接在页面上进行配置和修改,从而减少手动编辑JSON字符串的错误和繁琐性。
通过使用可视化的后台工具,我们可以方便地管理和配置各种算法和策略,从而大大提高搜索引擎系统的性能和可维护性。可视化的后台工具对于提高搜索引擎的性能和可维护性非常重要,它可以大大简化配置人员的操作难度和减少错误,进一步提高搜索引擎系统的效率、可靠性和灵活性。
单路配置
多路配置
当然还有其他基建和配套工具和基建服务支撑,这里不一一展开了。
词分发平台作为搜索引擎系统中的核心组成部分,负责管理和分配搜索词汇的处理与召回流程。其架构以灵活性和扩展性为核心,参考图示所示,平台通过模块化设计(如 Java 框架 Spring 容器、词分发平台主工程、依赖注入 Spring 容器、日志调试能力等)支持高效运行。为了适应市场需求的不断变化,未来词分发平台需从以下几个方面持续优化:
此外,未来平台将联合算法团队,打破词圈品与品圈词之间的数据孤岛,打通相关链路,从而全面提升词分发平台的智能化与功能性。这一战略将推动平台更好地服务多样化业务需求,为用户提供更精准、高效的搜索体验。
往期回顾
1. R8疑难杂症分析实战:外联优化设计缺陷引起的崩溃|得物技术
2. 可扩展系统设计的黄金法则与Go语言实践|得物技术
3. 得物新商品审核链路建设分享
4. 营销会场预览直通车实践|得物技术
5. 基于TinyMce富文本编辑器的客服自研知识库的技术探索和实践|得物技术
文 / 子房
关注得物技术,每周更新技术干货
要是觉得文章对你有帮助的话,欢迎评论转发点赞~
未经得物技术许可严禁转载,否则依法追究法律责任。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。