【新排序算法】品葱用户质量排序算法(区分极端和温和用户)

自从小二离开之后,品葱就出现了很多关于下一步的管理和权限的讨论帖。我最近想到一个基于RFM(Recency, Frequency, Monetary Value)的分析模型,所以拿来给品葱试一下。代码是用PHP写的,方便admin直接拿到后台用,也同样给好久没写PHP的自己练下手。PHP代码使用了K-means的一个库。虽然是1-d的K-means,但不想用其他的算法,所以直接拿现成的来用。因为太长时间没写PHP,手生了所以花了太长时间,现在已经懒得写注释了,有问题直接回帖。

GitHub Repo:https://github.com/ad3be4cf5/Pincong_User_Scoring

分析模型简要说明:
本算法基于三个因素,分别为:
  1. N天内发言总数。
  2. 所有发言总字数。
  3. 威望大于1的用户赞踩比。


1很好理解,就是最近N天内的总体发言数量,包括问题/回答/文章及其评论。2是用户所有的发言的汉字字数总数,这个因子是为了找出那些发长文的用户,可能是因为个人喜欢看长文章吧,毕竟三言两语的灌水帖不会出什么高质量的内容。3是所有点赞和点踩此用户的比例。为防止碰瓷,只把未被封的威望为正(大于1)的用户加入了考虑范围。
每个因子会使用K-means算法聚类,然后每个用户就会根据这些因子获得一个评分,分越高说明用户质量越高。每个因子都会有一个最高分,最后每个因子的评分都会加起来,作为最终分数。

使用例1(寻找和事佬):

下面我拿两周前(2019年9月30日)备份的数据以及N=14跑了一下目前威望大于64用户的评分。因子最高分(也可以看作是权重)是3-3-5,所以总分最高分为11。为什么我把最后一个权重给这么高,是因为我这个使用例是用来寻找和事佬的。本权重适用于分配威望影响力。

一只鹿兒: 7
懦夫斯基: 6
electron8964: 6
小钙: 6
匿名用户: 5
红冬里的青鱼: 5
還是小學生: 5
台湾研究: 5
InspectorBen: 5
时代革命: 5
FreedomAsia: 5
tony231: 5
白頭翁: 5
viewer: 5
admin: 5
小二8964: 5
陈美丽: 5
利维坦: 5
安娜: 4
币圈奇葩8964: 4
jerry168: 4
苏维埃督战队: 4
Merlin: 4
带带大师兄: 4
救救孩子: 4
Pracseeuvn: 4
眼镜娘阿锅: 4
LuvDDDD: 4
anonymousLiu: 4
Tashkent: 4
剑心: 4
已停用: 4
pc6650: 4
Nakayama: 4
小汪酱: 4
killreddragon: 4
荣誉非国民: 4
第三新索多玛: 4
马拉糕: 4
赫胥黎: 4
令狐冲: 4
天安门上挂维尼: 3
炎黄子聪: 3
yichangfeng: 3
1901zxc已停用: 3
minwooilbo: 3
巴巴罗萨: 3
Izuchisu: 3
winkcat: 3
reppep: 3
Hunter: 3
组组组组: 3
经略: 3
Pepperoni: 3
幹乾干停用: 3
清水照子: 3
rtgzddgh: 3
川普主席万寿无疆: 3
黑杰克: 3
书记: 3
meta_chaos: 3
molecular: 3
扬子江: 3
yogafire: 3
流氓匪首停用: 3
zhengyi: 3
说我想说的: 3
如火如荼: 3
普习金: 3
匮名用户: 3
Gogh9836: 3
精神难民: 3
rgjdwte: 3
Tseyu: 3
笔墨写春秋: 3
HelicopterZ: 3
蛋蛋很疼: 3
疯狂习近平: 2
鸡鸡: 2
调戏萌新专用号: 2
路过一下: 2
pincongrocks: 2
BE4: 2
Noone: 2
罗马相册: 2
地球人: 2
HenkGao: 2
支那五毛网评员: 2
freedomisours: 2
自由党人: 2
我死了: 2
harmonize: 2
NNNN: 2
arashi8964: 2
妙禅师傅: 2
vvgvv1: 2
anonym: 2
burleigh: 2
EPSON: 2
ikuyui: 2
鹿晗拳交习近平: 2
逆流而上的鱼: 2
chobe: 1
唵嘛呢叭咪吽: 1
由比滨结衣: 1
橘希实香: 1
民主信仰者: 1
Tetra: 1
碴条: 1
月社妃: 1
Android: 1
我是精赵我骄傲: 1
RandomID_1: 0
guibuhai: 0

根据这个排行榜,我们可以给予得分高于4的用户赞踩影响威望的权限,给予得分在2和4之间的用户半赞踩影响威望权限(也就是两名此类用户一起赞踩才能影响威望),并出于安全考虑取消已回归虚无(得分2以下)的用户的权限。

使用例2(寻找管理员):
这个使用例把权重改成了5-3-4,也就是给用户最近活动更多的权重,并下调了赞踩比权重(但还是要有一定权重的,毕竟是管理,不能太具争议性了),此时得到的结果可以用来初步确定管理权限(得分0的用户已排除)。

懦夫斯基: 6
一只鹿兒: 6
electron8964: 5
苏维埃督战队: 5
小钙: 5
匿名用户: 4
FreedomAsia: 4
tony231: 4
令狐冲: 4
還是小學生: 4
小二8964: 4
admin: 4
巴巴罗萨: 3
小汪酱: 3
精神难民: 3
眼镜娘阿锅: 3
炎黄子聪: 3
InspectorBen: 3
时代革命: 3
天安门上挂维尼: 3
rtgzddgh: 3
rgjdwte: 3
anonymousLiu: 3
马拉糕: 3
pc6650: 3
利维坦: 3
killreddragon: 3
Izuchisu: 2
HelicopterZ: 2
黑杰克: 2
幹乾干停用: 2
已停用: 2
minwooilbo: 2
陈美丽: 2
荣誉非国民: 2
yichangfeng: 2
viewer: 2
带带大师兄: 2
reppep: 2
币圈奇葩8964: 2
红冬里的青鱼: 2
jerry168: 2
1901zxc已停用: 2
台湾研究: 2
组组组组: 2
Pracseeuvn: 2
LuvDDDD: 2
经略: 2
白頭翁: 2
Merlin: 2
川普主席万寿无疆: 2
笔墨写春秋: 2
说我想说的: 2
Nakayama: 2
Gogh9836: 2
扬子江: 2
如火如荼: 2
Tashkent: 2
molecular: 2
蛋蛋很疼: 2
安娜: 2
zhengyi: 2
救救孩子: 2
流氓匪首停用: 2
赫胥黎: 2
剑心: 2
Pepperoni: 1
ikuyui: 1
harmonize: 1
鸡鸡: 1
yogafire: 1
第三新索多玛: 1
Hunter: 1
普习金: 1
清水照子: 1
winkcat: 1
freedomisours: 1
arashi8964: 1
vvgvv1: 1
调戏萌新专用号: 1
匮名用户: 1
Tseyu: 1
妙禅师傅: 1
meta_chaos: 1
书记: 1
路过一下: 1
EPSON: 1
逆流而上的鱼: 1

得分3以上的用户可以给予移动分类、标记甚至超管权限,而得分2和3的用户有正常的封禁权限,其余用户因为活跃量不足,安全起见没有管理权限。

使用例3(推荐关注的高产用户):
最后一个使用例把权重改为5-4-2,突出近期产量和质量,因为我们要找的是推荐关注的高产用户,戏剧性较大的(也就是极具争议性的)用户就是我们的首选了,所以最后一个和事佬权重改成了2。这时候让我们看看结果如何吧(得分低于2的用户未显示)。

匿名用户: 5
一只鹿兒: 5
還是小學生: 5
FreedomAsia: 5
苏维埃督战队: 4
懦夫斯基: 4
rtgzddgh: 4
小钙: 4
tony231: 3
巴巴罗萨: 3
admin: 3
electron8964: 3
天安门上挂维尼: 3
精神难民: 2
经略: 2
眼镜娘阿锅: 2
anonymousLiu: 2
蛋蛋很疼: 2
白頭翁: 2
炎黄子聪: 2
时代革命: 2
台湾研究: 2
InspectorBen: 2
令狐冲: 2
Tashkent: 2
如火如荼: 2
pc6650: 2
红冬里的青鱼: 2
利维坦: 2
小二8964: 2
viewer: 2
陈美丽: 2
马拉糕: 2

可以看到几个极具争议性的“姨粉”光荣上榜,还有一些大家都知道的大V也在上面,说明我们的算法还不赖。


当然这三个因子配合不同权重能玩出很多花样,就等admin和开发团队们自己去探索了。关于使用例2,我也有话要说,因为现在备份的数据里没有管理员操作记录,所以这个因素没办法加进去。如果把发言字数替换成管理操作数量的话,就可以使用3-3-3的权重来给用户打分确定管理员权限了。
21
分享 2019-10-14

43 个评论

CF5 高仿 观察
饭后甜点

第三个因子,也就是威望大于1的用户赞踩比的排行(前不知道多少名和倒数不知道多少名),在这里展示一下.可以看看谁是比较“极端”的用户,谁又是最“温和”的用户

 懦夫斯基: 10
小二8964: 8.75
小钙: 7.6666666666667
一只鹿兒: 7.4
利维坦: 6.5
令狐冲: 6
electron8964: 5.8333333333333
小汪酱: 5.5
安娜: 5
viewer: 5
InspectorBen: 4.6666666666667
已停用: 4.5
荣誉非国民: 4.5
带带大师兄: 4.5
马拉糕: 4.3333333333333
眼镜娘阿锅: 4
红冬里的青鱼: 4
LuvDDDD: 4
Merlin: 4
pc6650: 4
jerry168: 4
Pracseeuvn: 4
台湾研究: 4
赫胥黎: 4
救救孩子: 4
剑心: 4
Nakayama: 4
币圈奇葩8964: 4
陈美丽: 4


支那五毛网评员: 0.88888888888889
妙禅师傅: 0.875
天安门上挂维尼: 0.83333333333333
橘希实香: 0.8
唵嘛呢叭咪吽: 0.75
我是精赵我骄傲: 0.66666666666667
巴巴罗萨: 0.625
民主信仰者: 0.625
rtgzddgh: 0.359375
guibuhai: 0.33333333333333
RandomID_1: 0.15789473684211
CF5 高仿 观察 回复 CF5 观察
哎呀怎没人啊,我可是写了好长时间呢(全怒)只能召唤上榜人员来了
@懦夫斯基 @小钙 @一只鹿兒 @令狐冲 @electron8964 @小汪酱 @InspectorBen @已停用 @马拉糕 @眼镜娘阿锅 @红冬里的青鱼 @币圈奇葩8964 @Nakayama @天安门上挂维尼 @巴巴罗萨 @rtgzddgh
努力值得肯定,也迈向了将品葱的排序算法迁移到基于统计方法的第一步(毕竟,你至少用了K-means)

但你这三个因素里面,1,2都是可以刷出来的,是不是有些不太合适呢?
CF5 高仿 观察 回复 最大公约数
威望大于64的用户就一百多个,这个目的是为了更好的分配用户权限,而不是在小号中选出管理。1的话刷到顶是要很多发言的,发言太多的话会遭到注意。2的话我只选取了赞数大于0的内容统计字数,所以刷字数要么转载大量文章(至少不能有踩),要么发一些原创,总之都很麻烦
admin 公共账号
推荐关注的高产用户(笑)
admin 公共账号 回复 admin
妈呀尴尬了??我明明勾选的右下角的“匿名”啊怎么就变成管理员账户了我的天啊这个机灵逗的太失败了!!!
CF5 高仿 观察 回复 最大公约数
如果真的有人刷的话,可以把1和2分别改成:
1. N天内发帖活跃时间间隔。因为现在有发帖时间随机加减一天,所以只要能保证一天能发一帖就可以得高分。
2. 赞与字数比。比较简单的就是把文字数量和赞数乘起来再正则化一下,当然要只选取威望大于1的用户的赞。比较复杂的就是通过NLP算法计算发言的信息量和赞的比,所谓“复读性”有多高。如果很多发言内容很相似的话,就会得低分,这样刷起来会很困难。
joewsjf 回复 CF5 观察
我比较好奇FreedomAsia三项分数各是多少?
admin 公共账号
桂葱结束通货紧缩时代后的赞踩几乎毫无成本,倾向于多赞多踩的用户的意见在统计总数的数据中占比要过大。建议做归一化。
CF5 高仿 观察 回复 最大公约数
再者,这个只是为了替换曾经的威望算法的,因为很多排行榜上的用户已经很久没有发言了,拿这个算法可以给新用户推荐一些“大V”来关注。如果要选管理员的话,那么我想的因子是N天内管理操作数(变更分类、封禁、标记、折叠等)、站务参与度(也就是在站务和投诉区里有多少发言与赞),还有温和程度(也就是这里的3)
好厉害。。。好用心。。。
CF5 高仿 观察 回复 admin
一个用户踩再多在因子3里也只是一票,我这里统计的用户比,不是数量。现在威望10以上的用户才能踩,所以踩不是毫无成本的。
admin 公共账号 回复 CF5 观察
guibuhai的分数是怎么统计的,为啥是0分
我都没有上榜,看来我还需努力啊。
算法合适与否的问题,我没有任何资格讨论,静候诸君高见。
electron8964似乎正在研究用户抱团的问题,不知楼主如何解决这个现象的影响。

第一反应:我的活跃度竟然这么高,产出量低,看来需要戒一戒网络,多花点时间充电了。
见数据自省:FreedomAsia似乎专注于讨论姨学,其他话题下的长篇大论较少。我与此君打交道,基本只有用户间发生争议的场景。由于两次与其相关的争议,我都判定此君行为有所失当,因此一直对其有情绪化程度较高的印象。而楼主给出的统计显示,事实似乎并非如此。希望以后有机会更全面地了解此君。
CF5 高仿 观察 回复 admin
应该是看不惯他发言的左派比较多吧。我记得他有一些发言是性别主义气氛比较浓厚的,所以总的来说点踩的人很多,甚至比点赞的人都多
因为现在有发帖时间随机加减一天,所以只要能保证一天能发一帖就可以得高分。

十一之前,我有个举报油管、推特五毛账户的日常打卡贴,可谓作弊良方啊。
如果要选管理员的话,那么我想的因子是N天内管理操作数(变更分类、封禁、标记、折叠等)、站务参与度(也就是在站务和投诉区里有多少发言与赞),还有温和程度(也就是这里的3)

这样计算的话,如何选新的管理员呢?已有管理员可以通过减少操作数来逐步退出,但是尚未成为管理员的用户没有管理操作数,似乎遇到了蛋与鸡的困境。
CF5 高仿 观察 回复 随机预言家
数据是滞后的,已经两周了,而且只用了威望64以上的用户。如果开发团队可以整合到后台每天都跑一次的话说不定你就上榜了 :D
然后就有个侧栏叫XX用户排行榜了,哈哈哈
admin 公共账号 回复 CF5 观察
赞几乎毫无成本。所以积极点赞的用户所在集团即使不有意刷赞威望也会快速上升。有必要予以遏制,使每个用户对其他人威望的影响差距不要过大。
CF5 高仿 观察 回复 懦夫斯基
抱团的问题就是利用给予温和活跃用户影响威望的权限来解决。因为现在抱团踩会导致威望降低,极端用户踩起来就会出现争吵的现象,所以只把权限给较为温和有产出的活跃用户,可以很大程度上避免这个问题
CF5 高仿 观察 回复 admin
这里的赞只算威望大于等于1的用户,所以要拿小号刷这里的指标可能不是很简单,而且这个完全可以在后台整合成一个参数,随时更改。如果有人刷指标就可成5或10以上,跑起来还更快(笑)
抱团的问题就是利用给予温和活跃用户影响威望的权限来解决。因为现在抱团踩会导致威望降低,极端用户踩起来就会出现争吵的现象,所以只把权限给较为温和有产出的活跃用户,可以很大程度上避免这个问题

我的意思是,假设抱团现象已经存在(@electron894 是否已经研究出来结论?),主楼提到的算法是否能排除这种现象的影响呢?抱团踩很容易被投诉,但是抱团赞却可以很隐蔽。
CF5 高仿 观察 回复 懦夫斯基
可以设置威望64以上符合本帖使用例2的用户首先自动成为管理员实习,拥有一些权限(例如临时封禁、折叠、变更分类等等,一天管理操作数量有限制),之后再根据管理员指标判断是“升职”还是“离职”
admin 公共账号 回复 懦夫斯基
踩赞分别统计。只记录100威望以上用户对16威望以上用户的赞踩,因为只有前者影响威望,只有后者的威望才有进入管理员群体的用处。考虑A对B的踩赞占了A对外全部踩/赞行为的比例是多少。最后得到A踩赞行为的特征向量,大概可以用于用户分类。因为可以分时间统计数据,短期较大规模的刷赞刷踩恐怕会很比较明显。
CF5 高仿 观察 回复 懦夫斯基
抱团赞没用的,因为这里3算得是人头而不是数量,这也是为什么我没把望和赞数算进去。
一个用户踩再多在因子3里也只是一票,我这里统计的用户比,不是数量。现在威望10以上的用户才能踩,所以踩不是毫无成本的。
可以设置威望64以上符合本帖使用例2的用户首先自动成为管理员实习,拥有一些权限(例如临时封禁、折叠、变更分类等等,一天管理操作数量有限制),之后再根据管理员指标判断是“升职”还是“离职”

新管理员晋升和既有管理员退出都有途径就好,感谢你理解了我没能梳理清楚的疑惑。
有趣。
我看到了好多停用了大半年的账号~比如清水兄,merlin兄
推,希望可以受到重视,不要让@CF5“ 白费心机”。
鹿儿阿姨毫无悬念地在所有榜单名列前茅(掩面
另外感觉如果使用这个算法,可以适当调低一点威望64的门槛,
白費心機是什麼啦www
乱用成语,非常符合人设。
BE4 已停用 ?
原文重發在此,我還是追隨小二去了
https://pincong.rocks/article/6653
你跟CF5是什麼關係?四個字:ASCII减1!!!

保重!
朕是庆丰大帝,小学毕业生!你们难道不能体谅一下?
閆光宇你也走了,品葱是不是要完蛋了?以后品葱姨学权贵化?
已隐藏
已隐藏
已隐藏
DG6 观察
我爲此帖跟此貼主感到由衷地高興

順便在此不那麼隱蔽又不那麼顯眼的角落,發表一下退蔥感言:

看到Hunter跟小二先後退蔥讓我也產生不再做玩網廢物的想法,本來打算悄悄暫退數月,避免admin帳號在身給品蔥造成任何波動,所以這幾天陸續小範圍告知了admin8964等一隻手數得過來的幾個蔥友作必要的事務移交,意外的是同爲admin帳號分享者的rtg同志也因心生疲倦搶先發表了半退聲明。而且申明裏還大字報批判我欽定的接班人@懦夫斯基 同志,我對此表示蒙在鼓裏…… 其實跟大家混了這麼久,我就不一一感謝點評所有的朋友了,我對本論壇每個不願意跪着的人都深深敬佩,對在自幹五報道貼答了200樓封了200樓的五毛同志也深深敬佩。

在此有必要說說後臺管理員同志,我感謝後臺管理員爲建立本站付出的巨大成本跟承擔的巨大風險,也感謝後臺管理員同志給我admin權限,讓我過了幾個月獨裁者的癮。不過這傢伙大概是因爲真.壓力山大,會間歇性的腦殘症發作,我交代完所有事務之後他又突然私信指控我是真五毛,我也是真是服。我閆光宇這麼一個小角色,怎麼敢奢望爲習公主效力?再說習公主已婚大家不用想了。而且我們共青團是專門給小學博士挖坑的反習陣營,習大大怎麼能放心把公主交給我保護?我還是喜歡潛規則小粉紅,不喜歡當凱子。

鑑於我發現了admin8964患有間歇性腦殘病的驚天祕密,我臨時作出了決定:變暫退爲永退。其實想知道政治發展讀paper跟書就足夠了,論壇真的是個娛樂放鬆的地方,我以前沒想通這點,對大家要求太嚴厲了。

你要問CF5跟我是什麼關係?四個字:無可奉告!!!

各位保重!
我原打算用k-mean先简单看,不过我的一些想法还是不一样,有时间再看看吧。

这个分析也挺有趣的

要发言请先登录注册

要发言请先登录注册