igraph 算网络指标_[论文阅读] DeText——领英深度神经网络排序框架实践

13b067557a746a5bcbd2d7184d82a7fa.png

[论文阅读] DeText——领英深度神经网络排序框架实践

CIKM2020, Linkin

摘要

如何 搭建 基于 BERT-base 性能工业可用的 排序框架 ? 领英 开源了 其 深度神经网络排序框架 DeText. 可以根据应用场景的不同,考虑效果和性能对不同模块进行替换,灵活配置。并在领英场景下的三个搜索垂域任务(People Search, Job Search 和 Help Center)做了对比试验 .

模型上没有做什么创新,但可以好好看看代码学习一下和学习一下排序框架。好文,感觉会是经典文章。

226b96a8722107a58fefdf5ce602e844.png

任务特性

22550b710b5ac8a48e18df500fe7aedc.png

找人:召回会员个人资料,特点:实体居多,无语法

找工作:召回发布的工作文档 ,特点:介于两者之间

求助中心: 召回FAQ文档,特点:最接近自然语言

总而言之,都是基于很多人工筛选的特征召回相关的文档。

模型框架

工业用BERT,都是使用其表征学习。同时文本表征也适配神经网络比如CNN和LSTM

框架三个特点:1.通用灵活 2.性能和效果平衡为工业所用

如摘要里的图所示,框架除输入文本其有6个部分。

Input Text Data

通用的可以分为两类,source (queries, user profiles) text 和 target (docs) text。

所有的域都可以是 multi filed, 比如query可以由多个,doc也可以有多个。这一点我第一次见。一般都是 doc 是多域的。这样做有两个好处:1.引入会员简历文本域个性化特征2.可以更鲁棒效果更好

Token Embedding Layer

CNN/LSTM: words

BERT: subwords

Text Embedding Layer

BERT,LSTM,CNN

Ineraction Layer

cos sim, 点积,concatenation

Traditional Feature Processing

人工筛选(传统)特征,比如个性化特征,社交网络特征,用户行为特征,传统特征要做归一化。

要做归一化

c0582e4ce0f05f9288136c12ac161513.png

: 均值,
:均方差。w,b: 可学习参数

MLP Layer

计算final score

LTR Layer

输入是多个target score,输出是排序。 支持:pointwise (点击概率重要), pairwise/liswise LTR(相对位置重要) 和Lambda rank。

其他

DeText-BERT 首先在同样的域做了 预训练(LinkedIn's in-domain data),叫做 LiBERT.

BERT的 fine tuning不会产生好结果,学习率应当小,在1e-5左右。其他模块1e-3

支持CNN,token embedding用的是word而不是triletters, 考虑计算成本高。

线上部署策略

线上策略

0f18e9eed2e581a3939a38d0d09875ae.png

BERT

离线计算doc。库刷新按一定周期刷新(比如,daily)

CNN

可以做实时推理。效果也不错。

线上指标

7b717d87957a2615f391546b97132910.png

实验

实验设置

数据:点击数据,1.找人:会员个人简介字段: headline, current position, past position. 2.找工作:字段:job post title, cmpany name. 3.帮助中心:字段:doc title, example question.

指标:对比baseline的相对指标,无绝对指标

baseline model:工业模型,XGBoost, 通过手工和自动调参(pairwise vs listwise, number of tree, etc) 。

每个垂域可以的手工特征可以分为三个部分:

1.文本匹配特征:cosine similarity, jaccard similarity, semantic features (named entity ids (obtained by applying in-house entity linking tools))

2.个性化特征:找人:查询者与个人简介的社交网络距离特征;找工作:搜索者的题目与工作的题目的重叠度

3.文档欢迎特征:找人:会员静态排名;找工作/求助中心:工作/FAQ的点击率

DeText 模型:两个模型比较:DeText-LiBert 和 DeText-CNN。

1.Token embedding layer: CNN: 领英文本训练数据训练的Glove。 LiBert:用的是bert里的,但是也是基于领英数据训练的

2.Text embedding layer: CNN: window大小为3 (大窗口并没有有效收益),64个过滤层。

3.Interactions layer:

4.Feature processing layer: 传统特征做 归一化,和element-wise re-scaling

5.MLP: 隐藏层大小200

6.LTR: 设置为listwise,因为 listwise效果更好

训练:DeText-CNN 和 DeText-LiBert, 2 epochs, Adam 优化器,CNN lr:1e-3, BERT:1e-5, miniBatch: 256 queries 和相关 docs。

BERT pretrainig on LinkedIn Data: LiBert:6层 512隐藏层大小 8 heads. 34 millions 参数。 BERT-base 三分之一。领英数据集 685 million words vs 3.3 billion words WiKi。 领英三个垂域数据集定期更新(比如 daily), 保证没有leaking bias.

f05e2c76a55a6ee231b0bbe156430b1d.png

搜索排序结果

离线实验

总体性能,table5: D-MLP保留了 MLP层和LTR层作用于传统特征。MLP可以媲美base model。实验结果如预期。HELP CENTER垂域最接近自然语言,所以效果提升最好,PEOPLE SEARCH 搜索多实体少语法,效果提升最少。JOB SEARCH 正好介于俩者之间,效果提升也介于两者之间。

b8a6b9133b6a7662a5787e07888a55eb.png

LiBERT vs BERT-base,见table 6: 领域内数据预训练优于领域外数据与训练。而且 LiBERT的参数还是BERT参数的三分之一。

d428fffdad2c040d7a28984ec685c0af.png

CNN的局限,见table 7:CNN是性能和效果表现很好。传统特征已经很有效了,提升过滤层的数量没办法在提高效果增益,所以考虑时延和收益,64层最佳。

bf63554afe2eaf085486ff67b58d51ea.png

文本表征交互, 见table8: 简单concatenate表现一般,cosine 和 点积应该都要。

73b75dbd23e6cb42ac73a3f16a0e86ca.png

传统特征,见table9: 传统特征很重要,不能丢

91acaf07aebe5810f4ee1cde573ca097.png

多字段(multiple fields), 见table10: 多字段,多信息,多提升。

bb55f4d2ff36e1cbf3976303bb52d12c.png

在线实验

工业环境实验,模型压测 at least 20% traffic for more than 2 weeks. 所有模型在线上表现均显著优于 base model (XGBOOST). job search 要求数据更新是按小时的,LiBERT没有做job search 的实验。

总体效果,见table11:

e3595d1d316e0eed939b7442970386b0.png

时延, 见table12: offline P99 latency, 文章空间有限,所以只展示 people search. all -decoding:在线score所有召回的文档。 two pass rankingg: CNN只处理 MLP中的topk 文档。 pre-computing: doc 离线算。

2a1697510549704deacd1c994ec4cb92.png

DeText 扩展

可做 job recommendation, query auto completion(暂时不是很清楚这块如何做).

总结

深度NLP模型更适应与有自然语言基因的任务。

领域内预训练模型很有效。

传统特征很有效。

时延降低方法:1.BERT 需要离线算DOC,业界共识 2. two pass ranking 3. 领域内训练可以使用更少参数的BERT模型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值