2020 推荐系统入门 (2)

recommendation_sys.jpeg

推荐算法架构

Match

也就是召回,之前我们已经介绍过,这阶段就是从成千上万的数据中进行筛选,常用算法就是协同过滤,可以是基于用户的,也可以是基于物品的,除此之外还有基于内容和基于隐语义。

Rank

排序阶段就是基于召回过滤出物品进行进一步筛选,缩小范围拟合用户喜好,决定了最终的推荐效果。CTR 预估,所谓 CTR 预估也就是点击率预估,使用 LR 算法,CTR 主要用于估计用户是否会点击某个商品,需要用户点击数据。这里简单说一下如何使用 LR(logistic regression),大家喜欢叫这个逻辑回归,其实这样叫并不专业,专业的 logistics 回归或者多级指数回归吧。点击率预估是我们给用户推荐的物品看用户是否点击然后将物品和是否点击的结果作为样本来训练模型,当然样本数据中会包括许多用户或商品特征。这里LR要是的点击概率,然后通过概率来调整推荐次序

策略调整

重点说一下后两个环节规则和展示,规则就是我们还需根据实际业务指定规则对排序给出物品进行再一次筛选,展示就是用户最终看到我们推荐给他的 TopN 物品。

推荐算法

如何构建推荐模型

  • 数据
  • 特征工程
  • 选择合适机器学习模型
  • 预测和反馈
    推荐模型设计流程,也需要经历上面几个步骤

数据

数据是一切的保证,只有肥沃的土地才能长出好的庄稼,再现代化机器播种和收割也无法取代土地对收成起着决定性的重要地位。

数据来源

首先我们看如何收集数据

  • 显式数据
    • 评分
    • 评论/评价
  • 隐式数据
    • 历史订单
    • 加入购物车
    • 页面浏览
    • 点击
    • 搜索记录
      显式收集数据比较好理解,也容易收集。而隐式数据需要我们花一些心思进行设计,如何有效预埋点来采集用户行为。

特征工程

所谓特征工程就是,用一些物品的关键词(标签)将物品明确地表示描述出来,并且便于与其他物品进行区分。这些特征也包括用户对物品描述,也就是将物品抽象为一系列词,这些词用于判断用户是否喜欢该物品

| item\user | tony | jerry | alice | mike | joan |
|---|---|---|---|---|---|---|---|
| AItem | 1 | | .25 | | .25 |

这就是 user-item 表,1 表示 tony 用户对 AItem 评分。

| item\user | tony | jerry | alice | mike | joan |
|---|---|---|---|---|---|---|---|
| AItem | 1 | | .25 | | .25 |
| BItem | | .25 | | | .25 |
| CItem | 1 | | .25 | | |
| DItem | | | .25 | | 1 |
| EItem | | .25 | | | .25 |

基于内容特征提取还会用分词、word2vec

选择合适机器学习模型

这部分内容是随后重点介绍的内容。

预测输出

  • cross-sell
  • Up-sell

协同过滤

之前我们已经介绍了什么是协同过滤,以及什么是User-based CF 和 Item-based CF,今天重点说一说相似度计算。

相似度计算

在协同过滤中相似度的算法选择也是根据实际情况而定,例如如果数据是用户评分,也就是实数情况,

第二种情况就是布尔值

余弦相似度

KNN 中就会用到各种不同方法来计算两个向量间距离,余弦距离就是计算两个向量在空间的夹角,如果他们重合就是 1 垂直就是 0 也就是他们没有相关性,180 就是 -1 ,从而我们可以得到两个向量间的关系。
余弦相似度忽略向量长度,仅考虑向量的角度。所以假设 Alice 给 A 和 B 两个物品的评分分别是 8 和 5 而 Tony 给 A 和 B 物品评分为 1 和 0.5 通过余弦相似度似乎他们很接近,但是实际好像并非如此。

皮尔逊相关系数(Pearson's Correlation)

r = \frac{\sum_{i=1}^n (x_i - \mu_x)(y_i - \mu_y)}{\sqrt{\sum_{i=1}^n (x_i - \mu_x)^2} \sqrt{\sum_{i=1}^n (y_i - \mu_y)^2}}

对余弦相似度优化,对向量去中心化。每一个分量做平均值,5 和 3 然后求均值 6.5 然后分别 8 和 5 去掉均值得到 1.5 和 -1.5 ,然后 1 和 0.5 情况类似 0.75 然后得到去中心化的分别为 0.25 和 -0.25,然后在计算得到值要由于仅用余弦相似度计算两个向量间距离。所谓优于余弦相对度就是因为在皮尔逊相关中考虑到了长度。

如果评分数据是连续数值,适合用余弦相似度和皮尔逊相关系数来计算。

杰卡德相似度

所谓杰卡德相似度是交集除以并集。适合用于杰卡德相似度来计算。

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