您当前的位置:首页 > 电脑百科 > 程序开发 > 算法

阿里可解释性推荐算法应用

时间:2023-03-08 12:00:40  来源:  作者:DataFunTalk

一、推荐业务简介

首先介绍一下阿里健康的业务背景和对现状的分析。

1、推荐场景展示

可解释性推荐,举例而言,如下图中当当网“根据您浏览的商品推荐”(告诉用户推荐的理由)及淘宝网“1000+居家控收藏”、“2000+数码达人加购”均属于可解释性推荐,通过提供用户信息来说明推荐商品的原因。

 

图片

 

​左图中的可解释推荐,有一种较为简单的实现思路:推荐主要包含召回和排序两大主要模块,且召回往往涉及到多路召回,用户行为召回也是常见的一种召回方式。可对经过排序模块后的商品进行判定,若商品来源于用户行为召回池,则可在推荐的商品后添加相应的推荐注释。但该方法往往准确率精度不高,并未给用户提供较多有效信息。

相比而言,右图示例中可由对应的解释性文字提供给用户更多的信息,如产品类别信息等,但该方法往往需要较多的人工干预,在特征到文本输出环节进行人工处理。

而对于阿里健康,由于行业的特殊性,相比于其它场景,可能存在更多的限制。相关条例规定“三品一械”(药品、保健食品、特殊医药用途配方食品和医疗器械)广告中不允许出现“热销、排序、推荐”等文本信息。因此阿里健康需在遵从上述条例的前提下,结合阿里健康的业务对产品进行推荐。​

2、阿里健康的业务情况

阿里健康现有阿里健康自营店铺和阿里健康行业店铺两类店铺。其中自营店铺主要含有大药房、海外店和医药旗舰店,而阿里健康行业店铺主要涉及到各品类旗舰店及私营店铺。

就产品而言,阿里健康主要涵盖常规商品、OTC 商品、处方药三大类产品。常规商品,即定义为不是药品的商品,对于常规商品的推荐,可展示较多信息,如品类销量 top,超过 n+人收藏/购买等信息。而对于 OTC 及处方药这类药品商品的推荐,则受到相应条例的约束,需更加结合用户关注点进行推荐,如功能主治、用药周期、使用禁忌等信息。

上述提到的可用于药品推荐文字的信息主要有以下几大来源:

  • 商品评论(不含处方药)。
  • 商品详情页。
  • 说明书等信息。

二、基础数据准备

第二部分主要介绍商品的特征是如何提取及编码的

1、商品的特征抽取

下面以藿香正气水为例,展示如何从上述数据源进行关键特征的提取:

图片

  • 标题

商家为增大产品的召回,往往会在标题中加入较多的关键词,因此可通过商家自带的标题描述进行关键词的抽取。

  • 产品详情图

​可借用 OCR 技术基于商品的详情图中提取到商品的功能主治、核心卖点等更为全面的商品信息。

  • 用户评论数据

通过用户基于某功能情感的得分,可对商品的对应关键词进行加权减权操作。如对于“防中暑”的藿香正气水而言,可通过用户评论中“防中暑”情感的打分,对其相应的标签进行对应的权重处理。

  • 药品说明书

通过上述多种数据来源,可抽取出信息中的关键词并构建关键词库。由于抽取出来的关键词存在较多重复、同义的情况,需对同义词进行合并,并结合人工校验,生成标准词库。最终可形成单个商品-标签列表的关系,可用于后续编码及在模型中的使用。

2、特征编码

下面介绍如何对特征进行编码。特征编码主要基于 word2vec 的方式进行 word embedding。

真实的历史购买商品对数据可分为下述三大类:

(1)共同浏览商品对:用户在一段时间(30 min)内依次点击的用户定义为共同浏览数据。

(2)共同购买商品对:共同购买广义而言,可定义为同一主订单下子订单间互够为共同购买商品对;但考虑到实际用户下单习惯,定义一定时间(10 min)内同一用户的下单产品数据。

(3)浏览后购买商品对:同一用户在点击 A 后又购买了 B 产品,A 与 B 互为浏览后购买数据。

通过对历史数据进行分析,发现浏览后购买数据对商品间相似度较高:往往药品核心功能相似,仅存在轻微不同,可将其定义为相似产品对,即为正样本。

 

图片

 

​特征编码模型仍基于 word2vec 的思想:主要是希望具有相似的产品/标签间 embedding 更加接近。因此 word embedding 中正样本定义为上述提到的浏览后购买商品对;负样本则为共同浏览商品对和共同购买商品对的并集减去浏览后购买的商品对数据。

基于上述正负样本对的定义,利用 hinge loss,可以学习每个商品的 embedding 用于 i2i 召回阶段,也可同本场景中学习出标签/关键词的 embedding,用作后续模型的输入。​

上述方法有两个优点:

​(1)特征仅用到产品特性,能在一定程度上解决冷启动问题:对于新上架的商品,仍可通过其标题、商品详情图等信息获取相应标签。

(2)正、负样本的定义可用于不同的推荐场景:如若将正样本定义为共同购买产品对,则训练出来的商品 embedding 可用于“搭配购买推荐”场景。​

三、可解释推荐模型

1、可解释模型背景介绍

​业界现有较为成熟的可解释类型主要包含内置可解释性( model-intrinsic )和模型无关可解释性( model-agnostic )两大类。

其中内置可解释性模型,如常见的 XGBoost 等,但 XGBoost 虽为端到端模型,但其特征重要度是基于整体数据集而言,不符合“千人千面”的个性化推荐要求。

而模型无关可解释性主要是指重建逻辑模拟模型,并对模型进行解释,如 SHAP,其可对单个 case 进行分析,可判定出预测值与实际值不同的原因。但 SHAP 复杂度较高,较为耗时,经过性能改造后无法满足线上性能需求。

因此需构建一个端到端,且能对每个样本进行特征重要度输出的模型。​

图片

而高斯混合分布是多个高斯分布的组合,可输出某个分布的结果值及每个样本结果属于某个分布的概率。因此可进行类比,将归类后的特征理解为具有不同的分布的数据,分别对对应特征的预测结果  及该预测在实际结果中的重要程度  进行建模。

2、模型结构图

下图为整体的模型结构图,左图为选择模型,可用作特征重要度的展示,右图为特征对应的预测模型。

图片

具体而言,预测模型用于预测对应特征预测/点击的概率,而选择模型则用于说明哪些特征分布是比较重要、可用于作为解释性文字的展示。

3、预测模型

下图为预测模型的结果图,预测模型主要借鉴了 DeepFM 的思想,包含一个深度模型和交叉模型。深度模型主要用于学习特征的深层表达,而交叉模型则用于学习交叉特征。

图片

​深度模型中,先提前对特征进行分组(假设共有 N 组),如对价格、类别等相关的特征合并为价格、类别大类(图中 field 字段),并对每一组特征进行单独的模型训练,并得到基于该组特征的模型结果。

对模型提前进行合并分组,具有下述两个优点:

(1)通过 N 个模型的独立训练,可通过输入特征的增减改变模型的复杂度,从而影响线上性能。

(2)对特征的合并分组可明显减少特征量级,从而使人工将特征域转化为文字时更加方便。

值得一提的是,attention 层理论上也可用于特征重要度的分析,但在本模型中未引入attention 的原因主要如下:

(1)若将 attention layer 放在太靠前位置则无法体现出特征深层表达的结果;

(2)若将 attention layer 放在较为靠后的位置,则无法回溯、无法找出核心特征。

而对于预测模型:​

图片

​其交叉层并未沿用 FM 模型而是采用 CNN 代替 DeepFM 中 FM 结构。FM 模型学习特征两两交叉结果,并通过数学公式直接计算两两交叉结果,避免计算时的维度爆炸,但其导致无法回溯特征重要度,因此在交叉模型中引入 CNN 替代原有结构:采用 N 个特征进行相乘以实现特征交叉,再进行 CNN 的相应操作。这样使得特征值在输入后经过 pooling,concat 等操作后,仍可回溯。

除上述优点外,该方法还有一个优点:虽然现有版本仅是单个特征到单个描述文字的转化,但仍希望未来能实现多特征交互的转化。举例而言,如果某用户习惯购买100元低价产品,但若有原价50,000元商品打折至500出售,而用户购买了该商品,模型可能因此将其定义为高消费用户。但实际中,可能是因为高端品牌+高折扣双重因素导致的用户下单,因此需考虑组合逻辑。而对于 CNN-FM 模型而言,后期可直接利用 feature map 进行特征组合的输出。​

4、选择模型

 

图片

 

​选择模型由 MLP 和 sparseMax 组成。值得一提的是,选择模型中激活函数采用的是 sparsemax 而不是更为常见的的 softmax。图像右边依次是 sparsemax 的函数定义及 softmax 与 sparsemax 的函数对比图。

从右下的图中可看出,softmax 对重要度较低的输出节点仍会赋予较小值,在该场景下会导致特征维度爆炸,且容易造成重要特征与不重要特征间的输出没有区分度。而 sparseMax 可以将输出离散化,最终仅输出较为重要的特征。​

四、实验效果展示

1、实验数据说明

线上效果数据主要来自于大药房首页曝光-点击数据,为避免过拟合,也引入了部分其他场景曝光-点击数据,数据比例为 4:1。

2、离线指标

在离线场景下,该模型 AUC 为0.74。

3、线上指标

由于线上场景已有 CTR 模型,考虑新版算法除更换模型外,还会展示对应的解释性文字,未控制变量,因此本次实验并未直接采用 AB test。而是当且仅当线上 CTR 模型及新版算法预测值均高于特定阈值时,才会展示推荐理由的文本。上线后,新版算法 PCTR 提升 9.13%,UCTR 提升 3.4%。

五、问答环节

Q1:生成标准词库、同义词合并采用什么模型?效果如何?还需要多少人工校准工作?

A1:同义词合并时会利用模型学习文本标准,并提供出基础词库。但实际上人工校验的比重较大。因为健康/药品的业务场景,对算法准确度的要求较高,可能个别字的偏差会造成实际意义的较大偏离。整体而言人工校验的比重会比算法大。

Q2:LIME 模型可以用作推荐模型的解释吗?

A2:可以。还有很多其他模型可以做可解释推荐。因为分享者对 GMM 整体熟悉度高,所以选择上述模型。

Q3:选择模型和预测模型怎么联动的?

A3:假设有 N 组特征组,预测模型、选择模型均会会生成 1*N 维的向量,最终将预测模型和选择模型的结果进行相乘(multiple),实现联动。

Q4:可解释文本如何生成?

A4:目前还没有合适的机器学习模型进行文本生成,主要还是采用基于人工的方式。如价格是用户关心的核心特征,则会选择对历史数据进行分析,推荐出性价比较高的产品。但目前而言,主要还是人工操作。希望未来能有合适的模型进行文本生成,但考虑到业务场景的特殊性,模型生成的文本仍需要人工进行校验。

Q5:模型的筛选逻辑?

A5:对于 GMM 中子分布的选择,主要通过 GMM 中 Mk 对分布进行学习,并基于 Mk 的高低值进行筛选。

Q6:词库的标注有属性类型吗?

A6:对加属性词,如对产品描述中的疾病、功能、使用禁忌等进行达标。

Q7:可解释文本可否使用槽位填充的思想?即准备不同模板,根据词语的权重选择不同模板?

A7:可以,现在的实际用法即为槽位填充。

今天的分享就到这里,谢谢大家。



Tags:算法   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
诱导付费、自动扣费……微短剧被质疑借助算法精准“围猎”老年人
诱导付费、自动扣费、重复收费……聚焦身边的消费烦心事⑦丨一些微短剧被质疑借助算法精准“围猎”老年人中工网北京3月31日电(工人日报—中工网记者刘兵)...【详细内容】
2024-04-01  Search: 算法  点击:(6)  评论:(0)  加入收藏
分析网站SEO快速排名算法对网站具体的影响效果
亲爱的朋友们,今天我想和大家分享一个我们都关心的话题——网站SEO快速排名算法对网站我们身处一个信息爆炸的时代,如何在海量的信息中脱颖而出,成为了一个我们不得...【详细内容】
2024-03-28  Search: 算法  点击:(12)  评论:(0)  加入收藏
当prompt策略遇上分治算法,南加大、微软让大模型炼成「火眼金睛」
近年来,大语言模型(LLMs)由于其通用的问题处理能力而引起了大量的关注。现有研究表明,适当的提示设计(prompt enginerring),例如思维链(Chain-of-Thoughts),可以解锁 LLM 在不同领域的...【详细内容】
2024-03-12  Search: 算法  点击:(12)  评论:(0)  加入收藏
谷歌宣布更新搜索算法:打击AI生成内容,提高搜索结果质量
IT之家 3 月 6 日消息,谷歌于当地时间 5 日发文宣布,针对用户对搜索结果质量下降的反馈,将对算法进行调整,旨在打击 AI 生成的内容以及内容农场等垃圾信息,使用户能够看到更多“...【详细内容】
2024-03-06  Search: 算法  点击:(38)  评论:(0)  加入收藏
小红书、视频号、抖音流量算法解析,干货满满,值得一看!
咱们中国现在可不是一般的牛!网上的网友已经破了十个亿啦!到了这个互联网的新时代,谁有更多的人流量,谁就能赢得更多的掌声哦~抖音、小红书、、视频号,是很多品牌必争的流量洼地...【详细内容】
2024-02-23  Search: 算法  点击:(13)  评论:(0)  加入收藏
雪花算法详解与Java实现:分布式唯一ID生成原理
SnowFlake 算法,是 Twitter 开源的分布式 ID 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 ID。在分布式系统中的应用十分广泛,且 ID 引入了时间戳...【详细内容】
2024-02-03  Search: 算法  点击:(50)  评论:(0)  加入收藏
简易百科之什么是搜索引擎的PageRank算法?
简易百科之什么是搜索引擎的PageRank算法?在互联网时代,搜索引擎是我们获取信息的重要工具。而PageRank算法则是搜索引擎的核心技术之一,它决定了网页在搜索结果中的排名。那么...【详细内容】
2024-01-24  Search: 算法  点击:(50)  评论:(0)  加入收藏
PageRank算法揭秘:搜索引擎背后的魔法师的工作原理
PageRank(PR)算法是由谷歌创始人之一的拉里·佩奇LarryPage命名的一种衡量网站页面重要性的方法。根据谷歌的说法,PageRank通过计算页面链接的数量和质量来粗略估计分...【详细内容】
2024-01-23  Search: 算法  点击:(44)  评论:(0)  加入收藏
程序开发中常用的十种算法,你用过几种?
当编写程序时,了解和使用不同的算法对解决问题至关重要。以下是C#中常用的10种算法,每个算法都伴随着示例代码和详细说明。1. 冒泡排序 (Bubble Sort):冒泡排序是一种简单的比...【详细内容】
2024-01-17  Search: 算法  点击:(44)  评论:(0)  加入收藏
百度最新的搜索引擎算法是什么样的?
百度搜索引擎算法是百度用来决定网页排名的算法。它是百度搜索技术的核心,也是百度作为全球最大的中文搜索引擎的基石。随着互联网的发展和用户需求的不断变化,百度搜索引擎算...【详细内容】
2024-01-10  Search: 算法  点击:(86)  评论:(0)  加入收藏
▌简易百科推荐
小红书、视频号、抖音流量算法解析,干货满满,值得一看!
咱们中国现在可不是一般的牛!网上的网友已经破了十个亿啦!到了这个互联网的新时代,谁有更多的人流量,谁就能赢得更多的掌声哦~抖音、小红书、、视频号,是很多品牌必争的流量洼地...【详细内容】
2024-02-23  二手车小胖说    Tags:流量算法   点击:(13)  评论:(0)  加入收藏
雪花算法详解与Java实现:分布式唯一ID生成原理
SnowFlake 算法,是 Twitter 开源的分布式 ID 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 ID。在分布式系统中的应用十分广泛,且 ID 引入了时间戳...【详细内容】
2024-02-03   一安未来  微信公众号  Tags:雪花算法   点击:(50)  评论:(0)  加入收藏
程序开发中常用的十种算法,你用过几种?
当编写程序时,了解和使用不同的算法对解决问题至关重要。以下是C#中常用的10种算法,每个算法都伴随着示例代码和详细说明。1. 冒泡排序 (Bubble Sort):冒泡排序是一种简单的比...【详细内容】
2024-01-17  架构师老卢  今日头条  Tags:算法   点击:(44)  评论:(0)  加入收藏
百度推荐排序技术的思考与实践
本文将分享百度在推荐排序方面的思考与实践。在整个工业界的推广搜场景上,特征设计通常都是采用离散化的设计,需要保证两方面的效果,一方面是记忆,另一方面是泛化。特征都是通过...【详细内容】
2024-01-09  DataFunTalk  微信公众号  Tags:百度推荐   点击:(77)  评论:(0)  加入收藏
什么是布隆过滤器?如何实现布隆过滤器?
以下我们介绍了什么是布隆过滤器?它的使用场景和执行流程,以及在 Redis 中它的使用,那么问题来了,在日常开发中,也就是在 Java 开发中,我们又将如何操作布隆过滤器呢?布隆过滤器(Blo...【详细内容】
2024-01-05  Java中文社群  微信公众号  Tags:布隆过滤器   点击:(87)  评论:(0)  加入收藏
面向推荐系统的深度强化学习算法研究与应用
随着互联网的快速发展,推荐系统在各个领域中扮演着重要的角色。传统的推荐算法在面对大规模、复杂的数据时存在一定的局限性。为了解决这一问题,深度强化学习算法应运而生。本...【详细内容】
2024-01-04  数码小风向    Tags:算法   点击:(96)  评论:(0)  加入收藏
非负矩阵分解算法:从非负数据中提取主题、特征等信息
非负矩阵分解算法(Non-negativeMatrixFactorization,简称NMF)是一种常用的数据分析和特征提取方法,主要用于从非负数据中提取主题、特征等有意义的信息。本文将介绍非负矩阵分解...【详细内容】
2024-01-02  毛晓峰    Tags:算法   点击:(63)  评论:(0)  加入收藏
再谈前端算法,你这回明白了吗?
楔子 -- 青蛙跳台阶一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶,求该青蛙跳上一个n级的台阶总共需要多少种跳法。分析: 当n=1的时候,①只需要跳一次即可;只有一种跳法,即f(...【详细内容】
2023-12-28  前端爱好者  微信公众号  Tags:前端算法   点击:(108)  评论:(0)  加入收藏
三分钟学习二分查找
二分查找是一种在有序数组中查找元素的算法,通过不断将搜索区域分成两半来实现。你可能在日常生活中已经不知不觉地使用了大脑里的二分查找。最常见的例子是在字典中查找一个...【详细内容】
2023-12-22  小技术君  微信公众号  Tags:二分查找   点击:(78)  评论:(0)  加入收藏
强化学习算法在资源调度与优化中的应用
随着云计算和大数据技术的快速发展,资源调度与优化成为了现代计算系统中的重要问题。传统的资源调度算法往往基于静态规则或启发式方法,无法适应动态变化的环境和复杂的任务需...【详细内容】
2023-12-14  职场小达人欢晓    Tags:算法   点击:(165)  评论:(0)  加入收藏
站内最新
站内热门
站内头条