当前位置:  开发笔记 > 编程语言 > 正文

Facebook新闻Feed算法公式

如何解决《Facebook新闻Feed算法公式》经验,为你挑选了0个好方法。

我被要求在PHP中创建一个现有的基本新闻源代码更聪明一些.也许具有相关性和多样性.客户不确定自己,他只是想要像Facebook的新闻源一样聪明(有点).我发现了这个(可能已经过时但有一些线索)

在此输入图像描述

哪里:

西格玛 - 每个边缘的总和.边缘是一个可以显示在您的新闻Feed中的故事,如状态更新,评论,赞,标记等.

你 - 亲和力分数.这个因素会影响您与发布帖子的距离.如果您经常与发帖人,多个共同朋友或相关人员进行互动,Facebook更有可能给予该内容更高的权重.

w - 此边缘的重量.在Facebook的算法眼中,并非所有行为都被认为是平等的.例如,创建状态更新的朋友比仅仅喜欢状态更新的人更重要.

d - 时间衰减因子.随着帖子变得越来越老,它更有可能已经被看到或者它不再具有相关性.Facebook通过考虑帖子的年龄来解决这两个问题.

我猜这个公式非常抽象,这是我对它的解释:

function calculateFeedScore (){
    foreach ($edges as $edge){
        $friendshipWeight = 30 // pre calculated from the DB
        if ($edgeType = comment) $edgeWeight = 1;
        if ($edgeType = like) $edgeWeight = 2;
        if ($edgeType = tag) $edgeWeight = 3;
        .....
        $edgeAgeInDay = ...; // decay each day
        $decay = 0.5 // Radioactive  decay ??
        $edgeDecayFactor =  1 * pow($decay ,$edgeAgeInHour+1 )  // decay after one day 
        $edgeScore = friendshipWeight  * $edgeWeight  *$edgeDecayFactor  
        $feedItemScore += $edgeScore;

     }
    return $feedItemScore
}

所以我只是乘以你,w和d.那是对的吗?我怎样才能改进它?是的,我知道我需要在生产中对其进行微调,但是......谢谢

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有