作者:karrysong,腾讯 CDG 应用研究员
通过大量使用 Embedding 的策略,对 JOOX 的推荐系统进行了一次重构。
JOOX 是一个在国内低调,在海外尤其是东南亚地区却可以和 Spotify、YouTube Music 等知名大厂形成市场份额五五开的音乐播放产品。
为了进一步提高用户体验,让用户能够更轻松的享受音乐。我们通过大量使用 Embedding 的策略,对 JOOX 的推荐系统进行了一次重构。
JOOX 的音乐推荐场景和我们熟知的 QQ 音乐等比较相似,主要包含 Daily Music、动态歌单、专辑、歌手等场景的推荐。不同的是涉及到的国家地区比较多,会遇到语言、风俗习惯、品味差异等在国内极少遇到的问题。与此同时,我们还面临着计算资源紧张、数据存储压力大、GPU 资源匮乏等不可抗力因素的制约。
上述的种种问题就需要我们能够建立一套不怎么耗费资源且高效的系统进行内容推荐,而且还要保证结果的可控性。特别是面对马来西亚、泰国等风俗习惯特殊的国家,错误的推荐内容会让他们认为是产品 Bug。同时,在音乐等内容推荐的场景中,我们其实是很难给计算机找到一个合适的表达,告诉他这是什么并让他理解这个内容的含义,除非你愿意人工的给每个音乐和用户打上各种标签。
Embedding 向量作为一种复杂特征的降维表达,在 ML 中具有非常重要的意义,说他是最强的Info Representation也不为过。除了可以直接用于 CTR 模型的特征外也可以通过 Embedding 的结果计算 Item 或者 User 之间相似度进行推荐。同时,Embedding 不需要太过实时的学习,一次学习,受用一周,极大的减少了资源的消耗。而且当前训练好的模型可以作为下次训练的 Pre Trained 模型,等于是一个可持续发展的模型,通过不断的构造新的“语料”,模型甚至可以和你的产品一起进行成长。
无论是什么 Based Embedding,都离不开下面几个核心的问题:
构建 Doc(训练样本)的方式----不同的 Doc 构建方式(样本收集)代表了 Embedding 不同的表达内容。
如何通过模型让 Vector学到东西----包含模型的选择“label”确定。
效果的评估----形如 Word2Vector 这种非监督的模型,效果的评估是非常重要的。
使用方式----不同的 Embedding 如何应用到合适的场景中。
下面的内容,也将主要围绕这几个方向介绍我们的策略。
推荐系统的核心就是寻找用户和内容之间的关系,因此我们的 Embedding 也主要分为这两大部分。不过基于不同的内容和场景,我们采用的 Embedding 的方式也不尽相同。
Word2Vector
Doc 的选择
Model and Train
评估
基于 CNN 的音频频谱特征提取
歌曲除了歌词和风格之类的特征外,还有音频信号所代表的音色、音调等信息,这些特征如果用 Vector 表示出来也是一个非常 powerful 的信息。
我们选择将音乐的音频信号转化为频谱,然后通过CNN做一个图片分类,Label 是一个 128 维的向量,代表这个音乐的音色信息。
我们将最终 softMax 输出的结果作为一种 Music 的表示。
NN Based
Music Average
Embedding 的建立对整个推荐系统来说是一个非常重要的环节,不仅可以用于召回源的构建,也可以作为 CTR 模型的特征,提高模型准确率。
User Interest Embedding
User Short Interest Embedding
User Dislike Embedding
目前我们采用的 Embedding 方式都是较为简单的 word2vector 或者 DNN 的方式,前期主要是为了高效的完成整个流程验证策略的可行性。后续也是我们现在正在做的,要通过一些更为高阶的方式构建 User 和 Item 的 Embedding,例如 Transform 和 Graph Embedding 的种种方式,进一步的提高 Embedding 的表征能力。
腾讯技术课直播预告:
4月28日(今天)晚上8点-9点