README.md 1.68 KB
Newer Older
yangzhong's avatar
yangzhong committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 召回+排序两阶段模型
金融场景FAQ解决方案

## 建模思路
1. 阶段一:MultiNegativeRankingLoss来做有监督的语义相似度任务
2. 利用1阶段训练好的模型,用向量相似度为所有的相似问q_sim召回最相近的K个标准问q_std_pred, 其中等于q_std的为正样本,不等于的为困难负样本
3. 阶段二:ContrastiveLoss来做有监督的语义相似度任务
4. 预测:一个query通过阶段一模型找到topK个标问q_std, 然后通过阶段二模型从topK个标问中找到最可能的标问

## 优缺点分析
- 阶段一的训练自动为阶段二模型构造困难样本,类似于Boosting的思想,进一步提升准确率

## 文件说明
| 文件名 | 文件描述 |
| ----  |  ----  |
| task_sentence_embedding_FinanceFAQ_step1_0.ipynb | 阶段一模型数据生成 |
| task_sentence_embedding_FinanceFAQ_step1_1.py | 阶段一模型训练 |
| task_sentence_embedding_FinanceFAQ_step2_0.ipynb | 阶段二模型数据生成 |
| task_sentence_embedding_FinanceFAQ_step2_1.ipynb | 阶段二模型训练 |
| task_sentence_embedding_FinanceFAQ_step3_predict.ipynb | 模型效果评估 |
| task_sentence_embedding_FinanceFAQ_step3_inference.ipynb | 单条样本推理 |

## 指标
- 评测数据集:所有标问相似问pair(样本内)
- 指标:recall(正确标问在召回的TopK中的比例)

| 阶段 | Top1 | Top3 | Top5 | Top10 |
|----|----|----|----|----|
|一阶段raw方式|91.32|97.94|98.91|99.57|
|一阶段random方式|88.19|95.93|97.56|98.82|
|一阶段mul_ce方式|90.32|97.51|98.67|99.44|
|二阶段|98.00|99.47|99.79|100|
|一阶段raw方式+二阶段整体|97.54|99.00|99.33|99.50|

## requirements
transformers==4.15.0