
1) 【一句话结论】:传统特征工程通过人工设计用户行为/人口统计特征生成向量,而大模型(LLM)通过提示词结合预训练知识生成语义表示,二者各有优劣,实际推荐中常结合以平衡效果与效率,尤其解决冷启动问题。
2) 【原理/概念讲解】:传统特征工程是指人工设计用户行为(如点击、购买)和人口统计(如年龄、性别)等特征,通过聚合(如计算点击率CR、购买次数)或编码(如one-hot)转化为向量。例如,用户点击10部电影,特征工程生成“电影类型:科幻”的聚合特征。而利用LLM生成表示,则是通过提示词让模型总结用户历史行为(如“用户历史行为:[点击电影列表],总结用户兴趣:”),输出文本描述后,用预训练嵌入模型(如BERT)转化为高维向量。类比:传统特征工程像手工组装零件(每个零件需人工设计,效率高但复杂度低),LLM生成表示像让AI自动分析零件并生成复杂结构(利用预训练知识,能捕捉更复杂的语义关系,但需要计算资源)。
3) 【对比与适用场景】:
| 对比维度 | 传统特征工程 | LLM生成表示(大模型) |
|---|---|---|
| 定义 | 人工设计用户行为/人口统计特征,通过聚合/编码生成向量 | 通过提示词让LLM总结行为/内容,再转化为嵌入向量 |
| 特性 | 计算效率高(如电商点击推荐中,特征工程计算时间约1ms/次)、可解释性强(特征与用户行为直接关联)、依赖人工经验(需维护特征) | 能捕捉复杂语义(如用户兴趣的深层关联)、利用预训练知识(如常识)、生成丰富表示(如文本描述),但计算成本高(如实时推荐中,LLM生成时间约100ms以上/次)、可解释性弱(黑箱)、对少量数据可能生成噪声 |
| 使用场景 | 用户行为丰富(如活跃用户)、场景简单(如电商点击推荐,特征维度少) | 用户行为稀疏(如新用户)、需要语义理解(如内容推荐,如视频标题理解)、冷启动用户/内容 |
| 注意点 | 难以扩展新特征(需人工重新设计)、对冷启动用户效果差(无行为数据时无法生成特征) | 推理成本高(实时场景影响体验)、需设计有效提示词(否则生成噪声)、对少量行为数据可能输出无关信息 |
4) 【示例】:以新用户冷启动为例,用LLM生成用户画像。
伪代码:
用户历史行为 = ["注册时填写兴趣:'编程'、'电影'"]
prompt = f"根据用户注册信息(兴趣:编程、电影),生成用户兴趣描述,用于推荐系统:{用户历史行为}"
response = llm.generate(prompt) # 输出:"用户对编程和电影感兴趣,可能喜欢技术类视频和电影推荐"
user_embedding = embed_model.encode(response) # 将文本嵌入为向量,用于后续推荐
5) 【面试口播版答案】:
“传统特征工程是通过人工设计用户行为(如点击、购买)和人口统计特征,通过聚合(如计算点击率)生成用户/内容向量,优点是计算效率高、可解释性强,但缺点是依赖人工经验,难以捕捉深层语义,且难以扩展新特征。而利用大模型(如LLM)生成表示,比如通过提示词让模型总结用户历史行为,再转化为嵌入向量,优点是能捕捉复杂语义、利用预训练知识,生成更丰富的表示,但缺点是计算成本高、对冷启动用户可能效果差,且可能缺乏可解释性。冷启动问题中,对于新用户或新内容,传统特征工程因缺乏行为数据无法生成有效特征,而LLM可通过少量行为或元信息(如用户注册信息、内容标题)生成初始表示,比如用提示词让模型根据用户昵称和兴趣标签生成用户画像,再通过微调或提示词优化提升效果,最终结合两者可提升推荐效果。”
6) 【追问清单】:
7) 【常见坑/雷区】: