分享嘉宾:周建斌 58同城 算法高级架构师

编辑整理:吴雪松 小米

出品平台:DataFunTalk

导读:58部落是面向58同城同镇用户的内容社区,主要产品形态为PGC、UGC的信息流,样式丰富。基于业务和背景,如何提升定义信息流价值内容占比,提升点击率、留存率、互动率等多个目标?今天就和大家分享基于58部落业务目标,特色广义多目标算法的探索过程与实践。主要内容包括:① 58部落业务和背景;② 58部落的业务目标演化;③ 58部落特色广义多目标算法探索过程与实践。

01

58部落业务和背景

首先和大家分享下58部落的业务和背景。

58部落是面向58同城同镇用户的内容社区,它的主要产品形态是PGC、UGC的信息流,其中物料主要有图文、视频、语音等,主要的展现形式则为图中的信息流,可以看到样式是比较丰富的。

58部落的业务使命是全链路打通58所有服务场景,连接用户的多维度需求,从使命也就自然而然的可以联想到部落的定位:部落和58的房产、招聘、汽车、本地生活是共存的关系,但是58部落也有其不同点,和几大业务相互关联,并在其中起到了桥梁的作用。

通过合作,为提升58APP的用户体验而努力。

02

58部落业务目标演化

一开始的时候,58部落的业务目标比较简单,也比较明确,就是要提升信息流的点击率,通常的优化点为单目标的排序。

后来发现,作为一个内容社区来说,不光要考虑点击率,用户的互动、点赞、评论、回复等行为的影响因素会越来越高,产品也会更加关注互动率、点赞率这些指标。此时的目标特点是,虽然有多个目标,但是各个目标的Label是明确的,通常的优化点是采用多目标的排序模型,比如共享底层的ESSM或者基于多专家模型的MMOE等。

而58部落最先要关注的目标是:

  • 价值内容占比,产品希望占比提升的同时,点击率也要保持稳定;

  • 点击率互动率稳定的同时,保证用户留存率的提升。

这两个目标的特点在于,价值内容占比是一个事后数据统计的数据,很难明确找到目标对应的label;而用户的留存率更是一个长期的目标,很难通过一次点击或者互动去界定。

对于以上这两个目标在58部落的实现,就是我今天想要跟大家探索的主要内容。

03

58部落特色广义多目标算法探索过程与实践

什么是价值内容?在这里定义为和58业务关系紧密的内容,包括标签体系也是按照这样进行划分的。如房、车、招聘、本地生活,定义为价值内容,都是和58的主业务线关系非常紧密的,所以产品把它定义为我们的价值内容。除此,价值内容之外还有如娱乐、心情、社会等其它内容,虽然在58部落上也有很高的用户接收度,但没有把这些划为价值内容。

为什么定这个作为目标呢,这是58部落的定位决定的,就是要作为58各个业务的桥梁,要和各个业务线进行合作,所以为各个业务导流直接决定个对于58大APP的贡献,价值占比这个目标也就应运而生了。

提升价值内容占比,通常有什么方式?

最简单的方式就是通过规则,强行提高价值内容的占比,但是缺点就是对点击率的影响较大。而我们认为理想的切入点是改进排序模型,把价值内容自然而然的排上来。思考点就是,利用跨域推荐的思想,把用户在58其他业务的行为作为目标域行为进行引入,相当于是增加了58其它业务和58部落的内在联系,基于这种假设,希望把价值内容排序上来。

具体做法:

首先介绍下58部落的主排序模型:是DeepFM+Din的融合模型,那如何在此基础上进行优化,快速引入其它业务的用户行为呢?

第一版朴素的想法是,借助Din序列进行特征工程的特征简化,减少了一定的工作量。然后将Embedding中的Concat改为Pooling,方便进行异构实体的Embedding对齐。

第一版的朴素模型也暴露了不少问题,训练慢,也没有什么提升,虽然加了其它业务线的一些特征,但是训练之后,上层的特征权重是非常小的,也就是说整体上基本是不起作用的。针对于这个问题,我们思考了几个可能的原因:

新添加业务行为序列Item,和候选的Item差异较大。因为内容是完全不同的,候选的物品都是部落内容,业务线的点击序列却是各业务线帖子的访问序列。

业务线行为序列的Item非常的稀疏,统计过,20天有大约1亿,但是大部分Id就只有个位数的访问。

其它业务数据量的总和是部落数据量的将近10倍,如果只用部落的一些点击、未点击等数据,数据量是不太够的。

所以,我们的优化方向是尝试找到一个可以跨多个域的Embedding预训练方式,对DIN进行Embedding的初始化,学习到其它业务的一个向量关系。

为了训练学习到跨域的知识,我们调研了很多方式,从阿里的EGES模型获得了一些启发。EGES模型比较适合跨多域的预训练方式,模型的底层是非常常见的的embedding的表结构,通过加上权重的Pooling,最后得到Embedding的表达,使用到了属性值,对于冷启动和稀疏性的处理也非常的友好。

我们根据EGES的构造方法,进行了三个部分的改造:

第一,边缘信息如何获取?每个业务选取2-3个核心属性作为边缘信息。我们不可能对每个业务线进行特征工程,但是每个业务线的核心属性是能够找到的,来表达业务线的核心内容。

第二,参考Airbnb对于Id的处理方式,将几个属性值合在一起,作为新的Id,也可以称为压缩的Id,通过这种方式,可以把上亿的帖子Id,压缩到百万的量级,对应的稀疏性也就缩减了几个数量级。

第三,因为目标是比较明确的,就是为了训练出业务域到部落的关联行为。所以在构造图的时候,就会增加一些跳跃的采样方式,即业务到部落的前一个点也可以新加一次关联,这样在统计用户行为边权重的时候,也就会增加很多业务到部落的权重。

模型的训练就是参照论文,采用DeepWalk的训练方式,首先统计用户行为序列,把所有用户行为对统计频率,频率就作为用户边缘图的权重,接着使用随机的方法在这张图中进行随机的游走,产生新的用户行为序列,可以把新的行为序列想象成word2vec的那种方式,来训练出物品的embedding。另外,这样的好处是,在训练物品Item的时候,也一并把物品的边缘信息的Item也训练出来了,边缘信息的Item是在一个空间里面的,对于使用边缘信息的Embedding和物品的Embedding会非常友好,把这些预训练的Embedding迁移到DNN中也会非常的友好。

模型的版本二,就是用跨域的EGES训练生成的Embedding表示,替换版本一中序列Item Pooling的Embedding表示。通过这种预训练的方式,可以提前学习到业务线和部落的一些关联关系。最终,部落的点击率和价值内容占比都获得了一定的提升。

上线后的结果是价值内容点击占比从12%提升到28%,同时点击率也有小量的提升,满足产品的预设目标的。回顾一些这个方法的思路,模型融合了DeepFM、DIN、EGES,同时也借鉴了Airbnb中Id的处理技巧,使得价值内容占比和点击率获得了提升。其实这个模型的核心总结来看,是一种借助有交叉业务域用户行为提升目标域推荐效果的一种跨域推荐方法,刚好适合推荐的交叉业务域相关的内容,本事上可以理解为增加了相关域的特征,但即便抛开价值内容占比这个目标,对点击率的提升也是有促进的。

第二个产品目标是用户留存率提升,同时点击率互动率稳定,这也是比较特殊的一个目标,因为这个是一个长期的目标,如果说次日留存第二天才能看到。而且用户留存率和很多目标都有一定的联系,比如说内容质量、多样性、互动等等,看似有很多地方需要做,但是如何找切入点呢?

下面是整理的一些思考方法:

想要用户的留存率提升,首先要进行留存分析,也就是通过数据或常识找到可能的特征,但是不能确定其影响程度;然后根据留存的分析进行策略的制定,来对结果进行干预,也就是通过某种方式达成留存分析中的特征,并能参数化;最后将制定的多个策略组合进行优化,用最终目标定义reward和约束,进行在线的参数优化,达到最终目标提升。

具体是怎么做的?这里以信息流的场景为例:

首先通过数据分析,找到有过互动的用户,次日留存率会明显的高过没有互动过的用户,从数据上看是这样的,从常识上也是能理解的。然后2、3的指标是我们发现比较特殊的两点,分别为首访内容类型权重、尾访内容类型权重。比如尾访内容类型权重,就是前一天最后一次访问该内容类型今天又来的访问人数/前一天最后一次访问该类型内容的人数;首访内容权重就是使用前一天第一次访问。

为什么有这样的假设?我们使用了归因链的思想,通常在电商场景的购物车的转化上有应用。浏览了某个物品,同时加购物车,关注了,看了商家,到最后购买了。那行为链中哪个行为是影响用户最终转化的行为?确定这条行为链权重的方法目前来看有四种:

  • 直接取用户的最后一次行为,这次行为是造成他购买的原因,但这种方法不是很严谨。

  • 平均权重,任务这条行为链上的行为都对最后的购买有贡献。

  • 衰减权重,行为链上最近的行为影响最大,逐渐往前进行衰减。

  • 马鞍形式的权重,也是在产品上比较认同的。行为链最后一次和首次的用户意图是最强的,中间是最弱的。

通过使用这种归因链进行统计,对于留存来说,用户前一天最后一次访问的内容类型,和前一天第一次访问该的内容类型,对部落的用户留存有一定的相关性。比如某个新用户在58上第一天访问本地资讯类型的内容,会发现该用户过两天再来58的概率会高过看其它类型内容的新用户,所以我们把尾访内容类型权重、首访内容类型权重作为用户留存分析的两个重要特征。

最后一点是多样性,多样性在一定程度上会影响UV的转化率,但是其也会影响点击率,多样性太高或者太低,和点击率不一定成线性关系。

对于留存分析,我们将互动率、尾访内容类型权重、首访内容类型权重、多样性作为留存分析比较重要的四点。

有了这四个参数,如何来制定优化策略呢?

这里相当于定义了一种重排序的策略,通过重排的方法,照顾上述的四个因素,相关性分数=点击率预估分数+a*互动率预估分数+b*首访内容类型权重+c*尾访内容类型权重;有了相关性分数,参考Hulu laming老师的多样性dpp算法,使用多样性调节因子θ,以此调节相关性和多样性的程度,这里也就相当于定义了一个四个超参数(a,b,c,θ)的重排序算法。

定义了策略方案,我们需要定义一个评估或者说目标回报,因为目标是提升用户的留存率,所以把次日留存率权重设置为5,点击率提升率,互动率提升率也放到回报里面;同时也把点击率提升率、互动率提升率、次日留存率提升率作为约束放在里面,对于负向的提升也是有一定容忍的,因为目标是提升用户的留存率,所以次日留存率提升率是要大于0的。这样问题的转化就变成了找到使得reward最大的(a,b,c,θ)的组合方式。

如何找到这种组合方式?

设想如果是单参数的,可以使用abtest的方式,把参数都试一遍,找最优的参数;但如果是多参数,使用abtest的方式,实验数量要指数增长,会浪费大量流量,针对于这个问题,我们找到一种调参方式,使用CEM自动调参,优点就是可以直接优化线上目标,实现长期的迭代。

CEM算法是如何实现的呢,这里简单介绍下:

首先CEM是一个在线的自动调参方法,会使用线上数据快速对参数进行评估,进而实现自动化参数调节。首先,我们拍一组比较合适的参数作为初始化参数,我们这里使用的是高斯分布,根据均值或者方差会对参数做一个采样,然后采样出的多组参数在线上进行等比例的分流实验,两天后观察各个流量的收益,也就是reward,然后对reward进行从高到底进行排序,截取top-k的reward进行评估,同时参数也会进行相应的裁剪,最后将选出top-k的参数进行聚集。下面同样的重复这个过程,每次进行迭代的时候,会给方差加上一个量值,防止函数过早的收敛到局部的最优解。

具体实现:

使用线上大概10%的流量进行探测,参数采样是给定初始点和标准差,采样数量为15个,裁剪top5,每两天进行一次,因为优化目标是留存,所以在第二天的时候,可以知道用户留存的一些指标。

如图中右侧坐标图,最开始的时候参数范围可能比较大,但是随着每次采样并进行top5的裁剪,参数会收敛到比较小的区域,但是这个区域并不一定是稳定的,会随着迭代有不停的波动,可能是和正常的业务流量波动是有关系的,所以说参数调整不是一蹴而就的,调整完就放在那里不动的。最好就是常年有流量探测在线上,不停探测最优的权重。

有几个需要注意的点:

  • 探测流量的大小,如果流量太小,结果置信度会有影响。

  • 指标的波动性也会影响结果,所以说对于一些比较小的指标如互动率,比如几个回复、几十个回复,可能就会对互动率这个指标产生比较大的影响。

  • 我们会使用一些规则,如果指标的波动性太大,会进行剔除,以此增加鲁棒性。

经过差不多10轮迭代,使得用户次日留存提升了1%,同时点击率和互动率保持稳定,在这之中,用户的首访内容类型权重与尾访内容类型权重是起到一定作用的。我们发现,对于一个新用户来说的话,如果能提高对于本地资讯或者本地内容的权重,通过加权的方式,是能够提升该用户的留存的,这个例子就是验证出来的设想。

小结:基于CEM这种在线的组合优化的方式,最大的优点就是可以直接优化多个目标,可信度比较高,而且只需要定义策略参数和reward。但是也有几个隐藏的问题:1.组合参数中要求是连续形数值;2.不能随着有参数变化reward出现跳变,具体的比如有些策略和具体的取模相关,比如模5,数值达到6转为1,这样会导致对reward出现跳变,这种就不是很适合。

04

总结与未来

总结:

  • 从跨域迁移学习的角度来看,我们兼顾了定义的价值内容占比和点击率两个目标的平衡。

  • 用在线优化组合的方式,对多样性、内容类型分发比例、互动进行组合优化,对长期留存的提升进行了探索。

未来,从推荐算法的角度来看,内容产品的长期收益,健康的生态,离不开多目标的平衡;在多目标的策略组合与长期收益优化上,强化学习的实践和我们的目标有很高的契合度,也是我们积极尝试的方向。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定要备注信息才能通过)

END -

收藏 | 机器学习、深度学习面试知识点汇总

2021-09-17

NLP文本分类 落地实战五大利器!

2021-09-10

研究生期间如何成为科研大佬?

2021-09-07

跨越『时空』的难样本挖掘!

2021-09-03

广义多目标算法探索实践相关推荐

  1. 滴普技术荟:基于机器视觉的典型多目标追踪算法应用实践

    视频目标追踪算法是机器视觉中一项很实用重要的算法,视频目标追踪算法应用场景很广,比如智能监控.机器人视觉系统.虚拟现实(人体跟踪).医学诊断(细胞状态跟踪)等.本文由滴普科技2048团队AI产品部算法 ...

  2. 全域调度:云边协同在视频场景下的探索实践

    随着多媒体业务越来越多的涌现,每个业务都有不同的差异性特征.各大视频云厂商遇到的最大挑战是如何打造多媒体分发网络,使用最低成本为多业务提供最优质网络体验.本次分享邀请到了华为云算法专家--杨昌鹏老师, ...

  3. 重新定义“人货场”:淘宝情景计算探索实践

    过去二十年,由于互联网的发展,零售由线下往线上迁移.近些年,伴随着智能手机的普及,越来越多的线上零售在移动终端上完成. 随着这些移动设备计算力和存储力的日益强大,智能手机也正在成为强大的计算平台,为复 ...

  4. 【2016年第6期】数据产品在线定制平台的探索实践

    张峰1,孙宗哲2,OCHORA Dennis Reagan2,刘建楠3,宋杰2 1.      国家海洋信息中心,天津 300171: 2.      东北大学软件学院,辽宁 沈阳 110819: 3 ...

  5. AI自动剪辑生成视频探索实践

     点击上方"LiveVideoStack"关注我们 ▲扫描图中二维码或点击阅读原文▲了解音视频技术大会更多信息 // 编者按:随着短视频时代的到来,以短视频作为载体进行音乐推广具备 ...

  6. 深度学习、机器学习方向计算机毕业设计题目大全(算法应用实践类)

    (吐血整理) 手动整理了1500多个深度学习及机器学习相关算法在实际应用中的项目,完全可以作为本科生当前较新的毕业设计题目选择方向.讲道理有些题目,比如"用户评分的隐式成分信息的研究&quo ...

  7. ONES 万事联合创始人 amp; CTO 冯斌:企业服务产品的探索实践

    此前,TGO 鲲鹏会深圳分会会员.ONES 万事 Co-Founder & CTO 冯斌作为 TGO 线上分享第五季的嘉宾,以直播的形式分享了企业服务产品的探索实践.本文根据当天直播内容整理. ...

  8. 京东购物在微信等场景下的算法应用实践

    本文根据京东微信手Q业务部马老师在京东\u0026amp;DataFun Talk算法架构系列活动中所分享的<京东购物在微信等场景下的算法应用实践>编辑整理而成,在未改变原意的基础上稍做修 ...

  9. 贪吃蛇博弈算法python_算法应用实践:如何用Python写一个贪吃蛇AI

    原标题:算法应用实践:如何用Python写一个贪吃蛇AI 前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势 ...

最新文章

  1. 124 Binary Tree Maximum Path Sum
  2. Sublime Text 3 中文乱码的解决方法
  3. NetBeans IDE 6.10 M1 发布
  4. 单片机控制两个步进电机画圆_51单片机控制两个步进电机
  5. html期末网页设计,求网页设计的期末作业一份 HTML的
  6. struts2值栈,OGNL表达式,interceptor
  7. 兆观毫米波监护仪亮相CMEF 开创养老监护新时代
  8. TensorFlow深度自动编码器入门实践
  9. 2018年python工作好找吗-2018年Python发展前景如何?Python就业有哪些方向?
  10. Java随笔记 - Java NIO的初步认识,NIO的三个核心概念,Channel和Buffer的简单使用
  11. 计算机奖学金用英语怎么说,奖学金证书的翻译,三好学生荣誉证书,优秀学生干部荣誉证书的英语,英语四、六级和计算机证书,辅修证书的英语怎么说, 教学实践单项奖,社会实践单项奖用英语怎么说...
  12. No executable file specified.Use the “file“ or “exec-file“ command.
  13. .removeAttribute is not a function
  14. matlab调用maple数据画图,Matlab调用Maple
  15. linux下u盘怎么找,redhat怎么找到u盘呢 ?
  16. ffmpeg设置视频 tbr、tbn、tbc
  17. 零售门店促销创新的八个思路
  18. 计算机专业英语课程标准,502057《计算机专业英语》课程标准
  19. vue时间日期 开始时间 结束时间
  20. java-net-php-python-60jspm高校教学质量评价系统计算机毕业设计程序

热门文章

  1. SAP License:GR与IR
  2. CSS中可以让文字在水平和垂直方向上重叠的两个属性
  3. 一个简单的网页抓取工具
  4. 增加磁盘,无需reboot
  5. 常对象和常函数的关系 const
  6. 测试思想-验收测试 关于验收测试
  7. 徐中约与《中国近代史》 (zz)
  8. Android 不能勾选 Project Build Target
  9. Django打造大型企业官网(五)
  10. 2019.1.5 DOM