# Multidimensional Group Recommendations in the Health Domain
## 4 Group Recommendations
### Aggregation Designs  
For the aggregation method \(Aggr\), we employ four different designs, each one carrying different semantics. Specifically, we divide the designs into the score-based and rank-based ones. Score-based design predictions for documents are calculated with respect to the relevance of the documents for the group members. In the case of the _average aggregation method_, our goal is to indulge the the majority of the group and report the average relevance for each document. Namely, relevance is computed as  
\[relevanceG(G,i)=\sum_{u\in G}relevance(u,i)/|G| \tag{15}\]  
In turn, a _rank-based design_ aggregates the patients recommendations lists using the positions of their elements. Here, we follow the Borda count method [53], based on which each document gets 1 point for each last place in the ranking, 2 points for each next to last place, and so forth, all the way up to \(k\) points for the first place in the ranking. The document with the more points takes the first position in the list, the item with the next more points gets the second position, and so on, up to collect the best \(k\) items. The points of each document \(i\) for the group \(G\) is calculated as follows,  
\[points(G,i)=\sum_{u\in G}(k-(p_{u}(i)-1)), \tag{16}\]  
where \(p_{u}(i)\) defines the position of item \(i\) in \(A_{u}\). The _[PERSON]_ method [11] belongs as well to the _rank-based_ methods. [PERSON] considers pairs of patients in the group to make predictions. Specifically, a document \(i\) belongs to the top-\(k\) suggestions for a group \(G\), if for a pair of patients \(u_{1},u_{2}\in G\), \(i\in A_{u_{1}}\bigcap A_{u_{2}}\), and \(i\) is the document with the maximum rank in \(A_{u_{2}}\). To produce recommendations, [PERSON] incrementally creates an initially empty set \(D\) by choosing for each pair of patients \(u_{x}\) and \(u_{y}\), the document in \(A_{u_{x}}\) with the maximum relevance score for \(u_{y}\) (Algorithm 1). If \(k\) (i.e., documents to be reported to the group) is greater than the documents, we are able to find recommendations using the method above: we add documents to \(D\) by iterating the \(A_{u}\) lists of the group members and adding each time the document with the maximum rank that does not appear in \(D\). ```
Data: A group of users \(G=\{u_{1},\ldots,u_{n}\}\), the sets of recommendations \(A_{u_{x}}\), \(\forall u_{x}\in G\). Result: The \(z\) documents in the recommendations list \(D\) for \(G\). 1\(D\leftarrow\emptyset\)
2 while\(|D|<z\)do
3 for\(x=0\); \(x<n\); \(x\)++ do
4 for\(y=0\); \(y<n\); \(y\)++ do
5 if\(x\
eq y\)then
6 Locate the document \(i\in A_{u_{y}}\) with the max \(relevance(u_{x},i)\)
7\(D=D\cup i\)
8
9 end if
10
11 end for
12
13 end for return\(D\)
```  
**Algorithm 1**Fair Group Recommendations Algorithm  
In addition, we propose a new aggregation method, called _AccScores_ method, which is inspired by the Borda method, but instead of accumulating the points of each item, we accumulate the scores of the items. We add the scores as they appear in the \(A_{u}\) of all the group members in a set called _accDoc_. The first item we select to include in the group recommendation list is the one with the highest score in _accDoc_. After each selection, we update a helper structure _accUser_ that consists of the users and their accumulating preference scores. For each user, we accumulate the scores of the items that were selected as they appear in the individual preference list \(A_{u}\). If there is a user \(u\) that has a lower score than the rest, in the next selection, we will choose an item that exists in the \(A_{u}\) and at the same time has the highest possible score in the _accDoc_. If many users have the same lowest score, we select the user that has been chosen the least amount of times. This process is shown in Algorithm 2. ```
Data: A group of users \(G=\{u_{1},\ldots,u_{n}\}\), the sets of recommendations \(A_{u_{x}}\), \(\forall u_{x}\in G\). Result: The \(z\) documents in the recommendations list \(D\) for \(G\).