song2vec实际上是item2vec,是word2vec在推荐场景中的应用。就是用用户兴趣序列,去模拟自然语言处理中有前后逻辑关系的句子。
用户的兴趣序列
是根据用户行为来构建的,比如在音乐场景下,有不同的行为,播放,点赞,收藏,分享等。给不同的行为不同的权重。取一段时间内的行为来构建序列,比如长期兴趣序列和短期兴趣序列。最终得到的是一个用户兴趣偏好向量,按照偏好度排序的。
word2vec的数学原理。
word2vec 中的数学原理详解(四)基于 Hierarchical Softmax 的模型_皮果提的博客-CSDN博客
层次softMax
哈夫曼树。(大话数据结构,小象学院)
哈夫曼树是最小的带权路径二叉树。
建树过程:按照词频从小到大排序,然后先选最小的两个,小的为左节点,大的为右节点,建树,然后往上递归。
使用哈夫曼树的好处在于,即降低了计算量,而且由于按照词频构造的哈夫曼树,高频词可以较短时间内找到。
损失函数是 从根结点到叶子节点的几个2分类损失函数相乘。
负采样
为什么要做负采样 推荐系统(四)—— 负采样 - 知乎
按照词频做采样,词频高的更容易被训练到。
词典中的每个词在语料库中出现的频次有高有低,理论上来说,对于那些高频词,被选为负样本的概率较大,对于那些低频词,被选为负样本的概率较小。
基于这个基本事实,可以通过带权采样方法来实现。
有一种采样方法,也可以用于双塔:Alias采样算法
item2vec不能处理物品冷启动问题,但是可以加一些策略来拯救一下,比如说用同一分类下有embedding的物品的enbedding均值作为新物品的embedding
优化点:序列截断,如果偏差过大的话,就截断成2个序列。
优化点:graph embedding,图随机游走(阿里的一篇论文)
item2vec中两种不同的构建样本的方式
item2vec详解_bitcarmanlee的博客-CSDN博客_item2vec
抖音赛中是用时序序列,音乐上是用集合序列。
cbow 与 skip-gram的比较
用skip gram方法来训练,因为音乐场景长尾ID比较多。对生僻字的训练效果好。