Where to Go Next for Recommender Systems? ID- vs.Modality-based recommender models revisited
论文核心议题是:纯基于多模态的模型MoRec(modality-based recommendation model)能否比纯基于ID的模型IDRec(e ID-based model)效果好?
研究4个问题:
(i)MoRec和IDRec,哪一个在实际的推荐中效果更好,特别是热启问题中
(II)NLP及CV领域的最新进展能不能提升MoRec
(iii)怎样有效利用多模态表示,是直接使用还是必须调整
(iv)MoRec在实际应用中有哪些关键挑战
IDRec:使用唯一的ID标识用户和item,使用这些用户与其交互的item数据学到的模型。当前推荐领域基本都是。
缺点:
a. 高度依赖ID的交互,当用户和item交互比较少时很难学习,例如冷启问题
b. 跨平台迁移性不好,这样无法运用到大模型,发挥到大模型的优势
c. 无法利用到其他领域(NLP/CV)的最新大模型进展
d. 在可解释性及可视化方面相对有明显的缺陷
MoRec之前一直在冷启方面有应用,但是在常规推荐方面很少应用。随着BERT、GPT、ChatGPT、ViT的发展,基于多模态的推荐还是大有可为。
问题一:配备多模态编码ME(modality encoders),在常规推荐中是否比IDRec要好
评估模型结构:DSSM、SASRec
问题二:最近的NLP及CV领域的进展能否提升准确性
a. 通过参数量不同的ME比较
b. 通过性能强弱不同的的ME比较
c. NLP和CV数据集上面有pre-train和没有预训练的ME比较
问题三:MoRec学到的表示是否通用
将ME编码的Embedding作为特征丢到two-stage(TS)里面,和ME直接end-to-end(E2E)学习相比较
loss如下:负采样常规做法,
L
L
L是用户序列长度
数据集情况
MIND:微软新闻推荐平台的数据集,使用每个文章的标题表示这个item
HM:H&M平台衣服购买数据集
Bili:在线视频推荐平台
HM集Bili数据集使用和item有关的图像表示item(每个item一张图)
最理想的数据集是用户和item的交互仅受到标题或者文本的影响,但是HM及Bili数据集很明显不满足,不过确实很难找到理想的数据集。
每个图片的size设置为
224
×
224
224\times224
224×224 ,每个标题设置为30个tokens。MIND中设置用户最近23个交互item作为序列sequence;HM及Bili选取最近13个交互的图片。交互数量小于5个的用户剔除,因为不考虑冷启问题。
数据集长下面这样:论文提到图片里面包括了价格及文本描述,但是纯多模态的模型无法利用到,IDRec可以用到这些信息,如果多模态的应用上效果会更上一层楼。
实验设置
IDRec 的设置:
学习率设置
γ
\gamma
γ in {1𝑒-3, 5𝑒-4, 1𝑒-4, 5𝑒-5}
embedding_size in m {64, 128, 256, 512, 1024, 2048, 4096}.
batch_size DSSM:1024 SASRec:128
weight decay
β
\beta
β in {0.1, 0.01, 0}
MoRec的设置,因为是预训练好的,学习率设置较小
学习率设置
γ
\gamma
γ in {1𝑒-4, 5𝑒-5, 1𝑒-5}
weight decay
β
\beta
β in {0.1, 0.01, 0}
DSSM中MLP的层数设置 l l l in {0, 1, 3, 5},不过提到设置为0总是最好;SASRec 的Transformer block layer中 head_num 设置为2;其他参数IDRec和MoRec相同。对于IDRec和MoRec,除了item encoder不同外,其他的结构都相同,结构如下,对于视频和文本的输出通过一个DT-layer转换下,形成和IDRec相同的维度的向量。
处理文本时使用预训练的BERT和RoBERT作为多模态编码器ME,处理视频时使用预训练的RecNet和Swin Transformer作为ME。
实验结果分析
DSSM比SASRec要差些,而且差的非常多。在DSSM结构中,MoRec都比IDRec要差,但是在SASRec中情况反过来了,MoRec要比IDRec要好,提升较大。说明需要一个比较强的基线和训练方法才能充分发挥多模态的优势。后面的实验都是基于SASRec来做的。
MoRec vs IDRec
对比MoRec和IDRec在样本比较充分的item上面效果。分别把交互数量小于20,50,100的用户从数据集中去掉,新的数据集记为warm-20,warm-50, warm-100,对比MoRec和IDRec在这三个数据集上的效果。
结论:用户交互的样本越充分,IDRec效果越好,符合预期。同时,MoRec在warm-20和warm-50中效果比IDRec好,在warm-100中比IDRec略差。说明使用了强大的ME的MoRec在常规推荐中效果还是非常有竞争力的。
更大的MoRec
实验证明预训练模型越大的MoRec效果越好,说明NLP及CV领域新出现的大模型可以应用到推荐中,潜力无限。
实验验证预训练PE(pre-train)后的ME比随机初始化后从头开始训练TFS(training-from-scratch)效果要好
ME抽取的多模态特征是否通用
通过2种方式验证多模态抽取的方式是否通用,一个是经典的two-stage(TS)推荐方式,将多模态抽取的特征表示加入到常规的推荐系统中,为了增强适配性,在TS基础上面加入了dense层(TS-DNN),另外一种是端到端(E2E)的训练。可以但大量TS的效果很差,TS-DNN要好很多,但是比IDRec还是要差些,E2E的效果最好。整体说明ME抽取的向量表示还是不够通用。
关键挑战
训练成本
越大的预训练模型,耗时及计算成本越高,这也是多模态端到端很难实际大规模落地的原因。
额外的预训练
使用数据集对ME进行第二轮预训练效果较好,
结合IDRec和MoRec
把IDRec和MoRec结合起来,向量表示通过 add 或者 concat方式 聚合起来。结果如下
与 IDRec 和 MoRec 之间的最佳结果相比,基于 TS 和 E2E 的 MoRec 都没有改进。 通过添加 ID 特征,基于 E2E 的 MoRec 性能甚至比纯 IDRec 和纯 MoRec 更差。 以前的出版物经常声称通过为 IDRec添加多模态功能来获得更好的结果。 可能是在常规(相对于冷启动)设置中,基于 E2E 的 MoRec 和 IDRec 都从用户-项目交互数据中学习用户偏好,因此它们不能相互补充,而对于基于 TS 的 MoRec,由于 ID Embedding 比不变的模态特征好太多,它们的组合也没有改善结果。 第二个原因可能是在结合 ID 和多模态特征时需要更高级的技术。 其实从另一个角度来看,具有ID特征的MoRec会失去MoRec的很多优势。 例如,具有 ID 特征的 MoRec 不适合构建基础推荐模型,因为由于隐私等问题ID 不易转移。
模型坍塌
MoRec没有合适的超参数(主要是学习率)时容易坍塌。这可能是因为 ME 之前已经在 NLP 和 CV 数据集上进行了预训练,其学习步幅可能与其他从头开始训练的模块不同。 相比之下,即使有许多不同的𝛾,IDRec 也没有崩溃。
附录
MoRec在冷启上面完爆IDRec,如下图
用到的预训练模型
模型 | 参数量 | 地址 |
---|---|---|
BERTtiny | 4M | https://huggingface.co/prajjwal1/bert-tiny |
BERTsmall | 29M | https://huggingface.co/prajjwal1/bert-small |
BERTbase | 109M | https://huggingface.co/bert-base-uncased |
RoBERTabase | 125M | https://huggingface.co/roberta-base |
OPT125M | 125M | https://huggingface.co/facebook/opt-125M |
ResNet18 | 12M | https://download.pytorch.org/models/resnet18-5c106cde.pth |
ResNet34 | 22M | https://download.pytorch.org/models/resnet34-333f7ec4.pt |
ResNet50 | 26M | https://download.pytorch.org/models/resnet50-19c8e357.pth |
Swin-T | 28M | https://huggingface.co/microsoft/swin-tiny-patch4-window7-224 |
Swin-B | 88M | https://huggingface.co/microsoft/swin-base-patch4-window7-224 |
MAEbase | 86M | https://huggingface.co/facebook/vit-mae-base |