%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Journal Article
% LaTeX Template
% Version 1.4 (15/5/16)
%
% This template has been downloaded from:
% http://www.LaTeXTemplates.com
%
% Original author:
% Frits Wenneker (http://www.howtotex.com) with extensive modifications by
% Vel (vel@LaTeXTemplates.com)
%
% License:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----------------------------------------------------------------------------------------
%	PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------

\documentclass[twoside,twocolumn]{article}

\usepackage{blindtext} % Package to generate dummy text throughout this template

\usepackage[sc]{mathpazo} % Use the Palatino font
\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs
\linespread{1.05} % Line spacing - Palatino needs more space between lines
\usepackage{microtype} % Slightly tweak font spacing for aesthetics

\usepackage[slovak]{babel} % Language hyphenation and typographical rules
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[hmarginratio=1:1,top=32mm,columnsep=20pt]{geometry} % Document margins
\usepackage[hang, small,labelfont=bf,up,textfont=it,up]{caption} % Custom captions under/above floats in tables or figures
\usepackage{booktabs} % Horizontal rules in tables

\usepackage{lettrine} % The lettrine is the first enlarged letter at the beginning of the text

\usepackage{enumitem} % Customized lists
\setlist[itemize]{noitemsep} % Make itemize lists more compact

\usepackage{abstract} % Allows abstract customization
\renewcommand{\abstractnamefont}{\normalfont\bfseries} % Set the "Abstract" text to bold
\renewcommand{\abstracttextfont}{\normalfont\small\itshape} % Set the abstract itself to small italic text

\usepackage{titlesec} % Allows customization of titles
\renewcommand\thesection{\Roman{section}} % Roman numerals for the sections
\renewcommand\thesubsection{\roman{subsection}} % roman numerals for subsections
\titleformat{\section}[block]{\large\scshape\centering}{\thesection.}{1em}{} % Change the look of the section titles
\titleformat{\subsection}[block]{\large}{\thesubsection.}{1em}{} % Change the look of the section titles

\usepackage{fancyhdr} % Headers and footers
\pagestyle{fancy} % All pages have headers and footers
\fancyhead{} % Blank out the default header
\fancyfoot{} % Blank out the default footer
\fancyhead[C]{Klasifikácia YouTube komentárov} % Custom header text
\fancyfoot[RO,LE]{\thepage} % Custom footer text

\usepackage{titling} % Customizing the title section

\usepackage{hyperref} % For hyperlinks in the PDF
\usepackage{listings}
\usepackage{graphicx}
\graphicspath{ {../images/} {../output/} }

%----------------------------------------------------------------------------------------
%	TITLE SECTION
%----------------------------------------------------------------------------------------

\setlength{\droptitle}{-4\baselineskip} % Move the title up

\pretitle{\begin{center}\Huge\bfseries} % Article title formatting
\posttitle{\end{center}} % Article title closing formatting
\title{Klasifikácia YouTube komentárovpomocou neurónovej siete} % Article title
\author{%
\textsc{Maroš Kopec} \\[1ex] % Your name
\normalsize Masarykova Univerzita \\ % Your institution
\normalsize \href{mailto:487595@muni.cz}{487595@muni.cz} % Your email address
%\and % Uncomment if 2 authors are required, duplicate these 4 lines if more
%\textsc{Jane Smith}\thanks{Corresponding author} \\[1ex] % Second author's name
%\normalsize University of Utah \\ % Second author's institution
%\normalsize \href{mailto:jane@smith.com}{jane@smith.com} % Second author's email address
}
\date{\today} % Leave empty to omit a date


%----------------------------------------------------------------------------------------

\begin{document}

% Print the title
\maketitle

%----------------------------------------------------------------------------------------
%	ARTICLE CONTENTS
%----------------------------------------------------------------------------------------

\section{Úvod}

\lettrine[nindent=0em,lines=3]{K} lasifikácia spamu je problémom, ktorému sa venuje množstvo odborných článkov a prác.
Za spam sa považuje nevyžiadaná správa rozosielaná veľkému počtu adresátov alebo rozosielaná na mnoho miest, zväčša za účelom reklamy.
Pre množstvo internetových stránok je práve spam veľkým problémom, pretože ich používatelia sú zahltený obsahom, ktorý im znepríjemnňuje skúsenost’ s ich obsahom.
Konkrétne YouTube je terčom veľkého množstva spamu od používateľov, ktorí sa týmto spôsobom snažia zviditelniť vlastné video či kanál.

%------------------------------------------------

\section{Súvisiace práce}
Táto práca je inšpirovaná prácou TubeSpam\cite{TubeSpam} z Federálnej Univerzity Sao Carlos.
V tejto práci akademici porovnávali niekoľko metód klasifikácie spamu, menovite rozhodovacie stromy, K-najbližších susedov, logistickú regresiu, Bernoulliho naivný Bayes, Gaussov naivný Bayes, Multinomiálny naivný Bayes, náhodné lesy, Support vector machines s lineárnym kernelom, Support vector machines s polynomiálnym kernelom a Support vector machines s Gaussovým kernelom.
Práca dopĺňa vyššie zmienenú štúdiu o modely postavené na rekurentných neurónových sieťach.

\begin{table}
    \centering
    \caption{Kompozícia datasetu}\label{tab:dataset}
    \begin{tabular}{|lllll|}
    \hline
    Dataset   & YouTube ID   & \# Spam & \# Ham & Total  \\
    \hline
    Psy       & 9bZkp7q19f0  & 175     & 175    & 350    \\
    KatyPerry & CevxZvSJLk8  & 175     & 175    & 350    \\
    LMFAO     & KQ6zr6kCPj8  & 236     & 202    & 438    \\
    Eminem    & uelHwf8o7\_U & 245     & 203    & 448    \\
    Shakira   & pRpeEdMmmQ0  & 174     & 196    & 370    \\
    \hline
    \end{tabular}
\end{table}

V pôvodnej práci autori klasifikovali spam oddelene pre každé video. Neurónová sieť potrebuje veľké množstvo záznamov, aby bola schopná naučiť sa rozpoznávať spam.
Dataset však obsahuje len obmedzený počet záznamov. Preto sa dataset spojil a všetky experimenty sa vykonávali nad zmiešanými záznamami.

%------------------------------------------------

\section{Dataset}

Pre trénovanie a testovanie modelov sú použité rovnaké dáta ako boli použité v práci TubeSpam \footnote{\href{https://archive.ics.uci.edu/ml/datasets/YouTube+Spam+Collection}{https://archive.ics.uci.edu/ml/datasets/YouTube+Spam+Collection}}.
Dataset obsahuje 1956 záznamov z 5 najpozeranejších YouTube videí vo formáte csv. Kompozícia datasetu je znázornená v tabuľke \ref{tab:dataset}. Pre potreby experimentu bol dataset rozšírený o popis videa.

Pre predstavu obsahu záznamov boli vygenerované slovné mapy, ktoré sú zobrazené na obrázkoch~\ref{fig:ham}~a~\ref{fig:spam}.
Nad záznamami bol vykonaný experiment, pri ktorom bolo náhodne vybraných 100 záznamov z videa od autora Eminem, ktoré boli znovu označované.
Z týchto sto záznamov bolo 8.9\% označených odlišne. Z tohto malého experimentu je možné vyhodnotiť, že označenie 100\% spamu je nepravdepodobné, keďže sa to nepodarilo ani človeku.

\begin{figure}[h]
    \centering
    \includegraphics[width=0.45\textwidth]{ham}
    \caption{Slovná mapa hamu}
    \label{fig:ham}
\end{figure}

\begin{figure}[h]
    \centering
    \includegraphics[width=0.45\textwidth]{spam}
    \caption{Slovná mapa spamu}
    \label{fig:spam}
\end{figure}


%------------------------------------------------

\section{Modely}

\subsection{Model č.1}
Prvý implementovaný model, zobrazený na obrázku~\ref{fig:model1}, číta na vstupe komentáre, ktoré transformuje na sekvencie čísel reprezentujúce jednotlivé slová.
Následne je každému slovu priradená váha na základe predpočítaného embedding glove.6B zo Standfordskej Univerzity \footnote{\href{https://nlp.stanford.edu/projects/glove/}{https://nlp.stanford.edu/projects/glove/}}.
Obojsmerná vrstva LSTM hľadá vzdialené súvislosti, v ktorých následne konvolučná vrstva hľadá súvislosti blízko seba. Dense vrstva spája každý uzol konvolučnej vrsty s dropout vrstvou.
Posledná zmienená vrstva zabezpečuje, že sa model učí stále na trochu iných dátach. Flatten vrstva upraví tvar pre poslednú dense vrstvu, ktorej výstup je buď 0 alebo 1, čo interpretujeme ako ham a spam v rovnakom poradí.

\begin{figure}[h]
    \centering
    \includegraphics[width=0.35\textwidth]{experiment0/model}
    \caption{Model č.1}
    \label{fig:model1}
\end{figure}

\subsection{Model č.2}
Pre nasledujúci experiment bol k modelu pridaný ďalší vstup - popis videa. Grafické znázornenie modelu je vyobrazené na obrázku~\ref{fig:model2}. Nový model sa od prvého líši len rozdvojením časti siete.
Popis videa je spracovávaný rovnako ako aj komentáre a reprezentácie oboch vstupov z konvolučnej siete sú konkatované do dense vrstvy.

\begin{figure}[h]
    \centering
    \includegraphics[width=0.45\textwidth]{experiment1/model}
    \caption{Model č.2}
    \label{fig:model2}
\end{figure}

%------------------------------------------------

\section{Výsledky}

Výsledky k prvému navrhnutému modelu~\ref{fig:model1}, so vstupom len pre komentáre, sa kvôli technickej chybe nepodarilo zachovať.
K dispozícií sú len dáta z oplimalizácie hyperparametrov. Tieto výsledky boli zohľadnené pri experimentoch s druhým modelom~\ref{fig:model2}.

\subsection{Metódy evaluácie}
Pre zhodnotenie modelu boli použité štatistické metriky \textit{presnosť, chytený spam, blokovaný ham, F-measure, Matthews korrelačný koeficient}, ktoré boli použité aj pri evaluácii vo vyššie spomínanej práci TubeSpam\cite{TubeSpam}.
Presnosť vyjadruje koľko percent spamu klasifikátor úspešne oznažil za spam. Chytený spam a blokovaný ham udávajú percentuálny podiel označeného spamu k neoznačenému a ham komentáre označené za spam.
Najlepšie výsledky zobrazené v tabuľke~\ref{tab:results} sa podarilo dosiahnuť s parametrami vymenovanými nižšie.
\begin{itemize}
    \item Dropout: 0.3
    \item Activačná funkcia: elu
    \item Počet neurónov Dense vrsty: 15
    \item Kernel inicializácia: normal
    \item Posledná aktivačná funkcia: sigmoid
    \item Optimizér: Nadam
    \item Počet epoch: 12
\end{itemize}

Vysvetlivky pre tabuľku~\ref{tab:results}~a~\ref{tab:TSresults}:
acc - presnosť~[\%], sc - chytený spam~[\%], hb - blokovaný ham~[\%], F1 - F-measure, MCC - Matthews korrelačný koeficient.


Zatiaľ čo presnosť je pomerne dostačujúca, počet chybne označeného hamu za spam je alarmujúco vysoký, až takmer 50\%.
Keďže žiaden z experimentov nedosiahol oveľa lepšie výsledky môžeme z toho vyvodiť, že žiaden z~experimentov vhodne nerieši problém klasifikácie spamu.

Naproti tomu práca TubeSpam\cite{TubeSpam} dosiahla oveľa lepšie výsledky, zobrazené v tubuľke~\ref{tab:TSresults}.
Táto skutočnosť môže byť spôsobená nedostatkom vstupných dát pre učenie rekurentnej  neurónovej siete. Model sa nebol schopný naučiť rozoznávať spam na takmer 2000 záznamoch.
Predpoklám, že ak by sa vstupné dáta zvýšili 100-násobne (t.j. aspoň na {200000}), boli by výsledky oveľa lepšie. Ďalším faktorom, ktorý mohol negatívne ovplyvniť výsledky
môže byť vstup krátkeho charakteru. Komentáre sú často len krátke pár slovné heslá. Pre túto úlohu by mohlo byť vhodnejšie spracuvávať vstup nie po slovách ale po znakoch.
To má však opäť rovnaké limitácie vo forme malého datasetu.


\begin{table}
    \centering
    \caption{Najlepšie výsledky modelu č.2}\label{tab:results}
    \begin{tabular}{|lllll|}
    \hline
    acc  & sc   & hb   & F1   & MCC    \\
    \hline
    69.9\% & 84.7\% & 49.4\% & 0.82 & 0.008  \\
    \hline
    \end{tabular}
\end{table}

\begin{table}
    \centering
    \caption{Najlepšie výsledky práce TubeSpam}\label{tab:TSresults}
    \begin{tabular}{|lllll|}
    \hline
    acc  & sc   & hb   & F1   & MCC    \\
    \hline
    97.73\% & 95.77\% & 0.00\% & 0.978 & 0.955 \\
    \hline
    \end{tabular}
    \end{table}

%------------------------------------------------

\section{Príloha}
\subsection{Návod na spustenie}

\begin{enumerate}
    \item Je potrebné stiahnuť Dataset~\footnote{\href{https://archive.ics.uci.edu/ml/machine-learning-databases/00380/}{https://archive.ics.uci.edu/ml/machine-learning-databases/00380/}}, Embedding~\footnote{\href{https://nlp.stanford.edu/projects/glove/}{https://nlp.stanford.edu/projects/glove/}}.
    \item Nainštalujte si nástroj:
        \begin{lstlisting}
            pipenv
        \end{lstlisting}
    \item Spustite príkaz:
        \begin{lstlisting}
            # pipenv install
        \end{lstlisting}
    \item Pre spustenie trénovania modelu použite príkaz:
        \begin{lstlisting}
            # python classificator.py
        \end{lstlisting}
        Kde \textsc{Number} je číslo experimentu a meno zložky výstupov.
\end{enumerate}


%----------------------------------------------------------------------------------------
%	REFERENCE LIST
%----------------------------------------------------------------------------------------

\begin{thebibliography}{99} % Bibliography - this is intentionally simple in this template

\bibitem{TubeSpam}
Alberto, T.C., Lochter J.V., Almeida, T.A. \textit{TubeSpam: Comment Spam Filtering on YouTube}.
Proceedings of the 14th IEEE International Conference on Machine Learning and Applications (ICMLA’15), 1-6, Miami, FL, USA, December, 2015. \href{http://www.dt.fee.unicamp.br/~tiago//papers/TCA_ICMLA15.pdf}{(preprint)}

% Figueredo, A.~J. and Wolf, P. S.~A. (2009).
% \newblock Assortative pairing and life history strategy - a cross-cultural
%   study.
% \newblock {\em Human Nature}, 20:317--330.

\end{thebibliography}

%----------------------------------------------------------------------------------------

\end{document}
