困境
最近在做Antispam的过程中,遇到了这样一个困境:当策略调整的太严格的时候,就容易伤害到很多正常用户,当策略太宽松的时候,就很容易漏掉很多垃圾用户,不过这样一个问题也是在早期就已经预料到随着spammer的成长必然会遇到的问题,只不过没想到会来的这么快,于是我们就开始想着,如何解决这种困境。
思路
解决这个问题的思路有两个
利用站上的业务数据,比如赞同感谢神马的给用户分级;
利用用户自己的行为,给用户分类。
第一个思路牵涉到的场景和业务相关性很强,每个网站使用起来参考性不大,但是第二个思路却是一个通用性的解决方法,我们就来聊聊第二个思路。
利用用户自己的行为给用户分类,广义的分类方法在机器学习上可分为监督方法和无监督方法,两种的区别在于,监督方法需要事先对于训练集给出标准答案,然后将标准答案输入到学习算法中,然后建立模型,处理后续的输入方法;而无监督学习,是事先没有标准答案,利用个体之间在输入数据上的相近程度,自然聚成一类。
通过以上的描述,可能无监督的学习方法更适合我们,因为我们实现不知道用户有几类,也没有标准答案。那么问题就来了,目前大多数聚类算法,原理大多数都是利用空间点中的相近程度,将点分成若干类,差别可能是,有的用的是欧几里得距离,有的用的是余弦距离,有的用的是空间密度分布而已,那么摆在我们面前一个急需解决的问题就是,如何将用户的行为量化,也就是映射到一个n维空间中,用来对用户进行聚类呢?