重点问题汇总

问题一:有人知道这个embedding向量是如何训练出来的么?

赛题中没有指定用的是什么方式得到的,最好还是不要直接就确定是哪一种方法,建议先去查一下目前有哪些方法可以将文章变成向量的方法,需要注意的是word2vec是将词变成序列的形式,通过训练最终得到词的向量,那么一篇文章这么多词如何表示成一个文章向量呢?求平均?加权平均?其实是有专门的做法的感兴趣的可以去进一步了解一下,做一个详细的笔记出来给其他学习者一起学习呀! :grinning:

补充一下:也可以通过用户点击的文章id构成的序列直接训练得到文章的embedding,但是这里的embedding考虑了时序的信息或者说是文章的先后顺序,而直接通过原始文章得到的embedding,更多的应该是文章的内容信息。

问题二:使用天池的DSW如何加载数据集

这里天池其实是有详细的图文教程的,我这里简单的说一下
image

关联完数据之后,我这边尝试的路径是:

问题三:关键包的版本信息

image

问题四: usercf代码中相似度计算,分子引入活跃度的问题讨论

image


如意:这种的一般是看自己如何去理解这个业务,不同的人可能有不同的认知,对这个任务的理解也是不一样的。这里其实分母部分是对活跃商品进行了惩罚,考虑到有些商品交互的用户太多可能是比较普遍的东西,比如新华字典,中国孩子人手一本,但是通过买新华字典是来度量两个用户是否相似是不太合理的,所以需要惩罚活跃商品,分子部分是考虑到用户之间的活跃度,大概的意思就是如果两个用户活跃度差不多,那么其实两个用户按照这种协同过滤的方式得到的相似度是比较靠谱的,但是如果两个用户一个非常活跃一个非常不活跃,那么是不是可以是用平均数来综合一下呢,让太活跃的变得不是过分的活跃,让太不活跃的稍微活跃一些,使得有一些可比性。

问题五:把召回的结果集直接排序不就可以了吗,task4的制作特征变成有监督是补加了另外一种推荐方法吗?

image
答: 虽然是可以把召回的结果通过score值直接排序, 但这个效果往往是不好的, 因为我们召回的时候仅仅使用了非常简单的策略,无论是基于用户还是文章的相似度, 这个只是能帮助我们缩减一下待推荐文章的规模(比如一开始我们面对的36万多篇文章给用户推荐,通过用户相似或者文章相似,对每个用户,我们或许可以得到一个几十篇的候选文章规模),这是召回阶段的一个主要目的,但这时候我们是没法做到比较精准的预测推荐的, 很大的原因就是召回策略太简单,仅仅是用户或者文章的相似性,并没有考虑到具体的用户或者文章自身的特点,比如用户的各种习惯,爱好,文章的具体特点等,所以往往说这是一个粗排的过程,这个过程中我们是没有用到监督的(即没有一个标准来帮助我们评价我们的结果好不好且如何调整才能更好)。基于相似性,把几万的那种文章规模缩减到了几十。 后面的排序, 是要从这几十规模的文章中选择出最有可能用户感兴趣的几篇文章出来推荐给用户,这是一个精排的过程, 这时候我们就需要考虑到更多的信息来更加准确的刻画用户和文章, 转成监督学习也往往是比较常用的策略。 因为我们既然把用户和文章用更多的信息刻画了出来, 而根据日志记录就能够发现什么样的用户往往喜欢什么样的文章, 所以在具体推荐的时候,我们就可以预测一下,对于某篇文章,某用户感兴趣的一个概率了。 如果概率大,我们就推荐给他。 而预测概率的这个任务往往是交给一些训练好的模型来做了,这往往是一个监督学习的过程了(即有标签能告诉模型预测的结果好坏,且能通过一些策略,改进模型让其表现更好)。 当然预测概率也只是一种监督学习的方式, 还有可能不预测概率,直接去预测最终的排序结果等。 不同的学习方式,对应了不同的模型。 这大致上就是后面这块的逻辑了。

1赞