MoreRSS

site iconRunye | 算法花园修改

滴滴、飞猪。分享算法,竞赛性编程,阅读等主题内容。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Runye | 算法花园的 RSS 预览

Thinking 12 - Coding Cli

2026-03-14 08:00:00

感觉就在这几个月,Claude Code 这样的工具开始在身边火了起来。1 月份自己用 Cluade Code 搭配 kimi-k2.5,刚开始只是用来在 mac 上安装软件和修复环境。

上周终于通过美区 iOS 订阅 20 刀的服务,可惜没过 1 周账号就被封了。后来,改成订阅 ChatGPT Plus 服务来使用 Codex。现在开始用这些服务来完成之前一直没有做完的,导出 Logseq 笔记成为博客文章的脚本。如果你有想法,token is all you need!

另外遗憾的是,公司内部各种安全限制只能用 kimi-k2.5 这样的开源模型,而且各个平台都是 agent 时代之前的产品,总感觉等这些平台接入 coding cli 生态的成本,远高于重新搭建一套。

Pygmalien

2026-02-18 08:00:00

Day 1-2

  • 成长核心: [[甘卓琴]]、[[壶铃]]、[[展品柜]]
    • 2026-02-18-17-01-59
  • 尽量拿:小圆猪发射器、绷带、铁腕战士
    • 2026-02-18-17-46-33
  • 保战力
    • 2026-02-18-17-50-34
  • 低优先级,没东西可以拿:多肉植物、乌瓦希瓦利鸟、盾、传家宝、小圆猪守卫
    • 2026-02-18-17-51-38
  • 看体系、附魔好可以拿
    • 2026-02-18-17-53-31
  • 经济体系
    • 2026-02-18-18-00-30
  • 第一天,3商店(中型和治疗)1事件
  • 事件
    • 蘑菇,4 块钱
    • 丛林:拿钱好过拿收入

Day3-5

  • 工装短裤(生命值和治疗商店)
    • 2026-02-18-18-03-42
  • 成长核心
    • 2026-02-18-18-10-56
  • 泛用过度
    • 2026-02-18-18-11-35
  • 盾猛
    • 2026-02-18-18-11-55
  • 优质过渡
    • 2026-02-18-18-12-31
  • 野怪掉落:剑齿虎、恐狼
    • 2026-02-18-18-12-57
  • 可补充的物品
  • 2026-02-18-18-13-44
  • 其他过渡物品
    • 2026-02-18-18-14-03
  • 其他成长核心
    • 2026-02-18-18-13-30
  • 经济:地球仪
    • 2026-02-18-18-15-11
  • 技能
    • 2026-02-18-18-15-50

Day 6

  • [[裤子无限]]
  • [[玩具无限]]
  • [[地产流]]
  • 要塞冰刀
    • 2026-02-18-19-42-05
  • [[冰猪流]]
    • 2026-02-18-19-42-31
  • 肉猪流
    • 2026-02-18-19-42-56

大巴扎猪猪上分公式化攻略(s10) 新手扫盲可学

+

热门打压

2026-02-17 08:00:00

推荐系统传统召回是怎么实现热门item的打压? - 知乎 (zhihu.com)

  • 利用 user embedding 去搜索 knn 的 item embedding
  • [[石塔西]]
    • 召回(负)样本的艺术:随机采样得到
    • pairwise loss
      • 预测的目标是MatchScore(user, item+)要远高于MatchScore(user, item-)
    • 分成 item- 和 item+,需求不同
      • 参考[[Word2Vec]]采集正负 item使用的概率公式
      • 降低热门item成为item+的可能性 #card
        • $P_{p o s}\left(w_{i}\right)=\left(\sqrt{\frac{z\left(w_{i}\right)}{a}}+1\right) \cdot \frac{a}{z\left(w_{i}\right)}$
        • 罕见 item 只要被点击就一定是正样本,热门 item 降低频率
      • 提升热门item成为item-的概率 #card
        • 热门 item 当成是 item- 是hard negative
        • 冷门 item 是 easy negative
        • $P_{n e g}\left(w_{i}\right)=\frac{f\left(w_{i}\right)^{b}}{\sum_{w^{\prime}} f\left(w^{\prime}\right)^{b}}$
          • b 等于0 不打压
          • b=1 打压最厉害
  • inverse probability weighting,对样本热度重调权
  • 多路召回不需要打压,还是要区分场景
    • 视频、微博等内容平台
  • 热门样本样本单独召回
    • [[RP]] 高热库

广告系统

2026-02-17 08:00:00

广告竞价划分 #card

  • ssp <-> adx(拍卖平台) <-> dsp

召回系统

精排,根据业务去挖掘特征

对模型效果比较重要的几部分

  • 数据流

    • 比较核心的目标是及时且准确地获取各种事件 (click,convert) 的 ground truth;“及时” 指的是 {{c1 发生的事件需要尽可能快地喂给模型}} ,“准确” 指的是 {{c1 这些事件需要被正确打上 label。}}
    • 数据流与转化归因 (conversion attribution)
      • 归因可以理解为 label 的获取与拼接, 当前最常见的是 last touch 方式的归因,也有一些其他的归因方式如 multi-touch 归因等, 通常涉及到广告主的上报和实际的拼接两部分
      • [[delayed feedback]]
    • [[CTR Bias]]
      • [[exposure bias]] 只有曝光的样本才能进入训练集,[[负样本]]选择问题
      • [[position bias]]
    • 全渠道数据 [[全场景建模]]
      • 核心 → 将被 cvr 被低估的用户通过全渠道数据捞回来
      • 如何获得跨平台的样本?#card
        • 一种是广告主将媒体 A 的数据归因后直接回传给媒体 B,
        • 另一种则是媒体之间相互合作,如笔者做过的联邦学习在广告的落地应用就是属于这部分。
  • [[特征工程]] dnn 模型的特征选择
    • 常用挖掘套路 #card
      • 属性特征:用户 / 广告本身的一些属性,如用户的年龄、性别;广告的类别、样式等
      • 统计特征:用户在特定时间范围 (如过去 7d、 3d、 12h、1h 等) 对当前广告的特定的维度 (如特定类别、特定位置、特定广告主等) 的广告进行了特定操作 (如点击、浏览等) 的次数;
      • 序列特征:即用户在一段时间内的行为序列,如最近 30 个点击过的广告 / 商品;典型的应用可参考阿里的 DIN
    • [[特征筛选]]
      • 最简单的做法是删除指定特征,然后重新训练模型并评估,但是这种做法在训练时长较长时开销是比较大的
      • 在训练过程中便能得到每个特征的重要性
        • 为每个 feature 增加一个 attention unit,如 DIN [[activation unit]] #card
          • ,训练过程中通过这个 attention unit 输出的值来衡量每个特征重要性;其假设是对于重要特征,模型能够自动学习出其权重情况
        • embedding weight:#card
          • 根据每个 feature 对应的 embedding 的值大小来判断重要性, 常见的有基于 embedding 的 L1 norm,L2 norm 等;其假设是对于重要特征,其对应的 embedding 的值越大,类比 lr,其实 nn 可以近似认为是多个 lr 组成的
        • 回到最开始的想法,即删除指定特征,然后重新训练模型并评估,能否在训练过程中便达到这一目的呢?#card
          • 其实是可以的,在训练过程中通过 mask 的方式近似将 embedding 全置为 0,近似当做 drop 掉这个特征,然后通过 multi-head 的方式计算这部分 auc 即可。
  • 训练

    • 模型结构可解释性
      • VC Dimension:#card
        • VC Dimension 本质上是在描述数据量大小和模型大小的关系,即模型参数量应该与数据量大小成正比关系,否则容易出现过拟合或欠拟合的问题
      • attention:#card
        • attention 用最直白的话来说就是动态加权,而这也很符合直觉,如每个特征的重要性不一样,应该对重要性高的给予更高的权重;在 NN 模型中,attention 常用在两个地方: embedding 和 hidden unit;
          • embedding 的 attention 策略可参考这篇文章 SENet 双塔模型:在推荐领域召回粗排的应用及其它;
          • 而针对 hidden unit 的 attention 则可参考这篇 paper,Learning Hidden Unit Contributions for Unsupervised Acoustic Model Adaptation [[LHUC]]
      • multitask: multitask 结构有两个常见的用处,#card
        • 第一种认为多个 task 之间有关联,联合训练能增加数据量,同时提升效果;
        • 第二种则是对于预估值的准确性有要求的场景,如果广告的 ctr、cvr 的预估,往往数据流中混合了多个场景的数据,且每个场景对应的数据的后验不同的,为了保值预估值的准确性,需要将后验值不同的数据分到不同的 head 中
    • 模型训练
      • 初始化对效果有影响,而这个问题可以从几个角度去理解,
        • 从最优化的角度理解,#card
          • 是因为 NN 的优化往往是一个 non-convex 的问题, 如果初始化不好,一开始可能就处于一个不好的位置;
        • 从 bp 的角度理解,#card
          • 初始化的值过小或过大,容易导致梯度消失会梯度爆炸,关于这部分,deeplearning.ai 上的 Initializing neural networks 讲得比较好了,还辅以实践,推荐读一下。
      • 优化器 #card
        • 训练过程本质上就是个优化问题,通过 bp 过程不断修正初始化的 parameter,从而达到损失函数最小的目标,更详细的描述可以参考 Parameter optimization in neural networks;中间涉及到了各种超参数的选择:如 learning rate、batch size、optimizer 等;
        • 其中 optimizer 也有非常多的选择,其中 optimizer 的选择往往又是一个值得考量的地方,关于各类 optimizer 的区别可以参考这篇文章,一个框架看懂优化算法之异同 SGD/AdaGrad/Adam
      • 损失函数
        • 损失函数基本都是通过 MLE 或 MAP 推导出来的,其思想都是假设训练样本都是服从某些分布生成的,而训练的目标是让这些样本的联合概率最大;#card
          • 如 mse 的 assumption 是模型预估值与 ground truth 的误差服从正态分布,
          • cross entropy 的 assumption 是预估值服从伯努利分布;
          • 而这两个其实也能被统一到 GLM 这个框架下。
        • 目前在业界更常见的做法是把问题转为分类问题,对应的 loss 即为 cross entropy,而其实一些回归的 loss 也能通过 weighted logistics regression 转化为分类的问题,#card
          • 比较经典的就是 youtube 的 Deep Neural Networks for YouTube Recommendations 中 Modeling Expected Watch Time 部分;
        • 基于最原始 cross entropy 衍生出来的 loss 主要有两种形式 #card
          • reweight, 即对样本进行各种加权, 包括但不限于根据物理含义直接加权 (如观看时长)、通过 importance sampling 等方式推导出来的 loss,其最终形式也是 reweight 的模式
          • auxiliary/regularization, 即在原始的 task 上增加一些辅助任务或正则项,如 center loss 等
  • 预估纠偏 [[CTR 校准]]

    • [[保序回归]]
    • 上面在 loss 中对样本进行 reweight 的方式,会影响正负样本的分布,导致统计意义上预估值的就是有偏的,应对的策略 #card
      • 可以在训练阶段就进行纠偏,或者在预估值上直接做一个转换,这部分内容可参考这篇文章 Delayed FeedBack In Computational Advertising 的 Fake negative calibration

出价 [[bidding]],计算广告相对于推荐最大的不同点

[[冷启动]]

  • 利用 meta-network 为冷启动的 item 生成一个 id embedding
    • item 的 meta 信息通过小网络生成 embedding
    • 增加一些 [[auxiliary task]] 来训练小网络
  • MAML 方法训练模型,让 embedding 更快收敛

Ref

品牌广告

2026-02-17 08:00:00

品牌广告往往是一个广告系统发展初期的广告模式,基本流程是广告主先付钱,平台保证曝光,如 cpt,gd 就是典型的品牌广告,前者没什么好说的,固定的广告位在特定位置强出就好了;后者则一般会涉及到库存预估和库存分配两个问题 #card

  • 库存预估:gd 承诺的是未来的曝光量,因此需要保证当前售卖的库存不能超过未来的曝光量;一般可以通过时序预估模型来进行预估
  • 库存分配:将库存和 gd 计划作为 supply side 和 demand side 构造二部图,然后通过分配算法进行分配,常见的分配算法有 HWM 和 SHALE

上面的做法只是在解决 gd 广告的保量问题,但是随着优化的精细化,除了保量,还需要考虑一些其他问题,如 #card

  • gd 广告和效果广告往往存在竞争关系 (因为曝光的机会是共享且数量是基本固定的), 需要联合效果广告建模使得利益最大化
    gd 广告除了保量,往往客户也会提出效果的要求,否则平台可以把低质流量直接给到 gd 计划;因此,从建模上这成了一个多约束的优化问题

如果额外考虑以上这两点,#card

  • 上面传统的分配算法就有点问题了,首先库存预估出来的量往往是总体的曝光量,gd 能占用其中多少的量需要拍一个数,或者根据 cpm 分配;
  • 其次,上面分配算法是直接把这个曝光给这个 gd 广告的,不会判断质量的好坏,但我们实际是不希望把太差的量给广告主的,同时也不能对竞价有过多的挤压,
  • 因此需要判断流量对于 gd 计划的质量,需要为 gd 计划考虑一种更加灵活的拿量方法。

综上, {{c1 gd 广告}} 需要考虑保量、效果、溢价率以及对效果广告的挤压,因此建模时也需要把这些因素考虑进去。

纠偏长尾物料的实践

2026-02-17 08:00:00

image.png

  • 对比学习目标 #card
    image.png
  • 对比学习要优化的损失不过是向量化召回中常规的[[Sampled Softmax Loss]] #card
    • $$
      \operatorname{Loss}{\mathrm{CL}}=\operatorname{Loss}{\mathrm{CL}}\left(z_i, z_i^{\prime}\right)=-\frac{1}{N} \sum_{i=1}^N \log \frac{\exp \frac{\operatorname{SIM}\left(z_i, z_i^{\prime}\right)}{\tau}}{\sum_{j=1}^N \frac{\operatorname{SIM}\left(z_i, z_j^{\prime}\right)}{\tau}}
      $$
    • N 是 batch 大小
    • $\tau$ 是温度系数,用于平衡调节模型的准确性与扩展性

针对物料特征的两个增强转化函数AG和AG’

+
image.png
+ 随机特征遮蔽(Random Feature Masking,RFM) #card
+ a 将一个物料的所有Field随机拆分到两个变体中去。
image.png
+ 关联特征遮蔽(Correlated Feature Masking,CFM) #card
+ 将一个物料的所有Field拆分到两个变体中,但不再是随机拆分,而是将强关联的Field拆分到一起。
+ 如图8-13(b)所示,​“分类”与“标签”都是描述文章内容的,都拆分到变体[插图]中;​“作者国籍”和“文章语言”与作者属性强相关,都拆分到变体[插图]中。
+ 至于各Field之间的关联程度如何衡量,可以人工指定,也可以通过计算“互信息”提前准备好。
image.png
+ 随机丢失(Dropout):#card
+ 不再拆分Field,而是将一些多值Field(比如分类、标签)中的特征值随机拆分到两个变体中
image.png

样本策略

  • 主任务的训练样本与对比学习任务的训练样本应该来自不同的分布,这一点对模型效果至关重要。#card
    • 训练主任务时,正负样本都来自曝光数据,其中以老物料为主。
    • 训练对比学习的辅助任务时,物料是从所有候选物料中平均抽样产生,小众物料、新物料占比较主任务有大幅提升。原因前边已经分析过,对比学习的目标是放大少数群体的效应,样本策略自然应该向鲜有曝光的小众物料倾斜。

对比学习辅助双塔模型

image.png
+ 物料塔、物料特征的Embedding这些参数是被主辅任务共享的,唯有如此,才能达到 {{c1 纠偏}} 的目的。