【问题标题】:Regularized Latent Semantic Indexing in RR中的正则化潜在语义索引
【发布时间】:2015-01-28 12:03:22
【问题描述】:

我正在尝试在 R 上实现正则化潜在语义索引 (RLSI) 算法。
原始论文可以在这里找到:
http://research.microsoft.com/en-us/people/hangli/sigirfp372-wang.pdf

下面是我的代码。

在这里,我从两个矩阵 U 和 V 生成一个矩阵 D。U 的每一列对应一个主题向量,并且它是稀疏的。之后,我在 D 矩阵上应用 RLSI,看看是否可以将其分解为两个矩阵,其中一个具有像 U 这样的稀疏向量。

但是,生成的 U 远非稀疏。实际上,它的每个元素都是用数字填充的。

我的代码有问题吗?

非常感谢您。

library(magrittr)

# functions
updateU <- function(D,U,V){
    S <- V %*% t(V)
    R <- D %*% t(V)

    for(m in 1:M){
        u_m <- rep(0, K)

        u_previous <- u_m
        diff_u <- 100
        while(diff_u > 0.1){
            for(k in 1:K){
                w_mk <- R[m,k] - S[k,-k] %*% U[m,-k]
                in_hinge <- (abs(w_mk) - 0.5 * lambda_1)
                u_m[k] <- (ifelse(in_hinge > 0, in_hinge, 0) * ifelse(w_mk >= 0, 1, -1)) / S[k,k]
            }
            diff_u <- sum(u_m - u_previous)
            u_previous <- u_m
        }
        U[m,] <- u_m
    }
    return(U)
}

updateV <- function(D,U,V){
    Sigma <- solve(t(U) %*% U + lambda_2 * diag(K))
    Phi <- t(U) %*% D
    V <- Sigma %*% Phi
    return(V)
}


# Set constants
M <- 5000
N <- 1000
K <- 30
lambda_1 <- 1
lambda_2 <- 0.5


# Create D 
originalU <- c(rpois(50000, lambda = 10), rep(0, 100000)) %>% sample(., 150000) %>% matrix(., M, K)
originalV <- rpois(30000, lambda = 5) %>% sample(., 30000) %>% matrix(., K, N)
D <- originalU %*% originalV


# Initialize U and V
V <- matrix(rpois(30000, lambda = 5), K, N)
U <- matrix(0, M, K)


# Run RLSI (iterate 100 times for now)
for(t in 1:100){
    cat(t,":")
    U <- updateU(D,U,V)
    V <- updateV(D,U,V)
    loss <- sum((D - U %*% V) ^ 2)
    cat(loss, "\n")
}

【问题讨论】:

  • 你能把你的问题归结为一个最小的工作示例吗?
  • 谢谢,罗曼。我认为这是最小的,它没有工作......然而,我昨天在代码中发现了一个错误,我已经在下面指出了。

标签: r optimization machine-learning nlp


【解决方案1】:

我明白了。每次运行 updateU 函数时,U 中的每一行都必须设置为零向量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多