个性化推荐是指通过分析和挖掘用户行为,发现用户的个性化需求与兴趣特点,将用户可能感兴趣的信息或商品推荐给用户。个性化推荐系统不需要用户准确地描述需求场景,而是根据用户的历史行为进行建模,主动提供满足用户兴趣和需求的信息。CDP推荐系统架构如下图1所示。

在这里插入图片描述

CDP推荐系统依赖于CDP大数据基础平台,在基础层之上分别包括组件层、模型层、算法层、组合层和应用层。组合层实现了通用的推荐系统组件,主要包括信息抽取、向量模型、文本分类、标签提取、聚类分析、相似度计算、关系分析、偏好分析、特征组合、特征降维、主成分分析和标签扩展等。

推荐系统模型层针对用户和商品分别建模,包括对用户历史行为进行画像、对商品进行画像、对用户流失和趋势预测、对用户群关系挖掘以及商品关系挖掘和用户商品关系挖掘等。算法层则实现了主流的推荐算法,包括矩阵分解、协同过滤、深度模型、关联规则、统计推荐、点击反馈和基于内容的推荐方法。组合层对多种算法进行调优融合,包括的基础算法有XGBoost、LR、RBM、SVM、DBM、Wide&Deep、DeepFM、LSTM等算法。应用层算法则支持个性化推荐、相关推荐、热门推荐、复购推荐等业务场景。

推荐系统依赖的数据模型主要包括用户数据模型、商品数据模型、用户与用户关系数据模型和用户与商品事件数据模型。如下表所示。

在这里插入图片描述

Read more »

新品榜单本质是推荐系统中的物品冷启动问题,常见的冷启动类型有:

  • 物品冷启动:当新商品上线时,由于缺少该商品的浏览、使用和购买等数据,我们不知道什么用户会喜欢它。
  • 用户冷启动:当新用户注册进入系统,对新用户知之甚少,所以基本不知道用户的真实兴趣,从而很难为用户推荐他喜欢的物品。
  • 系统冷启动:新系统刚上线,商品和用户数据都没有。

物品冷启动常见的解决方案有Exploit & Explore算法和基于内容的物品推荐算法。

Exploit & Explore****算法

  • E&E算法不仅可以用于解决物品冷启动,也可以用户冷启动。该算法类似于强化学习的思想。Exploit 直译就是开采,利用已知的比较确定的用户的兴趣,然后推荐与之相关的内容,Explore 直译就是探索,除了推荐已知的用户感兴趣的内容,还需要不断探索用户其他兴趣。仅对着用户已知的兴趣使用,用户很快会腻,所以要不断探索用户新的兴趣才行。因为 “推荐系统不止眼前的 Exploit,还有远方的 Explore”

当你走进一家赌场,面对20个一模一样的老虎机,你并不知道它们吐钱的概率。假设你的成本是1000元,每摇一次的成本是2元,那么你在总共500次摇臂的机会下,该如何最大化你的收益呢?这就是多臂老虎机问题(Multi-armed bandit problem, K-armed bandit problem, MAB)。

一个简单的做法就是每台老虎机我们都摇10次,余下的300次都选择成功率最高的那台。但是显然我们耗费了200次机会来探索,而且我们仍然无法保证实验成功率最高的那台老虎机就是真实成功率最高的。大家也可以猜到,如果我们有足够多的探索机会,那么我们几乎可以选择出成功率最高的老虎机。很遗憾,我们没有足够的探索机会,对应到我们的推荐问题中就是任何的用户展示pv都是珍贵的,况且实际情况的“老虎机”远远不止20台,而且还存在不断新加入的情况,这就导致获取每个item收益率的成本太大

对应到推荐系统中,老虎机即对应我们的物品(item),每次摇臂即认为是该物品的一次展示,我们可以用是否点击来表示收益,点击(win)的收益就是1,没有点击(lose)的收益就是0

建模:我们选择所产生收益和期望的最佳选择所产生的收益之间的差值作为评估指标,定义为遗憾值 R (regret),多次选择的遗憾值之和定义为累计遗憾,即根据累计遗憾值的多少来衡量解决 E&E 问题的优劣性。

在这里插入图片描述

Read more »

目前AI实验室产品推荐系统仅面向好孩子电商场景,只是智慧零售场景中的一小部分。要打造行业解决方案,可以参考4paradigm产品行业解决方案:

1、智慧银行:助力银行实现数智化银行战略转型发展,拓展全业务领域、全渠道、全流程的AI规模化应用。

(1)精准营销。通过人工智能模型应用,在线上、线下各业务渠道对客户开展有针对性的精准化营销,提升营销成功率,减少对客户的打扰。

(2)实时反欺诈。依托于业内领先的机器学习、自然语言处理、图关系、知识图谱等技术构建AI智能反欺诈大脑,全面覆盖欺诈和信用风险业务场景。

(3)智能反洗钱。通过AI反洗钱技术大幅降低反洗钱合规领域的人力成本,识别可疑案件,辅助分析和报送,解决反洗钱机构“漏报”和“多报”问题。

(4)运营优化。结合机器学习、知识图谱、自然语言处理等技术,实现对公业务运营优化管理,服务营销商机挖掘、企业授信、风险传导预警等业务场景。

2、智能保险:实现从营销、投保、理赔到保全的全流程管理。

(1)保险客户在线化智能运营。帮助保险公司与经纪代理公司完成线上化营销转型。同时辅助代理人获取更个性化的产品推荐信息。

(2)智能核保/核赔。依托机器学习平台的强大算力,提供核保/核赔阶段风险分类模型,对高风险进件快速审核和分类。

(3)智能化健康管理方案。提供从医疗单证识别、慢性病知识库到健康管理产品的全流程健康管理方案。

(4)车险智能定损。利用 CV技术,完成车辆损坏部位自动识别与定位。并依靠机器学习模型完成定损与理赔风控管理。

3、智慧零售:帮助企业提升“人货场”全面智慧化管理水平,达到新零售降本增效的目的。

(1)精准营销。通过智慧零售AI技术的运用,精准的建立360度客户画像,对消费者的需求进行预测,并提供“千人千面”的个性化商品推荐,促进销售转化、提升新零售销售业绩。

(2)智能运营。从门店选址、智能选品、智能定价等各个运营环节的智慧化入手,助力企业提高运营效率,降低对高成本人才的依赖性,实现既标准又智能的智慧零售运营管理。

(3)智慧供应链。以消费者需求洞察为导向,结合AI技术预测销量,新零售实现灵活生产、分发、补货配货、降低库存损耗,降低企业成本。

(4)智能客服。高效、高质量地满足消费者商品咨询、自助购物等需求,大幅提高消费者满意度、提升店铺询单转化率、节省客服人力成本。

4、智慧医疗:实现医疗医药企业全链路的智能化转型。

(1)慢病风险预测。基于领先的AI技术和全球最大最新的代谢性疾病样本库,建立中国慢性病高精准筛查系列产品,可同时对心脑血管、心血管、脑卒中、糖尿病和高血压5种常见高发慢性疾病进行风险评估。

(2)疫情推演系统。利用强化学习、环境学习等决策类AI技术构建数据驱动的省市区县级新型冠状病毒传播数字孪生系统,推演不同管控方案对疫情趋势的影响,为制定科学有效的复工复产方案提供有效参考。

(3)新生儿体重预测。利用自动机器学习技术训练出大规模机器学习预测模型,用以辅助无ML基础的医师进行新生儿体重预测,对指导生产方式等方面提供重要参考。

(4)胰腺癌术后生存分析。利用自动GBDT算法调参等技术训练出大规模机器学习预测模型,预测精度提高12%,为手术决策提供有利参考。

5、智慧制造:智慧制造从实时生产的每个零件中学习,从产线运转的每台机器中洞察,人工智能帮助未来工厂从数字化到智能化。

Read more »

简介

ResNet残差网络主要是通过残差块组成的,在提出残差网络之前,网络结构无法很深,在VGG中,卷积网络达到了19层,在GoogLeNet中,网络达到了22层。随着网络层数的增加,网络发生了退化(degradation)的现象:随着网络层数的增多,训练集loss逐渐下降,然后趋于饱和,当你再增加网络深度的话,训练集loss反而会增大。而引入残差块后,网络可以达到很深,网络的效果也随之变好。

目的

ResNet网络是为了解决深度网络中的退化问题,即网络层数越深时,在数据集上表现的性能却越差,如下图所示是论文中给出的深度网络退化现象。

在这里插入图片描述

原理

与普通网络的串行结构相比,残差单元增加了跳跃映射,将输入与输出直接进行相加,补充卷积过程中损失的特征信息,这点与U-net的跳跃连接结构有点类似,不过Res中的跳跃连接做的是Add操作,而U-net的跳跃连接做的是Concatenate操作,还是有本质的不同

在这里插入图片描述

残差块由多个级联的卷积层和一个shortcut connections组成,将二者的输出值累加后,通过ReLU激活层得到残差块的输出。多个残差块可以串联起来,从而实现更深的网络。

Read more »

简介

H2O是开源的,分布式的,基于内存的,可扩展的机器学习和预测分析框架,适合在企业环境中构建大规模机器学习模型。H2O核心代码使用Java编写,数据和模型通过分布式 Key/Value 存储在各个集群节点的内存中。H2O的算法使用Map/Reduce框架实现,并使用了Java Fork/Join框架来实现多线程。H2O目前支持的机器学习算法有DRF,GBM,GLM,GLRM,Kmeans,NB,PCA,Deep Learning,所以目前来看支持的模型还不是很多。

架构图最上层表示与H2O通信的Rest API客户端,它们之间通过Socket连接。最下层表示可以运行JVM 进程的基础架构。中间灰色部分是用户的一些算法。H2O架构图:

在这里插入图片描述

特点

1、支持R和Python

2、支持最广泛使用的统计和机器学习的算法,包括DRF,GBM,XGBoost,DL等

3、具有模型解释能力

4、支持回归和分类任务,AutoML的功能只支持有监督任务

5、分布式内存处理,内存处理,节点和集群之间的快速序列化,以支持海量数据集

6、自动化

    • 建立Web的交互界面,允许用户直接交互进行机器学习操作
    • 自动进行特征工程,模型验证、调整、选择和部署
    • 自动可视化

建立H2O集群

从命令行启动时,可以包括有关说明,例如要启动多少个节点,为每个节点分配多少内存,为群集中的节点分配名称等等。

1
java <JVM选项> -jar h2o.jar <h2o选项>

-ip <IPnodeAddress> :为机器指定IP,而不是默认的localhost

Read more »

背景

文本摘要旨在根据输入文档生成准确而简洁的摘要。生成摘要并不是简单地复制输入里的片段,而是可能产生新的单词或涵盖主要信息,并使输出保持语言流畅。

Transformer是谷歌大脑的研究人员开发的一种神经网络架构。和其他深度神经网络一样,它们包含的功能(神经元)被布置在相互连接的层中,这些层传递输入数据的信号,并缓慢地调整每个连接的突触强度(权重)——这就是所有AI模型提取特征和学习做出预测的方式。但Transformer的独特指出在于,每个输出元素都连接到每个输入元素,并动态地计算它们之间的权重

原理

PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization本文提出了一种新的自监督预训练目标:GSG(Gap Sentences Generation),以适配 Transformer-based 的 encoder-decoder 模型在海量文本语料上预训练。在 PEGASUS 中,将输入文档中的“重要句子”删除或者遮蔽,再利用剩余的句子在输出中生成这些被删除或遮蔽的句子。从输入和输出看,该目标与文本摘要类似。这种自监督的优点是,可以创建与文档一样多的示例,而不需要任何人工注释

在这里插入图片描述
PEGASUS是一个标准的Transformer,既有encoder也有decoder。预训练目标包括GSG和MLM。原始的3个句子,其中一个句子整句被[MASK1]遮蔽,即作为目标生成文本;另外两个句子用[MASK2]随机遮蔽部分token后作为输入。

实验发现,选择重要的句子来遮蔽效果最好,让自监督示例的输出结果更像摘要。怎么选择重要的句子?重要性句子的选择作者试验了以下三种方式:

  • Random:均匀的随机选择m个句子
  • Lead:选择前m个句子
  • Principal:由于本身不存在针对于句子重要性的标签,因此这里使用ROUGE-F1分数做为代理表示,分数越高的句子表示重要性越高。

在这里插入图片描述

以C4语料为例,绿色、红色、蓝色句子分别对应随机选择、选取前几个和Principal句子选择策略。

Read more »

技术实力:

推荐系统是帮助人们解决信息获取问题的有效工具,对企业而言,用户数和商品量通常都是巨大的,用户在商品上的交互行为也是海量的,大量的数据收集和处理涉及到大数据相关技术。同时,要将推荐系统落地到业务上需要大量的研发,主要涉及到日志埋点、日志收集、ETL、分布式计算、特征工程、推荐算法建模、数据存储、提供接口服务、UI 展示与交互、推荐效果评估等各个方面,推荐系统是一项庞大复杂的体系工程。除此之外,推荐系统的效果还依赖大量的机器学习技术,针对不同的业务场景,利用机器学习算法构建模型, 进而提升推荐的精准度、惊喜度、覆盖率等,推荐算法模块是整个推荐系统的核心。

cpd推荐系统价值主要体现以下几个方面:

1、个性化推荐。以用户行为数据为基础,采用AI深度预测模型,保证“千人千面”的用户体验。主要用户特征包括用户的浏览、购买、收藏、加购、评价、分享等,个性化推荐能够帮助用户更好地选购商品;

2、精准的用户画像。整合全渠道数据和标签,分析用户的活动偏好、产品偏好、高中低活跃度、高中低价值度等。可以识别用户转化的最佳时机和场合,同时还可以分析出用户流失的原因并提供对应的召回方案;

3、用户分群和精准营销。通过用户分群可以了解用户构成情况,并为企业后续的营销方案规划提供支持。通过AI模型预测用户的转化概率,实现用户精细化运营,提升整体用户的活跃度、留存率、转化率等核心指标;

4、发掘用户的潜在消费需求。通过推荐系统,能够准确识别用户的潜在消费需求,提供定制化和针对性信息推送,能够有效提升转化率。比如,对用户复购商品周期的预测,可以及时发现用户潜在的复购需求;

5、专业的AB测试,科学决策流量分配,实现精细化投放;

6、可视化平台支持自主对商品设置加权、封禁、必推、过滤等运营干预能力,推荐结果更符合业务实际需求;

7、算法可精准迭代。基于效果分析,可灵活调整特征集, 迭代模型参数,快速调优整体方案,不断满足业务变化,追求更高收益;

Read more »

简介

TensorRT是可以在NVIDIA各种GPU硬件平台下运行的一个C++推理框架。我们利用Pytorch、TF或者其他框架训练好的模型,可以转化为TensorRT的格式,然后利用TensorRT推理引擎去运行我们这个模型,从而提升这个模型在英伟达GPU上运行的速度。速度提升的比例是比较可观的。

一般的深度学习项目,训练时为了加快速度,会使用多 GPU 分布式训练。但在部署推理时,为了降低成本,往往使用单个 GPU 机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如 caffe,TensorFlow 等。由于训练的网络模型可能会很大(比如,inception,resnet 等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以为了提高部署推理的速度,出现了很多轻量级神经网络,比如 squeezenet,mobilenet,shufflenet 等。基本做法都是基于现有的经典模型提出一种新的模型结构,然后用这些改造过的模型重新训练,再重新部署。

TensorRT 是对训练好的模型进行优化。 TensorRT 就只是推理优化器。当你的网络训练完之后,可以将训练模型文件直接丢进 TensorRT中,而不再需要依赖深度学习框架(Caffe,TensorFlow 等),如下:

在这里插入图片描述

TensorRT 是一个只有前向传播的深度学习框架,这个框架可以将 Caffe,TensorFlow 的网络模型解析,然后与 TensorRT 中对应的层进行一一映射,把其他框架的模型统一全部转换到 TensorRT 中,然后在 TensorRT 中可以针对 NVIDIA 自家 GPU 实施优化策略,并进行部署加速。

在这里插入图片描述

安装

TensorRT 的安装方式很简单,只需要注意一些环境的依赖关系就可以。安装时只需要把压缩文件解压,相应的库文件拷贝到系统路径下即可

1
2
3
4
tar xzvf TensorRT-5.0.2.6.Ubuntu-16.04.4.x86_64-gnu.cuda-9.0.cudnn7.3.tar

#解压得到TensorRT-5.0.2.6的文件夹,将里边的lib绝对路径添加到环境变量中
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lthpc/tensorrt_tar/TensorRT-5.0.2.6/lib
Read more »

背景

一般要部署模型到一个指定设备上,会使用硬件厂商自己推出的一些前向推理框架,例如在Intel的CPU/GPU上就使用OpenVINO,在Arm的CPU/GPU上使用NCNN/MNN等,在Nvidia GPU上使用TensorRT。

比如一个开发者训练了一个模型需要在多个不同类型的设备上进行部署,那么开发者需要将训练的模型分别转换到特定框架可以读取的格式,并且还要考虑各个推理框架OP实现是否完全对齐的问题,然后在不同平台部署时还容易出现的问题是开发者训练的模型在一个硬件上可以高效推理,部署到另外一个硬件上性能骤降

为了解决上面的问题,科学家为编译器抽象出了编译器前端,编译器中端,编译器后端等概念,并引入IR (Intermediate Representation)的概率。解释如下:

编译器前端:接收C/C++/Java等不同语言,进行代码生成,吐出IR

编译器中端:接收IR,进行不同编译器后端可以共享的优化,如常量替换,死代码消除,循环优化等,吐出优化后的IR

编译器后端:接收优化后的IR,进行不同硬件的平台相关优化与硬件指令生成,吐出目标文件

受到编译器解决方法的启发,深度学习编译器被提出,我们可以将各个训练框架训练出来的模型看作各种编程语言,然后将这些模型传入深度学习编译器之后吐出IR,由于深度学习的IR其实就是计算图,所以可以直接叫作Graph IR。针对这些Graph IR可以做一些计算图优化再吐出IR分发给各种硬件使用。这样,深度学习编译器的过程就和传统的编译器类似,可以解决上面提到的很多繁琐的问题。

架构

TVM架构的核心部分就是NNVM编译器,最新的TVM已经将NNVM升级为了Realy,所以后面提到的Relay也可以看作是NNVM。NNVM编译器支持直接接收深度学习框架的模型,如TensorFlow/Pytorch/Caffe/MxNet等,同时也支持一些模型的中间格式如ONNX、CoreML。这些模型被NNVM直接编译成Graph IR,然后这些Graph IR被再次优化,吐出优化后的Graph IR,最后对于不同的后端这些Graph IR都会被编译为特定后端可以识别的机器码完成模型推理。比如对于CPU,NNVM就吐出LLVM可以识别的IR,再通过LLVM编译器编译为机器码到CPU上执行。

在这里插入图片描述

安装

Read more »

线性回归

在这里插入图片描述

GLM

广义线性模型基于线性回归模型延展而来,衍生模型很多,如逻辑回归LR。线性“回归”一般是用于预测样本的值,这个值通常是连续的。受限于连续性,导致分类效果不理想。

为了保留线性回归“简单效果有不错”的特点,又想让它能够进行分类,因此需要对预测值再做一次处理。这个多出来的处理过程,就是GLM所做的最主要的事。而处理过程的这个函数,我们把它叫做连接函数

在这里插入图片描述

当一个处理样本的回归模型是线性模型,且连接函数满足一定特性时,我们把模型叫做广义线性模型。用广义模型进行分类、回归都可以,线性回归是广义线性模型的子类,也就是连接函数不做任何处理。

连接函数要求 必须是连续可微,并且可逆的,在高斯线性模型中,链接函数是恒等函数 。对于泊松分布,标准的链接函数选择是对数函数。链接函数本质上,就是把实数域范围的 n转换到特定分布合法的u值空间上。比如正态分布、泊松分布、二项分布、负二项分布、伽玛分布、逆高斯分布。形式上仍是线性回归,实质上已是在求取输入空间到输出空间的非线性函数映射

在这里插入图片描述

LR

Read more »