搜广推校招面经七十四

腾讯视频搜广推

一、召回中的正负样本定义

推荐系统中的召回阶段是从海量候选物品中快速筛出一部分“可能感兴趣”的物品,为排序阶段准备候选集。不同业务场景对正负样本的定义可能有差异,但是大差不差。

正样本 (Positive Samples)

用户真实点击、收藏、购买、点赞等行为对应的物品

  • 具体场景:
    • 推荐系统:用户实际点击/购买的物品
    • 搜索系统:与查询真正相关的文档
    • 广告系统:用户实际点击的广告

负样本 (Negative Samples)

  • 定义:在召回阶段未被识别但实际上不相关的物品/文档
    1. 显式负样本
      • 用户明确拒绝的物品(如点"不感兴趣")
      • 曝光但未点击的item(需注意曝光位置的影响)
    2. 隐式负样本
      • 整个候选池中未被召回的物品
      • 随机采样的非相关物品(需注意采样偏差)

二、有曝光但无点击的样本,如何处理?

2.1. 样本性质分析

  • 真负样本(确实不相关)
  • 潜在正样本(曝光位置差/标题党等外部因素导致未点击
  • 中性样本(用户未注意但非不相关)

2.2. 常规处理方法

  1. 直接作为负样本
    • 适用场景:曝光位置均匀/随机
    • 优势:简单易实现
    • 风险:引入噪声(可能误标潜在正样本)
  2. 加权处理
    • 根据曝光位置设置权重:
      weight = 1 / (log(rank_position) + 1)
      
    • 曝光排名越靠后,负样本权重越低
  3. 置信度筛选
    • 仅保留高置信度负样本:
      • 曝光时长>阈值(如5秒)
      • 同一Session内其他item有点击
      • 用户滑动越过未停留

2.3. 高级处理策略

  1. 曝光偏差建模

    • 构建双塔模型:
      • 点击塔(CTR模型)
      • 曝光塔(处理选择偏差)
    • 参考论文:《Unbiased Learning from Selection-Biased Feedback》
  2. 负采样增强

    • Hard Negative Mining:
      • 选择模型预测分较高的未点击样本
      • 混合easy negative和hard negative
  3. 多任务学习

    # 同时学习点击率和相关性
    model.fit(
      tasks=["ctr_pred", "relevance_pred"],
      loss_weights=[0.3, 0.7]
    )
    
    

二、精排阶段的评价指标(Evaluation Metrics for Ranking)

2.1. 离线指标(Offline Metrics)

2.1.1. AUC(Area Under ROC Curve)
  • 衡量正样本排在负样本前面的概率;
2.1.2. Precision@K(精确率)
  • 推荐前 K 个结果中,真实点击的比例;
2.1.3. Recall@K(召回率)
  • 推荐前 K 个结果中,覆盖了多少用户真实点击;
2.1.4. F1@K
  • Precision@K 和 Recall@K 的调和平均;
2.1.5. NDCG@K(Normalized Discounted Cumulative Gain)
  • 计算排序结果中正样本的位置信息加权得分;考虑位置重要性,点击排前面得分高;

三、如何缓解热门物品越来越热的问题(Popular Bias / Filter Bubble)

热门物品越来越热的问题,又称为“流行偏置(Popular Bias)”或“信息茧房(Filter Bubble)”,主要体现在推荐系统中少数热门物品反复被推荐,导致冷门物品曝光率低、用户兴趣多样性下降等问题。以下是打破“马太效应”(强者愈强)的循环的几种方法:

3.1. 多样性增强(Diversity Enhancement)

  • 引入多样性指标作为优化目标
    • 使用 Intra-list Diversity、Coverage、Entropy 等多样性指标参与模型训练或作为 reranking 阶段的目标。
  • 结果重排序(Re-ranking)
    • 在初步推荐结果中引入一定比例的冷门物品,对结果进行重新排序,使得推荐列表更加多样。

3.2. 曝光平衡(Exposure Balancing)

  • 曝光正则化
    • 在模型损失函数中加入对物品曝光均衡的正则项,防止热门物品过度推荐。
  • 机会公平(Opportunity Fairness)
    • 通过公平性机制(如 exposure parity)控制不同物品群体的推荐机会。

3.3. 冷启动策略(Cold-start Item Promotion)

  • 冷门物品曝光策略
    • 在推荐列表中人为插入冷门物品(例如基于内容推荐或协同过滤低频物品),提高其初始曝光机会。
  • 基于探索的推荐策略(Exploration)
    • 结合多臂赌博机(Multi-armed Bandit)、强化学习等方法,在探索与利用之间找到平衡,适当探索冷门物品。

3.4. 用户多样性建模(User-Centric Diversity)

  • 多兴趣建模
    • 对用户构建多个兴趣向量,从而推荐多样化的物品,减少对单一类别或热门物品的依赖。
  • 用户探索倾向建模
    • 考虑用户对新颖或冷门物品的兴趣倾向,因人而异地控制推荐的多样性。

3.5. 平衡评估指标

  • 引入新颖性(Novelty)、意外性(Serendipity)等指标
    • 除了传统的精确率/召回率外,在推荐系统评估中加入对冷门推荐效果的评估,鼓励系统推荐多样且新颖的内容。

四、136. 只出现一次的数字

搜广推校招面经七十四_第1张图片

  • 思路:
    这是一道技巧题,如果知道异或,那这道题就很简单
    • 任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a。
    • 任何数和其自身做异或运算,结果是 0,即 a⊕a=0。
    • 异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。
  • 代码
    class Solution:
    def singleNumber(self, nums: List[int]) -> int:
    return reduce(xor, nums)

你可能感兴趣的:(搜广推面经,机器学习,人工智能,算法,搜索算法,推荐算法,广告算法,python)