哔哩哔哩 大模型算法 一面

1. 自我介绍

2. 为什么推荐系统里要做多目标优化,而不是只优化点击率

只优化点击率会把系统推向强刺激、短反馈的内容,短期看 CTR 好看,长期可能损伤时长、留存、消费深度和用户满意度。推荐系统真正面对的是一个多目标约束问题,点击、时长、转化、留存、内容生态健康、创作者收益往往都重要,而且这些目标之间存在天然冲突。

多目标优化的核心不是把几个 loss 简单加权,而是处理目标尺度不一致、梯度冲突和业务优先级变化。很多系统前期用静态加权,后期会演进到门控式任务塔、动态权重、MMoE、PLE,甚至通过因果或强化学习方式做长期目标建模。优化的是用户长期价值,而不是某一个表层指标。

3. 当业务里同时有视频观看时长和短时负反馈,你会怎么设计目标

观看时长不是越长越好,因为它可能包含被动停留、背景播放甚至误点;短时负反馈也不能粗暴当成强负样本,因为用户有时只是当前场景不想看,不代表对内容完全没兴趣。比较合理的做法是把目标拆成多个层次:即时点击、有效播放、深度消费、负反馈、会话后留存,再通过多任务建模让模型学不同维度的信号。

如果要做得更细,会对时长做去偏和分桶,比如区分短停留、有效播放、超长停留,对负反馈也区分弱负样本和强负样本。这样模型不会把“没看完”统一学成负例,也不会把所有长时长都视为高质量正反馈。

4. 现在只有用户观看视频和停留时长数据,怎么做推荐

如果信号很少,核心在于把有限行为尽量拆出更多可学习结构。首先可以从行为本身构造不同粒度标签,比如曝光后是否点击、点击后是否有效观看、观看时长分桶、连续观看深度、会话级退出位置。其次要加强物料侧建模,用标题、标签、作者、主题、发布时间等内容特征弥补监督不足。再往上,可以做序列建模,把用户短期兴趣迁移学出来。

这类场景很容易陷入“只有点击和时长,就只能做简单排序”的误区。实际上,即使显式反馈少,只要把行为拆得足够细,再结合时序、上下文和内容信息,依然能做出不错的表达学习和重排。

5. 相似用户怎么衡量,为什么简单余弦相似度在工业里经常不够

简单余弦相似度只是在某个向量空间里比较角度接近程度,但工业里的“相似用户”不只是兴趣相似,还可能是消费阶段相似、活跃度相似、生命周期相似、价格敏感度相似、场景偏好相似。一个用户今天在找技术内容,另一个用户过去一个月长期看技术内容,这两人的向量可能接近,但在推荐策略上未必应被同等对待。

所以工业里常常不会直接拿单一 embedding 相似度做最终相似用户定义,而是用多塔表示、分场景表示、时间衰减表示,甚至引入局部邻域约束和协同过滤信号。相似用户的定义本身就是任务相关的,不是一个静态距离函数能完全概括的。

6. 为什么序列推荐里要区分短期兴趣和长期兴趣

长期兴趣描述的是用户稳定偏好,比如偏好的主题、品类、语言风格、消费层级;短期兴趣则更像当前会话里的即时意图,比如最近突然开始看某个比赛、某个剧集、某类教程。只建模长期兴趣会让系统太稳,跟不上兴趣突变;只建模短期兴趣则容易抖动,丢失用户长期轮廓。

真正有效的系统通常会把二者融合,但不是简单拼接。很多模型会让短期兴趣主导当前排序,长期兴趣做先验约束,或者对不同场景动态调整两者权重。比如首页推荐和订阅页、冷启动和高活用户,最优融合方式都不一样。

7. Transformer 用在推荐里,和用在 NLP 里最大的不同是什么

NLP 里 token 大多是自然语言单位,顺序和上下文具有连续语义;推荐里序列元素通常是 item、行为、场景和时间间隔,它们的语义离散且噪声更大。推荐序列常常更短、更稀疏、分布漂移更快,而且 item 会不断新增、下线、替换,因此直接照搬 NLP 里的 Transformer 往往并不理想。

推荐场景里更重要的是行为类型嵌入、时间间隔编码、位置偏置、负反馈建模和序列截断策略。很多时候模型复杂度并不是瓶颈,关键是你怎么把“看过、点过、跳过、停留多久、发生在什么场景”这些异构信号对齐到统一序列建模框架里。

8. LoRA 在推荐大模型或生成式推荐里通常加在哪,为什么有效

LoRA 的核心是冻结底座参数,只训练低秩增量矩阵。在生成式推荐或推荐大模型里,LoRA 常加在 attention 的投影层和部分 MLP 投影层,特别是 query、value 对行为偏好迁移比较敏感的位置。它有效的原因在于,推荐任务很多时候不需要完全重写底座知识,而是需要在用户行为分布和业务目标上做方向性修正。

相比全参数微调,LoRA 更省显存、更容易多任务切换,也更适合快速做 A/B 试验。对于场景切换频繁、目标经常调整的推荐业务,这种低成本适配方式非常实用。

import torch
import torch.nn as nn

class LoRALinear(nn.Module):
    def __init__(self, in_features, out_features, r=4, alpha=8):
        super().__init__()
        self.weight = nn.Parameter(torch.randn(out_features, in_features), requires_grad=False)
        self.A = nn.Parameter(torch.randn(r, in_features) * 0.01)
        self.B = nn.Parameter(torch.randn(out_features, r) * 0.01)
        self.scale = alpha / r

    def forward(self, x):
        return x @ self.weight.t() + ((x @ self.A.t()) @ self.B.t()) * self.scale

9. SFT 在推荐大模型场景里一般怎么做

推荐里的 SFT 和通用对话场景不完全一样,它不只是教模型“怎么回答”,还要教模型“如何根据用户状态和候选集合做有约束的生成或排序”。数据构造通常会把用户行为序列、上下文信息、候选物料摘要和期望输出组织成指令形式,让模型学习解释、重排、选择或生成推荐理由。

难点在于监督信号设计。如果直接拿线上点击结果做指令监督,噪声会很大;如果只靠人工构造,又很难覆盖真实分布。所以比较稳的做法是把高质量规则样本、历史优质决策样本和线上行为样本混合起来,并控制模板风格,避免模型学到一堆格式噪声。

10. 了解 RL 吗,推荐系统里为什么会考虑强化学习

推荐系统天然是一个顺序决策问题,当前曝光会影响用户后续状态和长期价值,因此只做一步监督学习很难真正优化长期收益。强化学习吸引人的地方就在于,它可以把即时反馈和长期反馈统一到累计回报里,让系统考虑“今天推什么,会不会影响用户明天还来”。

但推荐里直接上强化学习难度很高。环境部分可观测、反馈延迟长、反事实难评估、线上探索成本大,所以很多落地方案不会一上来就做端到端 RL,而是先做 bandit、价值建模、长期目标蒸馏、离线策略评估,再逐步引入策略学习。

11. 训练一个 AI 俄罗丝方块,三种数据来源:从头自博弈、自己收集数据集、专家规则训练,优缺点分别是什么

从头自博弈的优点是理论上上限高,能自己发现强策略,不受人工偏见约束;缺点是训练成本大,探索效率低,而且环境奖励设计不好会学歪。自己收集数据集更接近 imitation learning,启动快、训练稳,但数据

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论

相关推荐

一、微派网络游戏测试一面(60min)1.理想的岗位,投了哪些岗位2.为什么没有考虑做开发3.了解游戏测试吗?跟一般的测试的区别?4.对测试和测开岗位看法5.上线一个抽奖活动,某日0:00到23:59,单抽花100金币,十连抽花1000金币,奖池里每个道具都有相应的概率,每个道具相应的保底是100抽,抽到后保底清零。设计测试用例6.玩家写了一个脚本去并发十次抽奖请求,但是他的金币只够抽一次,如何防止玩家白嫖7.锁的概念8.实际测试中,解释什么是bug的优先级和严重程度,如何理解二者的关系9.有两个bug,第一个bug是抽奖动画消失,奖励正常获取(100%复现),第二个bug是抽奖时客户端会崩溃(低概率),如何定义bug的优先级和严重程度?10.玩家充值,但是没有到账,如何排查11.假如定位到原因是发货的时候服务器重启导致发货信息丢失,作为测试推进问题解决?12.介绍项目框架13.项目的流程是什么14.接口断言除了状态码还做了什么15.一条用例多组数据执行多次,怎么实现的16.jsonpath用来干嘛的17.为什么选择用jsonpath而不是response.json直接拿数据18.项目中AI是如何落地的19.需求中会有一些隐藏需求,包括一些和历史模块耦合的部分,这些AI是覆盖不到的,那么如何提高AI生成用例的质量?20.平时怎么用AI的21.项目中AI部分的占比?22.为什么会有动力去研究AI23.有没有自己搭建小龙虾24.测试过程中你发现是bug,但是开发说是环境问题不是bug,如何解决?25.比如你在手机端发现了一个bug,游戏开发是在编译器里实现的,编译器里复现不了bug,这个bug是修还是不修?26.实习公司工作流程有没有什么不足?27.平时中有没有发现问题并推动解决问题的经历?28.你觉得你是一个细心的人吗29.FPS游戏,新上了一把枪,设计测试用例30.两个无刻度的水杯,一个5L,一个6L,如何倒出来3L的水?二、饭团外卖测试一面(60min)1.能不能提前实习,多久过来实习2.为什么考虑来天津3.对于做的项目,阐述一下达成什么目标,做了哪些事情,最后有什么效果4.实习中一个版本迭代增加多少用例?5.怎么把需求拆解成测试点6.你认为什么样的bug是p0级别,p1呢7.挑一个实习中的p0级别bug,怎么发现的,怎么复现的,怎么定位,如何推到回归的8.压测的目标是什么?9.你认为AI生成的用例怎么样10.提示词怎么写的11.可用的用例估计有多少12.假设AI生成的用例60%可用,你如何提高到80%13.用户下单支付,派单,骑手接单,确认送达。设计测试用例14.异常的场景,比较严重的场景能想到哪些15.你认为用户最关心的问题是什么16.骑手最关心的问题17.线上出现了严重的bug,你是测试值班人,如何推进问题解决?18.用户下的订单被商家关闭,但是用户没有收到通知,订单状态也没有变化,如何排查?19.python装饰器。生成器,迭代器,深拷贝与浅拷贝20.SQL:查询一个用户近七天已支付但未完成的订单21.刚刚写的SQL变慢了,你觉得会有哪些原因22.说5条linux看日志的命令23.对于软件测试岗位,你觉得你有什么不足?24.那你的优势在哪里
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务