作者:karrysong,腾讯 CDG 应用研究员
通过大量使用 Embedding 的策略,对 JOOX 的推荐系统进行了一次重构。
JOOX 是一个在国内低调,在海外尤其是东南亚地区却可以和 Spotify、YouTube Music 等知名大厂形成市场份额五五开的音乐播放产品。
为了进一步提高用户体验,让用户能够更轻松的享受音乐。我们通过大量使用 Embedding 的策略,对 JOOX 的推荐系统进行了一次重构。

Why All In Embedding
JOOX 的音乐推荐场景和我们熟知的 QQ 音乐等比较相似,主要包含 Daily Music、动态歌单、专辑、歌手等场景的推荐。不同的是涉及到的国家地区比较多,会遇到语言、风俗习惯、品味差异等在国内极少遇到的问题。与此同时,我们还面临着计算资源紧张、数据存储压力大、GPU 资源匮乏等不可抗力因素的制约。
上述的种种问题就需要我们能够建立一套不怎么耗费资源且高效的系统进行内容推荐,而且还要保证结果的可控性。特别是面对马来西亚、泰国等风俗习惯特殊的国家,错误的推荐内容会让他们认为是产品 Bug。同时,在音乐等内容推荐的场景中,我们其实是很难给计算机找到一个合适的表达,告诉他这是什么并让他理解这个内容的含义,除非你愿意人工的给每个音乐和用户打上各种标签。
Embedding 向量作为一种复杂特征的降维表达,在 ML 中具有非常重要的意义,说他是最强的Info Representation也不为过。除了可以直接用于 CTR 模型的特征外也可以通过 Embedding 的结果计算 Item 或者 User 之间相似度进行推荐。同时,Embedding 不需要太过实时的学习,一次学习,受用一周,极大的减少了资源的消耗。而且当前训练好的模型可以作为下次训练的 Pre Trained 模型,等于是一个可持续发展的模型,通