Понимание разложения по сингулярным значениям в контексте LSI

9

Мой вопрос, как правило, касается разложения по сингулярным значениям (SVD) и, в частности, латентного семантического индексирования (LSI).

Скажем, у меня есть который содержит частоты 5 слов для 7 документов.Aword×document

A =  matrix(data=c(2,0,8,6,0,3,1,
                   1,6,0,1,7,0,1,
                   5,0,7,4,0,5,6,
                   7,0,8,5,0,8,5,
                   0,10,0,0,7,0,0), ncol=7, byrow=TRUE)
rownames(A) <- c('doctor','car','nurse','hospital','wheel')

Я получаю матрицу разложение для с помощью SVD: .A = U D V TAA=UDVT

s = svd(A)
D = diag(s$d) # singular value matrix
S = diag(s$d^0.5 ) # diag matrix with square roots of singular values.

В 1 и 2 указано, что:

WordSim=US дает матрицу подобия слов , где строки представляют разные слова. WordSim

WordSim = s$u %*% S

DocSim=SVT дает матрицу сходства документов, где столбцы представляют разные документы.DocSim

DocSim = S %*% t(s$v)

Вопросов:

  1. Алгебраически, почему и DocSimS имеют слов / документов? Есть ли интуитивное объяснение?D уплотнительное гр S я м SWordSimDocSimS
  2. Основываясь на приведенном примере R, можем ли мы сделать какие-либо интуитивные наблюдения за количеством слов / подобием, просто взглянув на WordSim и DocSim (без использования косинусного сходства или коэффициента корреляции между строками / столбцами)?

введите описание изображения здесь

Zhubarb
источник
Я очень мало знаю о LSI, но SVD матрицы лежит в основе линейного уменьшения размерности, методов отображения, таких как главные компоненты, блоки, анализ соответствия. Основными «законами» SVD является то, что = проекция рядов на главные оси; и = проекция столбцов на главные оси. В некотором смысле это значения «сходства» между точками (строками или столбцами) и главными осями. Я думаю, можно ли рассматривать это как сходство между самими точками, зависит от контекста. A A U = V D AAV=UDAAU=VDA
ttnphns
Ах .. Я вижу в википедии, что LSI - это просто анализ соответствия (CA). Так-то лучше. CA - это биплот специально подготовленной таблицы данных. Вышеупомянутые проекции или координаты - вы используете их для построения точек строк и столбцов в пространстве главных осей. Близость между точками ряд-ряд, столбец-столбец и столбец-ряд указывает на их сходство. Однако расположение на графике зависит от того, как вы распределяете инерцию (дисперсию) по строке и точкам столбца.
ttnphns
@ttnphns. Спасибо, можете ли вы дать ссылку на: « = проекция рядов A на главные оси; и = проекция столбцов A на главные оси»? Я думаю, что это прояснит для меня вещи. Под основными осями вы имеете в виду собственные векторы, соответствующие верхним m сингулярным значениям в ? Я также сталкивался: «Для PCA нам не нужно вычислять левые сингулярные векторы», но я не могу полностью понять, почему это так. A U = V D DAV=UDAU=VDD
Жубарб
2
Ваш вопрос может быть улучшен путем редактирования, чтобы правильно отразить то, что говорится в этом документе. На стр. 22 он определяет как содержащий квадратные корни из , «ограниченные» самыми большими. Поэтому ни ни не участвуют, и при этом они не интерпретируются как «матрицы подобия». Соответствующие матрицы вместо и . Их можно использовать для восстановления аппроксимацииD U D D V U S S V A = U D V U ( S 2 ) V = ( U S ) ( S V ) .SDUDDVUSSVA=UDVU(S2)V=(US)(SV).
whuber
1
Я предположил, что D=svd(A)$dв R возвращает квадратные корни ненулевых собственных значений, поэтому я использовал . У меня нет проблем с аспектом уменьшения размерности, и я понимаю, что аппроксимация A более низкого ранга может быть сформирована так, как они описывают. Я нашел ответ по этой ссылке, частично отвечает на мой вопрос. UD
Жубарб

Ответы:

2

Матричная факторизация с использованием SVD разбивает входную матрицу на три части:

  • Левые сингулярные векторы . Первый столбец этой матрицы указывает, по какой оси строки входной матрицы изменяются больше всего. В вашем случае в первом столбце указано, какие слова отличаются друг от друга больше всего.U
  • Особые значения . Это масштабирование. Это относительно друг друга. Если первое значение в два раза больше второго, это означает, что первый сингулярный вектор (в и ) объясняет вдвое больший разброс, чем второй сингулярный вектор.D U V TDDUVT
  • Правые сингулярные векторы . Первая строка этой матрицы указывает, по какой оси столбцы входной матрицы изменяются наиболее сильно. В вашем случае в первой строке указывается, какие документы отличаются друг от друга больше всего.VT

Когда слова или документы отличаются друг от друга, это указывает на то, что они похожи. Например, если слово «доктор» встречается в документе чаще, слово «медсестра» и «больница» также встречаются чаще. Это показано первым масштабированным левым единичным вектором, первым столбцом Вы можете проверить этот результат, посмотрев на входные данные. Обратите внимание, что, когда медсестра действительно происходит, больница также возникает, и когда это не происходит, больница также не возникает.WordSim

Pieter
источник