打造你的"哪吒推荐系统"
还记得《哪吒2025》里那个勇敢打破常规、闹出一片天的小英雄吗?今天我们要聊的,是如何用现代技术在零售领域掀起一场"数据革命"!
你是否也曾好奇过:
- 如何让H&M的服装像抖音视频一样被精准推荐给用户?
- 面对数百万商品,如何实现实时个性化推荐?
- 为什么 TikTok 的推荐机制能引发全球热潮,而我们能否将这套逻辑复刻到零售领域?
在这门课程中,我们将手把手教你用4阶段架构 和双塔模型,打造一个属于你的"哪吒推荐系统"!就像哪吒闹海一样,我们要用现代技术手段,在海量数据的海洋中开辟出一条 recommendation 的道路!
从特征工程到模型训练,再到实时服务,我们会一步步拆解这套系统的搭建过程。最终,你将学会如何利用Hopsworks AI 湖house,像哪吒一样灵活地部署整个推荐系统。
快速了解H&M零售数据集
个性化推荐最经典的使用场景,莫过于电商领域。这里有用户、商品以及二者之间的交易记录。
我们将要使用的H&M时尚个性化推荐数据集,就是一个完美的例子。
这个数据集包含以下CSV文件:
- articles.csv --- 记录了所有商品的信息,就像一本商品的"身份证"。
- customers.csv --- 保存了用户的档案,堪称"用户画像"的终极版。
- transactions.csv --- 记录了用户与商品之间的互动历史,就像是"购物日记"。
在下一课中,我们将深入探讨这些表格,并设计相应的特征。
说到收集个性化推荐的自定义数据,最大的挑战就是如何获取(或生成)有意义的用户与商品之间的互动。比如当一个用户:
- 点击了一个商品(点击率了解一下~)
- 将商品加入购物车(这可是潜在消费信号!)
- 购买了商品(终极目标达成!)
因此,我们将利用H&M数据集提供的交易记录来训练我们的模型,并展示这个应用场景。
不过,为了模拟真实世界的场景,我们还将在PoC界面中收集新的互动数据,这些数据将影响后续的推荐结果。这就好像是在打造一个实时更新的"魔力推荐系统",让用户每次打开应用都能看到新鲜出炉的个性化内容。
个性化推荐的核心范式
说到推荐系统,你有两个核心选择方向:
热门推荐背后的黑科技:哪吒2025也能用的双塔模型
说到推荐系统,你是不是经常在看视频或者购物的时候看到"猜你喜欢"?这些推荐背后其实藏着两大神技------内容过滤 和协同过滤。咱们一个一个来拆解。
1. 内容过滤:精准到什么程度?
想象一下,如果你是个忠实的哪吒迷,经常追哪吒相关的视频或动漫,系统就会像你的"铁粉后援团"一样,分析你对哪吒的喜爱特征(比如你特别爱看哪吒2025这种科幻神话结合的风格)。然后它会去找出其他具有相似特征的内容推荐给你------就像发现了一部新的哪吒相关作品,或者和哪吒2025画风一致的动画。
2. 协同过滤:群体智慧的力量
这个方法就像是在社交圈里找到跟你兴趣相投的人。比如你买了哪吒周边,系统会发现其他买同样周边的人还买了什么(比如哪吒主题的书、电影票等等),然后把这些关联商品推荐给你。就像组团去看哪吒2025一样,和志同道合的朋友一起追热剧的感觉是不是更爽?
现在咱们来认识一下背后的"乾坤大挪移"------双塔模型。
双塔模型:两个超级英雄的组合
这个模型的核心就是训练两支神经网络大军:
- 用户编码器:就像你的专属画像师,把你的特征(比如你喜欢哪吒2025、你经常看科幻片等等)转化成一个独特的"DNA向量"。
- 商品编码器:就像商品的DNA提取机,把每件商品的特征(比如这是一部科幻神话电影、它的评分很高等等)也转化成向量。
这两个编码器就像是哪吒和他的好兄弟一起战斗,目标就是在同一个战场上(也就是同一个向量空间里),找到最适合你的推荐内容。
让我们来聊一个超硬核的推荐系统知识点!这可是现代推荐系统的精髓所在------双塔模型架构!简单来说,这个架构就像是《哪吒2025》里的乾坤圈,能精准地把相似的东西和用户聚类到一起。
传统的推荐系统就像是用绳子牵着两群羊,而双塔模型则像是给这两群羊戴上了智能手环。它通过分别处理用户的特征和物品的特征,让整个推荐过程变得超级高效!特别是对于大规模的数据检索,简直就是如虎添翼------因为物品的嵌入(embeddings)可以预先计算好,然后直接存储到近似最近邻索引(ANN)或者数据库里(也就是常说的向量数据库)。这一步操作就像是《哪吒2025》里的风火轮,嗖的一下就解决了大问题!
说到评分机制,双塔模型用点积来作为损失函数的得分。这里有个小秘密:当用户和物品发生互动时,我们期望得分为1;没有互动的时候得分为0。这其实就是在间接使用余弦距离!通过这种方式,两个嵌入向量就被强行拉到了同一个向量空间里。
公式时间:cos distance = dot product with normalized vectors
这么一搞,整个模型就自带了协同过滤的功能!它就像是《哪吒2025》里的灵珠,能够捕捉到用户和物品之间的互动模式。那些行为相似的用户和访问模式相同的物品,都会被自动聚类到一起。
至于这个双塔模型到底是单纯的协同过滤算法,还是同时具备内容理解和协同过滤的能力,就取决于你给物品和用户的特征数量了。如果只用ID的话,它就是个纯协同过滤算法;但如果特征里有足够的信息量,那它就能化身成一个全能型选手!
接下来我们将深入探索这两个编码器的架构以及它们是如何被训练的( Lesson 3见分晓!),并了解整个训练流程。
让我们先来直观地理解一下这两个模型在四阶段推荐系统架构中的用法。这个架构就像是《哪吒2025》里的混天绫,把推荐系统的四个阶段完美串联起来!
四阶段推荐系统架构:现代推荐系统的标准配置
这个架构可是推荐系统的顶流,被NVIDIA、YouTube等大厂疯狂追捧!它能基于各种数据类型和应用场景构建出高效、实时的个性化推荐系统。
在四阶段的推荐系统中,数据流动就像是《哪吒2025》里的风火轮,分为两个方向:
- 离线管道:负责计算候选物品的嵌入,并把它们加载到向量索引或者数据库里。这个过程通常是批量处理的,就像《哪吒2025》里的乾坤圈,稳扎稳打地完成任务。
- 线上管道:计算客户实际建议的在线管道。此管道可以以批处理、异步、实时或流式处理模式运行,具体取决于您构建的应用程序类型。
这可是推荐系统的精髓所在!
线上pipeline:实时推荐的"火眼金睛"
想象一下,我们的推荐系统就像哪吒闹海时的"火眼金睛",随时准备识别用户的真正需求。无论是批量处理、异步运行还是实时流数据模式,这个线上管道都能根据不同应用场景灵活切换。
通过提前计算好商品候选嵌入(Candidate Embedding),我们可以从海量商品库中快速筛选出最适合用户的小范围推荐列表。这种做法既保证了推荐的个性化和趣味性,又避免了实时计算带来的延迟问题。
离线pipeline:哪吒的"七十二变"
在离线阶段,我们使用Items Candidate Encoder Model(基于Two Tower模型训练)来为数据库中的所有商品生成嵌入表示。这些商品特征向量连同它们的基本信息(比如ID)会被加载到一个近似最近邻(ANN)索引中,以便后续快速检索。
ANN索引主要有两种实现方式:
- 向量索引:比如ScaNN、Faiss;
- 向量数据库:比如Hopsworks、Qdrant、MongoDB。
通过将商品嵌入生成和实际推荐过程解耦,我们可以显著提升每个用户的推荐速度。因为所有需要的信息都已经预先计算好,用户一来就能马上得到个性化推荐。
线上pipeline的"四步变身术"
线上管道分为四个阶段(如图4所示),从用户的请求到最终的推荐结果,每一步都至关重要。
第一步:海量商品筛选
这一步的目标是从超过1亿甚至数百万的商品库中,筛选出与用户兴趣相关的数百个候选商品。这个过程主要通过协同过滤实现粗粒度个性化,利用商品和用户ID等基本信息进行相似性计算。
就像哪吒在东海中寻找宝物时的"火眼金睛",我们也在海量数据中快速定位目标。虽然这一步只是初步筛选,但已经能为后续的精准推荐打下基础了。
第一阶段:千军万马中寻找"灵珠子"
系统会根据用户的ID和当前日期等信息,通过咱们之前学过的Customer Query Model(基于Two Tower模型训练)生成一个独特的用户特征向量。这个过程就像是哪吒在东海中寻找灵珠子,虽然茫茫大海,但目标明确!
然后我们的"乾坤圈"------也就是向量数据库,就会开始扫描整个知识库。别担心,它可不是无头苍蝇一般乱撞。通过高效的检索算法,它能快速缩小范围,在几百个候选答案中找到最有可能的那几个。
第二阶段:精兵简政,过滤掉"不靠谱"的选项
接下来就是关键的净化环节了!系统会剔除那些已经被用户看过或者买过的物品。这个过程就像是哪吒在降服龙王三太子时,必须要先清理掉周围的障碍物一样。
这里有个小窍门------我们通常会用到Bloom滤镜(布隆过滤器),这是一个非常节省空间的概率数据结构。它能帮助我们在不占用太多资源的情况下,快速判断哪些物品是不需要的。
第三阶段:精雕细琢,打造专属推荐
通过前两关筛选后,剩下的就是精华中的精华了!这时候我们需要给这些候选物品打分排序。这个评分系统就像是哪吒的火尖枪,每一击都要精准到位。
在这里我们会用到各种高级算法,比如XGBoost、CatBoost这样的提升树,或者更酷的神经网络,甚至是最近大热的语言模型(LLM)。这些算法会根据用户和物品的各种特征,给每个候选打一个分数。这个过程虽然比之前慢一些,但胜在精准度高。
第四阶段:点石成金,呈现最佳推荐
最后一步就是把得分最高的几个"法宝"呈现在用户面前了!这就像哪吒最终祭出混天绫和乾坤圈,把最精华的宝物展示给大家。
在我们的推荐系统中,经过排名模型对每个"(商品候选,客户)"元组打分后,下一步就是根据评分和其他业务逻辑对这些商品进行排序啦!简单来说,就是要从一堆商品里挑出最有可能让顾客喜欢的那几个。
最终展示给用户的商品会按照得分高低来排列。得分越高,位置越靠前。这就像哪吒闹海时,总能最先拿到好东西一样!
有时候候选商品太多可能会让我们"消化不良"。这时候就需要精简一下,只保留xK个最相关的商品。毕竟谁想在一大堆选项里大海捞针呢?
relevance排序是关键!把最符合用户口味的商品放在前面,可以大大提高点击率。就像你打开Netflix、YouTube或Spotify时,第一眼就能看到你想看的电影或听的歌。
比如说,在我们的H&M案例中,这套推荐系统就像是哪吒的"火尖枪",总能精准地找到最适合你的衣服。
具体流程是这样的:
- 当用户在H&M app里逛街时,我们会悄悄地把他的ID和浏览时间发给推荐系统。
- 系统会根据这些信息,用"two-tower模型"给他生成一个独一无二的"客户画像"(就像哪吒的风火轮一样精准)。
这样,我们就能准确地猜到用户的心思啦!
3. 嵌入向量空间中的"哪吒寻宝":用Hopsworks帮你找到最Fashion的穿搭
想象一下,你是一个时尚版的"哪吒",手拿法宝去寻找最适合用户的时尚单品。我们把用户的兴趣嵌入到了和H&M服饰相同的"向量空间"中,然后借助Hopsworks这个强大的"AI湖house"来帮忙。它就像一个Fashion界的"天眼",快速帮你列出一份粗筛的"相关文章清单"。这一步就像是哪吒用火尖枪锁定目标一样精准!
4. 排除法:过滤掉你的"小秘密"
接下来,我们会用"排除法"------把那些你已经点击过或者买过的款式都去掉。毕竟谁会想看到自己已经拥有的东西呢?这个过程就像是一场"降噪",让我们的结果更纯粹。
5. 加Buff:让特征更丰富
为了让推荐结果更上一层楼,我们给用户和商品都加上了一层"Buff"------从我们的Hopsworks特征视图中提取更多维度的特征。这一步就像是给哪吒装备了更多的法宝,让他能释放出更强大的技能。
6. 火尖枪出击:CatBoost模型帮你精准打击
然后,我们用CatBoost模型来对剩下的时尚单品进行"排兵布阵"。这个过程就像哪吒的火尖枪一样,每一击都精准有力。它会根据你的兴趣和行为,把最有可能让你喜欢的商品排出一个"战力榜"。
7. 最终榜单: relevance_score 排序
最后,我们会根据"相关性得分"给这些时尚单品排个座次,并把这份榜单呈现在你面前。这就像是一场Fashion界的"比武招亲",最相关的商品会走到台前。
But what is Hopsworks?
它就像是一个AI世界的"幕后英雄"------一个AI湖house,专门帮助我们将推荐系统(recsys)送到"战场"上。它的主要能力包括:
- Feature store(特征存储):帮你把所有需要的特征都收进"粮草库",无论是训练还是推理都能随时调用。
- Model registry(模型注册表):你的模型有了一个安全的"家",可以随时存放和调取。
- Serving layer(服务层):搭建一条完整的"生产线",让你的推荐系统能实时预测。
有了Hopsworks,我们就能把所有特征都放进这个"粮草库",让它们随时为训练和推理服务。同时,通过它的模型注册表和生产环境,我们可以轻松地把我们的推荐系统部署到实际应用中。
FTI架构:Feature/Training/Inference(特征/训练/推理)的三重奏
就像哪吒闹海需要天时地利人和一样,任何ML系统都可以拆解为三个核心流程:特征工程、模型训练、实时预测。我们用Hopsworks把这些环节完美串联起来,就像是把哪吒的三件法宝合而为一,让整个推荐系统更加高效强大。
哪吒闹海!一图看懂ML系统架构的真相 😎
最近在学习机器学习系统建设的时候,发现了一个超级硬核的概念------FTI(Feature/Training/Inference)架构模式。这个模式是由Hopsworks的CEO Jim Dowling提出的,堪称是构建生产级ML系统的终极法宝!
让我们用哪吒2025的方式来解密这个架构:
-
特征管道:风火轮的速度
特征管道就像是哪吒的风火轮,负责把原始数据转化为可用的特征和标签。它就像哪吒脚踩风火轮一样,嗖的一下就把数据处理好了!
-
训练管道:混天绫的力量
训练管道则像是哪吒的混天绫,从特征存储中拉取数据,用这些特征和标签去训练模型。这个过程就像是哪吒挥舞混天绫,轻松拿下东海龙王!
-
推理管道:乾坤圈的精准
推理管道就像哪吒的乾坤圈,负责把处理好的特征和已经训练好的模型结合起来,进行实时或批量预测。这一步就像是哪吒用乾坤圈定住敌人,一击必中!
整个架构的核心就是它们统一的接口:
- 特征管道:输入数据 → 输出存储在特征库中的特征&标签
- 训练管道:从特征库拉取数据 → 输出模型到模型 registry
- 推理管道:使用特征库中的特征和模型 registry中的模型 → 输出预测结果
不管你的ML系统有多复杂,这些接口永远不变!就像哪吒的法宝一样,每次战斗都离不开它们!
接下来我们就用这个架构模式来解密H&M的推荐系统吧!
在本课中,我们将使用Python实现机器学习管道(特征、训练、嵌入、推理),并借助Hopsworks AI Lakehouse进行存储和部署。听起来是不是有点像哪吒闹海时的法宝?让我们一起拆解每个管道的功能吧!
首先是特征工厂!这个环节的任务是将原始的H&M数据(通常存储在数据仓库中)转化为可供模型使用的特征,并存储到Hopsworks的特征组里。简单来说,就像把一堆散乱的零件组装成精良的武器装备一样。
在Lesson 2中我们会详细介绍特征和特征组的概念,但目前你需要知道的是:特征组就像是数据库里的表,用来存放相关联的特征(比如顾客、商品、交易等信息)。是不是有点像哪吒的风火轮?灵活且功能强大!
接下来是训练营 !这个环节会从Hopsworks的各种特征视图中获取数据,用于训练双塔模型和排序模型,并将训练好的模型保存到Hopsworks的模型仓库里。
这里有个小彩蛋:双塔模型就像是哪吒的两件法宝,需要同时修炼。它会在并行的两个路径上分别训练候选商品编码器和查询编码器,就像哪吒同时掌握风火轮和混天绫一样!因此我们会把这两个模型分别保存到模型仓库中,因为它们会在不同的场景下发挥作用。
再说说特征视图这个概念:它就像是数据库里的虚拟表,只读模式(用于训练或推理)。你可以根据需要从多个特征组中挑选特定的特征,组合成一张虚拟表。这样就能轻松实现离线训练或在线推理的需求啦!是不是有点像哪吒打造自己的专属武器装备?灵活且精准!
哪吒2025:推荐系统的"三太子"架构解析!
在现代推荐系统中,我们通常会把整个流程拆解成三个主要部分:特征提取、训练和推理。这就像哪吒的三太子之位一样稳当,每个环节都有明确的分工。
离线推理管道:打造你的"混天绫"!
离线推理管道就像是哪吒的"混天绫",负责在后台默默准备数据和模型资源。具体来说:
- 加载候选模型:从模型仓库里取出预先训练好的模型,就像从兵器库中拿出倚天剑。
- 获取商品信息:通过特征视图(Feature View)加载各种时尚单品的数据,就像是从东海龙宫搬出珍宝一样。
- 计算嵌入向量:把商品数据转换成机器能理解的"语言",也就是高维向量。
- 存储到向量索引:把这些向量存进Hopsworks的向量索引中,就像是把这些珍宝锁在了安全的保险箱里。
这个过程就像哪吒在修炼内功,默默为战斗做准备!
实时推理管道:你的"火尖枪"出鞘!
实时推理管道则是哪吒的"火尖枪",直接面对用户的攻击。它主要负责:
- 加载查询和排序模型:从模型仓库中取出最新的模型,就像是拿出最锋利的武器。
- 获取特征数据:通过Hopsworks的特征视图加载用户行为等实时数据。
- 部署到AI湖仓:把整个流程部署在Hopsworks AI Lakehouse上,作为一个实时API对外提供服务。
这个过程就像哪吒直接与敌人交战,快速响应用户的每一个请求!
离线管道的GitHub Actions部署
为了确保离线ML管道能够高效运行,我们可以使用GitHub Actions来自动执行任务。这就像给哪吒配备了全自动武器库:
- 手动触发:随时启动任务。
- 定时调度:定期更新模型和特征数据。
- 代码合并触发:每当有新功能上线时自动运行。
这种方式就像是哪吒的"风火轮",让整个系统始终保持最佳状态!
以上就是我们今天关于推荐系统架构的分享。是不是感觉像极了哪吒闹海的场景?离线管道像是在准备武器,实时管道则是直接战斗!这种设计不仅高效灵活,还能确保推荐结果的精准度。
更多关于服务化基础设施的内容,我们将在下一课详细讲解。记得关注我们的频道,获取最新科技资讯和学习资源!
图8:GitHub Actions部署离线ML管道
GitHub Actions:用云服务来当你的免费小哪吒!因为我们的模型足够轻量,GitHub Actions的免费算力简直离谱,毕竟谁还没年轻过呢?直接在CPU上训练完全不是问题。
更绝的是,GitHub和代码完美融合,就几行代码的事儿,Python环境一键搭建,代码跑起来,ML管道直接组成DAG(有向无环图),整个过程丝滑顺畅!
具体实现细节请期待Lesson 4的详细讲解~
快速演示:H&M实时个性化推荐系统
为了展示一个端到端、可以直接投入生产的H&M实时个性化推荐系统的PoC,我们祭出了以下技术法宝:
- Hopsworks(无服务器平台):提供免费套餐,直接托管我们的特征存储、模型注册表和实时服务层。功能强大到让你怀疑人生!
- GitHub Actions:用来托管和调度我们的离线ML管道(如上文所述)
- Streamlit :用最简单的代码做出最酷炫的前端界面。搭配Stream Cloud,直接把前端部署上天!
问题来了:这要花我钱吗?
放心!我们坚持使用所有工具和服务的免费套餐,让你从头到尾测试整个推荐系统系列课程完全不心疼钱包。
图9:实时个性化推荐驱动的Streamlit应用
结语
这一课我们学到了两座塔模型(Two-tower model)、四阶段推荐系统架构(4-stage recsys architecture),以及特征转换与提取(Feature Transformation & Integration, FTI)的套路。
最后,我们把这些知识点统统应用到H&M的实际案例中,看看效果如何吧!
是不是有点像哪吒闹海的感觉?😄 我们会用最接地气的方式,把技术难点讲得明明白白!让你的学习之旅就像哪吒一样酷炫!
有问题随时提问,我们都在这里为你答疑解惑!一起加油,冲鸭!💪 下节课见!