15分钟搞懂 推荐算法怎么知道你爱看什么? #ai新星 #算法背后的秘密 #是算法也是电子搭子 #抖音算法它开窍了 #抖音算法也是被我拿捏住了

  • 林粒粒呀
  • 4天前

十五分钟搞懂推荐算法,怎么知道你爱看什么,你有没有觉得短视频平台好像有读心术。点赞完一条猫猫视频,狗子很快就上门了。刚说完旅行攻略,民宿测评马上就推过来了,一条一条让人刷到停不下来。有时甚至让人怀疑他是不是偷听。我们其实推荐算法既没偷听,也没通灵,他只是太会计。算了,今天我们来了解一下推荐算法的前世今生,要理解他为什么能懂你,首先得明白我们为什么需要推断算法。你可能没意识到互联网早就被信息淹没了。光是在某音每天就会新增上亿条内容,而一个普通用户一天最多也就刷几百条。也就是说我们每天实际能看到的只占全部内容的不到十万分之一。要知道考上清北的概率是万分之三。这样算下来,一条短视频能被你看到的概率比清北录取率还要低个几十倍。所以在信息过剩的世界里,人的注意力才是最稀缺的资源。但同时,靠人工一挑选,远远跟不上内容爆炸的节奏。于是算法登场了,他不再依赖人去找内容,而是反过来让内容主动找人推荐。算法的使命是在无穷的信息海洋里,精准挑出你最有可能给出注意力的那些推荐。算法的起点叫协同过滤。它的特点是,即使算法完全不懂,内容,也能推荐基于用户的协同过滤。背后的逻辑很简单,就是仁义群分。如果两个人过去喜欢的东西很相似,但他们未来喜欢的东西也很可能相似。举个例子,假设图书平台上有四本书,三体沙丘东方快车谋杀案和傲慢与偏见。用户a b c d在平台上留下他们的评分或行为反馈算法,就把这些行为整理成一个巨大的表格行式用户劣势书点赞记作一踩即作负一,没看过记作零。现在系统要决定要不要向用户d推荐傲慢与偏见。换句话说,他要预测用户d对这本书的偏好程度,算法不会直接去读傲慢与偏见的剧情,他只看谁的行为模式和用户d相似。每个用户在这张表里其实都对应一串数字,我们叫它用户向量。用户d还没有多傲慢与偏见。嗯,那一项是未知,我们暂时无法它算进向量。所以用户d的兴趣向量是一一零。那算法怎么判断谁和d兴趣相似呢?这时候啊可以用到一个非常常见的数学工具,余弦相似度a和b是两个用户的兴趣向量,计算出来它们之间的夹角越小,相似度就越高。如果你不理解这个公式也没关系。我们可以想象一下,每个用户对不同书籍的兴趣,就像朝不同方向伸出的箭头。你对某本书点赞,箭头就朝那个方向靠,你给某本书点彩,箭头就往相反方向去。当两个用户的箭头方向几乎重合时,就说明他们的兴趣很接近。这就是夹角小,相似度高的情况。反之,如果一个人热爱科幻,另一个痛恨科,但他们的箭头几乎反向夹角大,相似度自然就低。我们来算一算,用户d的向量是一一零,用户a的向量是一一零计算出来,两者的相似度为一,完美匹配,兴趣完全一致。再看和用户b计算出来是零点八二,说明b和d也挺像。而和用户c计算出来的相似度就相对较低了,说明c的口味和d差点意思。接下来假设系统啊会选出top二相似用户,也就是a和b然后看他们对欧曼与偏见的评价。a不喜欢,b没看,但注意了并不是所有人的意见都一样重要。相似度越高的人,意见的权重就越大。就像你在选电影时,朋友甲跟你的口味几乎一模一样。那他的推荐你会更信。而朋友乙平时爱看你完全不感兴趣的片子,即使他说挺好看,你也未必信。所以系统会做一个加权平均,把相似度当做权重,给更相似的用户更高的影响力。那带入刚才的数据a对傲慢与偏见的评分是负一,b是零,而相似度分别是一和零点八二。那么预测值计算出来是负零点五五,结果是负数。也就是说用户低可能不喜欢这本书,真实系统就会判断不把傲慢与偏见推荐给他。但问题来了,短视频平台上的用户数和内容数往往是天文数字。假设有上亿用户,上亿内容,那这个兴趣矩阵会变成一个上亿乘以上亿的巨大表格,根本存不下,也算不动。更完蛋的是,这张表格几乎是空的,因为没人能看完上一条视频,结果就是整张矩阵里百分之九十九十点九九的格子里都没有值。面对表态,大表太空算太慢,这三重问题,推荐算法不得不进化出新的做法,矩阵,分解他的思路是与其死寂每个格子的分数,不如学会总结出背后的规律。换句话说啊,算法不再去记你对每条视频的打分,而是去概括你在不同口味维度上的偏好强弱。我们可以这么理解,算法发现虽然每个人看过的内容不一样,但兴趣模式啊是有限的。比如还是以书籍为例子。如果一个用户爱看三t沙丘,银河帝国算法其实不需要知道每本书的名字,只要知道他在科幻这个维度上得分很高就够了。同样另一个人喜欢东方快车谋杀案消失,单人说明他在悬疑维度上得分很高。换句话说,每个人的兴趣都可看作是在不同维度上的强弱组合矩阵分解做的事情就是让算法自己学出这些隐藏的兴趣维度,并把人和内容都放进同一个数学空间里。那这些数字是怎么来的呢?它不是人工设的,而是算法自己学出来的。一开始算法会随机给每个用户和每本书分配一组数字,然后通过不断预测对比真实结果。在调整参数的过程啊优化下去。但总之有了这些向量之后啊,算法就能做一件事情。把人和书都放在同一个兴趣空间里。然后算法要做的就是看看这两根兴趣箭头方向是否一致,强度是否匹配。在数学上,这对应两个向量的点击来预测用户u对内容i的偏好。点击就是在计算人和内容在兴趣空间中的投影重合度。如果两个向量方向接近,长度都大,投影就大,也就是更匹配。比如说要计算用户a对三体和傲慢与偏见的预测兴趣。用户a的兴趣向量是这样的,三体的特征向量是这样的。那么两者的点击计算出来是零点九七,预测得分接近一。说明胡几乎肯定喜欢三d再算傲慢与偏见,分数呢明显更低。说明a对这本书可能兴趣不大。所以啊不管你有没有看过那条内容,只要你的兴趣项链靠近它,它就会出现在你的凸件里。另外我们需要知道是这些科幻悬疑爱情的维度,也不是人工标出来的算法。其实并不知道科幻这俩字儿,他只是在统计谁和谁的兴趣变化规律相似。如果一群人总是同时喜欢三t沙丘、银河帝国,那这些内容啊自然会聚到同一个兴趣方向上。那这个方向啊本质上是一个隐含特征,我们可以给它起名叫科幻。但对算法来说,这个维一度只是一个数字标签。关心的不是他叫什么,而是他能不能更好的预测你喜欢什么。但协同过滤和矩阵分解也有一些天然的盲区。他只看谁喜欢了什么,但不知道为什么喜欢,也没办法同时利用别的信息,比如用户的年龄、性别、地区、书籍的类别简介、作者风格,当前的时间、设备、场景等等。于是研究者开始思考,如果我们能把这些额外的信息也输入进来,是不是就能让模型更懂用户。比如我们不仅告诉系统用户a看过三体,还要告诉他用户a二十八岁,男,来自长沙,三体是科幻小说标签,有宇宙、外星文明哲学。当前时间是晚十一点,用户常在制售看书。那针对这方面,业界最早做的尝试是逻辑回归模型。它的核心思想其实很简单,把我们认为相关的这些标签,比如男性,二十八岁来自长沙等等,都换成数字。然后让算法自己去学习每个标签的重要程度,别被这个公式吓到。啊,我们来把它翻译成人话。x二呢表示每一个特征,比如x一表示是否是男性,是的话值为一,不是的话值为零。x二表示用户年龄是否在十八到三十五岁,是的话值为一,不是的话值为零。x三表示,用户最近一周平均每天阅读时长单位十分钟等等。w i表示,算法学到的权重也就是每个特征的重要性。比如如果w e的权重很高,说明性别对是否喜欢三体的影响比较大。如果w二权重很低,说明年龄对喜好影响不大。w零呢是一个基础偏好,代表在没有任何特征时的默认值,而就是层的sigma表示sigmoid的的函数公式长,这样我们不需要理解它,只需要知道sigi mod函数能把任何数字转成零到一之间的数值。那么我们可以把结果直接理解为是用户喜欢这本书的概率。比如我们想预测用户你会不会喜欢三t假设模型经过训练后学到的参数是这样的。而用户a的特征是这样的,那么代入到逻辑回归功之后,我们计算出来的值是零点八二。这意味着模型预测这个用户啊有百分之八十二的概率喜欢三t虽然可以看到这种计算逻辑非常直接,每个特征单独印象,结果最后一起加权计算后,再压缩到零到一的范围内。但同时,这也是逻辑回归的局限所在,它只能独立考虑每一个特征的作用,却不会自动步骤特征之间的组合关系。二零一六年之后,随着一大批优秀的深度学习推荐模型的推出,推荐系统迎来了技术拐点。深度学习的突破点在于它能自动提取特征逻辑回归,需要人工位规则。比如我们得提前告诉他,要看用户性别、年龄段平均阅读时长所在城市,但深度学习完全不一样。他就像一个会自己总结规律的学生,我们不需要告诉他,看性别,看年龄,他自己会从大量数据里找到哪些特征,重要,哪些组合更有用。除了能自动。提取特征,深度学习。还有一个更厉害的能力,它能捕捉特征之间的非线性组合。逻辑回归的世界是线性的。他看特征的方式就是在做加法,比如男性加一点,年轻加一点,看过科幻再加一点,最后分数高就推荐分数低就不推荐。但有时候啊兴趣并不是线性叠加的。比如男性和看过科幻的组合,可能对兴趣影响更大,而深度学习可以突破这方面局限,让特征之间的关系不再是线性加法,而是能拐弯,能弯折,这背后靠的是神经网络的多层结构。神经网络可以分为三个主要部分,输入层、隐藏层、输出层在输入层算法会先收集各种特征信息,比如用户的性别、年龄段、阅读时长、书籍的类型、作者出版时间等。这些特征都会被转化为一串数字作为模型的输入信号,接着进入隐藏层。这里是一层层加工站,每一层都会在上一层结果的基础上,通过加权计算和非线性变换去发现更复杂的模式。如果我们把逻辑回归想象成一个只会画直线的模型,那隐藏层里的激活函数能让模型不再只画直线,而是能弯曲出复杂曲线。在第一层隐藏层神经元可能只关注简单的单一特征。比如一个神经元学会识别年轻,另一个神经元学会识别男性,还有一个神经元学会识别。长时间阅读。到了第二层隐藏层,这些特征就会开始被组合。比如年轻加男性,这倒是年薪男性群体。长时间阅读加长度科幻识别到是重度科幻读者在第三层隐藏层模型会进一步抽象化。比如年轻男性加众多科幻读者识别为三体核心目标用户,这就是多层神经网络的工作方式。上一层的输出会成为下一层的输入,每一层都在重新组合特征,层数越多,模型能捕捉的模式就越复杂。最后来到输出层,所有层级的信息,被综合计算模型会输出一个预测结果。比如这本书被推荐给用户a后,它有零点八七的概率会电机。不过虽然深度学习擅长在数据里发现潜在的模式,但有时啊对于一些显而易见重复出现的规律,它反而没那么敏感。比如假设在我们的图书推荐系统中,有个非常直白的事实是,几乎所有喜欢santy的人也都喜欢球状闪电。这在历史数据里频繁出现,几乎是铁律可深度学习的神经网络。因为曾层层抽象,可能更倾向于去理解为什么人会喜欢科幻,而不是直接记住。喜欢a的人往往也喜欢。于是,谷歌在二零一六年提出了wide and deep模型,它至今依然是某音短视频平台推荐算法主力模型之一。wide and deep, 顾名思义啊,由两部分组成,y的部分负责记忆,deep部分负责理解y的部分是一层比较浅的模型,负责记忆。过去发生过的事情。举个例子,算法注意到看完萌宠合集视频的人也会点赞狗狗搞笑集锦,或者爱看美食的人,也经常收藏旅行攻略。那么只要用户的行为和这些组合匹配外的部分,就能立刻给出一个高分,这就是算法的记忆能力。他直接学习历史数据中哪些特征经常一起出现,然后下次再遇到类似场景就能立刻反映出来。但光靠记忆算法又有盲区,他只能在见过的模式里找规律,这时候就需要第一部分登场了,并不是由多层神经网络组成的深度思考模块。他不是去记具体规则,而是去理解特征之间更复杂的潜在关系。也就是说,他不只是看谁和谁经常一起出现,而是去推理什么样的组合可能会带来新的兴趣。那么即使某个视频是新发布的,没什么人看过,这部部分呢,也能通过特征相似性判断它可能适合谁。比如他可能学出这样的规律,喜欢快捷的剪辑加搞笑。b g m加深夜用手机的用户更容易完整看完娱乐类视频,这种能力叫泛化,意思是算法不仅能记住旧经验,还能举一反三。最后y的部分和d部分会一起给出结果。于是短视频平台的推荐系统能同时做到准确和新奇,既命中你熟悉的兴趣点,也给你推到没看过但意外喜欢的内容。所以呢在这个内容爆炸的时代,推荐算法不只是让人停留更久,更重要的是让人更容易遇到真正值得停留的内容。当然它并不完美,也需要不断被优化和引导。但不可否认的是,推荐系统已经让我们与信息之间的关系,从主动去找,变成了被理解,让喜欢学习的人更容易刷到高质量的知识。视频。热爱音乐的人能发现小众但动人的独立创作。爱旅行的人,总能在下一条视频里看到目的地的街景和烟火气。如果这个视频对你有帮助,也点个赞吧,让推荐算法看到你的喜欢。我们下个视频见。

🔥 热门活动

添加小助手微信「yh8000m」,领取免费会员