我知道为啥 ADNK 会被heip到死了一方面是误封率等于 114514 个 CBLR 老版
另一方面
是他们不公开删除记录
遇上这样的就能一口咬定是嘿箱操作
因为一般路过壬看不到证据
而且连锁永封
就便乘了带嘿箱
你像这种
ID 确凿无误的都能咬定啊我没发
不是我发的
自然看不到 log 的 ADNK 会被heip到死
— 2019/10/10
而且我被对抗学习了
我人傻了
— 2019/10/10
讲个笑话:文本上直接中文分词 + Naive bayes 朴素贝叶丝分类(如果 Chinese Lexical Analyize 全字典大了就上精简字典什么的... 有并行计算高性能框架的)短图二维码和 short link 跳转用消息队列慢慢查
行为上算个大体的策略,虽然不得不接收所有消息的
onMessage
, 可是对可信用户的检查可直接跳过 / 随机抽查 / 添加人工 bot command 允许群友重新审查可信用户的选择可以对每个群设置一个基准,连续发送 N 个安全消息的就算可信用户
行为不要老是看维度什么的,又不必要 kNN(何况 ML 领域又不是 kNN 一家独大,kNN 明明是最入门的算法之一,虽然也不只是 kNN 可以接收「多维度」),你反个 spam 比 spammer 还开销,还不如不反
Telegram 的 spammer 一般也就靠二维码、short link、裸消息文字了,二维码的还不能发重复图片,因为会被直接认出来
很多 userbot spammer 就是加能加的群,然后入群慢慢发广告,发几个可能退出可能继续待着
普通用户就算是偶尔刷消息,在广告屏蔽上也不应该予以屏蔽,也可以节省资源来做到更大并发量
非得从 0 开始监督式学习,要大量数据,反而不好,何况这个模型也不好设计(即便我们只是说「用户的行为」,比如说 Telegram 里有些群只在中午交流、有些群是深夜,得为每个群制定标准,这合适吗?)
我觉得没必要为了 anti-spam 去收集用户行为,因为对几乎所有群聊来说,很多 spammer 就是发个广告而已,可以做简单一点,踢出屏蔽随机进攻的 AD userbot 即可
对于误封,可信用户若是不小心被查到(可能是误查)spam,则不踢出群聊,发警告 + restrict 就可以了,等待管理员确认
但是我觉得应该比这个要多考虑一个方面,就是一个词的前导(Wn-1)和后继(Wn+1)也应该被学习才好
这样按照一个比较规范的汉语表达字典,上面的几条 Spam 的特定序列就可以被正常处理
!仙人() 跳() 北京() VX() xi****98() !请() 大家() ,() 这是() 一个() 商业() 团体() ,() 我们() 讨论() 投资() 你的() 钱() 和() 国家() 的() 最佳() 方式() ,() 当你() 投资() 一点() 时() , 你将() 获得() 大笔() 资金()。 !免税() 飞天() 茅台() 低价() 处理() 懂得() 老板() 联系() qq() :() 2********1() !司机() 发车() 可() 私() 滴滴() !有没有() 想() 做() 兼职() 的() 可以() 私聊() 我() ,() !www() .() 6**q() .() xyz() 有() 直播()
分词以后,每个词都可以有自己的统计标量,能够按照动态学习的结果判断消息是否 spam
可是不知道应该如何在保证性能的同时(目前至少需要分词一遍 + 求和一遍决策参数,虽然分词操作只需要遍历一遍而无须过多内存分配,显然不足以扛太大量的输入)考虑一个词前导和后继的统计...
我在想不必效仿 Naive Bayes 再弄一个 Map<Text, Real>,可以直接用两个 Map 做判断...
或者干脆直接把两个相邻项目合起来再算一遍... 这个可行一点... (算是给分词结果加后期处理)
而且性能上也可以接受(只在回归期做计算,文本分类性能依赖 Map 的实现)
学习上机器人可以不必自己学习新特征,而由用户/服务管理员手动操作选择举报/批量学习垃圾内容
— duangsuse 2019/9/13 (All Rights Reserved)