Skip to content

Commit

Permalink
add transformer layer
Browse files Browse the repository at this point in the history
  • Loading branch information
yangxudong committed Sep 21, 2024
1 parent 1659947 commit 491e7ea
Show file tree
Hide file tree
Showing 20 changed files with 1,712 additions and 267 deletions.
57 changes: 0 additions & 57 deletions docs/source/component/backbone.md
Original file line number Diff line number Diff line change
Expand Up @@ -1094,63 +1094,6 @@ MovieLens-1M数据集效果:
- Cross Decoupling Network: [CDN](../models/cdn.md)
- DLRM+SENet: [dlrm_senet_on_criteo.config](https://github.com/alibaba/EasyRec/tree/master/examples/configs/dlrm_senet_on_criteo.config)

# 组件库介绍

## 1.基础组件

| 类名 | 功能 | 说明 | 示例 |
| ----------------- | ------ | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| MLP | 多层感知机 | 可定制激活函数、initializer、Dropout、BN等 | [案例1](#wide-deep) |
| Highway | 类似残差链接 | 可用来对预训练embedding做增量微调 | [highway network](../models/highway.html) |
| Gate | 门控 | 多个输入的加权求和 | [Cross Decoupling Network](../models/cdn.html#id2) |
| PeriodicEmbedding | 周期激活函数 | 数值特征Embedding | [案例5](#dlrm-embedding) |
| AutoDisEmbedding | 自动离散化 | 数值特征Embedding | [dlrm_on_criteo_with_autodis.config](https://github.com/alibaba/EasyRec/tree/master/examples/configs/dlrm_on_criteo_with_autodis.config) |
| TextCNN | 文本卷积 | 提取文本序列的特征 | [text_cnn_on_movielens.config](https://github.com/alibaba/EasyRec/tree/master/examples/configs/text_cnn_on_movielens.config) |

**备注**:Gate组件的第一个输入是权重向量,后面的输入拼凑成一个列表,权重向量的长度应等于列表的长度

## 2.特征交叉组件

| 类名 | 功能 | 说明 | 示例 |
| -------------- | --------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------- |
| FM | 二阶交叉 | DeepFM模型的组件 | [案例2](#deepfm) |
| DotInteraction | 二阶内积交叉 | DLRM模型的组件 | [案例4](#dlrm) |
| Cross | bit-wise交叉 | DCN v2模型的组件 | [案例3](#dcn) |
| BiLinear | 双线性 | FiBiNet模型的组件 | [fibinet_on_movielens.config](https://github.com/alibaba/EasyRec/tree/master/examples/configs/fibinet_on_movielens.config) |
| FiBiNet | SENet & BiLinear | FiBiNet模型 | [fibinet_on_movielens.config](https://github.com/alibaba/EasyRec/tree/master/examples/configs/fibinet_on_movielens.config) |
| Attention | Dot-product attention | Transformer模型的组件 | |

## 3.特征重要度学习组件

| 类名 | 功能 | 说明 | 示例 |
| --------- | ----------------- | ------------ | ----------------------------------------------------- |
| SENet | 建模特征重要度 | FiBiNet模型的组件 | [MMoE](../models/mmoe.html#id4) |
| MaskBlock | 建模特征重要度 | MaskNet模型的组件 | [Cross Decoupling Network](../models/cdn.html#id2) |
| MaskNet | 多个串行或并行的MaskBlock | MaskNet模型 | [DBMTL](../models/dbmtl.html#dbmtl-based-on-backbone) |
| PPNet | 参数个性化网络 | PPNet模型 | [PPNet](../models/ppnet.html#id2) |

## 4. 序列特征编码组件

| 类名 | 功能 | 说明 | 示例 |
| ---------- | ---------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| DIN | target attention | DIN模型的组件 | [DIN_backbone.config](https://github.com/alibaba/EasyRec/blob/master/samples/model_config/din_backbone_on_taobao.config) |
| BST | transformer | BST模型的组件 | [BST_backbone.config](https://github.com/alibaba/EasyRec/blob/master/samples/model_config/bst_backbone_on_taobao.config) |
| SeqAugment | 序列数据增强 | crop, mask, reorder | [CL4SRec](../models/cl4srec.html#id2) |

## 5. 多目标学习组件

| 类名 | 功能 | 说明 | 示例 |
| ---- | --------------------------- | --------- | ------------ |
| MMoE | Multiple Mixture of Experts | MMoE模型的组件 | [案例8](#mmoe) |

## 6. 辅助损失函数组件

| 类名 | 功能 | 说明 | 示例 |
| ------------- | ---------- | --------- | ----------- |
| AuxiliaryLoss | 用来计算辅助损失函数 | 常用在自监督学习中 | [案例7](#id7) |

各组件的详细参数请查看"[组件详细参数](component.md)"。

# 如何自定义组件

`easy_rec/python/layers/keras` 目录下新建一个`py`文件,也可直接添加到一个已有的文件中。我们建议目标类似的组件定义在同一个文件中,减少文件数量;比如特征交叉的组件都放在`interaction.py`里。
Expand Down
Loading

0 comments on commit 491e7ea

Please sign in to comment.