垃圾邮件,垃圾邮件,垃圾邮件...

每个活跃的订户平均每周收到四个以上的不需要的呼叫-这是广告,银行报价,有时只是欺诈。大多数客户对这些类型的电话反应消极。为了解决此问题,我们开发了“垃圾邮件阻止”服务,通过连接该服务,用户将停止接收不需要的呼叫,并且在每天结束时,系统会通知用户有关已阻止的呼叫。在本文中,MTS数据科学家Anna Rozhkova@RogotulkA)和Olga Gerasimova(@ynonaolga)将讲述他们如何开发出一种区分垃圾邮件发送者号码与其他用户群的算法。



建筑模型


因此,我们面临着二进制分类的任务。

确实,如何区分用户(即使是非常社交的人,拥有广泛的新联系人)与不知疲倦地强加另一个医疗中心服务的垃圾邮件发送者?最初,我们把那些打给许多不同订户的电话号码视为垃圾邮件,但事实证明,很难与在线商店区分开。然后,我们决定取那些经常掉线的号码,但是人们有时会在不舒服的通话中掉线。我们还测试了以下假设:订户不会回拨垃圾邮件发送者的号码(在未接来电后的短时间内),但是这样的号码太多了,也许对于某些订户来说这是标准行为,他们不会回拨给朋友。结果,我们决定垃圾邮件数量在用户对其的不满意程度上有所不同。因此作为目标变量是数字,引起了很多投诉,负面示例被标出了负面评论很少或根本没有负面评论的示例。

呼叫者活动的汇总数据被用作标志:平均呼叫持续时间,一天中活动最多的时段,两次呼叫之间的平均休息时间,更新联系人圈子的速度等。我们还注意到,许多垃圾邮件发送者选择了“美丽号码”或类似于已知的现有号码(例如,银行的热线号码)并添加了此类二进制功能。 

指标选择


下一步是选择优化指标。在我们的决定中,重要的是不要阻止来自普通号码的呼叫,因此我们确定模型的准确性至少应为95%。精度是被模型正确预测为垃圾邮件类别对象的数字的百分比。但是重要的是要尽可能多地阻止不需要的数字,因此请选择最大召回率(召回率)以获得可接受的准确性。该模型的最终版本具有以下指标:精度为95%,召回率为94%。现在,该模型已按计划进行,并且正在定期进行重新培训以记录各种订户的呼叫活动中的变化,并且将对这些指标进行检查以确保它们均不低于90%。



由于垃圾邮件的数量比平时少得多,也就是说,样本不平衡,因此,相对于阳性样本(反抽样),阴性样本的数量减少了。在验证样本中,真实选择类别比率是为了了解``战斗中''模型的质量。此外,样本中仅包括由于垃圾邮件发送者的不一致而在特定日期处于活动状态的那些垃圾邮件号码:有一段时间处于主动拨号状态,并且当他们拨打多个电话时有一段时间处于被动状态,最有可能保持该号码。有时,活动后的号码被阻止并转移给另一个所有者。

作为算法,使用了xgboost增强的实现,因为它在验证样本上给出了最佳结果。该模型的重要标志是:一天中不同时间的订户活动数据,短途通话次数,朋友圈的广度。一个有趣的事实是,电信运营商的功能进入了主要功能。在图表下方,我们匿名了移动运营商,并提供了垃圾邮件发送者使用其号码的统计信息:


测试中


在此任务中,无法进行A / B测试:网络级别的服务并不意味着存在各种垃圾邮件编号列表,因此我们在公司内部启动了该模型的第一个版本的试验,同事和最高管理层成为测试人员。内部测试的积极特性之一是快速反馈。我们立即开始提出问题:

  • 为什么这个电话打通了?
  • 你为什么阻止这个号码?
  • 我不需要其他汽车保险(我能给多少?!)


我们的个人经验也成为搜索该型号新功能的另一个原因,当长时间等待在线商店发货后,在被阻止者列表中找到了快递员的电话。

在产品中启动


数字分类中的另一个严重问题是,关于垃圾邮件的概念存在差异:对于某些人来说,提供贷款的电话是不必要的信息,有人在等待个人报价并选择最好的电话,因此,订户有机会查看呼叫者的列表。可以选择禁用那些可能对他有用的数字。



用户完成服务的最普遍的请求之一是使用呼叫类别的数据(例如,银行,医疗服务或房地产)来扩展每日阻止号码的SMS报告的信息内容。

该模型的第一个版本建立在长期收集的功能之上,但我们注意到该模型通常不考虑最近似乎是垃圾邮件的数字,即新号码或经过一段时间的“静默”后开始进行活动呼叫者的号码。为了解决此问题,我们在较短的时间内针对收集的特征建立了附加模型。仅向培训展示区添加“简短”功能是不够的,因为培训样本本身是不同的:长时间处于活动状态的订阅者不匹配。

我们在产品开发方面的进一步计划包括创建单个垃圾邮件列表,同时考虑到客户的个人资料及其需求,将模型转换为在线模式,从而使垃圾邮件发送者的活动从现在开始一直处于顶峰。

All Articles