马斯克如之前承诺的一样,在今天把 Twitter 的推荐算法开源在了 GitHub 上。
1 天不到已经获得接近 3 万 GitHub Star,堪称 GitHub 历史上增长最野蛮的开源项目。
在正式开源前,马斯克也已经预热了很久,所以整个社交网络都很关注,尤其是技术圈,代码搜索平台 Sourcegraph 还安排了现场直播
那接下来我们就来快速八一下其中最核心的推荐算法排序加权规则吧。
代码在 https://github.com/twitter/the-algorithm/blob/main/cr-mixer/server/src/main/scala/com/twitter/cr_mixer/similarity_engine/EarlybirdTensorflowBasedSimilarityEngine.scala#L142
我们一行行看
retweetCountParams,转发 20 倍权重。
replyCountParams,回复 1 倍权重,所以 20 条回复效果等同于 1 条转发。
reputationParams,声望值 0.2 倍权重,大 V 的倾斜还好。
luceneScoreParams,Lucene 打分机制 2 倍权重。Lucene 是用来发现相关性的搜索引擎,所以可以理解成内容相关性有 2 倍权重。
textScoreParams,纯文字的话,0.18 倍权重。
urlParams,带了 URL,2 倍权重。
isReplyParams,回复别人的,1 倍权重。
favCountParams,点赞数,30 倍权重!!!
langEnglishUIBoost,英文界面,0.5 倍权重。
langEnglishTweetBoost,用英文发推,0.2 倍权重。
langDefaultBoost,默认语言权重,0.02 倍权重。
unknownLanguageBoost,未知语言权重,0.05 倍权重。语言这几个虽然都不到一倍,算是打压的,我理解可能是相对逻辑,英语相对还是受待见一点,不明语言小语种反而比默认语言要稍好一点,也不知道默认语言是什么意思,不过权重太小,感觉无足轻重。
offensiveBoost,冒犯性内容,0.1 倍权重,显然要被打压。
inTrustedCircleBoost,信任圈的内容,2 倍权重。玩社交,就是要混圈子呀。
multipleHashtagsOrTrendsBoost,加多个 Tag,0.6 倍权重。看来多个 Tag 不是个好主意,占用字数,吃力不讨好。
inDirectFollowBoost,我理解是如果因为某人看到这条推而关注了作者的话,有 4 倍权重。
tweetHasTrendBoost,蹭热点也有点用,1.1 倍权重。
selfTweetBoost,自己转发,2 倍权重。为自己代言也是有用的。
tweetHasImageUrlBoost,带图片,2 倍权重。
tweetHasVideoUrlBoost,带视频,2 倍权重。
简单总结,Twitter 的一键三连是点赞 (30x),转发 (20x),关注 (4x)
微信里一篇公众号文章比较重要的信号,除了点赞,转发,关注外,应该还有特色的「打赏」和「在看」。
一直以来,推荐排名算法在公司里都是最核心的机密。之前在 Google 的时候,自己也是能访问整个公司几乎所有的代码,说几乎就因为最核心的搜索排名算法是看不到的。或许马斯克这么不按套路出牌的一搞,倒是能推动整个行业都逐渐开源自己的推荐排名算法呢。
作者:天舟
本文为 @ 云游格 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。