搜广推校招面经七十九

一、数据标准化方法:log、zscore、minmax各自使用场景

1.1. Log变换(对数变换)

x ′ = log ⁡ ( x ) 或 log ⁡ 10 ( x ) x' = \log(x) \quad \text{或} \quad \log_{10}(x) x′=log(x)或log10(x)

  • 适用场景
    • 右偏/正偏分布数据(长尾在右侧)
    • 数据范围跨越多个数量级
  • 缺点
    • 不能处理零或负值
    • 变换后解释性降低

1.2. Z-score标准化

x ′ = x − μ σ x' = \frac{x - \mu}{\sigma} x′=σx−μ

  • 适用场景
    • 数据近似正态分布,需要保留异常值信息
  • 优点
    • 保持数据形状
    • 均值为0,标准差为1
    • 保留异常值信息
  • 缺点
    • 受异常值影响大

1.3. Min-Max标准化

x ′ = x − min ⁡ ( X ) max ⁡ ( X ) − min ⁡ ( X ) x' = \frac{x - \min(X)}{\max(X) - \min(X)} x′=max(X)−min(X)x−min(X)

  • 适用场景
    • 数据边界已知,需要统一量纲
    • 需要固定范围(如神经网络)
  • 优点
    • 保持原始数据关系
  • 缺点
    • 对异常值敏感
    • 可能失去数据方差信息
    • 新数据可能超出原定范围

二、还有那些的数据标准化的方法?各自有什么优点?

2.1. Robust Scaling

x ′ = x − median ( X ) IQR ( X ) x' = \frac{x - \text{median}(X)}{\text{IQR}(X)} x′=IQR(X)x−median(X)

2.2. MaxAbs Scaling

x ′ = x max ⁡ ( ∣ X ∣ ) x' = \frac{x}{\max(|X|)} x′=max(∣X∣)x

2.3. Box-Cox变换

x ′ = { x λ − 1 λ , λ ≠ 0 log ⁡ ( x ) , λ = 0 x' = \begin{cases} \frac{x^\lambda - 1}{\lambda}, & \lambda \neq 0 \\ \log(x), & \lambda = 0 \end{cases} x′={λxλ−1,log(x),λ=0λ=0

三、介绍一下lightgbm原理

LGB最显著的优点就是快,其原理之前看过很多次,但是发现还是讲的不是很流畅主要是因为对每个方法理解的不够深。于是找来LightGBM的原文

首先要知道,lgb模型都是处理二维结构化数据的。因此,lgb速度优化的两大算法就是从如何减少这两个维度开始的,知道这个就会比较清楚的理解lgb的几个算法是在干什么。

3.1. 基于梯度的单边采样(Gradient-based One-Side Sampling,GOSS)

三个关键词:梯度、单边、采样。简单来说,就是根据样本梯度来对梯度小的这边样本进行采样,而对梯度大的这边样本保留。

比如,我有训练数据1000w,设置梯度大的样本的保留10%,而梯度小的样本保留20%。算法上就是先按样本梯度对样本降序排序,保留梯度处于前10%的样本(100w),再从剩下的900w梯度较小样本随机挑选200w(1000w*20%)样本。这样的话样本量就从1000w减小到了300w,加快训练速度。

3.1.1. 为什么不完全丢弃小梯度样本?

  • 全部丢弃会改变原始样本分布,影响模型性能;
  • 通过 采样 + 梯度调整权重 的方式,尽量恢复真实分布;
  • 实验显示:不仅没有性能下降,反而可能提升(多样性提升,类似 dropout)。

实验表明:GOSS 在保留模型性能的同时,有效降低了训练成本 ;同时也提升了模型泛化能力,可能因为引入了更多训练多样性(类似于 dropout);

3.2. 互斥特征捆绑(EFB)

Exclusive Feature Bundling,互斥特征捆绑。前面GOSS可以通过减少样本加速模型训练,而EFB可以通过减少特征个数使数据规模进一步变小。

比如在推荐系统里可能特征非常多,达到几万维甚至更多,但其中很多特征是互斥的,互斥指的是一些特征很少同时出现非0值,类似one-hot特征。lgb的思想就是把这些特征捆绑在一起形成一个新的特征,以减少特征数量,提高训练速度。

3.2.1. 首先介绍如何判定哪些特征应该捆绑在一起?

EFB算法采用 构图(build graph) 的思想,将特征作为节点,不互斥的特征之间进行连边,然后从图中找出所有的捆绑特征集合。这个问题本质上是图着色问题(Graph Coloring Problem),但图着色是NP-hard问题,因此EFB采用了近似的贪心策略解决办法。

它允许特征之间存在少数样本点不互斥(例如在某些样本中同时为非0),并设置一个最大冲突阈值 K。选择合适的 K 值可以在准确性和训练效率上取得良好的权衡(trade-off)。

下面是EFB的特征捆绑的贪心策略流程:

  1. 将特征作为图的顶点;
  2. 对于存在同时不为0样本的特征对进行连边,并以样本个数作为边的权重;
  3. 对特征按照度(与其他特征的冲突数)进行降序排序,度越大说明越不容易与其他特征捆绑;
  4. 设置最大冲突阈值 K,遍历每个特征并尝试将其加入已有的特征捆绑簇中:
    • 若加入某簇后的冲突数不超过 K,则将该特征加入该簇;
    • 否则,新建一个特征簇,将其加入其中。

3.2.2. 如何将特征捆绑簇里面的所有特征捆绑(合并)为一个特征?

EFB采用 偏移常数(offset) 的方式来合并互斥特征,同时保证之后可以分离出原始特征。

3.2.2.1. 合并策略示例:
  • 设特征A取值范围为 [0, 10),特征B取值范围为 [0, 20)
  • 给B加上一个偏移常量 10,使其范围变为 [10, 30)
  • 合并后的特征范围为 [0, 30),可以通过值的区间还原出原始特征来源。
3.2.2.2. 在 LightGBM 中的实现:

由于LightGBM使用 直方图算法(Histogram-based),特征值被分桶(bin),合并操作实际上就是:

  • 给每个特征分配的bin编号加上偏移量(即累加前面特征的bin数量);
  • 同时记录每个特征的binRange,便于后续恢复原始特征。
    这种合并策略高效且简单,适合稀疏特征的处理,能大幅减少特征数量,提高训练效率。

四、讲讲esmm和mmoe区别

在多任务学习(Multi-Task Learning)中,ESMM(Entire Space Multi-Task Model)MMOE(Multi-gate Mixture-of-Experts) 都是经典结构。

4.1. ESMM(Entire Space Multi-Task Model)

  • 采用共享底层+任务特定塔式结构
  • 显式建模CTR和CTCVR任务
  • 通过pCTCVR = pCTR * pCVR概率关系连接任务

4.2. MMOE(Multi-gate Mixture-of-Experts)

  • 包含多个专家网络(Expert)和门控机制(Gate)
  • 每个任务有独立门控网络
  • 专家网络共享,门控网络决定任务特定组合

五、215. 数组中的第K个最大元素(力扣hot100_堆_中等)

  • 思路:这道题用堆和快排都可以,感觉写py的话,就算写了堆也要问快排。
  • 代码:
python 复制代码
class Solution:
    def findKthLargest(self, nums, k):
        def quick_sort(nums, k):
            pivot = random.choice(nums)
            big, equal, small = [], [], []
            for num in nums:
                if num > pivot:
                    big.append(num)
                elif num < pivot:
                    small.append(num)
                else:
                    equal.append(num)
            if k <= len(big):
                return quick_sort(big, k)
            if k > len(nums)-len(small):
                return quick_sort(small, k-len(nums)+len(small))
            return pivot
        return quick_sort(nums, k)
相关推荐
卧式纯绿1 分钟前
卷积神经网络基础(四)
人工智能·python·深度学习·神经网络·机器学习·cnn
爱的叹息11 分钟前
基于 DeepSeek大模型 开发AI应用的理论和实战书籍推荐,涵盖基础理论、模型架构、实战技巧及对比分析,并附表格总结
人工智能·架构
lilye6615 分钟前
精益数据分析(5/126):解锁创业成功的关键密码
大数据·人工智能·数据分析
极昆仑智慧21 分钟前
多模态知识图谱:重构大模型RAG效能新边界
人工智能·算法·语言模型·自然语言处理·知识图谱
天天扭码24 分钟前
面试官:算法题”除自身以外数组的乘积“ 我:😄 面试官:不能用除法 我:😓
前端·算法·面试
盈达科技27 分钟前
[盈达科技】GEO(生成式引擎优化)实战指南:从认知重构、技术落地到内容突围的三维战略
人工智能·chatgpt
芒果量化1 小时前
量化交易 - RSRS(阻力支撑相对强度)策略研究 - 源码
python·机器学习·金融
龙萌酱1 小时前
力扣每日打卡17 49. 字母异位词分组 (中等)
前端·javascript·算法·leetcode
吹风看太阳1 小时前
机器学习05-CNN
人工智能·机器学习·cnn
何双新1 小时前
L1-5、Prompt 写作中的常见误区
人工智能·prompt