Transformers4Rec 总结


 
     今天摸盘了下Transformers4Rec的整个系统。为了给大家节约摸盘的时间。总结以下几点供大家参考。
  论文是这个:
Transformers4Rec:Bridging the Gap between NLP and Sequential / Session-Based
Recommendation
     发表在Recsys 2021
 
1、简介。Transformers4rec是一个python 库。你可以 pipinstall 开箱即用。英伟达团队开发的。
 
2、这个库做推荐算法系统效果还不错。拿了两个冠军:WSDM WebTour Workshop Challenge 2021,organized by Booking.com, and the SIGIR eCommerce WorkshopData Challenge 2021, organized by Coveo.
 
3这个库主要是一个桥接器。他将推荐系统数据集处理成tranformer能处理的数据格式,然后调用HuggingFaceTransformers的模型。
     HuggingFaceTransformers不是做人脸识别的 transformer模型。HuggingFace是一家初创型的聊天机器人公司。他们搞transformer很有一套。谷歌开源一个算法,他们就会实现一套pytorch的版本。后来在这块很有建树,将自己做的一些模型整理到一块,就是HuggingFace Transformers整个git project
     这里插一句,我觉得tensorflow2.0写起来很费劲。Pytorch友好很多。以后还是多写pytorch吧。
 
4、主体逻辑之会话推荐。
     如果你去主动去逛购物网站,你每次闲逛如果有目的的话,应该是每次购物的目的是不同的。

 
      今天买TV,明天买手机。
     那么如果要推荐更精准,我们应该关注当下用户的兴趣。从他开始一个新的浏览窗口开始,记录他浏览的item 序列,然后算法推荐他接下来感兴趣的item。这个跟NLP中的GPT预测文章的下一句话是啥是一个类型的问题。Transformers4rec就是干这个事情。
 



 
5、评价指标。整个论文里面的实验评价指标是针对top20的准确率召回率来评价的。
 
6、输出。这个模型主要功能就是预测下一个Item的。当然你也可以做分类和回归任务,他也提供了接口。
 
7、实战建模思考。整个模型是针对推荐系统做的实验。不过我觉得对于搜索精排更加实用。什么时候用呢?比如搜鞋子,第一页展示了10双。然后用户没找到自己喜欢的,点下一页的时候调用这个算法,这个时候就是一个定义很明确的会话主题了。接下来排序的时候,用户之前看过的商品,是否有款式类似价格比他更便宜的?这个GPT 来干比较合适。
 
8、其他方面。
推荐算法实战的话有很多场景的。每个场景的推荐算法其实可以不一样。例如一个电商平台进首页的推荐算法和商品详情页的推荐商品算法肯定不一样。这个transformer4rec放在平台首页肯定不太合适的。一个场景就是商品详情页的推荐。根据他过往浏览记录推荐next item
这个算法其实打的还是一个小点。事实上,推荐系统需要解决的几大问题比这个收益更大一些。哪几大问题呢?我简单列一下,1exploration-exploitationEE)问题。如果探索用户的新兴趣。而不是一直挖掘老兴趣。例如用户买过一双鞋,下次推给他一双款式一样更便宜的鞋子,推荐算法是很准确的,但是从平台角度看是没意义的。用户只会点击进去甚至下单。然后默默将之前的订单退单。这一块可以通过bandit或者强化学习来搞。2)流量漏斗收敛问题。这个问题的定义就是:曝光量前十名的排序要跟点击前十名的排序一致,点击前十名要跟转化前十名的排序一致。这样的信息系统是理想的收敛系统。但常常是做不到的。如果把这个漏斗打平是要给大问题。3debias问题。这个也是很好拿收益的方法。一些排序靠后,但好卖的商品应该得到更多流量。这个跟第二个问题是相近的。可以说是他的一个解决方案。
 
9、最后,我其实试跑了下代码,发现他这个底层算法是基于GPU cuda的。他没有CPU的版本,我一个笔记本电脑没跑通.
 
 
 
 

请使用浏览器的分享功能分享到微信等