你的画像是怎么来的?推荐系统是如何找到相似用户的?
Posted 文宇肃然
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你的画像是怎么来的?推荐系统是如何找到相似用户的?相关的知识,希望对你有一定的参考价值。
前言
在构建推荐系统的过程中,冷启动是我们要面临的一个很现实的问题,而除了加特征,加样本,加图谱,加规则,还有其他方法吗?
以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟!
推荐系统用户画像,是解决冷启动和兴趣探索问题一种有效地方法,但item上的标签要通过一种怎么样的方式转移到用户身上呢?常见的做法是用户点击或者购买了某个item,则这个item上标签则被标记到了user身上。那么,除了这种直接的方式,还是否有其他的更系统的方法呢?
本文涉及内容会在三天后转入收费专栏,喜欢的小伙伴及时点击收藏哟!
你的画像是怎么来的?
用户画像的标签权重
什么是用户画像?
用户画像:即用户信息标签化,通过收集用户社会属性、消费习惯、偏好特征等各个维度数据,进而对用户或者产品特征属性的刻画,并对这些特征分析统计挖掘潜在价值信息,从而抽象出一个用户的信息全貌,可看做是企业应用大数据的根基,是定向广告投放与个性化推荐的前置条件。
不要把典型用户当作用户画像
不能把典型用户当作用户画像。每年的微信生活白皮书中,微信官方都会公布典型用户的一天:工作日每天 8 点起床刷朋友圈、8:45 出门路上刷视频号……很多用户看了表示这完全就是自己啊!不过也有不少人吐槽:我也是微信重度用户,但这个典型的一天的跟我怎么完全不符合?
为什么会出现如此截然相反的反馈呢?原来是这些人把「典型用户」跟「用户画像」的概念搞混了。因为以上描述典型用户这些特点,只是把用户特征抽象出来,组合在一起,事实上典型用户是虚构的,并不真实存在。而用户画像是把用户以标签的形式表现出来,每一个真实存在的用户都有对应的用户画像。
用户画像不是用户标签的简单组合
这也是大部分人都可能存在的错误认知,即把用户画像简单理解成由用户标签构成。用户标签是用来概括用户特征的,比如说姓名、性别、职业、收入、养狗、喜欢吃零食等等。这些标签表面上看没有什么问题,但是实际上组成用户画像的标签要跟业务/产品结合。不同业务的画像标签体系并不一致,这需要数据和运营目的性的提炼。
举个夸张的例子,喜茶要做用户画像,最后列出来小明是一个大学生、高富帅、独生子、四川人,爱玩游戏、爱看动漫等用户标签。而事实上,对于喜茶而言,用户帅不帅、是否爱玩游戏真的没有关系。
用户画像的有效性
如果你能够建立真正有效的用户画像标签,才算正确理解从而提升运营效果。这就涉及到构建用户画像最大的难点了。
举个例子,某知识付费团队要卖课,那么建立用户画像最核心的诉求就是:提高课程购买数量。如果能通过用户画像了解用户购买课程的意愿,然后采取相应的运营策略,效率便会大幅度提高。而这个购买课程意愿度,就是我们最需要放在用户画像里的标签。
又比如,我们建立用户画像之后,计算出来甲购买课程的意愿是 40%,乙购买课程的意愿是 90%。为了进一步提高购买量,我们会对购买意愿在 40% 的用户(甲)发放优惠券。如果没有建立这样一个用户画像标签,我们就会对甲和乙发放同样的优惠券。而乙类用户原本是不需要用优惠券进行激励的,这么一发,便会增加很多成本。这就牵扯到了另外一种营销模型的构建了,在这里就不做展开说明了。
用户画像标签算法
先举个场景,程序员小Z在某电商平台上注册了账号,经过一段时间在该电商平台的web端/app端进行浏览、所搜、收藏商品、下单购物等系列行为,该电商平台数据库已全程记录该用户在平台上的行为,通过系列建模算法,给程序员小Z打上了符合其特征的标签(如下图所示)。此后程序员小Z在该电商平台的相关推荐版块上总能发现自己想买的商品,总能在下单前犹豫不决时收到优惠券的推送,总是在平台上越逛越喜欢....
如上图所示,一个用户标签表里面包括常见的字段如:用户id、用户姓名、标签id、标签名称、用户与该标签发生行为的次数(如搜索了两次“大数据”这个关键词)、行为类型(不同的行为类型对应用户对商品不同的意愿强度,如购买某商品>收藏某商品>浏览某商品>搜索某商品),行为时间(越久远的时间对用户当前的影响越小,如5年前你会搜索一本高考的书,而现在你会搜索一本考研的书)。
最后非常重要的一个字段是标签权重,该权重影响着对用户属性的归类,属性归类不准确,接下来基于画像对用户进行推荐、营销的准确性也就无从谈起了。下面我们来讲两种权重的划分方法。
基于TFIDF算法的权重
TF-IDF算法是什么思想,这里不做详细展开,简而言之:一个词语的重要性随着它在该文章出现的次数成正比,随它在整个文档集中出现的次数成反比。
比如说我们这里有3个用户和4个标签,标签和用户之间的关系将会在一定程度上反应出标签之间的关系。这里我们用w(P , T)表示一个标签T被用于标记用户P的次数。TF(P , T)表示这个标记次数在用户P所有标签中所占的比重,公式如下图:
对上面的图来说,用户1身上打了标签A 5个,标签B 2个,标签C 1个,那么用户1身上的A标签TF=5/(5+2+1) 。
相应的IDF(P , T)表示标签T在全部标签中的稀缺程度,即这个标签的出现几率。如果一个标签T出现几率很小,并且同时被用于标记某用户,这就使得该用户与该标签T之间的关系更加紧密。
然后我们根据TF * IDF即可得到该用户该标签的权重值。到这里还没结束,此时的权重是不考虑业务场景,仅考虑用户与标签之间的关系,显然是不够的。还需要考虑到该标签所处的业务场景、发生的时间距今多久、用户产生该标签的行为次数等等因素。我用个图总结下:
关于时间衰减的函数,根据发生时间的先后为用户行为数据分配权重。
时间衰减是指用户的行为会随着时间的过去,历史行为和当前的相关性不断减弱,在建立与时间衰减相关的函数时,我们可套用牛顿冷却定律数学模型。牛顿冷却定律描述的场景是:一个较热的物体在一个温度比这个物体低的环境下,这个较热的物体的温度是要降低的,周围的物体温度要上升,最后物体的温度和周围的温度达到平衡,在这个平衡的过程中,较热物体的温度F(t)是随着时间t的增长而呈现指数型衰减,其温度衰减公式为:
F(t)=初始温度×exp(-冷却系数×间隔的时间)
其中α为衰减常数,通过回归可计算得出。例如:指定45分钟后物体温度为初始温度的0.5,即 0.5=1×exp(-a×45),求得α=0.1556。
基于相关系数矩阵的权重
这个相关系数矩阵听title挺困难,其实道理十分简单。举个例子:用户1身上打上了5个A标签、2个B标签、1个C标签;用户2身上打上了4个A标签,3个B标签;用户3身上打上了4个C标签、1个D标签。
用个图形象表示一下:
那么同时打上A、B标签的用户有两个人,这就说明AB之间可能存在某种相关性,当用户量、标签量级越多时,标签两两之间的相关性也越明显。
推荐系统是如何找到相似用户的?
接下来我们来聊一下在搜索、推荐、计算广告系统中“画像是怎么用的?相似用户是怎么被发现的?”。
在互联网商业应用中,许多广告主在“搜寻潜客”时,都会遇到如难以识别高潜人群、难于平衡成本与规模等问题。而在数字营销的过程中,运营人员或者数据分析同学也是在根据已有的经验,通过用户画像的方式,扩展与历史转化人群相似的人群。比如,通过性别、年龄等筛选出化妆品的受众人群等。显然,这种方式有些粗糙。
那么,有什么方法可以优雅而有理有据的解决这个问题吗?答案是肯定,不然我费劲巴拉的写这篇文章干嘛,躺着刷刷视频不香吗...言归正传,相似人群拓展(Lookalike)的工作机制是基于种子用户画像和社交关系链寻找出相似用户。即,根据种子人群的共有属性进行自动化扩展,以扩大潜在用户覆盖面,提升营销/广告效果。
什么是Lookalike?
具体来讲,相似人群拓展(Lookalike)是基于种子用户,通过用户画像、算法模型等找到与种子用户更多拥有潜在关联性的拓展技术。Lookalike算法是计算广告中的术语,不是单指某一种算法,而是一类方法的统称,这类方法综合运用多种技术,其目的就是为了实现人群包扩充。
举个广告的栗子,对于一个化妆品类广告主,需要对100万人投放自己的广告,但是根据经验或者画像只有10万的人群包,那么如何选取这100万,同时满足人群量级和转化(盲目选择可能存在无效用户)两个因素,就需要用到Lookalike相似人群拓展技术了。比如,向品牌偏好、消费价格区间匹配的人群进行投放等。
举个数字营销的栗子,对于运营人员,需要将某一个节日活动向100万用户进行短信/Push发送,但根据画像刷选之后,可能发现这波用户已经被其他业务的运营发送过了N多次,最后剩下可以发送的用户寥寥...此时Lookalike相似人群拓展的作用便来了。根据种子人群(已有过的转化人群)的共有属性进行自动化扩展,以扩大潜在用户覆盖面。对于拉新任务来说,谁用谁知道....啊~真香~
怎么做Lookalike?
Lookalike相似人群拓展方法主要有以下几种方式,
-
利用用户画像进行显式人群拓展:根据种子用户的标签(地理、兴趣、行为、品牌偏好等),利用相同标签找到目标人群;
-
利用机器学习模型进行隐式人群拓展:广告主的种子用户做为正样本,广告平台中有海量的非种子用户,也有大量的广告投放历史数据可以做为负样本,训练机器学习模型,然后用模型对所有候选对象进行筛选;
-
利用社交图结构的相似人群拓展:核心就是通过Graph Embedding的形式去得到相似的人群。
同时,我们需要注意到的问题是,随着流量不断增大,相似人群的聚焦性也必然逐步降低,寻找目标人群的难度加大,致使非目标人群(无效人群,对转化没有帮助,但是会增加投放成本)的比例也随着流量的增加而增加。而Lookalike技术通过大数据分析和复杂模型学习归纳高质量人群的人口特征,然后在更大的流量范围内,寻找具有类似人口特征的人,从而实现目标的转化。
另外,做任何业务背景的问题,我们都需要关注其背后的可解释性:虽然可以通过一系列的用户画像、机器学习技术拓展了一批用户,但是拓展的途径、人群的行为特征等都需要一个直观的解释。比如扩展的人群在哪些特征或行为上匹配种子用户,而未被拓展的人群,又是怎么样的? 这不仅为拓展提供了帮助,也为badcase溯源问题提供了一套良好的方式方法。
工业界中的Lookalike应用
谷歌Similar Audiences
Google的“Similar Audiences”根据用户近期的浏览和下载APP行为,为广告主推荐拓展相似的人群。谷歌广告后台会自动生成与你的网站访问者或现有客户兴趣相似的用户群体,一般情况下,你设置了多少个再营销相似群体列表,就会生成多少个对应的相似人群。
Similar Audience不仅可以帮你查找到与你网站访问者相似的人,并且还能帮你向这些特定人群传递信息,为你带来高质量的潜在用户,甚至直接转化。例如,你开了一家保险公司,并且想推销碎屏保险。通过Remarketing的使用,你可以将之前来过你网站并且查看过碎屏保险的人创建为一个List,然后在这个基础上去寻找相似的受众。
这样一来,新的受众和你之前Remaketing Lists里面的人都是有着相同的行为习惯,兴趣,甚至购买倾向,从而转化率大大提升。
Facebook Lookalike Audiences
Facebook的“Lookalike Audiences”,可以根据Custom Audiences所筛选出的用户名单为参考,再筛选出与其相似的人群,让广告主可以将广告投递给此名单内的用户。
通过Facebook像素插件,来记录客户在你网站的行为,比如,加入购物车但未购买,像素会反馈给你信息,方便后期给客户定向投放广告。
同时相似群体大致有以下情况:
-
与主页互动,比如点赞,转发,评论主页等,用messenger发消息等等。
-
视频观看情况,比如说观看你发布的视频时间播放时长等。
阿里达摩盘DMP
阿里推出达摩盘(DMP)Lookalike 模型根据对店铺或品牌最忠实的那批用户(种子用户),并通过Lookalike 模型找到与这些种子用户相似的人来增加店铺的有效浏览和转化。
腾讯社交Lookalike
腾讯社交广告团队基于种子用户画像和关系链寻找相似用户,即根据种子人群的共有属性进行自动化扩展,以扩大受众覆盖面,提升广告效果。
例如,家庭、社会身份、地位、相关群体等社会因素,文化、次文化等文化因素,以及行为、动机、兴趣等心理因素等都能形成相似人群拓展Lookalike的筛选标准。以社交关系链为基础,腾讯社交广告可以助力广告主寻找相似线索、捕捉高潜客户。
写在最后
竞赛中的Lookalike
腾讯广告算法大赛2018年的赛题,题目如下:
相似人群拓展(Lookalike)基于广告主提供的一个种子人群(又称为种子包),自动计算出与之相似的人群(称为扩展人群)。本题目将为参赛选手提供几百个种子人群、海量候选人群对应的用户特征,以及种子人群对应的广告特征。出于业务数据安全保证的考虑,所有数据均为脱敏处理后的数据。整个数据集分为训练集和测试集。训练集中标定了人群中属于种子包的用户与不属于种子包的用户(即正负样本)。测试集将检测参赛选手的算法能否准确标定测试集中的用户是否属于相应的种子包。训练集和测试集所对应的种子包完全一致。初赛和复赛所提供的种子包除量级有所不同外,其他的设置均相同。
在特征工程层面,总结一下鱼和jachin的开源方案中的思路如下:
(1)原始onehot特征,比如aid,age,gender等。
(2)向量特征,比如interest1,interest2,topic1,kw1等
(3)向量长度统计特征:interest1,interest2,interest5的长度统计。
(4)uid类的统计特征,uid的出现次数,uid的正样本次数,以及uid与ad特征的组合出现次数,组合正样本次数。
(5)uid的序列特征,比如uid=1时,总共出现了5次,序列为[-1,1,-1,-1,-1]。
(6)组合特征:age与aid的组合,gender与aid的组合,interest1与aid的组合,interest2与aid的组合,topic1与topic2的组合,LBS与kw1的组合。
(7)五大类特征,投放量(click)、投放比例(ratio)、转化率(cvr)、特殊转化率(CV_cvr)、多值长度(length),每类特征基本都做了一维字段和二维组合字段的统计。值得注意的是转化率利用预处理所得的分块标签独立出一个分块验证集不加入统计,其余分块做dropout交叉统计,测试集则用全部训练集数据进行统计。
(8)此外,我们发现一些多值字段的重要性很高,所以利用了lightgbm特征重要性对ct\\marriage\\interest字段的稀疏编码矩阵进行了提取,提取出排名前20的编码特征与其他单值特征进行类似上述cvr的统计生成CV_cvr的统计,这组特征和cvr的效果几乎相当。
对于感兴趣的同学,可以搜索下该赛题的相关知识。
以上是关于你的画像是怎么来的?推荐系统是如何找到相似用户的?的主要内容,如果未能解决你的问题,请参考以下文章