From ccb784b9c23cc869b8f619f0310387e421f943fd Mon Sep 17 00:00:00 2001
From: feger <marc.feger@hhu.de>
Date: Thu, 30 Jan 2020 17:40:58 +0100
Subject: [PATCH] Refactor

---
 recommender.tex |   2 +-
 submission.pdf  | Bin 454570 -> 454556 bytes
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/recommender.tex b/recommender.tex
index e700851..b7079d9 100644
--- a/recommender.tex
+++ b/recommender.tex
@@ -29,7 +29,7 @@ In the following, the four most classical \textit{matrix-factorization} approach
 The first and easiest way to solve \textit{matrix-factorization} is to connect the \textit{feature vectors} of the \textit{users} and the \textit{items} using the \textit{inner product}. The result is the \textit{user-item interaction}. In addition, the \textit{error} should be as small as possible. Therefore, $min_{p_u, q_i}{\sum_{(u,i) \in \mathcal{B}} (r_{ui} - \hat{r}_{ui})^{2}}$  is defined as an associated \textit{minimization problem} \citep{Kor09}.
 
 \subsubsection{Regulated Matrix-Factorization}\label{subsec:rmf}
-This problem extends the \textit{basic matrix-factorization} by a \textit{regulation factor} $\lambda$ in the corresponding \textit{minimization problem}. Since $\mathcal{R}$ is thinly occupied, the effect of \textit{overfitting} may occur due to learning from the few known values. The problem with \textit{overfitting} is that the generated \textit{ratings} are too tight. To counteract this, the magnitudes of the previous vectors is taken into account. High magnitudes are punished by a factor $\lambda(\lVert q_i \rVert^2 + \lVert p_u \lVert^2)$ in the \textit{minimization problem}. Overall, the \textit{minimization problem} $min_{p_u, q_i}{\sum_{(u,i) \in \mathcal{B}} (r_{ui} - \hat{r}_{ui})^{2}} + \lambda(\lVert q_i \lVert^2 + \lVert p_u \lVert^2)$ is to be solved.
+This problem extends the \textit{basic matrix-factorization} by a \textit{regulation factor} $\lambda$ in the corresponding \textit{minimization problem}. Since $\mathcal{R}$ is thinly occupied, the effect of \textit{overfitting} may occur due to learning from the few known values. The problem with \textit{overfitting} is that the generated \textit{ratings} are too tight. To counteract this, the magnitudes of the previous vectors are taken into account. High magnitudes are punished by a factor $\lambda(\lVert q_i \rVert^2 + \lVert p_u \lVert^2)$ in the \textit{minimization problem}. Overall, the \textit{minimization problem} $min_{p_u, q_i}{\sum_{(u,i) \in \mathcal{B}} (r_{ui} - \hat{r}_{ui})^{2}} + \lambda(\lVert q_i \lVert^2 + \lVert p_u \lVert^2)$ is to be solved.
 The idea is that especially large entries in $q_i$ or $p_u$ cause $\lVert q_i \rVert, \lVert p_u \rVert$ to become larger. Accordingly, $\lVert q_i \rVert$ and $\lVert p_u \rVert$ increases the larger its entries become. This value is then additionally punished by squaring it. Small values are rewarded and large values are penalized. Additionally the influence of this value can be regulated by $\lambda$ \citep{Kor09}.
 
 \subsubsection{Weighted Regulated Matrix-Factorization}
diff --git a/submission.pdf b/submission.pdf
index f4217e7c28b72b733d2e0a0f70ee97151a19ed2d..3cf9ec050d0d9bc343351c26dd1ab4167b8ed524 100644
GIT binary patch
delta 10131
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

delta 10170
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

-- 
GitLab