TIFUKNN学习周记1(2022暑期项目)

2022.9.9

学习总结

本周开始阅读TIFUKNN的论文,Beacon先暂且搁置。

TIFUKNN论文学习总结

文章开篇总结了top-n recommendationsequential recommendation并介绍了NBR(下一购物篮推荐)和它们的不同。

虽然已经相对熟悉,但是觉得论文总结得很透彻,故在此写出:

  • top-n recommendation旨在对一个物品集合(包含很多物品)进行推荐,相当于NBR中只有一个篮子
  • sequential recommendation旨在对一个个物品组成的序列进行推荐,相当于NBR中每个篮子只有一个物品
  • NBR则是对一个个篮子(包含很多物品)的序列进行推荐。

另外,序列/基于会话推荐都不能用来进行NBR,因为这会打乱序列中的信息(因为此时篮子里的东西也被一个个搬上时间线,仿佛同一个篮子里的物品之间也有时序一样,这显然不对)。

基于会话推荐是将用户匿名(不建立用户画像)并考虑用户短期购买记录的推荐方法。

RNN不太能捕捉物品频次。一个办法是关注用户的重复购买行为,但这依然没有关注物品频次来的有用。

相似用户可能买相似的物品。但当有某个用户反复购买一件物品时,现有方法没法利用这一信息去向相似用户推荐该产品。

与Beacon类似,TIFUKNN用0/1向量表示每一个篮子,并且推荐一个固定物品数量的下一个篮子。

两种模式:重复购买模式和协同购买模式。

重复购买模式考量一个用户曾经买过的东西对下一个篮子里物品的影响。这其实就是物品频次(PIF)的作用。但是能否把它用于协同过滤?即一个用户的PIF能不能帮助给相似用户推荐物品?

论文考虑了四种指标:

  • 重复购买模式召回率
  • 协同购买模式召回率
  • 两者都考虑的召回率
  • 两者都不考虑的召回率

四种指标

在四个数据集上进行测试后,重复购买模式召回率很大,然而协同购买模式召回率更大,协同过滤能很准确的预测下一个篮子。且增加邻居数量,该召回率还会更大。

两者都考虑的召回率没有特别大,说明两者之间有重叠,且通过重复购买模式召回率与两者都考虑的召回率之差可发现,协同购买模式确实提供了很多帮助。

两者都不考虑的召回率很小很小,说明这两个模式就是主要的模式,且两模式结合产生的效果比单模式好。PIF在NBR中起到了尤为关键的作用。

有很多因素可导致RNN难以找到全局最优解,这样的话,RNN不太好学习向量加法。本文拟通过消除这些因素来解决这一问题。

论文中,用2500个包含10个100维one-hot向量的向量序列来测试RNN做向量加法的效果。为了引入“重复购买行为”,每个序列中,最后两个向量从前八个序列中随机选出。

损失

结果最后损失收敛时却高达4,这很不合理,因为纵使猜所有结果为0向量,损失也应该才1.6:

1.6

由于第一次使用了embedding,可能会丢失信息,所以第二次不用embedding而直接用原始的one-hot向量训练,结果损失还是收敛于4。

又猜测可能是优化器导致损失居高不下,但改变优化器后损失还是这么高。

论文暂且读到这。

难题与解决思路

论文读到这,没遇到太多问题。有些陌生概念search engine解决掉了。再加上已经有通过读Beacon得到的经验,目前读下来没有什么坎坷。

心得收获

这篇论文前面花了很多笔墨引入、铺垫和解决现存问题,到目前为止都没引出TIFUKNN。

这其实也挺好的,细细读下来,能明显感到这些内容和TIFUKNN应该是有很大关联的。

感觉以后写论文也可以像他这样由对现存问题的解决方案的讨论慢慢引入到本文核心内容,可以让读者一眼看出论文的贡献,也可以让读者更好理解之后的核心内容。

下周计划

继续看TIFUKNN论文。