如何为多标签分类问题创建具有个性化特征的全局模型

数据挖掘 Python scikit-学习 支持向量机 线性回归 多标签分类
2022-03-09 07:40:27

我正在尝试根据邮件的内容(如主题和正文)和邮件的当前收件人来预测邮件的其他收件人。

例如:我在系统 U1、U2、U3 和 U4 中有 4 个用户

我在他们之间有以下消息

message-id  message-content sender  recipients
     m1          text        U1      U2,U3
     m2          text        U1      U2
     m3          text        U1      U3
     m4          text        U2      U3,U4
     m5          text        U3      U4

如您所见,U1 仅与 U2 和 U3 通信(发送/接收)。类似地,U2 与 U1、U3 和 U4 通信,而 U3 与 U1、U2 和 U4 通信。最后,U4 与 U2 和 U3 通信。

我的目标是当用户正在撰写消息并且已经在“收件人”行中输入了一些内容和收件人时,我想建议用户应该在“收件人”行中包含其他收件人。建议应该与消息的内容相关,并且只包含用户之前与之通信的用户。

所以对于 U1,我们不应该推荐 U4,因为它们之间之前没有通信。同样,对于 U4,我们永远不会建议 U1。

我目前正在考虑将其解决为一个多标签分类问题,我使用二元相关性方法为每个用户生成一个个性化模型。

对于 U1,数据如下所示

message-id  message-content U2  U3
   m1          text         1   1
   m2          text         1   0
   m3          text         0   1

现在,我可以使用 svm.LinearSVC(或其他分类器)在此数据上训练 OneVsRest 分类器(来自 scikit-learn),以预测给定消息的多接收者。我将使用消息的内容和收件人作为特征。这行得通。

问题是这需要每个用户的个性化模型。鉴于我有 10 的数百万用户,并且每个用户每月发送/接收 1000 条消息并与 1000 多个其他用户进行通信,我如何创建一个具有个性化特征的单一全局模型进行预测?

如果可能的话,我想避免为每个用户创建数百万个个人模型,并希望使用所有用户的数据训练一个全局模型,然后进行个性化预测。

多标签分类不适合学习全局模型吗?我应该改用排名模型方法吗?

请建议我该怎么做?

0个回答
没有发现任何回复~