Question 1000573: 推荐系统中常用的表示相似或者距离的方法有哪些?

统计/机器学习 推荐系统

我只知道一个余弦相似,请问还有其他常用的吗?


Answer

Answer 1:

我们通常用距离或者相似度来表示两个对象的相似程度。


距离越大,说明相似程度越低。常用的距离有:

欧式距离、曼哈顿距离、汉明距离。


常用的相似有:

余弦相似度、内积相似、Jaccard相似、皮尔逊相关系数。




Question 1000726: 余弦相似和内积的意义?

统计/机器学习 推荐系统

我们知道余弦相似实际上就是归一化的内积。那归一化的意义在这里是什么意思?如果不归一的话,这个内积的意义又是什么呢?


Answer

Answer 1:

它们表达的意思不一样,不能简单的一概而论。


余弦距离只考虑了角度差,内积综合考虑了角度差和长度差。


比如有两个对象A和B,它们的向量表示为$A(1,1,0)$和$B(0,1,1)$,那么它们余弦相似就是$\frac{1}{\sqrt{2}\sqrt{2}}=\frac{1}{2}$。余弦相似不考虑向量的长度,所以$A(1,1,0)$和$C(0,3,3)$的相似程度和$A$与$B$的相同。


但是,如果如果向量的长度本身对相似有真实的影响(在理解含义的情况下),推荐使用内积。比如对商品的几个属性打分,1表示不确定,依次到,5表示很确定,那么$A(1,1,1)$,$B(4,4,4)$,$C(5,5,5)$三个商品,根据内积,$B$与$C$更相似。但是余弦相似在这里就无法区分$A,B,C$的相似性。




Question 1001605: 推荐系统里的ALS是什么意思?

统计/机器学习 推荐系统

推荐系统里的ALS是什么意思?



Answer

Answer 1:

ALS是Alternating Least Squares,交替最小二乘。这是一种数值计算的方法。

在推荐系统中,我们经常需要计算矩阵分解。比如$M$是原本的评分矩阵,我们想找到两个矩阵$P$和$Q$使得,

$$M=PQ^T$$

或者

$$\text{min}\|M-PQ^T\|_2^2$$

因为这里$P$和$Q$同时都是变量,计算会比较复杂。一个简单的方法是,固定其中一个,计算另外一个。

例如我们先随机产生$P_0$,然后固定$P_0$,求解

$$Q_1=\text{arg}\min_{Q}\|M-P_0Q^T\|_2^2$$

然后再固定$Q_1$,求解

$$P_1=\text{arg}\min_{P}\|M-PQ_1^T\|_2^2$$

之后再固定$P_1$,求解

$$Q_2=\text{arg}\min_{Q}\|M-P_1Q^T\|_2^2$$

这样交替进行,每次只更新$P$和$Q$的其中一个,每一步计算的过程就和最小二乘法一样;所以叫做交替最小二乘法。

Answer 2:

Alternating Least Squares

有兴趣的话,可以直接看论文


Answer 3:

这种方法不保证收敛


Question 1001764: 推荐系统算法里的cold start是什么意思?

统计/机器学习 推荐系统

推荐系统算法里的cold start是什么意思?

冷启动?



Answer

Answer 1:

推荐算法在对新用户、新产品很难做到好的推荐。这类问题就是冷启动。

为什么呢?

没数据呗。

新用户:你没有他们的浏览记录、消费记录,怎么推荐呢?

新产品:没有购买它的人群、浏览它的人群、和同批浏览的产品的信息,怎么推荐呢?

很多重要的feature都是missing的,对于新产品、新用户,一开始很难推荐。启动困难,cold start。


Answer 2:

其实只要是数据不充分的时候,都会有冷启动问题。

比较典型的是,新用户,新产品之类。

此外,还有长期没流量的老用户,老产品,他们也都会有冷启动问题。



Question 1004285: 怎么构造商品向量embedding来做推荐系统?

统计/机器学习 推荐系统 应用场景

现在很多都流行做embedding嵌入向量的,比如word2vec的词向量。如果是商品,可以构造类似的商品向量吗?


Answer

Answer 1:

步骤1

    把用户的商品点击行为按时间串起来大序列,序列中的元素即商品。

步骤2

    指定一个时间窗口(比如天),把大序列切分为多个子序列,得到多个用户的多个子序列

步骤3

    选模型训练可得到商品的embedding向量。

这应该是生成的方式之一吧,其他的可以补充。

Answer 2:

可以借鉴一下airbnb的推荐系统算法,他们用的就是房源embedding。

链接在这里


来自sofasofa(一个专业的机器学习社区),建议去sofa社区阅读,这里只是记录。防止网站在网络中走失。