feedback

意见

反馈

back-to-up

回到

顶部

让数据帮你找到属于自己的“忠实粉丝”| DT×NYCDSA

NYCDSA

程一祥   2018-06-12

层出不穷的音乐社区网站,打破了传统的媒体“造星方式”,越来越多的平民歌手通过社区网站上传和发表自己的音乐作品,来获取品味相投的粉丝。但平民歌手想要“火”,离不开科学的运营和管理。那么在这个围绕音乐构造的生态体系里,我们要如何帮助音乐人实现自己音乐梦想呢?

在现在很常见的各类音乐社区网站上,歌手们会上传和发布自己的作品,普通用户听歌同时也会进行很多互动,诸如保存、推荐、给音乐作品打分、评论,关注自己喜欢的歌手等。此外,他们还可以与其他社区成员交流互动,找到趣味相投的人。

我们要解决的问题,来自一家音乐领域的科技初创公司向我们提出的需求:在这个围绕音乐构建起来的生态系统里,如何搭建一套体系,来收集上面提到的各类用户行为数据?如何能更好地让广告主、音乐公司进行市场投放?或者更具体来说,对于一个特定的歌手,我们能找到他粉丝群体的KOL么?我们能否对其用户进行画像?哪些用户是最活跃的用户?

我们的一个主要挑战,是如何尽可能多的利用现有数据,并在提供洞见的同时保证算法的稳定以及可扩展性。

首先,我们需要明确用户的行为数据,以及相关变量。我们将所有可用的用户行为数据以不同的特征进行分组,从而完成一个“用户-歌手”评分(fan-score)。它准确地定义了一个特定用户与他关注的另一个用户或歌手之间的关系。在此基础上,可以得到一个社交网络图谱(social network graph)。

在描绘这个社交网络图谱之前,我们需要定义一些准备工作。

首先,为了评估一个用户的活跃度,我们将所有的用户行为考虑进内,同时也考虑一些分享和评论数据。其次,我们将特征变量进行一些预处理,对于每一个用户行为特征变量,我们都用打分的形式将其量化,分数区间从0到100。因为所有的特征变量都是不同的行为统计数据。我们将这些数据进行统一化处理,将标准统一成“每月几次”,便于我们之后对变量的控制。最后,时间维度的标准化完成后,我们发现一些变量的范围跨度明显高于同类数据,因此我们对这些数据进行了对数变换处理。

除此之外,我们还要对 fan-score 进行一些说明。

计算“用户-歌手”评分(fan-score)时,为了以后如果有更多行为特征数据时能够更加方便,我们将计算各个分数时用到的算法进行了统一,只是里面的一些参数会有些不同。

而且,“用户-歌手”评分(fan-score)不是积极性评分(Activeness score),前者是基于一个用户的听歌记录以及其他涉及歌手的行为记录,比如关注、评分等;而一后者则更多基于他的全网活动记录。

不过有了“用户-歌手”评分(fan-score)也并不能说明这个粉丝就是歌手的“真粉”,也有可能是水军或者偶尔随机到的观众。因此,我们要同时评估一个用户在其他歌手那里得到的 fan-score,如果他对很多歌手都显示出很高的 fan-score,那么他对这个特定的歌手的分数就要相应降低。

好了,了解了这些接下来就可以构建我们的社交关系网络了。

有了 fan-score,我们可以构建一个所有用户和歌手构成的社会网络,并进行分析。这里我们使用了Network X 的 python 包。我们构建了一个加权图(weighted graph),每一个边从一个用户指向一个歌手,而权重则代表对应的 fan-score。

我们对这个网络图谱作了各种分析,得到每个用户/歌手的影响力分数。具体来说,我们对4种影响力分数进行了测试:接近中心性( Closeness centrality);中介中心性(Betweenness centrality);Katz 中心性(即特征向量中心性的延展版本)以及Google 著名的佩奇排名(pagerank score)。

最终我们决定只用佩奇排名作为默认选项。它在测量不同节点的重要性/影响力的时候有很优秀的表现,下面是这个算法的示意图。

整个网络图的演示图如下。红色节点代表歌手,蓝色节点代表普通用户。边代表了用户和歌手之间的关注关系,黑色的箭头显示了关注的方向,即是谁关注了谁。

给定一个歌手,我们可以识别出他所有直接和非直接的粉丝(就是一个自我网络——ego network,歌手为中心节点)

最终结论

在完成上述所有用户评分和网络构建后,我们终于可以回答这个项目最初提出的问题。

  • 寻找一个歌手的最有影响力的粉丝

指定一个特定的歌手作为输入,我们可以从整个网络中找到他自己的粉丝群网络。

从全部网络的用户影响力评分结果中找到特定的用户的影响力分数,然后在一个歌手的自我网络中将这个分数整理并输出。这样有利于更好地调整其针对粉丝的市场营销活动。 

  • 找到一个歌手的最核心的“真粉”

基于那些与这个歌手的“真粉评分”(true-fan-score)不等于零的用户列表,进行筛选。

  • 找到最活跃用户

基于用户活跃度评分的加总做出筛选。

此外,我们的算法可扩展性很好,这为未来加入更多变量做好了准备。

一个未来可以探寻的方向是对那些不太火的歌手的处理方式。目前对于这些歌手,我们系统的推荐效果往往较差。事实上,我们可以寻找与他相似的但粉丝较多的歌手,然后做出针对性的推荐。另一个方向是开发一些功能来帮助提高普通用户的使用体验。

(本文编译自技术博客 Social Network Analysis with Scalable User Behavior Scores of a Music Website,仅代表作者观点。)

数据侠门派

本文由多人共同创作,他们是Hua Yang,Yinan Jiang,Sal Lascano,Weijie Deng,Xiao Jia,Shiva Panicker 和 Chima Okwuoha。他们都是纽约数据科学学院 Data Scientist Bootcamp 学员。

关于DT×NYCDSA

DT财经与纽约数据科学学院是战略合作伙伴。DT×NYCDSA 系合作开设的系列专栏。

加入数据侠

数据侠计划是由第一财经旗下DT财经发起的数据社群,包含数据侠专栏、数据侠实验室系列活动和数据侠联盟,旨在聚集大数据领域精英,共同挖掘数据价值。申请入群请添加微信公号dtcaijing004并备注“数据社群”,合作请联系datahero@dtcj.com。

分享这篇文章到