本周二,美国当选总统唐纳德·J·特朗普签署行政命令,允许TikTok在美国司法部关闭后获得75 天的缓冲,这让 TikTok 的用户们大为高兴。
但在签署协议过程中,特朗普明确表示了自己的想法意图:TikTok 必须以某种美国实体的方式,将其一半股份出售给美国,才能继续在美国运营。
这位具有强大生意头脑的总统随后补充说:“每个有钱人都打电话给我询问 TikTok 的事情。”
不过,选择一半可能有点棘手。你要确保你选择了正确的一半。否则,你最终得到的将是一个空壳媒体服务,就像之前的Friendster一样。
Tiktok目前在美国坐拥约 1.7 亿用户,但是这些用户很快就会消失。你想要的是让用户继续登录的部分,最有价值的部分是运行推荐服务的算法。
TikTok 庞大的用户群证明了其“令人上瘾”的特性。保持用户参与的关键是什么?就是强大的算法。
这些算法驱动推荐系统,不断向用户提供符合他们兴趣的内容流。
苏黎世大学研究人员 Maximilian Boeker 和 Aleksandra Urman 在他们的研究“ TikTok 个性化因素的实证研究”中指出的那样,该平台的推荐系统可以说是其最重要的成功驱动力。
论文地址:
https://www.researchgate.net/publication/358233121_An_Empirical_Investigation_of_Personalization_Factors_on_TikTok
TikTok及其母公司、总部位于北京的字节跳动一直对向用户提供内容的算法的设计与运行方式并没有那么透明。
2013年10月张一鸣讲解他的个性化推荐算法
那些愿意深入研究字节跳动工程师和其他研究人员的论文的人可能会发现一些关于 TikTok或今日头条如何让用户回头的线索。
人们使用 TikTok 的频率越高,“算法就越准确”。
— 赵正伟,中山大学
像Pytorch和TensorFlow这样的深度学习框架是为通用用途而构建的,但并不适合在线推荐的紧急生产需求。Tensorflow 将训练与推理分开,从而将模型与用户的最新输入隔离开来。因此,任何有竞争力的系统设计都必须构建各种变通方法,以将这些 批处理框架 塞入实时系统。
而 Monolith 对所有任务都使用单一模型,并通过在线训练整合实时反馈。这使得系统能够快速学习并适应用户不断变化的兴趣。
这篇论文描述了如何使用Kafka记录用户的操作,以及如何在并行操作中记录特征。Apache Flink作业“将特征与用户操作的标签连接起来,并生成训练示例,然后将其写入 Kafka 队列。在线训练和批量训练都会使用训练示例队列。”
Monolith 架构强调更快的在线训练。
“Doomscrolling” 和表格大小
推荐系统面临的另一个挑战是处理“稀疏特征”和“概念漂移”。稀疏特征意味着用户只对一小部分内容感兴趣,而概念漂移是指用户在浏览无尽的视频流时,他们的兴趣往往会随着时间而改变。
论文指出:“对一个主题感兴趣的同一个用户可能每一分钟都会转变他们的热情。”
如果将所有内容都放入嵌入表中,那么它将太大而无法放入内存中。而传统的固定大小模型不易于扩大,随着新用户的加入,它们必须不断扩大。
Monolith 推荐引擎通过以下方式解决这些问题:
将用户反馈快速纳入培训过程。
通过“无冲突哈希表”和奇特的功能驱逐机制保持数据表的可管理。
满足这些目标可确保系统能够跟上用户不断变化的偏好,而不会被大量数据所淹没。
为了将大量稀疏特征混合到计算机内存中,研究人员提倡使用Cuckoo Hashmap(https://en.wikipedia.org/wiki/Cuckoo_hashing)设计,以最大限度地减少碰撞或两个键无意中占据同一空间。
为了进一步减少内存使用量,很少使用的 ID 会被删除。
作者:跨年的大雄
本文为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。