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

% MATH PACKAGES
\usepackage{amsmath}
\usepackage{amssymb}

\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 recommendation for group configuration. An approach for group recommenders is collaborative filtering. This approach is used also in recommenders for configuration. That is why adapting these approaches to suit the use case of group recommenders for configuration.

Commonly for collaborative filtering with group recommenders the preferences of the group members are combined with an aggregation function to generate a group profile. This profile is compared to historic group profiles from other groups and their choice of items (e.g. songs to listen to, things to buy) is used for recommendations.

Collaborative filtering in configuration on the other hand usually uses the similarity of the current unfinished configuration to historic configurations to give recommendations.

\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{table:simulation_parameters}.

\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{table:simulation_parameters}
    \end{center}
\end{table}

\FloatBarrier

\section{Defintions}

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\}
\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),\ \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_i \in D \ \forall d \in D_i\} \notag
\end{gather}

Configuration state:
\begin{equation}
    S = \{ (v,\ d) \ |\ v \in V_i \ \land \ d \in D_i \}
\end{equation}

Finished configuration state:
\begin{equation}
\begin{split}
    S_F \subset S,\ where \  & \forall v \in V_i (\exists (v, 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}


\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.
$$score_{group} : (configState,\ preferences,\ configurationToScore) \mapsto rating$$

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 store 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 part of the products in preferences?
    \item Letting users just chose functions and how much they value them instead of rating individual attributes (more lay friendly). And how does this 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}