备战青教赛必看!第六届青教赛国赛一等奖视频逐字稿分享!
今天这篇文章给大家分享的是第六届青年教师教学竞赛工科组一等奖视频的逐字稿,来自上海交通大学高晓沨老师的《计算机科学导论》,建议搭配视频观看,效果更佳!
各位同学大家好,欢迎大家回到计算机科学导论的课堂。人工智能的发展现在已经深刻地改变了我们的生活和生产方式,那如何理解人工智能,又如何更好地运用人工智能呢?今天我们将以无处不在的计算广告为例,来为大家展示人工智能的魅力。
首先请大家先看一则案例:在湖南省有个安化县,在2020年疫情初期,受到疫情的影响,当地的黑茶呢产生了滞销,于是时任的县长陈灿平大胆的采用了抖音平台进行直播。在一年的时间内,他直播带货了1,500万元,助力了9.6万人民脱贫。事实上目前采用很多像抖音这样的平台进行中小客户推广的方式已经非常的有名,比如说根据2022年抖音的统计,目前农特产销售已经达到了28.3亿单。这说明在疫情背景下,广告推荐能够有效地改变实体行业,并且进行经济的发展。那么广告到底是什么,我们又如何运用计算来更好地推荐信息呢?
这里我们来介绍一下计算广告的概念,计算广告是指通过大数据、推荐算法等技术精准计算互联网广告的受众群体,并进行个性化推荐的技术。为什么我们要用计算广告呢?接下来让我们来试着对比一下广告的一些情况:比如说从一个广告主的视角进行对比啊,如果采用计算广告,那么它就是精准并且个性化的广告推荐。如果我们采用传统的广告,比如说电视的话它可能是缺少个性化,并且在投咨茴报上是难以度量的。另外,还有一点非常重要的信息是我们中小企业很关注的那就是成本。比如说在腾讯广告进行1,000次推荐,它的成本是多少呢?50到100元。如果我们在CCTV上进行5到10秒的广告推荐,大家可以看看,它的成本啊是2到5万元。所以如果是中小企业的话,我们应该是选用更低廉的成本去完成更高效的推荐,这就是计算广告带给大家的一些好的地方。
那我们今天就为大家展示到底怎么样用计算机来进行广告的推荐,首先我们讨论一下计算广告有什么样的困难:第一个困难是我们的用户数量是巨大的。比如说现在我们的淘宝啊抖音啊或者是微博呀,它的平台用户都是上亿的。第二件事情呢,其实我们更多的是希望精准推荐广告,但是怎么样从成亿的人中间选择那些合适的用户来进行推广呢?比如说让我们以陈灿(平县)长在2020年初进行抖音推广为例啊,当时在抖音的平台是5.2亿用户。但是陈县长第一次推荐的时候,其实在线的直播用户只有2,500人,它的数量大概是十万分之五。也就是说我们只要在沧海中选择合适的水,将我们的广告推荐给合适的用户,他就可以得到合适的推荐。
那这样的技术要怎么做呢?让我们尝试分析一下如何运用计算机来做广告。第一件事情,当我们打开手机APP的时候才可能看到广告,所以广告的推荐是以用户端为主的,我们认知它叫用户导向的广告。第二件事情呢,让我们简单地思索一下广告库的问题啊,比如说最简单的广告推荐,其实就是从很多广告中选择我最喜欢的那一条推荐给我就可以了。但是这样行不行呢?比如说让我们再以现在大家经常用的淘宝商城为例来看一下,淘宝的后台呢,是阿里云平台的服务器来为大家支撑。这样的一个服务器,它的运算次数是3.1亿次每秒,但是现在腾讯阿里的广告库,它的数量是千万级别的,所以我们做了一个真实的实验,在阿里云平台上,如果你为每一个用户在千万级的广告中间做一次推荐的话,它的时间需要0.033秒。
但是海量的数据告诉我们,这件事情不可行。比如说抖音现在啊,在2022年,根据最新的统计,已经有7亿日活用户了。那我们需要198天才能完成每一个用户的推荐,这明显是不可能的。所以在计算广告的推荐上,我们面对的最重要的问题就是海量数据带给我们的困难问题。我们来详细分析一下,首先我们面对的广告库是这个级别:1,000万的广告。那我们想做到的是什么呢?两件事,一个是我想非常快地推荐我的信息给用户,还有一个是什么呢?我想给用户推荐他喜欢的东西,对不对?我要快,而且要准。所以广告相关的人员以及我们的算法工程师呢,做了很长时间的探索,最终定义出来了一种推荐链路,可以最快速地推荐广告。
这个技术非常新啊,它是最近五年才开始上线的,它具体是什么呢?我们希望能够有一个推荐链路,从广告库推荐到用户端,那么这个推荐它最大的希望就是快速地找到广告。所以我们需要两步:第一步是从千万级的广告中,通过召回的技术,以万里挑一的方式进行到第二轮次。那么第二轮次呢,我们希望以排序的技术,以千里挑一的方式推荐到你的手机端。
所以大家有没有看到这样的一个过程,其实你手机端上看到的每一条信息,都是后台的算法工程师从千万级别的数据中挑出了那一条他认为你最适合的推荐到了你的手机端。
所以这样的技术怎么做?让我们今天以召回排序和应用扩展来为大家详细讲解。首先我们先看看召回是什么,召回它的核心思路就是万里挑一。我想从千万级别的广告里面挑出来你最喜欢的送到你的身边,那怎么挑呢?我们要求它非常快速,所以为什么叫召回啊,它就像我们在打仗的时候,有一位将军一声令下,那接下来就有很多小兵能够召回到我的面前了。
所以我们的评价呢就是召回率,召回率的意思就是比如说在当前的广告库中有100个广告是适合我的,但是我一声令下召回了,有两个广告回来了,那么我的召回率就是2%。
其实从千万级别啊,能够召回到2%的水平,已经是非常好的级别了。所以我们认知只要能够有一个快速有效的召回方式,它就能够得到好的效果。所以召回怎么做呢?最基本的思路就是层层拨减,能够想办法从最简单的方式去运行这样的一个算法,那运行的方式就是我希望能够多路召回,多路召回可以通过这种形式来召回。比如说我们想推荐黑茶,所以我先选择了养颜茶的养生茶的T0P100,再选择美颜茶的T0P100,最后呢再以策略召回的方式,以三个多路召回一起来推荐到下一个排序层。为什么要这样做呢?其实我们这里用到的是统计信息,比如说人们更多地喜欢茶类的哪些商品,那当前的这个人呢,可能就有更大的概率对它感兴趣。所以选择T0P100其实是基于海量数据的统计来为我们得到的结果。
那策略召回是什么呢?让我们详细来看一下它具体的信息啊,对于策略召回来说,其实它是计算广告千人千面最合适的一种计算方式,它的核心思路有两个:第一个叫user to item to item“u 2 i 2 i”,它的意思是如果我曾经购买了某一个物品,那么我可能会喜欢相似的物品。比如说这一位顾客,他购买了黑茶,那他有可能会喜欢绿茶,所以我们会给他进行相互的推荐。那么第二种呢,叫做“u 2 u to i”,它的意思是什么呢?就是如果我有两个用户,彼此之间口味是相似的,那么我一个用户购买了某种物品,我可能就会把它推荐给另外一个用户,让他进行购买。这是非常直觉的想法,也是我们人类直接想到能够推荐的一种方式。其实在商场如果有一个导购员的话,他也是用这种类似的逻辑来给你推荐的。
可是我们把它放到计算机的眼里,它就不是这样了。计算是什么?计算机是一个古板但是快速的工具,我们需要把这件事情转化成计算机能用的方式,才能够得以计算。所以计算机怎么样才能够用呢?我们来看一看啊,它的核心方式是把我们在直觉中认知的物品转化成向量的形式来用于计算,比如说我们想表示黑茶,它就会对黑茶的特征进行编码来变成向量。具体怎么编呢?它的特征是通过各种不同的数字方式来编码的。举个例子,黑茶是后发酵的茶,它是一种离散型的特征,那么我们就将编码的1234给它进行分类的处理,编一个4号,那么对于像湖南安化这样高质量的黑茶,它的价位是400-800元之间,那么我们可以将连续型的特征进行分桶,再给它编码。所以最终在计算机的视角里面,黑茶其实就是一个码,它是43这样的代表,于是我们可以把每一个物品和每一个人都进行编码。编码完了以后,就可以执行刚才我们说的“u to u to i”或者是“u to i to i”的策略。
那具体怎么执行呢?我们来详细看一下。这个执行的方式在计算机的视角里叫做相似度计算。比如说啊,如果我想向用户推荐龙井和普洱,一个叫IA一个叫IB,那么这个用户曾经点击过黑茶I,我们将刚才的茶叶用两种特征来表示,一个是发酵程度,还有一个是价格。那么怎么才能够让计算机知道到底谁更相像呢? 我们不妨把这3种茶叶按照对应的特征给它构建二维空间,一个是发酵程度,还有一个是价格。请同学同请同学们看一看啊,此时到底是普洱跟黑茶比较像,还是龙井跟黑茶比较像?非常好啊,大家可以看到,我们感觉如果夹角越近的话,其实它就是越像,所以我们可以采用夹角的方式来表达相似度。
这种夹角怎么运算呢?其实在高中的时候我们就学过,它可以用余弦相似度的方式来运算。比如说用三边的夹角计算三边的长度,然后呢采用余弦定理计算它的相似度,最终我们就可以得到对应的相似度θa是0.78,而θ b呢是0.99。根据余弦的特点,数字越大呢,我的夹角越小,所以我们最终推荐出来的就是向用户推荐普洱。于是在召回的这个策略,我们采用的是策略的方式,并最终使用了余弦相似度来做运算,好至此召回就结束了。
其实你看到它很简单,它在计算机里面的运算还是很耗时的,因为我们要对每一个用户从千万级的广告里面进行这样快速地召回。那么这种召回呢,它其实并不是很精确,所以我们还需要更精确地去计算它。这样的精确方式,我们给它了第二级,叫做排序。
排序是什么意思呢?其实就是我在刚才万里挑一的信息啊,我想把它推荐到手机端然后呢再做好一个排序,使得我能选择前三或者前五的推荐到我的真正的手机上。那排序应该怎么做呢?其实我们在真实的业务中间采用的是双塔模型,它可以给出广告的评分。这个意思是什么?其实也是数值化的转换。就是我把认为对用户合适的广告转化成了一个数值,按照从大到小进行排序,然后选择前几位推荐到我的手机端上。那具体这样的操作怎么做呢?
这种操作它是使用深度学习的技术来做的,这里叫双塔模型,一个塔是从用户开始进行特征的表示,经过神经网络的学习,最终学到一个用户的表示向量。还有一个塔呢,是广告特征,它也是刚才我们所说的,把广告进行编码,进行特征表示,通过神经网络的计算,最终得到一个广告的表示向量。那我们得到两个向量之后要干什么?其实我们希望它有交互,就是我想看这个用户啊他到底喜不喜欢当前推荐的这条信息,于是我们构建了第三个神经网络,通过这个神经网络最终来预测用户是否会点击这个广告,也就是广告点击率。
它是什么意思呢?比如说我给一个0.83,它的意思是这个用户有83%的可能性会点击这个广告。所以这里的神经网络是我们之前课上学到的多层感知机,这里老师呢带大家重新复习一下。我手上的这个样例就是一个典型的多层感知机,这里面的每一个点都代表着一个计算的神经元,每一根线呢上面都有一个参数,所以这样的一个多层感知机可以看作是一个函数,我们在做这个函数的时候采用的是两步的方式,第一步是训练,也就是我希望通过很多历史数据去训练感知机上的每一个参数,使得它能够更好地完成预测功能。那么第二步呢,当我训练好了这个感知机之后,我就可以用来去做预测了,让我们接下来详细看一看多层感知机的具体流程。
训练是什么意思?训练的意思是指我希望给这个感知机一个已知的内容,让它能够用于计算,比如说当我给这个感知机输入一些已知的信息,它进行传输的时候,它就可以运算出最终的结果。但是这个结果跟我们的已知可能会有一些差距,所以我还需要用反向的方式来调整这个感知机上的权重,使得它最终能够合适地运算。那么我们具体展开这个感知机中的一个局部,来看一看它具体是什么样子。
感知机到底是什么,它是每一个边上都有一个权重,然后我们在计算这个权重的时候,模型最终给我了一个输出预测概率,就是我们的用户有92%的可能性会点击这个广告。那么实际上这一个信息是已知的,也就是它有一个真实标签,用户是点击过这个广告的,那我通过真实标签会反向地去调整我神经网络上的参数,使得这些参数的运算能够更适合广告推荐的业务。所以这一步呢,就叫训练。训练是用已知来做感知机函数训练的,那么当训练结束之后,我就可以预测了,也就是我希望最终能够让这个感知机的函数帮我去预判一个未知的信息来的时候,我们的用户会不会点击它。
所以这次我们就完成了广告推荐的全链路,我们来看一下它具体是怎么做:首先我用物品表示的方式将每一个我们人类认知的物品转化成了向量,接下来呢,我通过相似度运算来以策略召回的方式去选择更相似的广告,然后我用了神经网络也就是深度学习的方式去训练了一个函数,使得这个函数可以通过海量的参数帮助我去更好地预测出到底广告是不是用户喜欢的,我是不是应该推荐这条广告给用户。所以这样的一套技术到底有什么样的应用呢?我们首先来看一看现在线上的工程师们是怎么做的,工程师们总是希望能够更快更准地推荐广告,所以在目前的业界对排序阶段的要求它已经提高到了20-30毫秒,这样的话我就可以把原来的排序变成粗排和精排,使得我们以三步的方式来进行广告的推荐。
那么在黑茶的推荐方面,目前我们的国家也采用了很多不同的策略,比如说抖音的三农扶持,拼多多的农云行动,都是用来帮助中小农户进行推荐的。那推荐的策略是什么呢?我们可以细分用户群体,并且在合适的时段进行推荐。比如说右边的数据统计啊,我们发现大家比较喜欢在午餐或者是晚餐的时候去刷手机,所以在这个位置去做一些推荐的话,可能会有更好的效果。推荐也有很多前沿的应用,比如说刚才我们介绍用相似度可以计算出物品之间的一些相似性,但是如果有一个新用户进入到了平台上,我们没有相似性怎么办呢?我们就可以用神经网络去基于其他用户的历史信息给出推荐。
这个技术呢,也是我今年在数据挖掘顶级会议上所发表的成果,我们的团队也跟wx的看一看进行过合作,当你点击wx看一看的时候哎你会发现有很多推荐的视频,它不仅是你感兴趣的,可能也是你的好友感兴趣的内容。我们有时候也会在想啊,如果我想更精准地推荐要怎么办呢?其实我可以完善个人信息和增加用户的互动。但是如果我有时候觉得这些推荐可能打扰到了我的生活应该怎么办呢?其实如果我们减少推荐的话,可以关闭软件的一些使用权限,然后呢让我们的这些软件能够以更合适的方式给大家一些推荐。
所以总结一下,我们今天主要学习了计算广告。计算广告是通过大数据和推荐算法的技术来为我们合适地推荐信息流,我们从海量的广告库通过召回和排序两步,最终将最合适的广告推荐给了你们。那今天回家呢,请同学们也化身成为一个算法工程师,以一个新用户的身份,选择一个你感兴趣的APP,尝试一下广告的魅力。以上就是今天的内容,谢谢。