- May 2021
-
hiphopfoundations.org hiphopfoundations.org
-
Jeff Beck
In addition to the conventional two channel stereo version the album was also released by Epic in 1976 in a four channel quadraphonic edition on LP record and 8-track tape.
-
- Oct 2018
-
192.168.199.102:5000 192.168.199.102:5000
-
Matrix Factorization
有时候你会有两种 object, 他们之间由某种共通的 latent factor 去操控。
比如我们都会喜欢动漫人物,但我们不是随随便便就喜欢的,而是说在我们自己的性格和动漫人物的性格背后隐含着某个相同的“属性列表”
每个人根据自己的【特点】都可以看成是【属性列表】中的一个向量或是高维空间中的一个点(向量),每个动漫人物也可以根据其【特点】看成是【属性列表】中的一个向量或高维空间中的一个点(向量)。
如果这两个向量很相似的话,那么两者 match,就会产生【喜欢】
假设:
- 已知 \(r_{person}\) 和 \(r_{idiom}\) 是这两个向量
- 求:人和动漫人物之间的匹配度(喜欢程度)。
现在:
- 已知 任何动漫人物之间的匹配度(喜欢程度)
- 求:向量\(r_{person}\) 和 \(r_{idiom}\)
【注意】这个 latent vector 的数目是试出来的,一开始我们并不知道。
比如 latent attribute = ['傲娇', '天然呆']
person A : \(r^A = [0.7, 0.3]\)
character 1: \(r^1 = [0.7, 0.3]\)
\(r^A \cdot r^1 = 0.58\)
- # of Otaku = M
- # of characters = N
- # of latent factor(a vector) = K (means vector r is K dim)
$$ X \in R^{M*N} \approx \begin{vmatrix} r^A \\ r^B \\r^C\\.\\.\\. \end{vmatrix}^{M*K} * \begin{vmatrix} r^1 & r^2 & r^3 &.&.&. \end{vmatrix}^{K*N} $$
这个问题可以直接使用 SVD 来解决,虽然SVD分解得到的是三个矩阵,你可以视情况将中间矩阵合并给前面的或后面的
MF 处理缺值问题 --- Gradient Descent
上面的是理想情况:table X 中所有的值都完备;
现实情况是:tabel X 通常是缺值的,有很多 Missing value. 那该如何是好呢?
使用 GD,来做,目标函数是:
\(L = \sum_{(i,j)}(r^i \cdot r^j - n_{ij})^2\)
通过对这个目标函数最小化,就可以求出 r.
然后就可以用这些 r 来求出 table 中的每一个值。
more about MF
MF 的求值函数(table X 的计算函数,我们之前一直假设他是两个 latent vector 的匹配程度)可以考虑更多的因素。他不仅仅可以表示匹配程度。
从: \(r^A \cdot r^1 \approx 5\) 到更精确的: \(r^A \cdot r^1 + b_A + b_1\approx 5\)
- \(b_A\): 表示他对动漫多感兴趣
- \(b_1\): 表示这个动漫的推广力度如何
如此新的 GD 优化目标就变成:
\(L = \sum_{(i,j)}(r^i \cdot r^j + b_i + b_j - n_{ij})^2\)
也可以加 L1 - Regularization, 比如 \(r^i, r^j\) 是 sparse 的---喜好很明确,要么天然呆,要么就是傲娇的,不会有模糊的喜好。
MF for Topic analysis
MF 技术用在语义分析就叫做 LSA(latent semantic analysis):
- character -> document
- otakus -> word
- table item -> term frequency of word in this document
注意:通常我们在做 LSA 的时候还会加一步操作,term frequency always weighted by inverse document frequency, 这步操作叫做 TF-IDF.
也就是说,你用作 \(L = \sum_{(i,j)}(r^i \cdot r^j + b_i + b_j - n_{ij})^2\) 中的 \(n_{ij}\) 不是原始的某篇文章中的某个单词的出现次数,而是出现次数乘以包含这个单词的文章数的倒数亦即,
(n_{ij} = \frac{TF}{IDF})\
如此当我们通过 GD 找到 latent vector 时,这个向量的每一个位表示的是 topics(财经,政治,娱乐,游戏等)
-