特征工程: 对因子做非线性处理,作为重排阶段的乘法融合 / 特征融合,和LR、FM、浅层 MLP的输入。 分成两张表: 1. **常见非线性映射总表** 2. **按“你想达到什么效果”来选方法** --- # 一、常见非线性映射对比表 > 记号说明: > > * (x):原始因子,默认 (x\ge 0) > * (y=f(x)):映射后特征 > * “头部/高值/尾部”分别指:高质量区、较大数值区、低影响区 > * “弹性”可理解为乘法融合里更接近“相对重要性”的量 | 方法 | 公式 | 单调性 | 斜率/敏感性特征 | 弹性/相对敏感性特征 | 主要效果 | 适合场景 | 风险/注意点 | | ----------------------- | ---------------------------------- | ----: | -------------------- | ------------------------- | ---------------------- | ------------------ | ------------------ | | 加偏置 | (y=x+b) | 单调增 | (\frac{dy}{dx}=1) 不变 | (\frac{x}{x+b}),随(x)增大而增大 | **主要削弱低值区相对重要性** | 防止小值/0值过度伤害乘法分数 | 对高值区抑制很弱 | | 对数 | (y=\log(1+x)) | 单调增 | 高值区越来越平 | 高值相对敏感性下降明显 | **强压缩大值/长尾** | 计数、曝光、频次、热度 | 小值区区分度有时不够 | | 幂次(0~1) | (y=x^\gamma,\ 0<\gamma<1) | 单调增 | 高值区变平 | 弹性恒为(\gamma<1) | **整体降权,压缩高值** | 重尾分布、避免大值碾压 | 需要处理0附近/尺度问题 | | 幂次(>1) | (y=x^\gamma,\ \gamma>1) | 单调增 | 高值区更陡 | 弹性恒为(\gamma>1) | **整体放大,强调高值** | 想突出强信号头部 | 容易放大异常值、过拟合 | | 负幂 / 倒数幂 | (y=(x+\epsilon)^\gamma,\ \gamma<0) | 单调减 | 小(x)处敏感 | 适合“坏度/距离/排名”类反向量 | **把大值变小、小值变大** | 距离、惩罚项、rank-like特征 | 必须防0,数值稳定要小心 | | Michaelis-Menten / 饱和分式 | (y=\frac{x}{x+K}) | 单调增 | 前陡后平 | (\frac{K}{x+K}),随(x)增大而减小 | **高值区重要性显著衰减** | 相似度、质量分、置信度饱和 | 需选(K),解释阈值要清晰 | | 指数饱和 | (y=1-e^{-\alpha x}) | 单调增 | 初期快,后期快饱和 | 高值区快速失敏 | **前期收益大,后期收益递减** | “够好即可”的因子 | (\alpha)过大易太早饱和 | | 倒数/双曲线 | (y=\frac{1}{x+c}) | 单调减 | **头部陡、尾部平** | 对小(x)更敏感 | **强头部区分,尾部压平** | rank、距离、位置惩罚 | 语义是反向量时更自然 | | RRF | (y=\frac{1}{k+r}) | 单调减 | **头部下降快,尾部下降慢** | 离散相邻rank差在头部更大 | **强调Top位置,压缩长尾rank差异** | 多路召回排序融合 | 更适合rank,不适合已校准连续分数 | | Sigmoid | (y=\sigma(\alpha(x-c))) | 单调增 | **中间陡,两端平** | 阈值附近最敏感 | **中段阈值化,低高两端压缩** | 有明显阈值的质量因子 | 容易过压缩,参数敏感 | | Tanh | (y=\tanh(\alpha(x-c))) | 单调增 | **中间陡,两端平** | 以中心点为对称中枢 | **适合有“好/坏偏离”语义** | 偏离均值、标准化后特征 | 要先中心化更合理 | | Softplus | (y=\log(1+e^{\alpha(x-c)})) | 单调增 | 平滑版ReLU | 阈值后近似线性 | **软阈值激活** | 希望“超过阈值才开始起作用” | 不如硬阈值直观 | | ReLU/铰链 | (y=\max(0,x-c)) | 单调增 | 阈值前0,后线性 | 明确阈值激活 | **只让超过阈值部分生效** | 明确业务门槛 | 不连续,不够平滑 | | 截断/裁剪 | (y=\min(\max(x,L),U)) | 单调 | 两端直接压平 | 控制极值影响 | **抗异常值,防爆** | 样本少、分布脏 | 可能损失极值信息 | | 分段线性 | 分段定义 | 单调可控 | 可手工指定各段斜率 | 可按业务调敏感区间 | **可解释、稳、好控** | 规则清晰的业务场景 | 需要人工定阈值 | | Arctan | (y=\arctan(\alpha(x-c))) | 单调增 | 类S形但更柔和 | 中间敏感、两端平 | **温和版S型压缩** | 不想用太激进sigmoid时 | 解释性略弱 | | 分位数/Percentile | (y=\text{percentile}(x)) | 单调增 | 基于排序,不看绝对差值 | 消除原始尺度影响 | **保序、抗异常、跨源统一尺度** | 多源分数难校准 | 丢失绝对量纲信息 | | 分桶/Binning | 区间映射到桶 | 不一定连续 | 桶内不敏感,桶间跳变 | 强离散化 | **把非线性变成离散模式** | 样本少、LR很常见 | 桶边界敏感 | | Box-Cox | (\frac{x^\lambda-1}{\lambda}) | 单调增 | 介于log与power之间 | 可调分布形态 | **系统化连续压缩族** | 想系统试幂/log家族 | 解释性不如手工映射 | | Yeo-Johnson | 可处理负值 | 单调 | 类似Box-Cox | 可处理(\le 0) | **负值/零值也能做分布矫正** | 特征可能有负值 | 工程解释性一般 | --- # 二、按“想达到什么效果”选方法 这个表更适合你做特征工程时快速决策。 | 目标 | 推荐方法 | 核心机制 | 典型用途 | | -------------- | ----------------------------------------------------------------------- | --------------- | ---------------- | | 防止小值/0值把乘法分数打穿 | (x+b) | 给低值加保护垫 | 质量分、置信分、召回弱信号保护 | | 压制大值主导、做收益递减 | (\log(1+x)), (x^\gamma(0<\gamma<1)), (\frac{x}{x+K}), (1-e^{-\alpha x}) | 高值区斜率变小 | 热度、频次、相似度、历史点击率 | | 明显削弱高值区重要性 | (\frac{x}{x+K}) | 弹性随(x)增大而下降 | “高了以后别再太影响排序” | | 整体降低某因子的乘法重要性 | (x^\gamma,\ 0<\gamma<1) | 弹性恒定缩小到(\gamma) | 统一降权某类因子 | | 整体放大某因子的乘法重要性 | (x^\gamma,\ \gamma>1) | 弹性恒定放大到(\gamma) | 想强化强信号 | | 强调Top,压平长尾 | (\frac{1}{x+c}), RRF | 头部陡、尾部平 | rank融合、位置因子、多路召回 | | 只在阈值附近最敏感 | Sigmoid / Tanh / Arctan | 中间陡、两端平 | 质量过线、置信阈值、门控因子 | | 超过阈值才起作用 | ReLU / Hinge / Softplus | 阈值激活 | “达到一定水平才算有效” | | 抗异常值、防极值爆炸 | Clip / Winsorize / Log | 直接限幅或压缩长尾 | 脏数据、样本少、稳定性优先 | | 分布跨源不一致、量纲不统一 | Quantile / Percentile | 保序统一尺度 | 多路打分融合、异构召回分 | | 业务规则清晰、想强可解释 | 分段线性 / 分桶 | 手工指定各区间作用方式 | 规则强、可解释要求高 | | 距离/惩罚/坏度越大越差 | 倒数、负幂、指数衰减 | 反向单调映射 | 距离、时延、惩罚项 | --- # 三、几个你当前最关心的方法,单独再压缩成小表 ## 1)加偏置 vs Michaelis-Menten | 方法 | 公式 | 低值区 | 高值区 | 适合作用 | | ---- | --------------- | -------- | -------- | -------- | | 加偏置 | (x+b) | **削弱更多** | 基本保留 | 防止低值过分伤害 | | MM饱和 | (\frac{x}{x+K}) | 保留较强敏感性 | **削弱更多** | 防止高值持续主导 | 一句话区别: * **加偏置**:主要“救低值” * **MM饱和**:主要“压高值” --- ## 2)RRF 的特征 | 维度 | 结论 | | -------- | --------------------- | | 公式 | (\frac{1}{k+r}) | | 单调性 | 随rank变差单调下降 | | 头部变化 | **更陡** | | 尾部变化 | **更平** | | 相邻rank差异 | rank越靠前,相邻差越大 | | 适合 | 多路召回融合、强调Top结果 | | 本质 | 是一种“头部敏感、尾部压缩”的rank映射 | 你的判断是对的:**RRF 确实是头部变化陡、尾部变化平。** --- ## 3)Sigmoid / Tanh / ReLU 三者区别 | 方法 | 形状 | 最敏感区域 | 适用语义 | | ---------- | -------------- | ------ | ------------ | | Sigmoid | S型,输出(0\sim1) | 中心阈值附近 | 质量是否过线、概率型因子 | | Tanh | S型,输出(-1\sim1) | 中心附近 | 正负偏离、相对均值偏差 | | ReLU/Hinge | 折线 | 阈值以上 | 超过门槛才开始加分 | --- # 四、用于 LR / FM 输入时,最推荐的一组“低风险特征字典” 如果你现在是要做**有限样本下的工程化输入**,建议不要一下上太多复杂函数,而是每个核心因子先派生一个**小型稳定字典**: | 变换类别 | 推荐形式 | 作用 | | ----- | -------------------------------- | ------------ | | 原始 | (x) | 保留原信息 | | 稳定 | (x+b) | 防止低值过伤 | | 压缩 | (\log(1+x)) | 压长尾 | | 弱压缩 | (\sqrt{x}) | 温和收益递减 | | 饱和 | (\frac{x}{x+K}) | 明确高值衰减 | | 截断 | (\min(x,U)) | 防极值爆炸 | | 阈值 | (\mathbf 1[x>t]) 或 (\max(0,x-t)) | 强化门槛效应 | | rank型 | (\frac{1}{x+c}) / RRF | 处理位置、rank、距离 | --- # 五、如果你要在实际工程里优先试哪些 我建议优先级这样排: ## 第一梯队:最稳 * (x) * (x+b) * (\log(1+x)) * (\sqrt{x}) * (\frac{x}{x+K}) * clip * rank倒数 / RRF ## 第二梯队:有明确业务阈值时 * sigmoid * tanh * relu / hinge * softplus * 分桶 ## 第三梯队:谨慎使用 * 指数放大 * 高次幂 (x^3,x^4) * 很激进的负幂 * 过多参数化函数族 因为样本少时,最怕的是: * 变换过激 * 参数太多 * 极值被放大 * 输入间强共线后模型不稳 --- # 六、最后给你一个超短总结版 | 方法族 | 代表公式 | 本质效果 | | --- | ---------------------------------- | ---------- | | 偏置族 | (x+b) | 救低值 | | 压缩族 | (\log(1+x), \sqrt{x}) | 压大值、减长尾 | | 饱和族 | (\frac{x}{x+K}, 1-e^{-\alpha x}) | 高值收益递减 | | 放大族 | (x^\gamma,\gamma>1) | 强化高值 | | 反向族 | (\frac{1}{x+c}, x^\gamma,\gamma<0) | 距离/排名/惩罚映射 | | S型族 | sigmoid, tanh, arctan | 中间敏感、两端变平 | | 阈值族 | ReLU, hinge, softplus | 超过门槛才生效 | | 稳定族 | clip, winsorize, quantile | 抗异常、保稳 | | 离散族 | binning, percentile | 保序/分段表达 | --- 如果你愿意,我下一步可以继续帮你整理成一版**“适合直接放进方案文档/评审PPT”的表格版**,再补一列: **“推荐用于哪些 rerank 因子(相关性、质量、热度、位置、先验)”**。