多任务学习

好处

1 多个模型一起训练

2 可以提升单一任务的效果

微软的MT-DNN[33]已经证明基于预训练模型的多任务Fine-tuning可以提升各项子任务效果

结构

loss

设计loss是重点

除了各个子任务的损失直接相加,还有别的方式吗

辅助任务怎么设计

问题

辅助任务??

参考

https://zhuanlan.zhihu.com/p/397196665

https://tech.meituan.com/2020/07/09/bert-in-meituan-search.html

text Span抽取

基于问题在段落中寻找答案

1
2
3
1 问题:苏轼是哪里人?
2 描述:苏轼是北宋著名的文学家与政治家,眉州眉山人。
3 标签:眉州眉山人

bert中的SQuAD问答任务

标签

引入start 和 end 标签

结构

损失

1
2
3
4
5
6
7
8
9
sequence_output = all_encoder_outputs[-1] #[src_len, batch_size, hidden_size]
logits = self.qa_outputs(sequence_output) # [src_len, batch_size,2]
start_logits, end_logits = logits.split(1, dim=-1)
start_logits = start_logits.squeeze(-1).transpose(0, 1) # [batch_size,src_len]
end_logits = end_logits.squeeze(-1).transpose(0, 1) # [batch_size,src_len]
loss_fct = nn.CrossEntropyLoss(ignore_index=ignored_index)
start_loss = loss_fct(start_logits, start_positions)
end_loss = loss_fct(end_logits, end_positions)
final_loss=(start_loss + end_loss) / 2

模型输出为: [src_len, batch_size,2]

两个(start 和 end )src_len分类的平均

预测

假设候选文本长度为n,输出n个2分类结果,选出最大的start概率和end概率最为start和end label

参考

https://zhuanlan.zhihu.com/p/77868938

https://blog.csdn.net/guangyacyb/article/details/105526482

https://zhuanlan.zhihu.com/p/473157694

天池新闻推荐

目标: 为不同用户(测试为5万)分别推荐top5的新闻文章(总数36万)

标签:不同用户在不同时间的点击新闻

特征:

整体框架也是:多路召回+排序

召回

1
2
3
4
5
6
# 定义一个多路召回的字典,将各路召回的结果都保存在这个字典当中
user_multi_recall_dict = {'itemcf_sim_itemcf_recall': {},
'embedding_sim_item_recall': {},
'youtubednn_recall': {},
'youtubednn_usercf_recall': {},
'cold_start_recall': {}}
  1. 基于itemcf计算的item之间的相似度sim进行的召回

  2. 基于embedding搜索得到的item之间的相似度进行的召回

  3. YoutubeDNN召回
  4. YoutubeDNN得到的user之间的相似度进行的召回
  5. 基于冷启动策略的召回

排序

排序

  1. LGB的排序模型
  2. LGB的分类模型
  3. 深度学习的分类模型DIN

模型集成

  1. 输出结果加权融合
  2. Staking

参考

https://tianchi.aliyun.com/notebook-ai/detail

序列标注

序列标注(Sequence Tagging)是NLP中最基础的任务,应用十分广泛,如分词、词性标注(POS tagging)、命名实体识别(Named Entity Recognition,NER)、关键词抽取、语义角色标注(Semantic Role Labeling)、槽位抽取(Slot Filling)等实质上都属于序列标注的范畴。

标注方式

https://zhuanlan.zhihu.com/p/147537898#

参考

https://zhuanlan.zhihu.com/p/268579769

https://zhuanlan.zhihu.com/p/147537898#

多标签

1 分类

标签

方法

1 转成多个2分类相加

假设标签有q个类别,那就是q个二分类

2 直接多标签分类

1 单label多分类

m为样本总和,q为类别数量

2 推广

https://zhuanlan.zhihu.com/p/385475273

https://zhuanlan.zhihu.com/p/138117543

评价指标

https://zhuanlan.zhihu.com/p/385475273

2 文本翻译

一句英文输入,有多个版本的中文翻译,这种一对多怎么训练????

参考

https://zhuanlan.zhihu.com/p/138117543

https://www.jianshu.com/p/ac3bec3dde3e

flask

python web应用框架,后端

编写逻辑

1
2
3
4
5
6
7
8
9
10
11
12
from flask import Flask, request, jsonify
##创建应用
app1 = Flask(__name__)
###绑定函数
@app1.route('URL rule', methods=['post'])
def process_element_data():

return
##启动应用
app1.run(....)


执行逻辑
1 启动应用
2 前端发送请求
3 根据URL rule找函数,返回结果给前端


:D 一言句子获取中...