人工智能-机器学习推荐系统修行之路

推荐算法笔记07_工程实现与评估【下】

2022-02-03  本文已影响0人  Nefelibatas

推荐模型上线部署

1. 预存推荐结果&Embedding结果

预先在离线环境下生成每个用户的推荐结果,然后将结果预存到Redis等线上数据库中。

进行线上服务时,直接从Redis中取推荐结果。


image-20220106113226312.png

改进:存储用户和物品的Embedding

2.自研模型线上服务平台

c++/ java/go等服务器作为线上服务器,上线dnn模型过程就是从参数服务器或内存数据库

中得到模型参数,然后用c++/ java/go在服务器中实现模型推断逻辑。

面对复杂的与业务紧密联系的特殊模型或算法,深度学习框架无法支持时通常需要线上单独开发

优点:定制需求

缺点:时间成本高

3.预训练Embedding&轻量级线上模型

通过离线训练复杂模型,生成Embedding存入内存数据库,线上使用LR等简单模型就行推断

例如:双塔模型

优点:借用TensorFlow等框架的灵活性和功能多样性,线上推断延时小

缺点:无法实现端到端,线上线下不一致

4.利用PMML转换并部署模型

PMML:预测模型标记语言,一种通用的XML表示的不同模型结构参数的标记语言

作为中间媒介连接离线训练平台和线上预测平台

![image-20220106113226312.png](https://img.haomeiwen.com/i27579716/9e76c952b86aced9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

JPMML序列化和解析PMML模型文件

5.TensorFlow Serving

同PMML,TensorFlow定义了自己的序列化格式(protobuf)

Saved_model模块

image-20220106120051863.png

Tensorflow_model_server部署模型

image-20220106120203517.png

客户端程序使用grpc调用接口

image-20220106120234247.png

自研线上服务平台与TensorFlow serving结合

image-20220106121709949.png image-20220106121805822.png

推荐评估指标计算

一个好的推荐系统应同时考虑三方利益,三方共赢

推荐系统参与者

image-20220106122048045.png

推荐效果评测

用户调查

离线实验指标和实际商业指标存在差距,比如:预估准确率和用户满意度

最佳办法是直接将算法上线,使用真实用户看商业指标,但是上线测试具有较高风险。所以上线之前一般需要做一次用户调查的测试(真实用户内测)

很多离线无法评测的与用户主观感受有关的指标都可以通过用户调查获得,比如推荐结果是否令用户惊喜,那我们最好直接询问用户。

缺点:

调查成本高,合适的测试用户难找

优点:

用户主观感受的指标

常用评估指标

用户满意度: 最重要指标,问卷涉及不同方面的用户感受。

常见统计指标:反馈按钮、点击率、停留时长、转化率。

image-20220106122636898.png

𝑅𝑀𝑆𝐸加大了预测不准的用户物品评分的惩罚

image-20220106124247421.png image-20220106124317049.png

AUC越接近1,排序越稳定,高相关性的物品排序越前列

GAUC:DIN网络中的指标,相比AUC更接近线上

PCOC:预估的准确性,预估点击率 / 真实点击率

覆盖率:描述推荐系统对长尾物品的发掘能力,推荐热门的覆盖率很低,能够推荐出来的物品占总物品集合的比例

内容提供商比较关心的指标:

覆盖率:

Converage = \frac{|U_{u∈UR(u)}|}{|I|}

熵:

H = -\sum_{i=1}^p(i)logp(i)\\

基尼指数:

G = -\frac{1}{n-1}\sum_{j=1}^n(2j-n-1)p(i_j)\\ i_j按照物品流行度p从小到大排序的物品列表中第j个物品

多样性:为了满足用户广泛兴趣,推荐列表需要能够覆盖用户不同的兴趣领域。

新颖性:给用户推荐他们之前没听说的物品

惊喜度:推荐结果和用户历史兴趣不相似,但却让用户觉得满意

信任度:用户对推荐结果的认可程度,只能问卷调查方式

image-20220106124807494.png

离线评估方法

离线与在线评估方法主要指标为模型预估准确性

模型预估准确性常用方法

image-20220106125133027.png

在线评估方法

A/B实验框架

image-20220106125842678.png

原则:正交(域与域)和互斥(层与层)

优点:公平获得不同算法实际在线时的性能指标

缺点:周期长,必须长期实验才能得到可靠结果

launch layer:所有流量,可多个发布层,每一层都要经过,独立参数,初始化

Domain: 流量的划分(互斥),包括多个layer

layer:包括多个实验,实验参数的划分;还可以包括domain( type=“domain”)

experiment: 实验

实验的随机性策略:

  1. 命中Domain通过condition来匹配

  2. 通过每一层layer,通过bucket_flow 和 condition来命中实验

  3. 不是每一层layer的实验都会被命中

一文搞懂AB Testing的分层分流 | 人人都是产品经理 (woshipm.com)

总结与回顾

image-20220106130346498.png
上一篇下一篇

猜你喜欢

热点阅读