# A Dynamic Web Recommender System Using Hard and Fuzzy K-Modes Clustering

Panayiotis Christodoulou, Marios Lestas, Andreas S. Andreou

► To cite this version:

Panayiotis Christodoulou, Marios Lestas, Andreas S. Andreou. A Dynamic Web Recommender System Using Hard and Fuzzy K-Modes Clustering. 9th Artificial Intelligence Applications and Innovations (AIAI), Sep 2013, Paphos, Greece. pp.40-51, 10.1007/978-3-642-41142-7_5 . hal-01459651

HAL Id: hal-01459651

https://inria.hal.science/hal-01459651

Submitted on 7 Feb 2017

**HAL** is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# A Dynamic Web Recommender System Using Hard and Fuzzy K-Modes Clustering

Panayiotis Christodoulou¹, Marios Lestas² and Andreas S. Andreou¹

¹Department of Electrical Engineering / Computer Engineering and Informatics, Cyprus University of Technology
panayiotis.christodoulou@cut.ac.cy, andreas.andreou@cut.ac.cy

²Department of Electrical Engineering, Frederick University of Cyprus
eng.lm@frederick.ac.cy

**Abstract.** This paper describes the design and implementation of a new dynamic Web Recommender System using Hard and Fuzzy K-modes clustering. The system provides recommendations based on user preferences that change in real time taking also into account previous searching and behavior. The recommendation engine is enhanced by the utilization of static preferences which are declared by the user when registering into the system. The proposed system has been validated on a movie dataset and the results indicate successful performance as the system delivers recommended items that are closely related to user interests and preferences.

**Keywords:** Recommender Systems, Hard and Fuzzy K-Modes Clustering

## 1 Introduction

Recommender Systems (RS) have become very common on the World Wide Web, especially in e-Commerce websites. Every day the number of the listed products increases and this vast availability of different options creates difficulties to users of finding what they really like or want. RS can be seen as smart search engines which gather information on users or items in order to provide customized recommendations back to the users by comparing each other [1]. Although RS give a strategic advantage they present some problems that have to be dealt with. Different techniques and algorithms are continuously being developed aiming at tackling these problems.

Existing strategies, despite their wide availability, come with problems or limitations related to the adopted architecture, the implementation of new algorithms and techniques and the considered datasets. For example, some existing RS make recommendations for the interested user utilizing static overall ratings which are calculated based on the ratings or preferences of all other users of the system. Other systems recommend items to the current user based on what other users had bought after they viewed the searched item.

The system proposed in this work makes recommendations based on the preferences of the interested user, which are dynamically changed taking into account pre-
vious searches in real time. This approach is enhanced by the utilization of static pref-
erences which are declared by the user when registering into the system. The cluster-
ing procedure, being the heart of the recommendation engine, is of particular im-
portance and a number of techniques such as Entropy-Based, Hard K-modes and
Fuzzy K-modes have been utilized. The proposed system has been tested using the
MovieLens1M dataset, which was linked with IMDB.com to retrieve more content
information. The final results indicate that the proposed system meets the design ob-
jectives as it delivers items which are closely related to what the user would have
liked to receive based on how s(he) ranked the different categories depending on what
(s)he likes more and her/his previous behavior.

The remainder of the paper is organized as follows: Section 2 provides an overview of the clustering techniques that were used by the proposed system and discusses related work on the topic. Subsequently, section 3 describes the notions behind the technical background of the proposed system. Section 4 focuses on the way the system works, describing the structure of the dataset and discussing briefly the intelligent algorithms that were designed and used. This section also illustrates the experiments carried out followed by a comparison between the two clustering techniques. Finally, section 5 offers the conclusions and some future research steps.

## 2 Literature Overview

Recommender Systems (RS) are of great importance for the success of Information
Technology industry and in e-Commerce websites and gain popularity in various
other applications in the World Wide Web [1]. RS in general help users in finding
information by suggesting items that s(he) may be interested in thus reducing search
and navigation time and effort. The recommendation list is produced through collabo-
rative or content-based filtering. Collaborative filtering tries to build a model based on
user past behavior, for example on items previously purchased or selected, or on nu-
merical ratings given to those items; then this model is used to produce recommenda-
tions [10]. Content-based filtering tries to recommend items that are similar to those
that a user liked in the past or is examining in the present; at the end a list of different
items is compared with the items previously rated by the user and the best matching
items are recommended [11].

The work described in [5] discusses the combination of collaborative and content-
based filtering techniques in a neighbor-based prediction algorithm for web based
recommender systems. The dataset used for this system was the MovieLens100K
dataset consisting of 100000 ratings, 1682 movies and 943 users, which were also
linked with IMDB.com to find more content information. The final results showed
that the prediction accuracy was strongly dependent on the number of neighbors taken
into account and that the item-oriented implementation produced better prediction
results than the user-oriented. The HYB-SVD-KNN algorithm described in this work
was four times faster than the traditional collaborative filtering.

Ekstrand and Riedl [6] presented an analysis of the predictions made by several
well-known algorithms using the MovieLens10M dataset, which consists of 10 mil-
lion ratings and 100000 tag applications applied to 10000 movies by 72000 users. Users were divided into 5 sets and for each user in each partition 20% of their ratings were selected to be the test ratings for the dataset. Therefore, five recommender algorithms were run on the dataset and the predictions of each algorithm for each test rating were captured. The results showed that the item-user mean algorithm predicted the highest percentage of ratings correctly compared to the other algorithms. This showed that the algorithms differed in the predictions they got wrong or right. Item-item got the most predictions right but the other algorithms correctly made predictions of up to 69%.

The work presented in [7] described long-tail users who can play an important role of information sources for improving the performance of recommendations and providing recommendations to the short-head users. First, a case study on MovieLens dataset linked with IMDB.com was conducted and showed that director was the most important attribute. In addition, 17.8% of the users have been regarded as a long tail user group. For the proposed system 20 graduated students were invited to provide two types of recommendations and get their feedbacks. This resulted in 8 users out of 20 to be selected as a long tail user group (LTuG), two times higher than the MovieLens case study. Finally, it was concluded that the LTuG+CF outperformed CF by 30.8% higher precision and that user ratings of the LTuG could be used to provide relevant recommendations to the short head users.

The work of McNee et al.[8] suggested that recommender systems do not always generate good recommendations to the users. In order to improve the quality of the recommendations, that paper argued that recommenders need a deeper understanding of users and their information. Human-Recommender Interaction is a methodology of analyzing user tasks and algorithms with the end goal of getting useful recommendation lists and it was developed by examining the recommendation process from an end user's respective. HRI is consisted of three pillars: The Recommendation Dialog, the Recommender Personality and the User Information seeking Tasks and each one contains several aspects.

Karypis et al. [9] presented a class of item-based recommendation algorithms that first determine the similarities between the various items and then use them to identify the set of items to be recommended. In that work two methods were used: The first method modeled the items as vectors in the user space and used the cosine function to measure the similarity between the items. The second method combined these similarities in order to compute the similarity between a basket of items and a recommender item. Five datasets were tested in the experimental part and the results showed that the effect of similarity for the cosine-based scheme improved by 0% to 6.5% and for the conditional probability based by 3% to 12%. The effect of row normalization showed an improvement of 2.6% for the cosine-based and 4.2% for the probability. The model size sensitivity test showed that the overall recommendations accuracy of the item-based algorithms does not improve as we increase the value of k. Finally they concluded that the top-N recommendation algorithm improves the recommendations produced by the user-based algorithms by up to 27% in terms of accuracy and it is 28 times faster.
This paper describes the design and implementation of a new dynamic Web Rec-ommender System using Hard and Fuzzy K-modes clustering. The system provides recommendations based on user preferences that change in real time taking also into account previous searching and behavior and based on static preferences which are declared by the user when registering into the system.

# 3 Technical Background

## 3.1 Entropy-Based Algorithm

The Entropy-based algorithm groups similar data objects together into clusters based on data objects entropy values using a similarity measure [2]. The entropy value $H_{ij}$ of two data objects $X_i$ and $X_j$ is defined as follows:

$$H_{ij} = E_{ij} \log_2(E_{ij}) - (1 - E_{ij}) \log_2(1 - E_{ij}) \quad (1)$$

where $i \neq j$.

$E_{ij}$ is a similarity measure between the data objects $X_i$ and $X_j$ and is measured using the following equation:

$$E_{ij} = e^{-aD_{ij}} \quad (2)$$

where $D_{ij}$ is the distance between $X_i$ and $X_j$ and $a$ is calculated by

$$a = \frac{-\ln(0.5)}{\bar{D}} \quad (3)$$

and $\bar{D}$ is the mean distance among all the data objects in the table. From Equation (1) the total entropy value of $X_i$ with respect to all other data objects is computed as:

$$H_i = -\sum_{\substack{j=1 \\ i \neq k}}^{n} [E_{ij} \log_2(E_{ij}) - (1 - E_{ij}) \log_2(1 - E_{ij})] \quad (4)$$

The Entropy-based algorithm passes through the dataset only once, requires a threshold of similarity parameter $\beta$ and is used to compute the total number of clusters in a dataset, as well as to find the locations of the cluster centers [3]. More specifically, the algorithm consists of the following steps:

1. Select a threshold of similarity $\beta$ and set the initial number of clusters $c = 0$.

2. Determine the total entropy values $H$ for each data object $X$ as shown by Equation (4).

3. Set $c = c + 1$.

4. Select the data object $X_{min}$ with the least entropy $H_{min}$ and set $Z_c = X_{min}$ as the $c_{th}$ cluster centre.
5. Remove $X_{min}$ and all data objects having similarity $\beta$.

6. If $X$ is empty then stop, otherwise go to step 3.

The Entropy-based algorithm was used in this paper to compute the number of clusters in the dataset, as well as to find the locations of the cluster centers.

## 3.2 Hard K-Modes Clustering

The K-Modes algorithm extends the K-means paradigm to cluster categorical data by removing the numeric data limitation imposed by the K-means algorithm using a simple matching dissimilarity measure or the hamming distance for categorical data objects or replacing means of clusters by their mode [4].

Let $X_1$ and $X_2$ be two data objects of $X_1$ defined by $m$ attributes. The dissimilarity between the two objects is stated as:

$$d(X_1, X_2) = \sum_{j=1}^{m} \delta(x_{1j}, x_{2j}) \qquad (5)$$

where:

$$\delta(x_{1j}, x_{2j}) = \begin{cases} 0, & x_{1j} = x_{2j} \\ 1, & x_{1j} \neq x_{2j} \end{cases} \qquad (6)$$

In the case of Hard K-Modes clustering, if object $X_i$ in a given iteration has the shortest distance with center $Z_i$, then this is represented by setting the value of the nearest cluster equal to 1 and the values of the other clusters to 0.

For $a = 0$:

$$w_{li} = \begin{cases} 1, & \text{if } d(Z_i, X_i) \le d(Z_h, X_i), 1 \le h \le k \\ 0, & \text{otherwise} \end{cases} \qquad (7)$$

In the above equation $w_{li}$ is the weight degree of an object belonging to a cluster.

## 3.3 Fuzzy K-Modes Clustering

Fuzzy K-Modes algorithm is an extension of the Hard K-Modes algorithm and it was introduced in order to incorporate the idea of fuzziness and uncertainty in datasets [3].

For $a > 1$:
$$ w_{li} = \begin{cases} 1, & \text{if } X_i = Z_l \\ 0, & \text{if } X_i = Z_h, h \neq 1 \\ \frac{1}{\sum_{h=1}^{k} \left[ \frac{d(Z_l, X_i)}{d(Z_h, X_i)} \right]^{1/a-1}}, & \text{if } X_i \neq Z_l \text{ and } X_i \neq Z_h, 1 \le h \le k \end{cases} \quad (8) $$

If a data object shares the same values of all attributes within a cluster then it will be assigned entirely to that cluster and not to the others. If a data object in not completely identical to a cluster then it will be assigned to each cluster with a membership degree.

# 4 Methodology and Experimental Results

## 4.1 Proposed System

Figure 1 shows a schematic representation of the proposed system. First the user registers into the system and ranks the different categories depending on what (s)he likes more using a weight ranking system. The ranking of the categories is called static information because this type of information can only be changed after a certain period of time when the user will be prompted by the system to update her/his rankings as their interest in certain categories may have changed. The system requires a certain number of searches to be conducted first so as to understand the user behavior (dynamic information) and then it starts recommending items. A dynamic bit-string is created after the first searches and is updated with every new search. This string is compared with each movie in the dataset to eliminate those movies that the user is not interested in depending on search profile thus far. If there is at least one 1 in the compared bit string then the movie moves is inserted into a lookup table. After that the system creates the clusters depending on the new dataset size (i.e. the movies in the lookup table) and the entropy threshold similarity value $\beta$ which is assumed to be constant; however, its value needs to be tuned based on the size of the dataset in order to reach optimal performance. The next step is the update of the clusters to include the static information of the user. This is performed so as to eliminate the problem encountered by the system after having a specific object belonging to two or more clusters. Therefore, the new clusters also include the static information depending on how the user ranks the categories.
<figure><img src="image_2.png" /><figcaption>Fig. 1. How the proposed RS works.</figcaption></figure>

When the user performs searching queries the keyword used is compared with each cluster center and the proposed system finds the most similar one depending on the searched item (winning cluster); this cluster is then used to provide the recommendations. In the meantime the searched keyword is saved by the system as part of the dynamic information which is thus updated in real time.

## 4.2 Dataset

The dataset used in the proposed system is an extension of the Movie Lens 1M dataset that can be found at GroupLens.org. The Movie Lens 1M dataset is consisted of 1 million ratings from 6000 users on 4000 movies. The proposed system is not using the user ratings so we deal only with the movies. From the 4000 movies some movies are duplicated so we had to remove them thus concluding with a final dataset numbering a total of 3883 movies. Then we linked the final dataset with IMDB.com, the world's largest movie database, to retrieve more information about the categories of each movie.

Table 1 shows the different movie categories. In total there are 18 different categories. Therefore, the experimental dataset used for the encoding and testing of the proposed system was a matrix of 3883 movies in rows times 18 movie categories in columns.
## 4.3 Experimental Results

Three users with different characteristics that searched for various items were used to test the proposed recommendation schema on the movie dataset described in section 4.1. As previously mentioned, the system recommended movies based on the Hard and Fuzzy K-Modes clustering. The different characteristics used by the system to predict accurate recommended items were: (i) the total number of the final clusters based on the threshold similarity value $\beta$, (ii) the ranking of the movie categories according to the user interests and, (iii) the past history of different searches that each of the users conducted.

<table><caption>Table 1. Movie Categories</caption><thead><tr><td>Column</td><td>Movie Category</td></tr></thead><tbody><tr><td>1</td><td>Animations</td></tr><tr><td>2</td><td>Children</td></tr><tr><td>3</td><td>Comedy</td></tr><tr><td>4</td><td>Adventure</td></tr><tr><td>5</td><td>Fantasy</td></tr><tr><td>6</td><td>Romance</td></tr><tr><td>7</td><td>Drama</td></tr><tr><td>8</td><td>Action</td></tr><tr><td>9</td><td>Crime</td></tr><tr><td>10</td><td>Thriller</td></tr><tr><td>11</td><td>Horror</td></tr><tr><td>12</td><td>Sci-Fi</td></tr><tr><td>13</td><td>Documentary</td></tr><tr><td>14</td><td>War</td></tr><tr><td>15</td><td>Musical</td></tr><tr><td>16</td><td>Mystery</td></tr><tr><td>17</td><td>Western</td></tr><tr><td>18</td><td>Film-Noir</td></tr></tbody></table>

The Root Mean Square Error (RMSE) was used as the evaluation metric to assess the accuracy of the results, which is defined as follows:

$$RMSE = \sqrt{\frac{\sum_{i=1}^{n} (x_{obs,i} - x_{model,i})^2}{n}} \quad (9)$$

where $X_{obs,i}$ and $X_{model,i}$ are the observed and modeled values at the $i$-th sample respectively.

Table 2 shows how one of our users ranked the different movie categories. This information is inserted into the clusters and changes them to include the weight reflecting the interests of the user.
<table><caption>**Table 2.** UserA Movie Rankings</caption><tr><td>1. Drama</td><td>10. Crime</td></tr><tr><td>2. Adventure</td><td>11. Mystery</td></tr><tr><td>3. Animation</td><td>12. Thriller</td></tr><tr><td>4. Action</td><td>13. Documentary</td></tr><tr><td>5. War</td><td>14. Romance</td></tr><tr><td>6. Children</td><td>15. Film-Noir</td></tr><tr><td>7. Musical</td><td>16. Sci-Fi</td></tr><tr><td>8. Comedy</td><td>18. Horror</td></tr><tr><td>9. Western</td><td>19. Fantasy</td></tr></table>

Table 3 shows the ten first searches that UserA conducted in order for the system to understand his/her behavior by examining the movie categories searched more. If the value of a specific category exceeds a specific value, in our case this value is equal to three, then the system selects that category as a "frequently searched". In the case of UserA the categories searched more are Adventure and Drama. After the ten first searches the system starts to recommend items to the interested user based on how (s)he ranked the movie categories, what (s)he has searched more and the searched keywords. The analysis of the specific searches follows.

<table><caption>**Table 3.** UserA – Ten first searches</caption><thead><tr><td>ID</td><td>Movie Title</td><td>Movie Categories</td></tr></thead><tbody><tr><td>23</td><td>Assasins</td><td>Thriller</td></tr><tr><td>31</td><td>Dangerous Minds</td><td>Drama</td></tr><tr><td>86</td><td>White Squall</td><td>Adventure, Drama</td></tr><tr><td>165</td><td>The Doom Generation</td><td>Comedy, Drama</td></tr><tr><td>2</td><td>Jumanji</td><td>Adventure, Children, Fantasy</td></tr><tr><td>167</td><td>First Knight</td><td>Action, Adventure, Drama, Romance</td></tr><tr><td>237</td><td>A Goofy Movie</td><td>Animation, Children, Comedy, Romance</td></tr><tr><td>462</td><td>Heaven and Earth</td><td>Action, Drama, War</td></tr><tr><td>481</td><td>Lassie</td><td>Adventure, Children</td></tr><tr><td>1133</td><td>The Wrong Trousers</td><td>Animation, Comedy</td></tr></tbody></table>

Close inspection of the results listed in Table 4 reveals the following findings:

i. The proposed fuzzy algorithm is more accurate on average than the Hard implementation as it adjusts dynamically the knowledge gained by the RS engine.

ii. Both algorithms always suggest movies in ascending order of error magnitude, while there are also cases where movies bear the exact same RMS value; this is quite natural as they belong to the same cluster with the same degree of membership.

iii. The error depends on the category of the movie searched for each time; therefore, when this type perfectly matches the clustered ones the error is minimized.
<table><caption>**Table 4.** UserA recommendation results and evaluations per clustering method and search conducted – RMSE values below each method corresponds to the average of the five searches</caption><thead><tr><th rowspan="2"></th><th rowspan="2">Searches and Clustering Methods</th><th colspan="5">Recommendations</th></tr><tr><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr></thead><tbody><tr><td rowspan="2">#1: Dadetown Documentary</td><td><strong>Hard</strong><br>0.3333</td><td>Two Family House<br>Drama<br>0.3333</td><td>Tigerland<br>Drama<br>0.3333</td><td>Requime for a Dream<br>Drama<br>0.3333</td><td>Remember the Titans<br>Drama<br>0.3333</td><td>Girlfight<br>Drama<br>0.3333</td></tr><tr><td><strong>Fuzzy</strong><br>0.3333</td><td>Othello<br>Drama<br>0.3333</td><td>Now and Then<br>Drama<br>0.3333</td><td>Angela<br>Drama<br>0.3333</td><td>Dangerous Minds<br>Drama<br>0.3333</td><td>Restoration<br>Drama<br>0.3333</td></tr><tr><td rowspan="2">#2: A Christmas Tale Comedy and Drama</td><td><strong>Hard</strong><br>0.0</td><td>Bootmen<br>Comedy and<br>Drama<br>0.0</td><td>Beautiful<br>Comedy and<br>Drama<br>0.0</td><td>Duets<br>Comedy and<br>Drama<br>0.0</td><td>A Knight in<br>New York<br>Comedy and<br>Drama<br>0.0</td><td>Mr.Mom<br>Comedy and<br>Drama<br>0.0</td></tr><tr><td><strong>Fuzzy</strong><br>0.0</td><td>Waiting to<br>Exhale<br>Comedy and<br>Drama<br>0.0</td><td>To Die For<br>Comedy and<br>Drama<br>0.0</td><td>Kicking and<br>Screaming<br>Comedy and<br>Drama<br>0.0</td><td>Big Bully<br>Comedy and<br>Drama<br>0.0</td><td>Nueba Yol<br>Comedy and<br>Drama<br>0.0</td></tr><tr><td rowspan="2">#3: Yellow Submarine Animation and Musical</td><td><strong>Hard</strong><br>0.4588</td><td>Digimon<br>Adventure,<br>Animation<br>and Children<br>0.4082</td><td>For the<br>Love of<br>Benji<br>Adventure<br>and<br>Children<br>0.4714</td><td>The<br>Legend of<br>Lobo<br>Adventure<br>and<br>Children<br>0.4714</td><td>Tall Tale<br>Adventure<br>and Children<br>0.4714</td><td>Barneys<br>Adventure<br>and<br>Children<br>0.4714</td></tr><tr><td><strong>Fuzzy</strong><br>0.4059</td><td>Pete's Drag-on<br>Adventure,<br>Animation,<br>Children and<br>Musical<br>0.3333</td><td>Gullivers<br>Travels<br>Adventure,<br>Animation<br>and<br>Children<br>0.4082</td><td>Digimon<br>Adventure,<br>Animation<br>and<br>Children<br>0.4082</td><td>Bedknobs<br>and<br>Broomsticks<br>Adventure,<br>Animation<br>and Children<br>0.4082</td><td>The Lord<br>of the<br>Rings<br>Adventure,<br>Animation,<br>Children<br>and Sci-Fi<br>0.4714</td></tr><tr><td>#4: Young Guns Action, Comedy and Western</td><td><strong>Hard</strong><br>0.2576</td><td>Butch<br>Cassidy<br>Action,<br>Comedy and<br>Western</td><td>Action<br>Jackson<br>Action and<br>Comedy<br>0.2357</td><td>Last Action<br>Hero<br>Action and<br>Comedy<br>0.2357</td><td>Mars Attack<br>Action,<br>Comedy, Sci-Fi and War<br>0.4082</td><td>Tank Girl<br>Action,<br>Comedy,<br>Musical,<br>Sci-Fi<br>0.4714</td></tr></tbody></table>
<table><tr><td></td><td>0.2576</td><td></td><td></td><td></td><td>0.4082</td></tr><tr><td>Fuzzy<br>0.2357</td><td>I Love<br>Trouble<br>Action and<br>Comedy<br>0.2357</td><td>Beverly<br>Hills Cop<br>III<br>Action and<br>Comedy<br>0.2357</td><td>The<br>CowBoy<br>Way<br>Action and<br>Comedy<br>0.2357</td><td>Beverly Hills<br>Ninja<br>Action and<br>Comedy<br>0.2357</td><td>Last Action<br>Hero<br>Action and<br>Comedy<br>0.2357</td></tr></table>

Table 5 summarizes the mean RMS error values for four additional users tested on five different searches. Due to size limitations we omitted the details of the searched categories as these resemble the ones presented for UserA. It is once again clear that the algorithm behaves successfully, with average error values below 0.5 with only one exception (first search of UserB) and with consistently better performance being observed for the Fuzzy implementation.

<table><caption>**Table 5.** Summary of recommendation results and mean evaluations per clustering method for four more users</caption><thead><tr><th rowspan="2">User</th><th rowspan="2">Method</th><th colspan="5">Searches</th></tr><tr><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr></thead><tbody><tr><td rowspan="2">B</td><td>Hard</td><td>0.5774</td><td>0.3480</td><td>0.4572</td><td>0.4557</td><td>0.2357</td></tr><tr><td>Fuzzy</td><td>0.5360</td><td>0.3368</td><td>0.4082</td><td>0.4335</td><td>0.2552</td></tr><tr><td rowspan="2">C</td><td>Hard</td><td>0.3135</td><td>0.3333</td><td>0.3437</td><td>0.3714</td><td>0.2357</td></tr><tr><td>Fuzzy</td><td>0.2552</td><td>0.2357</td><td>0.3437</td><td>0.2747</td><td>0.2357</td></tr><tr><td rowspan="2">D</td><td>Hard</td><td>0.0</td><td>0.4082</td><td>0.3333</td><td>0.3999</td><td>0.4461</td></tr><tr><td>Fuzzy</td><td>0.0</td><td>0.4082</td><td>0.3333</td><td>0.3908</td><td>0.4082</td></tr><tr><td rowspan="2">E</td><td>Hard</td><td>0.3782</td><td>0.3610</td><td>0.3714</td><td>0.4885</td><td>0.2943</td></tr><tr><td>Fuzzy</td><td>0.3782</td><td>0.3333</td><td>0.3333</td><td>0.4673</td><td>0.2943</td></tr></tbody></table>

## 5 Conclusions

Web Recommender Systems are nowadays a powerful tool that promotes e-commerce and advertisement of goods over the Web. High accuracy of recommendations, though, is not an easy task to achieve. This paper examined the utilization of the Hard and Fuzzy K-modes algorithms in the recommendation engine as a means to approximate the interests of users searching for items on the Internet. The proposed approach combines static information entered by the user in the beginning and dynamic information gathered after each individual search to perform clustering of the available dataset. Recommendations are given to the user by comparing only cluster centers with the search string thus saving execution time.

A series of synthetic experiments were executed to validate the RS system using the MovieLens1M dataset, which was linked with IMDB.com to retrieve more con-
tent information. More specifically, five different users with various interests on mov-
ies performed five different searches and the recommendations yielded by the Hard
and Fuzzy K-Modes algorithms were assessed in terms of accuracy using the well-
known RMS error. The results revealed small superiority of the Fuzzy over the
Hard implementation, while recommendations were quite accurate.

Future work will concentrate on conducting more experiments and comparing with
other approaches using collaborative or content-based filtering. In addition, a dedicat-
ed website will be developed through which real-world data will be gathered for ex-
perimentation purposes. Finally, the system will be enhanced with new functionality
which will prompt the user, after a certain period of time, to update her/his static in-
formation so as to generate more accurate recommendations as interest in certain
categories may have changed.

References

1. Guido Jan de Nooij, “Recommender Systems: An Overview”, MSc Thesis, University of Amsterdam, November 2008

2. Principia Cybernetica Web, "Entropy and Information", Available at: http://pespmc1.vub.ac.be/ENTRINFO.html

3. Constantinos Stylianou, Andreas S. Andreou, “A Hybrid Software Component Clustering and Retrieval Scheme, Using an Entropy-based Fuzzy k-Modes Algorithm”, In Proceedings of the 19th IEEE International Conference on Tools with Artificial Intelligence, vol 1, pp. 202-209, ISBN:0-7695-3015-X,Washington DC, USA, 2007

4. Shehroz S Khan, "Computation of Initial Modes for K-modes Clustering Algorithm", In Proceedings of the 20th International Joint Conference on Artificial Intelligent, pp. 2784-2789, San Francisco, USA, 2007

5. Stephan Speigel, Jerome Kunegis, Fang Li, “Hydra: A Hybrid Recommender System”, In Proceedings of the 1st ACM international workshop on Complex networks meet information & knowledge management, pp. 75-80, New York, USD, 2009

6. Michael Ekstrand, John Riedl, “When recommender fail: predicting recommending failure for algorithm selection and combination”, In Proceedings of the 6th ACM conference on recommender systems, pp. 233-236, New York, USA, 2012

7. Jason J. Jung, Xuan Hay Pham, “Attribute selection-based recommendation framework for short-head user group: An empirical study by MovieLens and IMDB”, In Proceedings of the Third International conference on Computational collective intelligence: Technologies and Applications, pp. 592-601, Berlin, Germany, 2011

8. Sean M. McNee, John Riedl, Joseph A. Konstan, “Making Recommendations Better: An Analytic Model for Human- Recommender Interaction”, In Proceedings of the CHI ’06 Extended Abstracts on Human Factors in Computing Systems

9. George Karypis, “Evaluation of Item-Based Top-N Recommendation Algorithms”, In Proceedings of the 10th international conference on Information and Knowledge Management, pp. 247-254, New York, USA, 2001

10. Francesco Ricci, Lior Rokach and Bracha Shapira, “Introduction to Recommender Systems Handbook”, ISBN-13: 978-0387858197, Springer 2011

11. Robin Van Meteren and Maarten van Someren, “Using Content-Based Filtering for Recommendation”, In Proceedings of the ECML 2000 Workshop: Machine Learning in new information Age, pp. 47-57, Barcelona, Spain, 2000