论文《Where to Go Next for Recommender Systems? ID- vs.Modality-based recommender m

272 阅读7分钟

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如下:负采样常规做法,LL是用户序列长度 在这里插入图片描述 数据集情况 MIND:微软新闻推荐平台的数据集,使用每个文章的标题表示这个item HM:H&M平台衣服购买数据集 Bili:在线视频推荐平台 HM集Bili数据集使用和item有关的图像表示item(每个item一张图)

最理想的数据集是用户和item的交互仅受到标题或者文本的影响,但是HM及Bili数据集很明显不满足,不过确实很难找到理想的数据集。 在这里插入图片描述 每个图片的size设置为 224×224224\times224 ,每个标题设置为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的层数设置 ll 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,如下图 在这里插入图片描述 用到的预训练模型

模型参数量地址
BERTtiny4Mhuggingface.co/prajjwal1/b…
BERTsmall29Mhuggingface.co/prajjwal1/b…
BERTbase109Mhuggingface.co/bert-base-u…
RoBERTabase125Mhuggingface.co/roberta-bas…
OPT125M125Mhuggingface.co/facebook/op…
ResNet1812Mdownload.pytorch.org/models/resn…
ResNet3422Mdownload.pytorch.org/models/resn…
ResNet5026Mdownload.pytorch.org/models/resn…
Swin-T28Mhuggingface.co/microsoft/s…
Swin-B88Mhuggingface.co/microsoft/s…
MAEbase86Mhuggingface.co/facebook/vi…