最近身边发生了不少事情,有好的也有不好的。今年因为疫情关系国家甚至全球的经济走势和政策也发生了不少改变,年初因为刚需选择在这个节点买了房,也不知道是好还是坏。作为众多普通人中的一员,我无力改变这个世界的现状,我只能选择去适应当前的大环境。

身处在这繁杂的世界,每天面对着各种各样的信息,我们都是有选择性的浏览。现在知乎啊头条啊抖音什么的,获取信息的平台特别多,各大平台都是根据我们的浏览记录分析我们的喜好,然后推荐相似的内容到我们面前,然后我们再挑喜欢的进行浏览,平台再记录,然后继续推相似内容。久而久之,平台甚至比我自己都更了解我们的兴趣爱好是什么。

那么我不禁有个疑问,平台通过我的浏览记录到低知道了我的哪些秘密。想要了解这个问题,我们先要了解各大平台的推荐算法是怎样分析我们的喜好的。

这个过程就是对用户进行画像,简单来说就是打标签,拿知乎来讲,当你点击了一个程序员相关的话题,那就意味着你可能倾向于程序员相关的内容,系统首先给你打上一个程序员的标签。这时候我又点击了一个MacBook Pro相关的内容,那么会再给你打上一个电脑数码的标签。而且每当你点击一次同类标签,那么该标签的权重会增加。当你下次刷新页面时,系统优先推荐权重较高的那几种类型的信息到你面前。

不仅如此,系统还会根据你对内容的浏览时长来对标签的权重进行调整,如果你点开某个标签,3秒后你就关闭了,那可能你不是太喜欢点开的内容。相反如果你在这个页面停留了较长时间,甚至通过底部的推荐列表又浏览了相似的内容,那你很可能对该类信息比较感兴趣,权重增加。

随着你使用时长的增加,系统对你的喜好判断的越来越准,给你的用户画像完成度越来越高。但仅仅是这样还不够,目前系统只是知道你浏览过的内容和你所喜欢的内容,系统还要猜测你尚未浏览过但可能会感兴趣的内容。这个如何实现呢?通过其他用户的画像。

还是拿程序员这个标签来说,在你的画像上,你可能已经打上了很多标签了,程序员只是其中之一。这对别人来说也是一样,也有许许多多其他用户的画像中有程序员这个标签。其中有一个程序员画像不仅有电脑数码标签,还有一个房价的标签,但是这个标签在你的用户画像中是没有的。那么系统就会猜想,既然你们俩都有程序员标签,他关注了房价这个话题,那你会不会对房价这个话题也感兴趣呢?于是乎,就在你的推荐列表里,增加少量房价相关的话题内容,这时候如果你点击并且认真浏览了这条内容,那系统就猜对了,你确实对房价话题感兴趣,打上标签,增加权重。

如此,系统就实现了通过不同用户的画像,进行交叉匹配,猜测不同用户的兴趣爱好,一旦猜测准确还能记录不同标签之间的关联关系。比如有程序员标签的人可能都对电脑数码感兴趣,对裙子感兴趣的人可能都对口红感兴趣等等。这个过程,相当于就是机器学习,随着收集到的数据量的增加,系统可能比你自己都要了解你,知道你想看什么,想要什么。

手动狗头:以上分析内容为我个人对数据平台的用户画像算法的一个猜想,属于一个超级精简的业务模型,一个简易实现方案,实际业务过程肯定要比上面这个复杂太多了,以上内容仅代表个人观点。

既然如此,那么我想通过知乎,看看知乎对我的用户画像是怎样的一个分布。目前的想法如下:

知乎首页是需要登录的,登陆之后,首页列表会根据用户画像推送相应的内容给我。那么我可以对知乎的推荐列表进行分析,反推出知乎对我具体打了哪些标签,以及他们的权重。既然需要分析,数据肯定要有,而且量要足够大才行。再次狗头:这些想法通过知乎为我推荐的内容进行统计分析,反推其对我的虚拟用户画像,不代表知乎平台真实的数据算法和推送逻辑。

人工肯定不行的,我需要用爬虫进行爬取,受「爬虫写得好,牢饭吃到饱」的理论指导,我的爬虫必须足够简洁且做好限制,绝对不能有多线程、并发的情况出现。

数据爬取需要一段时间,每天抓一点,多跑一段时间拿到足量的数据后再做汇总分析。最后声明,我所抓取的数据,都是知乎公开的内容,保存和分析的也都是标题信息,不会对内容部分和用户信息进行读取、保存或处理。

Last modification:June 29th, 2020 at 05:58 pm
If you think my article is useful to you, please feel free to appreciate