FM

因子分解机用于建模二阶特征交互。

调用参数:

  • x: 一个3D张量。

输入形状:

  • 3D 张量,形状为:(batch_size, field_size, embedding_size)

输出形状:

  • 形状为 (batch_size, 1) 的 2D 张量

参考文献:

  • [1] Rendle S. 因子分解机[C]//2010年IEEE国际数据挖掘会议. IEEE, 2010: 995-1000.
  • [2] Guo H, Tang R, Ye Y, 等. Deepfm: 一个端到端的宽深度学习框架,用于点击率预测[J]. arXiv 预印本 arXiv:1804.04950, 2018.

AFM

注意力因子分解机(AFM),它通过神经注意力网络从数据中学习每个特征交互的重要性。

参数:

  • hidden_factor: int, (默认=16)
  • activation_function : str, (默认=’relu’)
  • kernel_regularizer : str 或 object, (默认=None)
  • dropout_rate: float, (默认值=0)

调用参数:

  • x: 一个3D张量的列表。

输入形状:

  • 一个形状为 (batch_size, 1, embedding_size) 的3D张量列表

输出形状:

  • 形状为 (batch_size, 1) 的 2D 张量

参考文献:

CIN

压缩交互网络(CIN),考虑以下因素:(1) 交互是在向量级别应用的,而不是在比特级别;(2) 高阶特征交互被明确衡量;(3) 网络的复杂性不会随着交互程度的增加而呈指数增长。

参数:

  • cross_layer_size: 整数元组, (默认值 = (128, 128,))
  • activation: str, (默认=’relu’)
  • use_residual: bool, (默认=False)
  • use_bias: bool, (默认=False)
  • direct: bool, (默认=False)
  • reduce_D:bool, (默认=False)

调用参数:

  • x: 一个3D张量。

输入形状:

  • 一个形状为 (batch_size, num_fields, embedding_size) 的3D张量

输出形状:

  • 形状为 (batch_size, *) 的2D张量

参考文献:

  • [1] Lian J, Zhou X, Zhang F, 等. xdeepfm: 结合显式和隐式特征交互用于推荐系统[C]//第24届ACM SIGKDD国际知识发现与数据挖掘会议论文集. 2018: 1754-1763.
  • [2] https://github.com/Leavingseason/xDeepFM

多头注意力机制

一个多头自注意力网络,带有残差连接,用于显式建模特征交互。

参数:

  • num_head: int, (默认=1)
  • dropout_rate: float, (默认值=0)
  • use_residual: bool, (默认=True)

调用参数:

  • x: 一个3D张量。

输入形状:

  • 3D 张量,形状为:(batch_size, field_size, embedding_size)

输出形状:

  • 3D 张量,形状为:(batch_size, field_size, embedding_size*num_head)

参考文献:

  • [1] 宋伟, 史超, 肖志, 等. Autoint: 通过自注意力神经网络自动学习特征交互[C]//第28届ACM国际信息与知识管理会议论文集. 2019: 1161-1170.
  • [2] https://github.com/shichence/AutoInt

FGCNN

特征生成网络利用CNN的优势生成局部模式,并将它们重新组合以生成新特征。

参数:

  • filters: int, 卷积层的过滤器数量
  • kernel_height: int, 卷积层kernel_size的高度
  • new_filters: int, 重组层中新特征图的数量
  • pool_height: int, 池化层pool_size的高度
  • activation: str, (默认=’tanh’)

调用参数:

  • x: 一个4D张量。

输入形状:

  • 4D张量,形状为:(batch_size, field_size, embedding_size, 1)

输出形状:

  • pooling_output - 4D 张量
  • new_features - 形状为 (batch_size, field_size*new_filters, embedding_size) 的 3D 张量

参考文献:

  • [1] 刘 B, 唐 R, 陈 Y, 等. 通过卷积神经网络生成特征用于点击率预测[C]//万维网会议. 2019: 1119-1129.

SENET

SENET层可以动态增加重要特征的权重,并减少无信息特征的权重,以使模型更加关注更重要的特征。

参数:

  • pooling_op: str, (默认值=’mean’). 用于将原始嵌入E压缩为统计向量Z的池化方法
  • reduction_ratio: float, (默认=3). 用于降维的超参数

调用参数:

  • x: 一个3D张量。

输入形状:

  • 3D 张量,形状为:(batch_size, field_size, embedding_size)

输出形状:

  • 3D 张量,形状为:(batch_size, field_size, embedding_size)

参考文献:

  • [1] 黄T, 张Z, 张J. FiBiNET: 结合特征重要性和双线性特征交互进行点击率预测[C]//第13届ACM推荐系统会议论文集. 2019: 169-177.

双线性交互

双线性交互层结合了内积和哈达玛积来学习特征交互。

参数:

  • bilinear_type: str, (默认=’field_interaction’). 双线性函数的类型
    • field_interaction
    • field_all
    • field_each

调用参数:

  • x: 一个3D张量。

输入形状:

  • 3D 张量,形状为:(batch_size, field_size, embedding_size)

输出形状:

  • 3D 张量,形状为:(batch_size, *, embedding_size)

参考文献:

  • [1] 黄T, 张Z, 张J. FiBiNET: 结合特征重要性和双线性特征交互进行点击率预测[C]//第13届ACM推荐系统会议论文集. 2019: 169-177.

交叉

交叉网络由交叉层组成,以高效的方式应用显式特征交叉。

参数:

  • num_cross_layer: int, (默认=2). 交叉层的数量

调用参数:

  • x: 一个二维张量。

输入形状:

  • 形状为 (batch_size, field_size) 的2D张量

输出形状:

  • 形状为 (batch_size, field_size) 的2D张量

参考文献:

  • [1] 王R, 傅B, 傅G, 等. 用于广告点击预测的深度与交叉网络[M]//ADKDD’17会议论文集. 2017: 1-7.

内积

PNN中使用的内积层

调用参数:

  • x: 一个3D张量的列表。

输入形状:

  • 一个形状为 (batch_size, 1, embedding_size) 的3D张量列表

输出形状:

  • 二维张量,形状为:(batch_size, num_fields*(num_fields-1)/2)

参考文献:

  • [1] Qu Y, Cai H, Ren K, 等. 基于产品的神经网络用于用户响应预测[C]//2016 IEEE 第16届国际数据挖掘会议 (ICDM). IEEE, 2016: 1149-1154.
  • [2] Qu Y, Fang B, Zhang W, 等. 基于产品的神经网络在多领域分类数据上的用户响应预测[J]. ACM信息系统交易(TOIS), 2018, 37(1): 1-35.
  • [3] https://github.com/Atomu2014/product-nets

外积

PNN中使用的OuterProduct层

参数:

  • outer_product_kernel_type: str, (默认=’mat’). 外积核的类型
    • mat
    • vec
    • num 调用参数:
  • x: 一个3D张量的列表。

输入形状:

  • 一个形状为 (batch_size, 1, embedding_size) 的3D张量列表

输出形状:

  • 二维张量,形状为:(batch_size, num_fields*(num_fields-1)/2)

参考文献:

  • [1] Qu Y, Cai H, Ren K, 等. 基于产品的神经网络用于用户响应预测[C]//2016 IEEE 第16届国际数据挖掘会议 (ICDM). IEEE, 2016: 1149-1154.
  • [2] Qu Y, Fang B, Zhang W, 等. 基于产品的神经网络在多领域分类数据上的用户响应预测[J]. ACM信息系统交易(TOIS), 2018, 37(1): 1-35.
  • [3] https://github.com/Atomu2014/product-nets