市场竞价预估
市场竞价预估的目标是预测每一次请求的市场价格,通常ADX和DSP都使用二价计费,因此市场价格也就是二价(计费价)。
准确地预测市场价格是一个重要的任务。对于ADX来说,每一次广告的请求的计费价都是可知的,因为可以轻易地用回归的方法拟合出。ADX可以用来预估每个DSP的竞价,从而选择要发送的DSP组合(比每次全部请求节约成本),还可以作为低价。但是对于DSP而言,只能获取到竞胜请求的计费价,对于竞价失败的请求,只能知道计费价比自己的竞价要高,这部分数据学术上称为删失数据,所以准确预测是十分困难的。
接下来总结关于模型的四个方法:
1. 只假设对数正态分布(2011 KDD)
参考文献:Bid landscape forecasting in online ad exchange marketplace
本文方法先用Fast-Correlation Based Filtering方法挑选出重要特征,然后提出了星树(star tree)结构存储每条样本的特征和竞价信息。除最后一层叶节点外,每一层表示一个特征,每个节点存储出现次数大于一定阈值的特征值,其余未出现的或次数较少的用星号(star)节点代替。最后一层的叶节点存储本条特征链路上的竞价数据的均值和方差。
上述特征树创建好之后,就相当于生成了一份新的数据集,然后用GBDT方拟合历史竞价,学习每条路径的特征和竞价信息的关系。
在线推理时,根据请求特征从树中寻找到最匹配的叶节点,取出期均值和方差。然后假设竞价服从对数正态分布,代入取到的均值和方差就可以计算出竞价预估值。对于广告活动粒度的预估,论文假设其为每个广告任务的混合分布(FMM),也就是将广告活动包含的样本预估结果进行聚合即可。
2. 假设正态分布+机器学习(2015 KDD)
参考文献:Predicting Winning Price in Real Time Bidding with Censored Data
总体思路:线性回归模型拟合竞胜数据,删失回归模型拟合竞输数据,实时竞价时使用两者混合后的模型。
2.1 线性回归模型拟合竞胜数据
表达式:v i ≈ β T x i + ε i v_i ≈ \beta^T x_i + \varepsilon_i v i ≈ β T x i + ε i ,注意,本文中的winning price表示市场价(计费二价)。
其中,下标i i i 表示样本序号;v i v_i v i 是市场价;β T x i \beta^T x_i β T x i 表示市场价的均值;ε i \varepsilon_i ε i 假设服从均值为0 0 0 ,方差为σ 2 \sigma^2 σ 2 的正态分布,用来学习删失信息。
2.2 删失回归模型拟合竞输数据
用上述公式拟合出竞胜均价之后,再用下述公式表示单次竞胜的概率:
P ( v i < b i ) = P ( ε i < ( b i − β T x i ) ) = Φ ( b i − β T x i σ ) P(v_i < b_i) = P(\varepsilon_i < (b_i - \beta^T x_i)) = \Phi(\frac{b_i - \beta^T x_i}{\sigma}) P ( v i < b i ) = P ( ε i < ( b i − β T x i )) = Φ ( σ b i − β T x i )
其中Φ \Phi Φ 表示累计概率分布,最终实际计算时,还是使用逻辑回归改写了这个公式:
P ( v i < b i ) = 1 1 + e − β l r T x i P(v_i < b_i) = \frac{1}{1 + e^{-\beta_{lr}^T x_i}} P ( v i < b i ) = 1 + e − β l r T x i 1
2.3 损失函数
在竞胜数据上,损失函数目标是逼近市场价,最小化残差
在竞输数据上,公式表示竞胜概率,取负对数作为损失函数,也是最小此公式
2.4 在线预测
预测时,使用混合模型,竞胜率 * 竞胜均价 + 竞输率 * 竞输均价
3. 假设多个分布+深度学习(2018 KDD)
参考文献:[Deep Censored Learning of the Winning Price in the Real Time Bidding](https://github.com/notlate-cn/tech-blogs/blob/main/papers/Bidding Landscape/2018-Deep Censored Learning of the Winning Price in the Real Time Bidding.pdf)
与第2条是同一个作者,本文主要变动点:把原来的线性回归替换成通用函数g g g ,主要采用深度学习网络结构。
假设的分布用f f f 和F F F 表示,可以灵活替换成正态分布、对数正态分布和Gumbel分布。
4. 不假设任何分布,直接预估分布(2019 KDD)
参考文献:Deep Landscape Forecasting for Real-time Bidding Advertising
大致梳理一下论文思路,因为原论文中应该是有几处公式错误,可以参考文章《论文复现Deep Landscape Forecasting for Real-time Bidding Advertising 》,本文推导的公式与论文和CSDN文章均略有差异。
4.1 生存分析法
本文基于生存分析法(KM)进行问题分析,可阅读文章进一步了解《KM生存曲线的原理及画法 》。下面简述一下:
KM法是这样估计生存曲线:首先计算出活过一定时期的病人再活过下一时期的概率(即生存概率),然后将逐个生存概率相乘,即为相应时段的生存率。需要对观察对象一直持续保持关注,但是很难做到终生关注,中间可能会丢失。当观察到结束事件时(比如死亡)就停止记录,其中生存率常用S S S 表示。
则对应到市场竞价预估中,结束事件(比如死亡)用 竞胜 表示。因为竞胜后,就不需要继续分析后续出价范围了。同样的,生存事件 则用竞输 表示。所以生存率S = ∏ 每个周期 p 竞输 S = \prod_{每个周期}p_{竞输} S = ∏ 每个周期 p 竞输
4.2 在连续空间上表示竞胜率和竞输率
假设市场价(计费二价)z z z 的分布概率密度函数为p ( z ) p(z) p ( z ) ,累积概率密度函数为P ( z ) P(z) P ( z ) ,出价为b b b 时:
竞胜率表示为:W ( b ) = P ( z < b ) = ∫ 0 b p ( z ) d z W(b) = P(z < b) = \int_0^b p(z) dz W ( b ) = P ( z < b ) = ∫ 0 b p ( z ) d z ,含义是:当DSP的出价大于市场价时才能竞胜。
竞输率表示为:S ( b ) = P ( z ≥ b ) = 1 − W ( b ) = 1 − ∫ 0 b p ( z ) d z S(b) = P(z ≥ b) = 1 - W(b) = 1 - \int_0^b p(z) dz S ( b ) = P ( z ≥ b ) = 1 − W ( b ) = 1 − ∫ 0 b p ( z ) d z
上述表示好理解,但是没法计算,接下来就把市场价离散化,重新表示。
4.3 在离散空间上表示竞胜率和竞输率
把出价离散化,可以用计费的最小单位(分)表示,例如:0 = b 0 < b 1 < b 2 < . . . < b l − 1 < b l 0 = b_0 < b_1 < b_2 < ... < b_{l-1} < b_l 0 = b 0 < b 1 < b 2 < ... < b l − 1 < b l ,那么相邻两个价格组成的区间记为V 0 = [ b 0 , b 1 ) , V 1 = [ b 1 , b 2 ) , . . . , V l − 1 = [ v l − 1 , v ) , V l = [ b l , b l + 1 ) V_0=[b_0, b_1), V_1=[b_1, b_2), ... , V_{l-1}=[v_{l-1}, v), V_l=[b_l, b_{l+1}) V 0 = [ b 0 , b 1 ) , V 1 = [ b 1 , b 2 ) , ... , V l − 1 = [ v l − 1 , v ) , V l = [ b l , b l + 1 ) ,则:
新增定义 市场价z z z 恰好落到价格区间V l V_l V l 的概率为:p l = P ( z ∈ V l ) p_l = P(z \in V_l) p l = P ( z ∈ V l )
竞胜率重新表示为:W ( b l ) = P ( z < b ) = ∑ i = 0 l − 1 P ( z ∈ V i ) W(b_l) = P(z < b) = \sum_{i=0}^{l-1}P(z \in V_i) W ( b l ) = P ( z < b ) = ∑ i = 0 l − 1 P ( z ∈ V i )
竞输率重新表示为:S ( b l ) = P ( z ≥ b ) = 1 − W ( b l ) = 1 − ∑ i = 0 l − 1 P ( z ∈ V i ) S(b_l) = P(z ≥ b) = 1 - W(b_l) = 1 - \sum_{i=0}^{l-1}P(z \in V_i) S ( b l ) = P ( z ≥ b ) = 1 − W ( b l ) = 1 − ∑ i = 0 l − 1 P ( z ∈ V i )
综上可得:
p l = P ( z ∈ V l ) = W ( b l + 1 ) − W ( b l ) = S ( b l ) − S ( b l + 1 ) (5) p_l = P(z \in V_l) = W(b_{l+1}) - W(b_l) = S(b_l) - S(b_{l + 1}) \tag{5} p l = P ( z ∈ V l ) = W ( b l + 1 ) − W ( b l ) = S ( b l ) − S ( b l + 1 ) ( 5 )
4.4 引入RNN
此时就可以把离线的竞胜率和竞输率转换成模型,然后使用三元组( x , b , z ) (x, b, z) ( x , b , z ) 样本数据计算概率分布p ( z ) p(z) p ( z ) 。其中x x x 是输入特征,b b b 为实际出价,z z z 为市场价。当本次竞价获胜时,z z z 为计费价;否则z z z 为0(因为竞输时,DSP拿不到计费价)。
但是目前p ( z ) p(z) p ( z ) 还是不好用模型结构表示,所以作者巧妙的构造了辅助变量来解决这个问题。
定义:在已知出价为b l − 1 b_{l-1} b l − 1 竞输的条件下,出价为b l b_l b l 时恰好获胜的概率 为h l h_l h l ,则:
h l = P ( z ∈ V l − 1 ∣ z ≥ b l − 1 ) = 贝叶斯公式 P ( z ∈ V l − 1 , z ≥ b l − 1 ) P ( z ≥ b l − 1 ) = P ( z ∈ V l − 1 ) P ( z ≥ b l − 1 ) = p l − 1 S ( b l − 1 ) (6) h_l = P(z \in V_{l-1} | z ≥ b_{l-1}) \xlongequal{贝叶斯公式} \frac{P(z \in V_{l-1}, z ≥ b_{l-1})}{P(z ≥ b_{l-1})} = \frac{P(z \in V_{l-1})}{P(z ≥ b_{l-1})} = \frac{p_{l-1}}{S(b_{l-1})} \tag{6} h l = P ( z ∈ V l − 1 ∣ z ≥ b l − 1 ) 贝叶斯公式 P ( z ≥ b l − 1 ) P ( z ∈ V l − 1 , z ≥ b l − 1 ) = P ( z ≥ b l − 1 ) P ( z ∈ V l − 1 ) = S ( b l − 1 ) p l − 1 ( 6 )
其中z ≥ b l − 1 z ≥ b_{l-1} z ≥ b l − 1 包含范围z ∈ V l − 1 = [ b l − 1 , b l ) z \in V_{l-1}=[b_{l-1}, b_l) z ∈ V l − 1 = [ b l − 1 , b l ) ,其交集为z ∈ V l − 1 z \in V_{l-1} z ∈ V l − 1 。
由新的辅助变量可得:计算b l b_l b l 出价的恰好获胜概率只需要出价为b l − 1 b_{l-1} b l − 1 的竞输率和市场价格正好落在V l − 1 V_{l-1} V l − 1 的概率。所以引入RNN模型(本文使用的是LSTM结构),用f θ f_\theta f θ 表示,则公式( 6 ) (6) ( 6 ) 可改写为:
h l i = P ( z ∈ V l − 1 ∣ z ≥ b l − 1 , x i ; θ ) = f θ ( x i , b l ∣ r l − 1 ) (7) h_l^i = P(z \in V_{l-1} | z ≥ b_{l-1}, \pmb{x^i}; \theta) = f_\theta (\pmb{x^i}, b_l | \pmb{r_{l-1}}) \tag{7} h l i = P ( z ∈ V l − 1 ∣ z ≥ b l − 1 , x i ; θ ) = f θ ( x i , b l ∣ r l − 1 ) ( 7 )
公式( 7 ) (7) ( 7 ) 的含义就是:在上一个出价区间竞输(r l − 1 \pmb{r_{l-1}} r l − 1 )的条件下,本次出价b l b_l b l 竞胜的概率,所以:
r l − 1 = 1 − h l − 1 i (7-1 本文作者补充) \pmb{r_{l-1}} = 1 - h_{l-1}^i \tag{7-1 本文作者补充} r l − 1 = 1 − h l − 1 i ( 7-1 本文作者补充 )
基于公式( 6 ) (6) ( 6 ) 和( 7 ) (7) ( 7 ) ,重写竞输率和竞胜率为公式( 8 ) (8) ( 8 ) :
S ( b l ∣ x i ; θ ) = P ( z ≥ b l ∣ x i ; θ ) = P ( z ∉ V 0 , z ∉ V 1 , z ∉ V 2 , . . . , z ∉ V l − 1 ∣ x i ; θ ) ( 8.1 ) = P ( z ∉ V 0 ∣ x i ; θ ) ∗ P ( z ∉ V 1 ∣ z ∉ V 0 , x i ; θ ) ∗ P ( z ∉ V 2 ∣ z ∉ V 0 , z ∉ V 1 , x i ; θ ) ∗ . . . ∗ P ( z ∉ V l − 1 ∣ z ∉ V 0 , x i , . . . , z ∉ V l − 2 ; θ ) ( 8.2 ) = 1 ∗ P ( z ∉ V 1 ∣ z ≥ b 1 , x i ; θ ) ∗ P ( z ∉ V 2 ∣ z ≥ b 2 , x i ; θ ) ∗ . . . ∗ P ( z ∉ V l − 1 ∣ z ≥ b l − 1 , x i ; θ ) ( 8.3 ) = ∏ k = 1 l − 1 P ( z ∉ V k ∣ z ≥ b k , x i ; θ ) ( 8.4 ) = ∏ k = 1 l − 1 ( 1 − P ( z ∈ V k ∣ z ≥ b k , x i ; θ ) ) ( 8.5 ) = ∏ k = 1 l − 1 ( 1 − h k + 1 i ) ( 8.6 ) = ∏ k = 2 l ( 1 − h k i ) ( 8.7 ) = ∏ k = 1 l ( 1 − h k i ) ( 8.8 ) \begin{aligned}
S(b_l | \pmb{x^i}; \theta) &= P(z ≥ b_l | \pmb{x^i}; \theta) \\
&= P(z \notin V_0, z \notin V_1, z \notin V_2, ... , z \notin V_{l-1} | \pmb{x^i}; \theta) \quad (8.1)\\
&= P(z \notin V_0 | \pmb{x^i}; \theta) * P(z \notin V_1 | z \notin V_0,\pmb{x^i}; \theta) * P(z \notin V_2 | z \notin V_0, z \notin V_1,\pmb{x^i}; \theta) * ... * P(z \notin V_{l-1} | z \notin V_0,\pmb{x^i}, ... , z \notin V_{l-2}; \theta) \quad (8.2)\\
&= 1 * P(z \notin V_1 | z ≥ b_1, \pmb{x^i}; \theta) * P(z \notin V_2 | z ≥ b_2, \pmb{x^i}; \theta) \, * \, ... \,*\, P(z \notin V_{l-1} | z ≥ b_{l-1}, \pmb{x^i}; \theta) \quad (8.3) \\
&= \prod_{k=1}^{l-1} P(z \notin V_k | z ≥ b_k, \pmb{x^i}; \theta) \quad (8.4) \\
&= \prod_{k=1}^{l-1} \Big(\, 1 - P(z \in V_k | z ≥ b_k, \pmb{x^i}; \theta) \,\Big) \quad (8.5) \\
&= \prod_{k=1}^{l-1} (\, 1 - h_{k+1}^i \,) \quad (8.6) \\
&= \prod_{k=2}^{l} (\, 1 - h_{k}^i \,) \quad (8.7) \\
&= \prod_{k=1}^{l} (\, 1 - h_{k}^i \,) \quad (8.8) \\
\end{aligned} S ( b l ∣ x i ; θ ) = P ( z ≥ b l ∣ x i ; θ ) = P ( z ∈ / V 0 , z ∈ / V 1 , z ∈ / V 2 , ... , z ∈ / V l − 1 ∣ x i ; θ ) ( 8.1 ) = P ( z ∈ / V 0 ∣ x i ; θ ) ∗ P ( z ∈ / V 1 ∣ z ∈ / V 0 , x i ; θ ) ∗ P ( z ∈ / V 2 ∣ z ∈ / V 0 , z ∈ / V 1 , x i ; θ ) ∗ ... ∗ P ( z ∈ / V l − 1 ∣ z ∈ / V 0 , x i , ... , z ∈ / V l − 2 ; θ ) ( 8.2 ) = 1 ∗ P ( z ∈ / V 1 ∣ z ≥ b 1 , x i ; θ ) ∗ P ( z ∈ / V 2 ∣ z ≥ b 2 , x i ; θ ) ∗ ... ∗ P ( z ∈ / V l − 1 ∣ z ≥ b l − 1 , x i ; θ ) ( 8.3 ) = k = 1 ∏ l − 1 P ( z ∈ / V k ∣ z ≥ b k , x i ; θ ) ( 8.4 ) = k = 1 ∏ l − 1 ( 1 − P ( z ∈ V k ∣ z ≥ b k , x i ; θ ) ) ( 8.5 ) = k = 1 ∏ l − 1 ( 1 − h k + 1 i ) ( 8.6 ) = k = 2 ∏ l ( 1 − h k i ) ( 8.7 ) = k = 1 ∏ l ( 1 − h k i ) ( 8.8 )
上式( 8.7 ) → ( 8.8 ) (8.7) \rightarrow (8.8) ( 8.7 ) → ( 8.8 ) 解释:当k = 1 k=1 k = 1 时,h 1 i = P ( z ∈ V 0 ∣ z ≥ b 0 , x i ; θ ) = 1 h_1^i = P(z \in V_0 | z ≥ b_0, \pmb{x^i}; \theta) = 1 h 1 i = P ( z ∈ V 0 ∣ z ≥ b 0 , x i ; θ ) = 1 。
W ( b l i ∣ x i ; θ ) = 1 − S ( b l i ∣ x i ; θ ) = 1 − ∏ k = 1 l ( 1 − h k i ) ( 8.9 ) \begin{aligned}
W(b_l^i| \pmb{x^i}; \theta) &= 1 - S(b_l^i | \pmb{x^i}; \theta) \\
&= 1 - \prod_{k=1}^{l} (\, 1 - h_k^i \,) \quad (8.9)
\end{aligned} W ( b l i ∣ x i ; θ ) = 1 − S ( b l i ∣ x i ; θ ) = 1 − k = 1 ∏ l ( 1 − h k i ) ( 8.9 )
再由公式( 6 ) (6) ( 6 ) 得到,对于第i i i 个样本来说,z i z^i z i 正好落在区间V l − 1 V_{l-1} V l − 1 的概率为:
p l − 1 i = h l i ∗ S ( b l − 1 i ) = h l i ∏ k = 1 l − 1 ( 1 − h k i ) (9) p_{l-1}^i = h_l^i * S(b_{l-1}^i) = h_l^i \, \prod_{k=1}^{l-1} (\, 1 - h_{k}^i \,) \tag{9} p l − 1 i = h l i ∗ S ( b l − 1 i ) = h l i k = 1 ∏ l − 1 ( 1 − h k i ) ( 9 )
4.5 损失函数
本文定义的损失函数形式类似于第3篇文章,采用了两种损失函数加权和的方式。
第一种方式是用市场价概率分布函数 拟合竞胜数据 。当已知给定的样本都是竞胜时,则优化目标可定义为最大化市场价 z z z 恰好落在V l V_l V l 的概率,最好为1 1 1 。定义损失函数为负对数似然函数,则最小化以下公式即可:
L 1 = − log ( ∏ x i , z i ∈ D w i n P ( z i ∈ V l ∣ x i ; θ ) ) = − log ( ∏ x i , z i ∈ D w i n p l i ) = − log ( ∏ x i , z i ∈ D w i n ( h l + 1 i ∏ k = 1 l ( 1 − h k i ) ) ) = − ( ∑ x i , z i ∈ D w i n ( log h l + 1 i + log ∏ k = 1 l ( 1 − h k i ) ) ) = − ∑ x i , z i ∈ D w i n ( log h l + 1 i + ∑ k = 1 l log ( 1 − h k i ) ) = − ∑ x i , z i ∈ D w i n ( log h l + 1 i + ∑ k : k ≤ l log ( 1 − h k i ) ) ( 10 ) \begin{aligned}
L_1 &= -\log \, \bigg( \prod_{\pmb{x^i},z^i \in D_{win}} \, P(z^i \in V_l | \pmb{x^i}; \theta) \bigg) \\
&= -\log \, \bigg( \prod_{\pmb{x^i},z^i \in D_{win}} \, p_l^i \bigg) \\
&= -\log \, \bigg( \prod_{\pmb{x^i},z^i \in D_{win}} \, \Big( h_{l+1}^i \, \prod_{k=1}^l (\, 1 - h_{k}^i \,) \Big)\bigg) \\
&= - \bigg( \sum_{\pmb{x^i},z^i \in D_{win}} \Big( \log h_{l+1}^i + \log \prod_{k=1}^l (\, 1 - h_{k}^i) \Big) \bigg) \\
&= - \sum_{\pmb{x^i},z^i \in D_{win}} \Big( \log h_{l+1}^i + \sum_{k=1}^l \log (\, 1 - h_{k}^i) \Big) \\
&= - \sum_{\pmb{x^i},z^i \in D_{win}} \Big( \log h_{l+1}^i + \sum_{k:k≤l} \log (\, 1 - h_{k}^i) \Big) \quad (10)\\
\end{aligned} L 1 = − log ( x i , z i ∈ D w in ∏ P ( z i ∈ V l ∣ x i ; θ ) ) = − log ( x i , z i ∈ D w in ∏ p l i ) = − log ( x i , z i ∈ D w in ∏ ( h l + 1 i k = 1 ∏ l ( 1 − h k i ) ) ) = − ( x i , z i ∈ D w in ∑ ( log h l + 1 i + log k = 1 ∏ l ( 1 − h k i ) ) ) = − x i , z i ∈ D w in ∑ ( log h l + 1 i + k = 1 ∑ l log ( 1 − h k i ) ) = − x i , z i ∈ D w in ∑ ( log h l + 1 i + k : k ≤ l ∑ log ( 1 − h k i ) ) ( 10 )
第二种方式是用市场价累积概率分布函数 同时拟合竞胜和竞输 数据。对于竞胜数据,我们希望P ( z i < b l i ∣ x i ; θ ) → 1 P(z^i < b_l^i | \pmb{x^i}; \theta) \rightarrow 1 P ( z i < b l i ∣ x i ; θ ) → 1 ,对于竞输数据,我们希望P ( z i ≥ b l i ∣ x i ; θ ) → 1 P(z^i ≥ b_l^i | \pmb{x^i}; \theta) \rightarrow 1 P ( z i ≥ b l i ∣ x i ; θ ) → 1 。采用负对数似然函数定义损失函数如下:
L w i n = − log ( ∏ x i , b i ∈ D w i n P ( z < b l i ∣ x i ; θ ) ) = − log ( ∏ x i , b i ∈ D w i n W ( b l i ∣ x i ; θ ) ) = − log ( ∏ x i , b i ∈ D w i n ( 1 − ∏ k = 1 l ( 1 − h k i ) ) ) = − ∑ x i , b i ∈ D w i n log ( 1 − ∏ k = 1 l ( 1 − h k i ) ) ( 11.1 ) = − ∑ x i , b i ∈ D w i n log ( 1 − ∏ k : k ≤ l ( 1 − h k i ) ) ( 11.2 ) \begin{aligned}
L_{win} &= - \log \Big( \prod_{\pmb{x^i},b^i \in D_{win}} P(z < b_l^i | \pmb{x^i}; \theta) \Big) \\
&= - \log \Big( \prod_{\pmb{x^i},b^i \in D_{win}} W(b_l^i | \pmb{x^i}; \theta ) \Big) \\
&= - \log \bigg( \prod_{\pmb{x^i},b^i \in D_{win}} \Big( 1 - \prod_{k=1}^{l} (\, 1 - h_{k}^i \,) \Big) \bigg) \\
&= - \sum_{\pmb{x^i},b^i \in D_{win}} \log \Big( 1 - \prod_{k=1}^{l} (\, 1 - h_{k}^i \,) \Big) \quad (11.1) \\
&= - \sum_{\pmb{x^i},b^i \in D_{win}} \log \Big( 1 - \prod_{k:k≤l} (\, 1 - h_{k}^i \,) \Big) \quad (11.2) \\
\end{aligned} L w in = − log ( x i , b i ∈ D w in ∏ P ( z < b l i ∣ x i ; θ ) ) = − log ( x i , b i ∈ D w in ∏ W ( b l i ∣ x i ; θ ) ) = − log ( x i , b i ∈ D w in ∏ ( 1 − k = 1 ∏ l ( 1 − h k i ) ) ) = − x i , b i ∈ D w in ∑ log ( 1 − k = 1 ∏ l ( 1 − h k i ) ) ( 11.1 ) = − x i , b i ∈ D w in ∑ log ( 1 − k : k ≤ l ∏ ( 1 − h k i ) ) ( 11.2 )
L l o s e = − log ( ∏ x i , b i ∈ D l o s e P ( z ≥ b l i ∣ x i ; θ ) ) = − log ( ∏ x i , b i ∈ D l o s e S ( b l i ∣ x i ; θ ) ) = − log ( ∏ x i , b i ∈ D l o s e ( ∏ k = 1 l ( 1 − h k i ) ) ) = − ∑ x i , b i ∈ D l o s e log ( ∏ k = 1 l ( 1 − h k i ) ) = − ∑ x i , b i ∈ D l o s e ∑ k = 1 l log ( 1 − h k i ) ( 12.1 ) = − ∑ x i , b i ∈ D l o s e ∑ k : k ≤ l log ( 1 − h k i ) ( 12.2 ) \begin{aligned}
L_{lose} &= - \log \Big( \prod_{\pmb{x^i},b^i \in D_{lose}} P(z ≥ b_l^i | \pmb{x^i}; \theta) \Big) \\
&= - \log \Big( \prod_{\pmb{x^i},b^i \in D_{lose}} S(b_l^i | \pmb{x^i}; \theta ) \Big) \\
&= - \log \bigg( \prod_{\pmb{x^i},b^i \in D_{lose}} \Big( \prod_{k=1}^{l} (\, 1 - h_{k}^i \,) \Big) \bigg) \\
&= - \sum_{\pmb{x^i},b^i \in D_{lose}} \log \Big( \prod_{k=1}^{l} (\, 1 - h_{k}^i \,) \Big) \\
&= - \sum_{\pmb{x^i},b^i \in D_{lose}} \sum_{k=1}^{l} \log (\, 1 - h_{k}^i \,) \quad (12.1) \\
&= - \sum_{\pmb{x^i},b^i \in D_{lose}} \sum_{k:k≤l} \log (\, 1 - h_{k}^i \,) \quad (12.2) \\
\end{aligned} L l ose = − log ( x i , b i ∈ D l ose ∏ P ( z ≥ b l i ∣ x i ; θ ) ) = − log ( x i , b i ∈ D l ose ∏ S ( b l i ∣ x i ; θ ) ) = − log ( x i , b i ∈ D l ose ∏ ( k = 1 ∏ l ( 1 − h k i ) ) ) = − x i , b i ∈ D l ose ∑ log ( k = 1 ∏ l ( 1 − h k i ) ) = − x i , b i ∈ D l ose ∑ k = 1 ∑ l log ( 1 − h k i ) ( 12.1 ) = − x i , b i ∈ D l ose ∑ k : k ≤ l ∑ log ( 1 − h k i ) ( 12.2 )
因为这两个损失函数是通过竞胜还是竞输区分的,所以作者设计了一个指示函数:
w i = { 1 , i f b i > z i , 0 , o t h e r w i s e (13) w^i=
\begin{cases}
1, \quad if \quad b^i > z^i, \\
0, \quad otherwise
\end{cases}
\tag{13} w i = { 1 , i f b i > z i , 0 , o t h er w i se ( 13 )
就可以把L w i n L_{win} L w in 和L l o s e L_{lose} L l ose 合并成:
L 2 = L w i n + L l o s e = − log ( ∏ x i , b i ∈ D w i n P ( z < b l i ∣ x i ; θ ) ) − log ( ∏ x i , b i ∈ D l o s e P ( z ≥ b l i ∣ x i ; θ ) ) = − log ( ∏ x i , b i ∈ D ( W ( b l i ∣ x i ; θ ) ) w i ( 1 − W ( b l i ∣ x i ; θ ) ) 1 − w i ) ( 14.1 ) = − ∑ x i , b i ∈ D ( w i log ( W ( b l i ∣ x i ; θ ) ) + ( 1 − w i ) log ( 1 − W ( b l i ∣ x i ; θ ) ) ) ( 14.2 ) \begin{aligned}
L_2 &= L_{win} + L_{lose} \\
&= - \log \Big( \prod_{\pmb{x^i},b^i \in D_{win}} P(z < b_l^i | \pmb{x^i}; \theta) \Big) - \log \Big( \prod_{\pmb{x^i},b^i \in D_{lose}} P(z ≥ b_l^i | \pmb{x^i}; \theta) \Big)\\
&= - \log \bigg( \prod_{\pmb{x^i},b^i \in D} \Big( W(b_l^i | \pmb{x^i}; \theta ) \Big)^{w^i} \Big( 1 - W(b_l^i | \pmb{x^i}; \theta ) \Big)^{1 - w^i} \bigg) \quad (14.1) \\
&= - \sum_{\pmb{x^i},b^i \in D} \bigg( w^i \, \log \Big( W(b_l^i | \pmb{x^i}; \theta ) \Big) + (1 - w^i) \log \Big( 1 - W(b_l^i | \pmb{x^i}; \theta ) \Big) \bigg) \quad (14.2) \\
\end{aligned} L 2 = L w in + L l ose = − log ( x i , b i ∈ D w in ∏ P ( z < b l i ∣ x i ; θ ) ) − log ( x i , b i ∈ D l ose ∏ P ( z ≥ b l i ∣ x i ; θ ) ) = − log ( x i , b i ∈ D ∏ ( W ( b l i ∣ x i ; θ ) ) w i ( 1 − W ( b l i ∣ x i ; θ ) ) 1 − w i ) ( 14.1 ) = − x i , b i ∈ D ∑ ( w i log ( W ( b l i ∣ x i ; θ ) ) + ( 1 − w i ) log ( 1 − W ( b l i ∣ x i ; θ ) ) ) ( 14.2 )
最终的损失函数为:
a r g m i n θ α L 1 + ( 1 − α ) L 2 (15) \underset{\theta}{argmin} \, \alpha L_1 + (1-\alpha)L_2 \tag{15} θ a r g min α L 1 + ( 1 − α ) L 2 ( 15 )
公式实在太多了,可累坏了。