推荐系统实现思路
富途牛牛招聘的AI高级开发的岗位:1.参与从0到1打造公司新一代、AI驱动的用户全生命周期运营与营销自动化平台。
2.直面高可用、高扩展的架构挑战,处理千万级用户画像与毫秒级实时决策。
3.深度整合AI(机器学习、推荐算法、AI Agent)与业务,实现智能化、自动化运营。 这公司的产品形态是怎么样的
岗位还要求了(2)深刻理解AARRR模型、用户分层与精准营销,有流程编排引擎(如Flowable)或电商推荐系统相关经验者优先。 AARRR模型、用户分层 怎么结合到系统里面
设计思路
你的抽象非常精准,一针见血!
从宏观业务逻辑上来说,你总结的这个公式就是整个系统的核心骨架:
推荐决策 = (长期标签 + 实时行为 + 旅程节点) -> 匹配 -> 推荐配置表
但是,作为富途牛牛招聘的“AI高级开发”,如果系统仅仅停留在“查配置表”的阶段,是无法应对千万级用户和毫秒级并发的,也谈不上“AI驱动”。
我们可以把你这个“简单抽象”,按照技术演进,拆解为 V1.0(规则引擎时代) 和 V2.0(AI与推荐算法时代,即这个岗位要做的) 两个层次来看:
V1.0 时代:你的抽象(基于规则和配置表)
在早期的系统或者简单的营销系统中,确实是这么做的:
- 运营人员在后台配表:如果
标签=高净值且行为=看了3次英伟达且旅程=未入金,则推荐产品=美股免佣卡。 - 系统执行:写一堆
If-Else或者用简单的规则引擎(如 Drools),当用户触发动作时,去查这张“配置表”,命中规则就下发。
痛点(为什么富途要招AI高级开发来升级它):
- 规则爆炸:当有上千个标签、几百个产品时,人工根本配不过来,配置表会变成灾难。
- 不够个性化(千人十面,而不是千人千面):配置表只能覆盖群体,无法精确到个人。比如两个人都命中了“美股免佣卡”的规则,但A可能更吃“送苹果股票”的套路,B更吃“送现金”的套路。
V2.0 时代:AI高级开发的抽象(基于模型与算法)
在这个岗位要打造的“新一代AI驱动平台”中,你提到的“推荐配置表”将被“AI推荐算法模型”和“大模型Agent”彻底取代。
新的抽象逻辑变成了这样:
1. 输入层(Input):特征工程的实时化
- 长期标签(User Profile):存在特征库(Feature Store)里,如资产规模、历史收益率、偏好行业。
- 实时行为(Real-time Context):不再是简单的“看了什么”,而是通过 Flink 等流处理技术,毫秒级捕捉用户的滑动、停留时长、点击,实时转化为“实时特征向量”。
- 旅程节点(Journey State):由 Flowable 等引擎维护的当前生命周期状态。
2. 大脑层(Processing):从“查表”变成“模型打分”
当用户打开App或触发事件时,系统不再去查“配置表”,而是瞬间经历一个经典的推荐系统漏斗:
- 召回(Recall):算法从几千个营销活动、理财产品、股票资讯中,快速筛选出这个用户可能感兴趣的 100 个候选池。(比如协同过滤、双塔模型)
- 排序(Ranking):使用深度学习模型(如 DIN、DIEN等),把用户的【特征向量】和这100个产品的【特征向量】输入给模型。模型在毫秒级内计算出:该用户点击产品A的概率是 5.2%,点击产品B的概率是 8.1%(CTR预估)。
- 业务策略微调(Re-ranking):结合“旅程节点”,比如虽然产品B点击率高,但用户处于“急需促入金”的旅程节点,系统会把“入金活动”的权重强行调高。
3. 输出层(Output):AI Agent 动态生成
- 千人千面的文案:不仅推荐的产品是算法算出来的,连展示的文案都可能是 AI Agent(大模型) 结合用户性格实时生成的。
- 比如给保守型用户生成:“稳健理财,年化5%”
- 给激进型用户生成:“把握英伟达财报行情,立即交易”
总结
你的理解在业务本质上是完全正确的。
但在技术实现上,面试官期望听到的不是“查配置表”,而是:
“我们将用户的静态标签、实时行为序列和生命周期状态转化为多维特征向量,输入到深度学习推荐模型中进行毫秒级的 CTR/CVR 预估排序,并结合大模型 Agent 动态生成个性化触达内容,从而替代传统的人工规则配置表,实现真正的自动化与智能化。”
这就是“简单抽象”与“高级AI开发架构”的区别。
特征向量设计 和召回
这是一个非常专业且切中要害的问题!
如果你在面试中问出这个问题,面试官会立刻觉得你是“懂行”的。因为“特征怎么设计”直接决定了推荐算法能不能把东西“捞(召回)”出来。
要回答这个问题,我们首先要纠正一个工业界架构演进的认知:
传统的协同过滤(UserCF/ItemCF)其实很难直接吃下“实时特征向量”。 传统CF本质上是基于“历史共现矩阵”(你买过A,他买过A和B,所以给你推B),它通常是离线(T+1)算好的。
在富途这种要求毫秒级实时响应的现代AI架构中,我们通常使用“向量召回(Vector Recall)”,最经典的架构就是双塔模型(DSSM, Two-Tower Model)。
下面我为你拆解,这个“实时特征向量”到底该怎么设计,以及它是如何把产品“召回”出来的。
一、 实时特征向量的设计(User Vector 的构造)
为了让模型能理解,我们需要把用户的所有信息“拼接”并“压缩”成一个固定长度(比如 256 维或 512 维)的稠密浮点数数组。这个向量的设计通常包含三个核心部分:
1. 静态与长期特征(Base Profile)—— 奠定底色
这部分数据从 Redis 或 Feature Store 直接读取,通过 Embedding(嵌入层)转化为向量。
- 用户画像:年龄、性别、开户状态、风险等级(保守/激进)。
- 资产特征:日均资产水位(AUM)、持仓偏好(偏好美股还是A股、偏好科技股还是医药股)。
- 转化方式:比如“风险等级=激进”,在模型里会被映射为一个 16 维的向量
[0.1, -0.5, 0.8...]。
2. 实时行为序列(Real-time Sequence)—— 捕捉瞬间意图(核心!)
这是 Flink 算出来的最值钱的部分。怎么把“用户刚刚看了什么”变成向量?
- 行为序列化:记录用户过去 5 分钟、1 小时内的行为轨迹。比如:
[浏览_腾讯, 搜索_英伟达, 查看_期权开户页]。 - Item Embedding:在系统里,每一个股票、每一个页面、每一个营销活动,都有一个预先训练好的“物品向量(Item Vector)”。
- 序列池化(Pooling)或注意力机制(Attention):
- 简单做法(Average Pooling):把用户最近看过的 5 只股票的向量加起来求平均,代表他此刻的整体兴趣方向。
- 高级做法(DIN模型思想):根据用户当前停留的页面,对历史行为赋予不同的权重(Attention)。
3. 实时上下文特征(Context)—— 结合环境
- 时间与状态:当前是美股盘前、盘中还是盘后?(盘中推交易工具,盘后推复盘资讯)。
- 网络与设备:5G还是WIFI?(决定推视频还是图文)。
最终拼接(Concat):
把上述三部分的向量拼接在一起,经过几层神经网络(MLP)的压缩,最终输出一个 256维的用户实时特征向量(User Vector)。
二、 召回是怎么发生的?(双塔模型与向量检索)
设计好向量后,怎么把产品(营销活动、资讯、股票)找出来?这就是“双塔模型”+“向量数据库”发威的时候。
1. 物品塔(Item Tower)提前建库
系统里有成千上万的“物料”(比如:免佣卡A、理财券B、英伟达资讯C、港股打新活动D)。
AI 团队会用另一个神经网络(物品塔),把这些物料的属性(标题、奖励金额、适用人群)也转化为 256维的物品向量(Item Vector)。
这些物品向量会被存入向量数据库(如 Faiss, Milvus, Elasticsearch)中。
2. 毫秒级召回过程(点积/余弦相似度)
当用户打开富途牛牛的瞬间:
- 生成 User Vector:系统结合 Flink 传来的实时数据,瞬间生成该用户此刻的 256 维 User Vector。
- 向量检索(ANN Search):系统拿着这个 User Vector,去向量数据库里进行“近似最近邻搜索(ANN)”。
- 计算相似度:数据库在毫秒级内,计算 User Vector 和所有 Item Vector 的内积(Dot Product)或余弦相似度(Cosine Similarity)。
- 通俗理解:在 256 维的几何空间里,算一下代表“用户”的这个点,离哪个“营销活动”的点最近。
- 输出 Top K:数据库瞬间返回距离最近的 100 个物品。这 100 个物品,就是被“召回”的候选集。
三、 结合富途业务的完整场景推演
假设富途后台配置了一个营销活动:“美股期权交易大礼包(送10美金)”。
这个活动经过“物品塔”编码,它的 Item Vector 在高维空间里,靠近“美股”、“高风险”、“衍生品”、“科技股”这些概念。
场景发生:
- 静态底色:用户李雷,资产50万,平时偶尔买买腾讯(此时他的 User Vector 离“期权”还很远)。
- 实时行为(Flink介入):今晚美股开盘,英伟达暴涨。李雷在 3 分钟内,连续查看了英伟达的正股,并且点开了“英伟达看涨期权”的行情页,停留了 30 秒。
- 向量突变:Flink 瞬间捕捉到这个行为序列。经过序列 Pooling,李雷的 User Vector 在高维空间里发生了剧烈的“位移”,迅速向“美股”、“高风险”、“期权”的方向靠拢。
- 实时召回:系统拿着李雷突变后的 User Vector 去 Faiss 向量库里一查,发现它和“美股期权交易大礼包”的 Item Vector 距离极近(相似度得分 0.92)。
- 动作执行:召回成功!经过后续的排序层确认后,Flowable 引擎立刻下发指令,李雷的屏幕上方弹出了这个期权大礼包。
总结
这就是现代 AI 营销平台的核心魅力:
把人的“长期属性+瞬间冲动”变成一个动态游走的“空间坐标(User Vector)”,把所有的“营销产品”变成固定在空间里的“地标(Item Vector)”。
当用户的坐标游走到某个地标附近时,召回就自然而然地发生了。这比写一万行 if-else 规则要强大、精准得多。

浙公网安备 33010602011771号