应用实践 | 电商应用——一种基于强化学习的特定规则学习模型

本文转载自公众号:浙大KG。

作者:汪寒,浙江大学硕士,主要研究方向为知识图谱和自然语言处理。


应用场景

在电商实际应用中,每个商品都会被挂载到若干个场景,以图结构中的节点形式存在。商品由结构化信息表示,以键值对(Property:Value)形式(后称PV)存在。场景(LifeStyle)的价值则在于打通商品实体之间的联通,提供跨域的实体搭配,因此新的商品必须要通过规则库中的规则挂载到特定的场景才能进入电商的运营体系。商品场景的样例如下图所示。

图1 商品场景样例

规则的作用则包括挂载新的商品以及为已有的商品新增挂载场景,目前规则库中的规则主要由人工构造,通过审核之后才能进入规则库,商品场景挂载的规则特点是Body部分只由PV组成,Head部分只包含单个场景。规则的形式如下:

人工构造规则的方法效率低,人工成本高,因此商品场景挂载规则学习任务就是利用算法从现有的商品场景数据中生成规则,提高规则生成的效率,降低人工成本。现有规则库中的规则样例如下表所示。

Motivation

目前业界常用的规则学习baseline是关联规则挖掘,用于发现数据集中项与项之间的关系,通过挖掘数据集中存在的频繁项集来生成规则。这种方法适合数据项之间没有差异的数据集,比如著名的购物篮分析应用中,不同的商品都可以看作是同种item。而在实际应用中常常需要挖掘不同类型数据项之间的规则,数据集中的元素项之间存在差异,不能简单地将所有数据项都看作同种item,分析商品场景挂载数据可以看出,商品的 PV 对与场景之间存在差异,若将其视为同种数据项,用通用的规则挖掘算法学习,就舍弃了商品 PV 对与场景之间的挂载关系信息以及差异。

且关联规则挖掘是通用的规则生成算法,在频繁项挖掘阶段需要耗费大量时间挖掘无关的频繁项,无法针对特定的规则进行优化,所以关联规则挖掘算法无论是效率还是产出结果的指标都偏低。因此,针对商品场景挂载数据生成规则,需要用到task-specific 算法,算法需要考虑到商品 PV 对与场景之间的差异以及挂载关系信息,且生成的规则应满足 Body 部分为 PV 对,Head 部分为单个场景的形式。

算法描述

首先分析数据,商品由20-50个PV对组成,每个商品会挂载到若干个场景,而输出的规则的body部分为1-5个PV对,head部分为单个场景。因此可以认为,对一个商品的PV对赋予不同的权重就可以让这个商品挂载到不同的场景,输出那些权重超过阈值的PV对作为body部分就可以得到一条规则,从而就可以得到一个算法,就是用一个神经网络来对PV对赋予权重,在训练完毕后将高权重的PV输出作为规则的body部分。

因此,首先要解决的问题是如何设计一个神经网络模型来为PV对赋予权重,PV对的权重是离散值0或1,0表示舍弃当前PV对,1表示选择当前PV对作为body部分。把商品包含的PV对看作序列,赋予权重的过程就是一个经典的序列决策过程,而这个序列决策过程是没有标注数据的,所以无法用监督学习训练,但整个序列是有标注的,即权重赋予后的PV对序列能否挂载到当前场景。因此,可以把整个问题建模成一个强化学习问题,训练一个智能体来完成权重赋予的过程。

然后,要解决的第二个问题是如何为这个智能体返回reward,即如何判断智能体输出的PV对子序列可以让商品挂载到特定场景,且这个子序列的长度不超过5。判断挂载是否正确可以看作是一个分类问题,预训练一个FastText网络作为分类器,输入为PV对序列,输出为PV对序列所对应的类(即场景),来判断当前PV子序列能否分类到对应场景。同时,在reward function中加入子序列长度项,让智能体尽可能选择较短的子序列。


模型

模型包括两个部分,一个用于对PV输出action的智能体Agent和一个用于返回reward的FastText模型,结构图如图2所示。Agent由三个模块组成:Input Module,Memory Module,Action Module。Input Module包括Property embedding,Value embedding以及LifeStyle Embedding,Property embedding和Value embedding拼接起来当作当前PV的embedding,作为Memory Module的输入;Memory Module则由一个双向LSTM组成,利用LSTM网络的记忆功能,让每个时间步输出的隐状态都能包含上下文的信息;Action Module则包含一个单向LSTM和一个全连接层,网络输入包含Memory Module在当前时间步的输出,Agent在上一次输出的action以及当前商品所对应的LifeStyle embedding。

在Agent对所有PV做完决策之后,将action输出为1的PV作为FastText的输入,FastText会输出当前输入的分类结果(也就是场景挂载),若分类正确则返回一个reward给Agent更新参数。


图2 模型结构图


模型训练

首先需要预训练一个FastText模型来为Agent返回reward。所以要先把商品挂载场景构造成一个分类任务,而在前面已经提到,一个商品可能会挂载到多个场景,对应到文本分类任务,就是一个样本会有多个标签,所以这里就把挂载数据构造成了一个多标签分类任务,用的目标函数也是文本分类任务里常使用的交叉熵损失函数,具体来说,单个样本的损失函数为:

这里n表示标签的个数,y_i 表示样本是否属于当前类,p_i表示当前label对应的概率值,由sigmoid计算后得到。

而智能体的参数更新方式是policy gradient,在监督学习中,本文通常用交叉熵作为简化版的KL散度来衡量两个分布的差异,单个样本的交叉熵损失函数如下:

这里t表示样本的长度,y_i表示当前label,p_i表示当前label对应的概率值,由softmax计算后得到。

而强化学习则是没有label的,用当前action所得到的reward来代替,单个样本的损失函数如下

这里a_i表示当前时间步Agent输出的action,这个时候损失函数的作用就不是衡量两个分布的差异,而是最大化得到正reward的动作的概率。

 

实验

实验所用商品挂载数据集来自某电商网站的一个类目,在实验开始前先对实验数据做了一些必要的预处理实验数据的预处理包括:

1. 对标题进行分词,去掉停用词,无关的标点符号以及单个字。

2. 对包含多项的属性值进行切分,切分成k个部分就形成k个PV。

3. 去掉了一些没有信息量的属性项及其对应的属性值。

4. 增加了属性项:拥有属性,对应属性值为该商品拥有的属性项。

预处理结束后的数据集信息如表1所示

表1 数据集统计信息

在规则输出阶段,智能体不再是从动作空间中按概率采样一个动作,而是直接选择概率最大的动作,得到所有预测正确的PV序列后,计算每条raw规则的HC和Conf,将满足要求的作为备选规则。最后生成的备选规则的body平均长度仅为2.12,这十分符合规则的要求,模型输出的规则样例如表2所示

表2 输出规则样例

从样例中可以看出,智能体确实可以找到一到两个与某场景关联度极高的PV,这证明了reward function中对输出PV序列长度的惩罚的有效性,且规则从直观上看就很具有可行性,说明本模型确实找到了商品PV与场景之间存在的模式,并以规则的形式输出。最终模型生成了845条备选规则。

 


 

OpenKG

开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20W奖金+实习机会:阿里巴巴达摩院最新时间序列赛事来了!

Datawhale赛事 赛事:2021“AI Earth”人工智能挑战赛2021“AI Earth”人工智能创新挑战赛,由阿里巴巴达摩院联合南京信息工程大学、国家气候中心、国家海洋环境预报中心、安徽省气象局共同创办。大赛以“AI助力精准气象和海洋预测”为主题,聚…

关于python中带下划线的变量和函数 的意义,class类带一个下划线和带两个下划线的定义

总结:变量:1. 前带_的变量: 标明是一个私有变量, 只用于标明, 外部类还是可以访问到这个变量2. 前带两个_ ,后带两个_ 的变量: 标明是内置变量,3. 大写加下划线的变量: 标明是 不会发生改变的全局变量函数:1. 前带_的变量: 标明是一个私有函数, 只用于标明,2. 前带两个_…

论文浅尝 | ICLR2020 - 基于组合的多关系图卷积网络

论文笔记整理:吴锐,东南大学计算机学院硕士。来源:ICLR 2020链接:https://arxiv.org/pdf/1911.03082.pdf动机目前针对于GCN的研究大多数都关注在学习无向图的结点表示上,然而我们在研究中更常见的通常是多关系图&#…

Hades:移动端静态分析框架

只有通过别人的眼睛,才能真正地了解自己 ——《云图》 背景 作为全球最大的互联网 生活服务平台,美团点评近年来在业务上取得了飞速的发展。为支持业务的快速发展,移动研发团队规模也逐渐从零星的小作坊式运营,演变为千人级研发军…

GitHub超级火!任意爬取,超全开源爬虫工具箱

文 | 程序员GitHub最近国内一位开发者在 GitHub 上开源了个集众多数据源于一身的爬虫工具箱——InfoSpider,一不小心就火了!!!有多火呢?开源没几天就登上GitHub周榜第四,标星1.3K,累计分支 172 …

LeetCode 413. 等差数列划分(DP)

1. 题目 一个数列的等差数列子数组有多少个。 A [1, 2, 3, 4]返回: 3, A 中有三个子等差数组: [1, 2, 3], [2, 3, 4] 以及自身 [1, 2, 3, 4]。2. 解题 状态公式 if(A[i]−A[i−1]A[i−1]−A[i−2]),thendp[i]dp[i−1]1,i>2if (A[i]-A[i-1] A[i-1]-A[i-2]) , \quad then \…

技术动态 | 针对复杂问题的知识图谱问答最新进展

本文转载自公众号:PaperWeekly。作者:付彬、唐呈光、李杨、余海洋、孙健单位:阿里巴巴达摩院小蜜Conversational AI团队背景介绍知识图谱问答(KBQA)利用图谱丰富的语义关联信息,能够深入理解用户问题并给出…

百度提出新冠高风险小区预警算法,AAAI21收录!

编:夕小瑶几个月前,小屋推送了一期上帝视角看新型冠状病毒(COVID-19)对公众出行影响的顶会论文解读——《这篇顶会paper,讲述了疫情期间憋疯的你和我》,这篇有趣的paper来自百度地图团队,发表在…

搜狗地图2016-Android-社招笔试题(包含Java基础部分)

下面是搜狗地图的社招笔试题,由于条件有限,全是手机拍的,请将就着看。另请忽略上面的答案,不一定准确。 大伙可在下方讨论答案,上方答案仅供参考,不一定准确。

机器学习常用的算法整理:线性回归、逻辑回归、贝叶斯分类、支持向量机、K-means聚类、决策树、随机森林以及常用的应用场景整理

什么是机器学习? 机器学习是计算机利用已有的数据(经验)得出了某种模型,并利用这些模型预测未来的一种方法。这个过程其实与人的学习过程极为相似,只不过机器是一个可以进行大维度数据分析而且可以不知疲倦地学习的“怪兽”而已。 具体的机器…

新一代数据库TiDB在美团的实践

1. 背景和现状 近几年,基于MySQL构建的传统关系型数据库服务,已经很难支撑美团业务的爆发式增长,这就促使我们去探索更合理的数据存储方案和实践新的运维方式。而随着分布式数据库大放异彩,美团DBA团队联合基础架构存储团队&#…

我在哥大读博的五年

文 | Mike Shou知乎(ID:Showthem)本文已获作者授权,禁止二次转载0. 写在前面「 开始写这边总结的时候是三月,纽约成了疫情震中,看着新闻报道里的中央公园,中国城,第五大道,往事浮现&…

论文浅尝 | AAAI2020 - 多分量图卷积协同过滤方法

论文笔记整理:郝凯龙,南京大学硕士。来源:AAAI2020链接:https://arxiv.org/pdf/1911.10699.pdf动机推荐系统实际上是在做用户-商品二部图上的链路预测,仅仅用用户-商品之间的单一购买关系无法精确的进行描述为什么购买…

from torchcrf import CRF

报错CRF函数有问题,多了一个参数。通过源代码查找,发现两个torchcrf。通过pip list安装的时候是大写的TorchCRF,所以导入包的时候肯定也写大写的,没想到报错,后来改成全小写的就对了。

LeetCode 312. 戳气球(DP,难)

1. 题目 有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。 现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得 nums[left]∗nums[i]∗nums[right]nums[left] * nums[i] * nums[ri…

美团即时物流的分布式系统架构设计

本文根据美团资深技术专家宋斌在ArchSummit架构师峰会上的演讲整理而成。 背景 美团外卖已经发展了五年,即时物流探索也经历了3年多的时间,业务从零孵化到初具规模,在整个过程中积累了一些分布式高并发系统的建设经验。最主要的收获包括两点&…

论文浅尝 | AAAI2020 - 基于规则的知识图谱组合表征学习

论文笔记整理:康矫健,浙江大学计算机科学与技术系,硕士研究生。论文链接:https://arxiv.org/pdf/1911.08935.pdf发表会议:AAAI 2020Motivation现有的KG Embedding方法大部分仅关注每个三元组的结构化信息有部分的工作把…

26岁!年入100万,两周把 Github 项目推向全球榜首,他是怎么做的?

今天要为大家介绍一位很厉害的朋友 —— 小浩。九零后,20 年年收入近百万。 大家不需要质疑他的收入,在他没做公众号的时候,我知道收入已有五六十。而公众号,只是疫情期间他因无聊而产出的结果,那结果怎么样呢&#xf…

美团餐饮娱乐知识图谱——美团大脑揭秘

前言 “ I’m sorry. I can’t do that, Dave.” 这是经典科幻电影《2001: A Space Odyssey》里HAL 9000机器人说的一句话,浓缩了人类对终极人工智能的憧憬。让机器学会说这样简单一句话,需要机器具备情感认知、自我认识以及对世界的认识,来辅…

Android官方开发文档Training系列课程中文版:OpenGL绘图之图形定义

原文地址:http://android.xsoftlab.net/training/graphics/opengl/shapes.html 使用OpenGL绘制图形的第一步就是要定义一个图形。如果不清楚OpenGL如何绘制自定义图形的相关基础知识时,那么使用OpenGL一定要仔细。 这节课将会简单讲述OpenGl ES的坐标系…