\documentclass{article}
\usepackage{tabularx}
\usepackage{placeins}
\usepackage{hyperref}
\usepackage{multirow}

% MATHS PACKAGES
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[framemethod=TikZ]{mdframed}

\newcommand{\tabitem}[1][\textbullet]{~~\llap{#1}~~}

\begin{document}
\title{Decision Support for Group Configuration using Recommender Systems}
\author{Hannes F. Kuchelmeister}
\date{2020/01/23}

\maketitle

\section{Research Gap}

There exists research on group recommenders and research on recommenders for configuration but there does not exists research on recommendation for group configuration. An approach for group recommenders is content-based filtering. This approach is used also in recommenders for configuration. That is why adapting this approaches to suit the use case of group recommenders for configuration will be analysed in this thesis.

Commonly for content-based recommenders categories based on content are created and a separate user or group profile is generated based on the preferences of whole items. For configuration recommenders however this would create additional modelling or content grouping workload, therefore in this thesis it is proposed to use attributes of a configuration as distinguishing categories.

\section{Recommender Systems}

\subsection{Advantages over Collaborative Filtering}
\begin{itemize}
    \item No cold start problem for items
    \item No grey sheep problem as not dependent on similar groups having existed before.
    \item Domain knowledge is existent
    \item No issues with data sparsity as item description is given by product structure
    \item No reliance on preferences that would result in a comparison space that is too large
    \item No dependence of historic group preference accuracy 
\end{itemize}

\subsection{Advantages over Constrained-Based Recommendation}
\begin{itemize}
    \item Configuration state does not cause absence of recommendations
    \item Expendable to also support constraints 
    \item No need to handle inconsistencies explicitly
\end{itemize}

\begin{table}
    \begin{center}
        \begin{tabularx}{\columnwidth}{X|X|X}
            \hline
            Collaborative Filtering 
            &   \begin{itemize}
                    \item Serendipity of results 
                    \item Automatic learning of market segments
                    \item Grey sheep problem
                    \item No domain knowledge required
                \end{itemize}
            &   \begin{itemize}
                    \item Cold start problem for users and items
                    \item Grey sheep problem
                    \item Quality based on rating quality
                    \item Data sparsity
                    \item Privacy not guaranteed
                \end{itemize} \\
            \hline
            Content-Based Filtering 
            &   \begin{itemize}
                    \item No community required 
                    \item User independent
                    \item Transparent
                    \item No item cold start
                    \item Simplicity
                    \item Robust
                    \item Stable to constant influx of new users
                    \item Possible to have profitability metric
                \end{itemize}
            &   \begin{itemize}
                    \item Overspecialisation
                    \item No serendipity
                    \item User cold start problem
                    \item Requires domain knowledge
                \end{itemize} \\
            \hline
            Constraint-Based Recommendation 
            &   \begin{itemize}
                    \item Transparent
                    \item Good for non discrete values
                \end{itemize}
            &   \begin{itemize}
                    \item Inconsistent constraints
                    \item No results
                \end{itemize} \\ 
        \end{tabularx}
        \caption{A description of the advantages and disadvantages of common recommendation techniques}
        \label{tab:RecommenderComparison}
    \end{center}
\end{table}

\FloatBarrier

\section{Problem}
A group of people with different personal preferences wants to buy products with high variability. Making decisions in the group comes with problems as communicating preferences is complicated.

Examples of that are:
\begin{itemize}
    \item A companies truck fleet
    \item A companies customer management software system
    \item A public project to get a new area at a zoo
    \item Managing a forest (while considering public interests and also wood production companies)
    \item An existing building and how it should be furnished
\end{itemize}. 

\section{Solution Objectives}

\begin{itemize}
    \item A system should give recommendation for the group using a scoring function that takes into account preferences of group members, the current state of group members.
    \item Recommendations should allow different scoring functions
    \item Recommendations should always be valid options (i.e. configurations)
\end{itemize}

\section{User Interaction with the System}
The system has one main way to be used as defined in \autoref{tab:MainUseCase}.

\begin{table}
    \begin{center}
        \begin{tabularx}{\columnwidth}{l|X}
            \multicolumn{2}{c}{Main System Usage} \\
            \hline
            Preconditions   & \tabitem The configurator is opened with the same session on each of the group member's machines \\
                            & \tabitem The configuration is in an unfinished state (this state is a consensus state)\\
            \hline
            Postcondition   & \tabitem All users have entered their preferences for each attribute explicitly \\
                            & \tabitem The system gives a recommendation based on all preferences and the unfinished configuration state \\
            \hline
            Basic Flow      & \tabitem[1.] A user indicates a preference for an attribute \\
                            & \tabitem[2.] The system generates a recommendation (based on preferences and configuration status) \\
                            & \tabitem[3.] If not all users have given their preferences go to step 1. \\
            \hline
        \end{tabularx}
        \caption{A description of the main way users will interact with the system}
        \label{tab:MainUseCase}
    \end{center}
\end{table}

\FloatBarrier

\section{Definitions}

Set of variables:
\begin{equation}
    V = \{v_1, \dotsc, v_m\}
\end{equation}

Set of their domains of values:
\begin{equation}
    D = \{D_1, \dotsc, D_m\}, \qquad where \ D_i = \{d_1, \dotsc, d_o\}
\end{equation}

Set of users:
\begin{equation}
    U = \{1, \dotsc, n\}
\end{equation}

Users utility for a domain value of a variable:
\begin{equation}
    \begin{split}
        u_i(d_j), \qquad \text{where}\ & d_j \in D_j,\\
        & 1 <= j <= m, \\
        & 1 <= i <= n
    \end{split}
\end{equation}

User preferences:
\begin{gather}
    P = \{ P_1, \dotsc, P_n\},\ \text{where} \\
    P_i = \{(d,\ u_i(d)) \ | \ \forall d \in D_i,\ i=1,\dotsc,m \} \notag
\end{gather}

Configuration state:
\begin{equation}
    S = \{ (v_i,\ d) \ |\ v_i \in V \ \land \ d \in D_i,\ i=1,\dotsc,m \}
\end{equation}

Finished configuration state:
\begin{equation}
\begin{split}
    S_F \subset S,\ where \  & \forall v_i \in V (\exists (v_i, d) \in S_F : d \in D_i) \\
    & \land is\_valid(S_F)
\end{split}
\end{equation}

% TODO: define valid configuration state

Group configuration scoring function using preferences and current configuration state:

\begin{equation}
    score_{group}: S \times P \times S_F \to \mathbb{R}
\end{equation}

An example group configuration scoring function is $score_{group}$ with

\begin{equation}
    \notag \alpha \in \mathbb{R}, \qquad     changed(d,\overline{s}, s) = 
    \begin{cases}
      1, & d \in \overline{s} \land d \notin s \\
      0, & \text{otherwise}
    \end{cases}
\end{equation}

\begin{equation}
    \begin{split}
        score_{group}(\overline{s},\ \overline{p},\ s)
        & = score(\overline{p},\ s) - penalty(\overline{s},\ s) \\
        & = score(\overline{p},\ s) - \sum_{d \in \overline{s}} changed(d,\overline{s}, s) \cdot \alpha
    \end{split}
\end{equation}

\begin{mdframed}[frametitle={Forest Example}]
    \begin{align}
        \begin{split}
            V = \{ & Heimisch, Klimaresilient, Verwertbar, Ernteaufwand, \\
            & Menge, Preis, Walderfahrung \},
        \end{split} \notag \\
        \begin{split}
            D = \{ & D_{Heimisch}, D_{Klimaresilient}, D_{Verwertbar}, \\ 
            & D_{Ernteaufwand}, D_{Menge}, D_{Preis}, D_{Walderfahrung}\},
        \end{split} \notag \\
            D_{Heimisch} =  \{ & Gering, Mittel, Hoch\}, \notag \\
            D_{Klimaresilient} = \{ & Gering, Mittel, Hoch\}, \notag \\
            D_{Verwertbar} = \{ & Gering, Mittel, Hoch\}, \notag \\
            D_{Ernteaufwand} = \{ & Motormanuel, Harvester, Vollautomatisch\}, \notag \\
            D_{Menge} = \{ & Keine, Gering, Hoch\}, \notag \\
            D_{Preis} = \{ & Gering, Mittel, Hoch\}, \notag\\
            D_{Walderfahrung} = \{ & Gering, Mittel, Intensiv\},\notag \\
        U = \{ & 1,2\} \notag\\
        P = \{ & P_1, P_2\} \notag\\
        \begin{split}
            P_1 = \{ & (Motormanuel, 0.5), (Harvester, -0.3) \} \\ 
            & \cup \{ (d,0)\ |\ d \in D_i,\ D_i \in D,\ i \notin \{ Motormanuel, Harvester\} \ \} \ 
        \end{split} \notag \\
        P_2 = \{ & (d,0)\ |\ d \in D_i,\ D_i \in D \} \notag \\
        S  =  \{ & (Heimisch, Gering), (Menge, Gering) \} \notag \\
        \begin{split}
        S_F  =  \{ & (Heimisch, Gering), (Klimaresilient, Gering), (Verwertbar, Gering), \\
        & (Ernteaufwand, Motormanuel),
        (Menge, Keine), (Preis, Hoch),\\ 
        & (Walderfahrung, Gering) \} 
        \end{split} \notag
    \end{align}
\end{mdframed}




\section{Technical Focus}

Given an unfinished configuration and preferences of all group members rate a finished configuration on how well "similar" it reflects the configuration and preferences.

Use this to choose the best finished configuration out of a list to recommend.

\subsection{Generating a Recommendation}

Hereby the idea is there is a database of complete configurations (possibly historic from other groups or automatically generated or both).
Now the recommendation procedure looks as follows:

\begin{enumerate}
    \item Assign a score to each stored configuration according to $$score_{group}(\overline{configurationState},\ \overline{preferences}, \ configurationInStore)$$
    \item Chose the configuration with the highest score as recommendation.
\end{enumerate}


\section{Possible Extensions or Further Research}

\begin{itemize}
    \item How to optimise such that no need to search through all stored finished configurations is necessary? (e.g. improve runtime from $\mathcal{O}(n)$ to $\mathcal{O}(log\ n)$)
    \item How to model hierarchy and knowledge about product components in preferences?
    \item Letting users set preferences for product functions (e.g. for a forest a recreation function, a productive function, a protective function, etc.). How does it compare to explicitly choosing preferences?
\end{itemize}
    
    
\section{Evaluation of Case Study}

For one example e.g. forest example generate all possible valid configurations.

Generate groups with preferences (explicit preferences) and configuration state (which would be for example the currently existing forest).

\subsection{Group Types During Evaluation}
\begin{itemize}
    \item Groups shall be generated with random preferences
    \item With grouped preferences: people adhere more or less to one profile (Forest Owner, Athlete, Consumer, Environmentalist)
    \item Group of only one profile type: rather homogenous group
\end{itemize}

\subsection{Questions to Answer During the Evaluation}

\begin{itemize}
    \item How close are recommendations of the recommender system to the ideal recommendation depending on the number of stored recommendations? The ideal configuration is the configuration that has the highest score with the given group scoring function $score_{group}$.
    \item Is this approach practical?
\end{itemize}

\end{document}