02 4.00
长序列推荐想变强有两条路:多读历史,或者多堆几层。现有模型把两件事绑在一起:序列编码器每多读一条行为,每层都要多算一份;先挑相关行为再建模的做法只挑一次,后面的层看不到被漏掉的行为。LWR 把历史一直放在可以随时查的存储里。每个候选物品带一小组固定数量的向量,一部分由它自己的特征生成,一部分是训练学出来的,可以看成它的草稿区,只有这组向量逐层往上传;每一层都由草稿区当前的内容生成几个查询,去完整的历史里加权读取,读回的结果和排序特征交互后更新草稿区。这样历史长度和层数可以分开调。在 1 万条历史上,它的 NE 比 HSTU 好 0.19%,前向计算量却少了 69.6%。多读历史和多堆层数可以分开加。
03 4.00
广告系统上线新排序模型前,要先用日志离线挑出最好的候选,但投放经过拍卖、过滤、缓存,曝光被选中的概率没有记录,IPS 用不了。常见替代是用预测点击的奖励模型给新策略打分,可新策略会把曝光推向日志里少见的广告,那里奖励模型最不准。作者在历史请求上重放候选策略,训练分类器判断每条曝光像日志的还是某个候选的。分类器给出每条曝光属于某个候选和属于日志的概率之比,把这条曝光在所有候选上的比值取平均,就是它训练奖励模型时的权重,越像候选会出的曝光权重越高。线上 CTR 排序系统的五个候选都跑过 A/B;在 50 份随机抽取的日志上各挑一次,挑中真正最好那个的比例从不加权的 0.36 提到 0.40。
04 3.65
推荐系统按互动量分配流量,大创作者越来越大,新人很难被看到。想测试扶持新人的分流策略,直接在线上试代价太高,作者于是搭了一个约 4.2 万名创作者的模拟器,创作者的构成和整体指标都按真实平台校准,在里面比较不同的流量分配方式。效果最好的是给创作者设每周的保底播放目标,分配算法把创作者离目标还差的播放量当作奖励,于是差得越多的小创作者越先拿到扶持流量。这样每周有 90% 的保底目标按时完成,小创作者的自然流量每周增长约 33%。作者也专门讨论了模拟器得出的公平结论什么时候可信。
05 3.65
时序链接预测要猜接下来谁会和谁发生交互,这几年的新方法大多在学越来越复杂的时序表示,但一个经典方法就能打平甚至超过它们。作者把个性化 PageRank 直接放到历史交互图上,只加一个滑动窗口或者让旧边的权重随时间衰减,完全不需要训练。在 14 个数据集上,带时间衰减的版本有 9 个排第一、4 个排第二,连很少出现重复边的数据集也是如此。原因是历史图里连向新目标的路径本身就带着很强的信号。现有基准可能高估了复杂时序模型的价值,评估新方法时应该把这类经典基线放进对比。
06 3.50
广告平台会给广告主打折补贴,通常由运营按广告主分层定规则,管不到单个账户对不同补贴力度的反应。CASH 预估每个账户在每档补贴下的收入,用两种方式估:一个带业务知识的大模型,一个从历史数据学出来的数值模型。它用已出结果的账户统计两者在每类账户、每档补贴上的误差,只有误差够小的一方才获准在这一档出预测。每个账户只用一方的预测和它获准的档位:两方都有获准档位时,由按过往哪方误差更小训练的打分器挑,都没有就不补贴。系统在总预算下统一给各账户定档位,让总收入最大。在覆盖 60% 流量、为期一个月的线上实验里,补贴率基本不变,平台从每个账户拿到的收入提高 15.35%,留存等长期指标也提升了。
07 3.40
在带文本的图上做链接预测,比如预测两篇论文会不会互相引用,常见做法是把语言模型和 GNN 拼起来,但两者到底怎么融合一直没有定论。Bridge-LP 的做法比较朴素:让语言模型输出的文本 embedding 绕过 GNN 的各层,直接并入最终用来打分的节点 embedding,这样损失的梯度能直接传回语言模型,训练更稳;另外,训练时只为当前这批边涉及的节点重新编码文本,其余节点先用缓存的旧 embedding,省下大量算力。作者在 9 个数据集上和 40 个已有模型做了比较,在 Cora 上 MRR 比最强基线高 43.06%。这两个设计都不贵,做图推荐的团队可以单独拿来试。
08 3.40
电商推荐要同时处理三件事:长期的协同偏好、短期的购买意图,以及新用户和新商品几乎没有交互。DeepCommerceRec 用两个编码器分开学:一个在异构图上学用户和商品之间的结构关系,一个在行为序列上学兴趣随时间的变化,一个小 MLP 读入两边的向量和交互次数、是否冷启动等信息,逐维输出 0 到 1 之间的比重来混合两边。新用户的序列表示换成他最近几次交互商品的加权汇总,越近权重越大。作者在 Amazon、YooChoose、RetailRocket 三个公开数据集上报告 HR@10、NDCG@10 和 MRR 都超过各类基线。方法主要是已有部件的组合,对实际系统最有参考价值的是按冷热程度调整融合权重这一点。
09 3.25
检查排序是否公平,常见做法是看不同用户群体拿到的效用平均下来是否相等,但这会把问题盖住。作者模拟了一个招聘平台:历史数据里女性对管理岗、男性对行政岗的兴趣被漏记,于是女性在管理岗、男性在行政岗上都被少推,可两边的差距一抵消,总体差距接近零。作者因此要求在每个岗位类别内部分别做到群体间效用相等。他们证明这等价于:只改两个群体在用户里的占比、各群体内部不变时,每个类别上的平均效用都不变。最后从几个现成排序策略的混合里找满足约束、效用最高的那个,并在 MovieLens-1M 上做了验证。只看总体公平指标,可能看不到类别内部的偏差。
10 2.95
训练时日志里能看到的变量,上线时不一定能用。比如临床决策工具训练时有患者的社会经济信息,部署时为防歧视不能作为输入。作者把这种日志完整、部署受限的情况叫运行时混杂。在强化学习里更麻烦,前一步的决策会影响后面的状态和动作,偏差会累积。作者的做法:日志策略的选动作概率和回报模型都用全部变量估,新策略只看部署时可用的变量,用新策略与日志策略选同一动作的概率之比给日志加权,再用回报模型修正。学策略和离线评估都基于此,评估能给出有效的置信区间;还给出一个检验,算出不让用这些变量到底要损失多少回报。推荐和广告里日志有、但因隐私或合规不能上线用的特征,也是这类问题。