美图个性化推荐

Deep Learning在美图个性化推荐的应用实践 - Likeli的文章 - 知乎
https://zhuanlan.zhihu.com/p/87466510

一、工作目标

个性化推荐的首要目标是理解内容。从内容本身的视觉、文本以及特定场景下用户的行为来理解社区里可用于推荐的内容。接下来是理解用户,通过用户的基础画像 ( 年龄,性别等 )、设备画像 ( OS,机型等 ),以及用户的历史行为来挖掘其兴趣偏好。

再理解了社区的内容和用户之后,才是通过大规模的机器学习算法进行精准推荐,千人千面地连接用户与内容,从而持续提升用户体验,促进社区繁荣。

二、挑战

  • 海量
  • 实时
  • 长尾:用户分布长尾,新用户占比超过27%;曝光分布长尾,关注<<点击<<曝光

三、 召回端

召回端的 Item embedding 技术和召回模型,用于从百万级别的候选集里挑选 TOP 500个用户最感兴趣的候选集。相对于召回端,排序端的深度排序模型能够融合多种召回来源并进行统一排序,排序模型能包容规模更大的细粒度特征,实现更加精准的推荐。美团线上部署的召回技术主要包括 Item2vec,YouTubeNet,以及双塔 DNN

1.Item2vec

将item进行embedding,当用户点击了某个item,找到相似的item用于排序

用户行为(如点击率、收藏率)+图片视觉(如图片质量、清晰度)+文本特征(关键词、实体词)

基于 skip-gram+negative sampling 来做的 item2vec 。输出端是与输入端的 target item 邻近的64个 item。64相对于 NLP 里取的5-6个是比较大的,这是因为用户的点击序列不像自然语言那样具有严格的局部空间句法结构。在比较大上下文窗口中,更容易找到和目标 item 相似的上下文 item,模型更容易学习。

Item2vec 学习出来的 item 向量是美图多种向量检索式召回策略的底层数据,包括实时兴趣,短期兴趣等等。比如当用户点击了某个 item,系统会实时地通过向量内积运算查询相似的 item 并插入到召回源头部,用于下一轮的排序。

2.YouTubeNet

YouTubeNet 在学习 item 向量的时候考虑了用户向量。从模型的优化目标上可以看出,是在给定用户向量的情况下,从候选池中筛选出该用户最感兴趣的 item 列表。

模型训练用的label是用户最近点击过的 item 列表,特征包括两部分,一部分是用户更早之前点击过的列表 ( clicked_item_list ),另一部分是用户的 demographic 统计特征,如年龄、性别等。引入上述用户的个性化信息之后,模型学习 user embedding 和 item embedding,并离线导出。线上使用时利用 FAISS 工具离线计算好每个用户的 top N 候选 item 集,提供给排序算法使用。同时实时采集用户不断变化的点击item数据,计算用户侧向量。

实时计算用户侧向量的工作,一共分了两部分:第一部分是离线部分,这里模型一天一更新。离线部分基本流程和上一段所述相同,模型训练完之后导出 item 向量并在 FAISS 中构建好索引。第二部分是实时部分,这一部分借助 kafka,实时采集用户点击行为数据并构建 clicked_item_list 特征,接着请求离线训练好的模型,计算出用户侧向量,最后从 FAISS 中查询的候选集,输出给排序服务。

3.双塔DNN

联合用户行为和item侧特征进行召回。双塔 DNN 模型构建用户侧 embedding 的方式和 YouTubeNet 是一样的:先给用户的点击行为序列,年龄性别等稀疏的特征做 embedding,再经过几个简单的全连接层,得到用户侧向量。对于 item 侧特征,双塔 DNN 引入另一个子网络来学习,学习方式和用户侧特征是一样的。

4.总结

Item2vec 学习出来的 item 向量具有很好的相似性,作为底层数据,服务了多个召回策略, 在美图具有非常广泛的应用。包括实时兴趣,短期兴趣等等,覆盖了10%以上的曝光占比。YouTubeNet 和双塔 DNN 则分别引入用户侧和 item 侧特征,有监督地学习用户最感兴趣的 item 候选集

四、排序端

1.NFM模型

为什么选用NFM模型?1.Wide&Deep, DeepFM, DCN 等从模型的复杂度上看没有比 NFM 拥有更强的预估能力,计算效率也没有明显优势。离线评估和线上实验上都没有得到正向效果。2.xDeepFM 和 NFFM 离线指标提升了,但是计算复杂度很高。此外 NFFM 模型参数量大,内存是个瓶颈。导致它俩无法大规模落地。

2.NFwFM模型

是在FwFM模型的基础上演化出来的,将FwFM引入到深度模型里面。

特征按照逻辑分为3个大模块:用户侧特征 ( 包括年龄、性别等 ),item 侧特征 ( 包括 item id,item 标签等 ) 以及上下文侧特征。

将 FwFM 分解成了3个子模块:第一个模块是线性加和模块 ( 上图中 S 表示 ),不区别 field 学习的特征;第二个模块是矩阵分解模块 ( 上图中的 MF 部分 ),用来学习 field 粒度下的特征组合,比如 user field 和 item field 的二阶交叉;第三个模块是 FM 模块,用来学习 field 内部 feature 粒度的特征组合。

多目标NFwFM

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容