A Convolutional Click Prediction Model
目标:CTR预估
Convolution Layer
对于有n个元素的输入,先做embedding。ei(d维)表示一个实例中的第i个元素的embedding,并构建实例矩阵(d * n维)。注意对这一步的理解,因为要做卷积,不能竖着直接stacking成一个长向量,而要拼成一个矩阵。
ei的值在训练过程中得到。
卷积层为d * w维,d和w均为超参数。卷积后得到的矩阵r为d * (n+w-1)维。第i行的计算方式为
需要注意的是,这里的卷积是1维卷积,因为卷积核的宽度和原矩阵的宽度是一致的。使用这种结构的原因在于,在点击预估模型中,embedding中的每一维表示一个元素的一种不同的角度,因此矩阵r中的每一行表示一个不同的特征。
补充说明:上面的内容写于第一次阅读完这篇paper后,但是仔细一想,文中描述的one-dimensional row-wise的卷积到底是一种怎么样的操作?为什么d * n的输入经过d * w的卷积核卷积后会得到d * (n+w-1)的输出?经过仔细思考,对这里的细节进行补充说明。首先需要理解一点,1 * n的输入经过1 * w的卷积核卷积后,会得到1 * (n+w-1)的输出(输入两端都做了padding,卷积核移到外面去的部分值为0)。之后就是对one-dimensional row-wise的卷积的理解,d * n的输入和d * w的卷积核做卷积,在维度d上可以对上,然后每一行独立的进行卷积操作,因此维度d不会缩小,最终得到d * (n+w-1)的输出。
Flexible p-Max Pooling
对于一个向量ri(n维,即r的一行),p-max pooling挑选了一个子向量sip(p维)来获得ri中最大的p个值。
由于输入可能是长度不固定的,卷积层的输出结果长度也因此不固定。考虑到这些情况,定义p为输入长度和网络深度的函数
其中l表示网络中卷积层的数量,n表示输入的长度,pi表示第i个pooling层的参数。
这个函数的优点在于:
•最后一个pooling layer的参数是固定的,这使得即使输入的长度不同,输出到全连接层的维度是统一的。
•与线性函数相比,指数函数前期变化慢,可以避免在开始时丢失太多重要的特征。
flexible p-max pooling不仅可以挑选p个最重要的特征,并且保留了这些特征的相对顺序。
Feature Maps
pooling层的输出后面加上一个激活函数,这里选择的是tanh
通过卷积层、flexible p-max pooling layer、激活函数可以获得feature map。
在某一层中,多个feature map可以并行计算。
最后输入到全连接层,做softmax即可。
网友评论