百万个冷知识百万个冷知识

百万个冷知识
一起学习百万个冷知识

越早知道越好(推特开发者账号申请)Twitter开源了推荐算法,源代码藏了什么瓜?,

责任编辑源自QQ社会公众号:CTO范凯(ID:fankai_log),译者:robbin,头图源自:Kunming

4月1日万圣节,特斯拉正式宣布Twitter的源码开放源码了,因此会依照采用者意见反馈及时处理修正所推荐演算法。

看见那个最新消息,我第三天数关上Github,去搜寻了呵呵,居然Twitter开放源码了,并非万圣节的段子。在Twitter帐号上面有三个开放源码工程项目:

1. the-algorithm 那个工程项目源码是用Scala写的,是Twitter的所推荐演算法源码。

Twitter最先采用Ruby on rails写的,而后用户数量太大,用Scala改写了绝大部份标识符。从那个工程项目上看,果真:整座工程项目5000数个示例,绝大部份是Scala标识符,从标识符艺术风格上看,却是很国际标准的,标识符产品质量看上去还极好。

2. the-algorithm-ml 那个工程项目源码是用Python写的,是Twitter所推荐演算法的机器学习部份。

那个机器学习的工程项目不大,100数个示例。

他们关上 the-algorithm 工程项目的git递交历史记录,会辨认出两个十分有趣的 commit, log是这种写的:

Remove stats collection code measuring how often Tweets from specific user groups are served

也是删掉了量测某一MSC的统计数据关键信息搜集标识符。很疑惑,那个某一MSC指的是谁?看一看commit历史记录就确切了:

咦,有五类特定的采用者:

1. Elon Musk,好吧,这是特别针对老板娘展开hard code啊。

2. power_user,较好认知,估算是对Twitter而言很关键的大V采用者,要打特定标记。

3. democrat,民主党人,为甚么要标记采用者的党派关键信息?

4. republican,共和党人,越来越有趣了!

仔细翻翻相关的标识符,有段注释关键信息有所解释:

/**

* These author ID lists are used purely for metrics collection. We track how often we are* serving Tweets from these authors and how often their tweets are being impressed by users.

* This helps us validate in our A/B experimentation platform that we do not ship changes* that negatively impacts one group over others.

*/

.add(DDGStatsDemocratsFeature, ddgStatsAuthors.longSeq(Democrats).toSet)

.add(DDGStatsRepublicansFeature, ddgStatsAuthors.longSeq(Republicans).toSet)

.add(DDGStatsVitsFeature, ddgStatsAuthors.longSeq(Vits).toSet)

.add(DDGStatsElonFeature, ddgStatsAuthors.longValue(Elon))

意思是说:

这些译者 ID 列表纯粹用于指标搜集。他们跟踪他们提供源自这些译者的推文的频率,以及他们的推文给采用者留下深刻印象的频率。这有助于他们在他们的 A/B 实验平台中验证他们不会发布对一组产生负面影响的更改。

似乎是说选择某一的采用者来跟着推荐演算法的修正不会产生负面影响。那么这些采用者是怎样定义的呢?

object HomeMixerResourcesModule extends TwitterModule {  

privateval AuthorsFile = "/config/authors.yml"

  @Provides  

  @Singleton  

  @Named(DDGStatsAuthors)  

def providesDDGStatsAuthors(): YamlMap = YamlMap.load(AuthorsFile)

}

这段标识符倒是很确切的,这五类采用者:特斯拉,大V,民主党人,共和党人的采用者列表,是写在两个外部配置文件 /config/authors.yml 里面的。

标记这五类采用者展开特定的跟踪和统计数据。实在是很值得玩味:

1. 标记 Elon Musk 单个人,从哪个统计数据学角度去看,都和度量所推荐演算法无关,这是赤裸裸的面向老板娘编程,哈哈。

2. 标记 大V 采用者,特别是 power user,这对于两个面向全球的社交媒体平台,恐怕本身就意味着关键信息的不平等吧?

3. 当然,最令我意外的是标记民主党人和共和党人的采用者列表。如果说坊间传言Twitter的所推荐演算法是有政治倾向性的话,这毫无疑问是实锤了。从任何角度看,都不应该单独区分采用者的政治立场去度量所推荐演算法的有效性。

当然,这些标识符已经从Twitter最新版本开放源码文件中删掉了,但却是可以从标识符递交历史中看见。说Twiter不干涉政治的想法,真的可以休矣!

其实我很赞赏特斯拉决定开放源码Twitter所推荐演算法的决定。所推荐演算法有没有夹带私货,并非你老王卖瓜自卖自夸出来的。要真的想建设关键信息平台的平台,就得开放源码出来,接受程序员的监督。从这一点而言,Twitter迈出了较好的第三步。

责任编辑源自QQ社会公众号:CTO范凯(ID:fankai_log),译者:robbin

未经允许不得转载:百万个冷知识 » 越早知道越好(推特开发者账号申请)Twitter开源了推荐算法,源代码藏了什么瓜?,
分享到: 更多 (0)

热门推荐

百万个冷知识 带给你想要内容

联系我们