会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员后可解锁完整内容。
解题思路
核心思路
CTR 和 CVR 共用同一个权重向量 w,各自只有一个偏置。预测是
y^iCTR=w⋅xi+bCTR,y^iCVR=w⋅xi+bCVR
题目内容
在多目标学习的推荐排序模型中,需要同时对点击率(CTR,Click-Through Rate)与转化率(CVR,Conversion Rate)进行预测。本题采用线性回归完成多目标建模:CTR 与 CVR 共享同一组特征权重,同时分别保留各自的任务特定偏置。
记样本数为 n,特征维数为 d,第 i 个样本的特征向量为 xi,共享权重为 w,两个任务的偏置为 bCTR、bCVR。预测为
y^iCTR=w⋅xi+bCTR,y^iCVR=w⋅xi+bCVR
训练使用联合损失
Loss=MSECTR+α⋅MSECVR
其中 α 为加权系数。均方误差是全体样本的算术平均,前面不乘 21:
MSECTR=n1i=1∑n(y^iCTR−yiCTR)2
MSECVR 的定义相同。w、bCTR、bCVR 全部从 0 初始化。
参数用批量梯度下降更新,学习率为 η。记残差 eiCTR=y^iCTR−yiCTR(CVR 同样用预测减标签)。一次迭代先用当前参数对全部样本做前向,得到残差后再计算梯度,然后同时更新三个参数:
∂w∂Loss=n2i=1∑neiCTRxi+α⋅n2i=1∑neiCVRxi
∂bCTR∂Loss=n2i=1∑neiCTR,∂bCVR∂Loss=α⋅n2i=1∑neiCVR
w←w−η∂w∂Loss
两个偏置用同一批残差、按同样的方式更新。不要逐样本更新,也不要在同一次迭代里更新完权重后再重算偏置梯度。
共迭代 N 次。N=0 时参数保持全 0。最后用迭代结束时的参数计算 Loss,输出 Loss×1010 四舍五入后的整数。损失非负;小数部分恰好为 0.5 时向正方向进一。输出的是损失,不是梯度。
输入描述
输入共五行。
第 1 行是特征集合。不同样本之间使用分号分隔,同一样本中的不同特征值使用逗号分隔。
第 2 行是 CTR/CVR 标签集合。不同样本之间使用分号分隔,每个样本内部先写 CTR,再写 CVR,用逗号分隔。
第 3 行是迭代次数 N。
第 4 行是学习率 η。
第 5 行是加权系数 α。
分隔符两侧没有空格。每个样本的特征维数相同,且与第 2 行的样本数一致。
输出描述
输出一个整数,即完成 N 次迭代后的联合损失乘以 1010,再四舍五入。
数据范围
- 1≤n≤100,1≤d≤10
- 0≤N≤2000,N 为整数
- 特征、yCTR、yCVR 的绝对值均不超过 10
- 0≤η≤1,0≤α≤5
- 保证损失为有限值,且答案落在 64 位有符号整数范围内
样例1
输入
2
3,4
1
0.25
0.25
输出
473125000000
说明
特征矩阵只有 1 个样本,特征值为 2,标签为 CTR 3 和 CVR 4。迭代次数为 1,学习率为 0.25,加权系数为 0.25。
初始预测值为 0,因此 CTR 残差为 −3,CVR 残差为 −4。完成 1 次迭代后,共享权重 w=4,CTR 偏置 bCTR=1.5,CVR 偏置 bCVR=0.5。最终预测为
y^CTR=4×2+1.5=9.5,
y^CVR=4×2+0.5=8.5。
均方误差分别为
MSECTR=(9.5−3)2=42.25,
MSECVR=(8.5−4)2=20.25。
联合损失 Loss=42.25+0.25×20.25=47.3125。乘以 1010 后四舍五入为 473125000000。
样例2
输入
1.5
2,3
0
0.125
0.5
输出
85000000000
说明
样本特征值为 1.5,CTR 目标为 2,CVR 目标为 3。迭代次数为 0,因此所有参数保持初始值 w=0,bCTR=0,bCVR=0。
最终预测为
y^CTR=0×1.5+0=0,
y^CVR=0×1.5+0=0。
均方误差为
MSECTR=(0−2)2=4,
MSECVR=(0−3)2=9。
联合损失 Loss=4+0.5×9=8.5。乘以 1010 后四舍五入为 85000000000。
样例3
输入
1,0;0,1
2,1;1,3
1
0.25
0.5
输出
11484375000
说明
特征矩阵包含 2 个样本,每个样本有 2 个特征。初始参数均为 0。
完成 1 次迭代后,共享权重为 w=[0.625,0.625],CTR 偏置为 0.75,CVR 偏置为 0.5。
对两个样本,最终 CTR 预测分别为
y^CTR,1=0.625×1+0.625×0+0.75=1.375,
y^CTR,2=0.625×0+0.625×1+0.75=1.375。
CVR 预测分别为
y^CVR,1=0.625×1+0.625×0+0.5=1.125,
y^CVR,2=0.625×0+0.625×1+0.5=1.125。
所以
MSECTR=2(1.375−2)2+(1.375−1)2=0.265625,
MSECVR=2(1.125−1)2+(1.125−3)2=1.765625。
联合损失 Loss=0.265625+0.5×1.765625=1.1484375。乘以 1010 后四舍五入为 11484375000。