<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Arquitetura de um Sistema de Recomendação Baseado em Ontologia para Anúncios de Carros</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Fábio A. P. de Paiva</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>José A. F. Costa</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cláudio R. M. Silva</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ricardo S. França</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>fabiopaiva@yahoo.com</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>jafcosta</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>claudio.rmsilva</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ricardoluizsf}@gmail.com</string-name>
        </contrib>
      </contrib-group>
      <fpage>173</fpage>
      <lpage>178</lpage>
      <abstract>
        <p>Recommender systems have emerged as one interesting approach to tackle the problem of information overload, however most of they have a problem. They fail when there are no identical keywords for an exact match of a search. In order to overcome this limitation, recently several proposals for systems have been presented. Some of them have proposed the integration of ontologies to improve the recommendation process. This paper presents an architecture for an ontology-based system and implements a prototype which demonstrates how it can be used to inside a portal to sell cars. Resumo. Os sistemas de recomendação surgiram como uma abordagem interessante para resolver o problema da sobrecarga de informação. Entretanto a maioria deles falha quando não há palavras-chave idênticas para uma correspondência exata em uma pesquisa. Para minimizar essa limitação, recentemente várias novas propostas têm sido apresentadas. Algumas delas têm procurado explorar os benefícios das ontologias no processo de recomendação. Este trabalho apresenta uma arquitetura de um sistema baseado em ontologias e utiliza uma implementação de protótipo para demonstrar como ela pode ser usada em um portal de vendas de veículos.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introdução</title>
      <p>
        Diariamente os usuários da Internet e suas aplicações criam cerca de 2,5 quintilhões de
bytes de dados. Algumas estimativas calculam que 90% dos dados de hoje foram
criados nos dois últimos anos [
        <xref ref-type="bibr" rid="ref13">Zikopoulos et al. 2012</xref>
        ]. Nesse contexto, um dos
principais desafios de um usuário web é identificar informações que atendam às suas
preferências e é por isso que os serviços personalizados de recomendação tornaram-se
cada vez mais necessários [
        <xref ref-type="bibr" rid="ref7">Kang e Choi 2011</xref>
        ] e amplamente utilizados em várias áreas.
      </p>
      <p>
        Os sistemas de recomendação surgiram como uma abordagem para resolver o
problema da sobrecarga de informação. Eles são considerados aplicações especiais que
fornecem sugestões personalizadas sobre produtos (ou serviços) que podem ser
interessantes aos usuários. Os sistemas tradicionais sugerem itens (e.g., uma música, um
filme ou um livro) usando técnicas de mineração de texto [
        <xref ref-type="bibr" rid="ref5">Gruber 1993</xref>
        ]. No entanto,
esses sistemas falham quando não há palavras-chave idênticas, mesmo existindo uma
relação semântica entre elas [
        <xref ref-type="bibr" rid="ref7">Kang e Choi 2011</xref>
        ]. Para minimizar esse problema, nos
últimos anos, vários estudos propuseram o uso de ontologias [
        <xref ref-type="bibr" rid="ref4">Gao et al. 2008</xref>
        ], [
        <xref ref-type="bibr" rid="ref14">Zhen et
al. 2010</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">Kang e Choi 2011</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">Ge et al. 2012</xref>
        ] como uma maneira de aumentar o
desempenho dos sistemas de recomendação.
      </p>
      <p>Neste trabalho, é proposta uma arquitetura de um sistema de recomendação
baseado em ontologia o qual fornece informações personalizadas por meio dos
relacionamentos entre os interesses do usuário e os anúncios de carros disponíveis na
web. Na seção 2, são apresentadas a arquitetura e a forma de cálculo do grau de
interesse; na seção seguinte, a técnica e o mecanismo de recomendação utilizados são
descritos e, na última seção, as considerações finais são apresentadas.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Arquitetura Proposta</title>
      <p>A Figura 1 apresenta a arquitetura hierárquica proposta de um sistema de recomendação
baseado em ontologias para auxiliar usuários na compra de carros usados.</p>
      <p>Figura 1. Arquitetura proposta do sistema
A arquitetura é baseada em quatro camadas, conforme a descrição abaixo:
1. Camada de Contexto — formada pelas ontologias de domínio (subseção 2.1) e
de interesse do usuário (subseção 2.2);</p>
      <p>2. Camada de Descoberta de Interesse — a partir das avaliações do usuário, é
calculado o grau de interesse pelos conceitos da ontologia;</p>
      <p>3. Camada de Recomendação — responsável por: a) calcular a similaridade
entre os usuários, b) prever itens que serão interessantes para um determinado usuário e
c) rankear a lista de anúncios de acordo com o interesse do usuário;</p>
      <p>4. Camada de Ontologias — responsável pelo armazenamento das instâncias que
representam os artefatos dos modelos de ontologia utilizados na arquitetura.</p>
    </sec>
    <sec id="sec-3">
      <title>2.1. Ontologia de Domínio</title>
      <p>
        Algumas vezes é interessante que apenas uma parte de uma ontologia seja
reaproveitada. Este processo é chamado de modularização e consiste na extração de um
subconjunto (também chamado de módulo) da ontologia original [
        <xref ref-type="bibr" rid="ref2">Doran 2006</xref>
        ]. Aqui,
está sendo usado um módulo do modelo Used Cars Ontology (UCO) [
        <xref ref-type="bibr" rid="ref9">MakoLab 2012</xref>
        ].
      </p>
      <p>Neste trabalho, um web crawler é encarregado de localizar anúncios web
referentes a carros usados. O conteúdo descoberto nos anúncios é usado como entrada
para construir uma lista de itens disponíveis para recomendação. Depois que o conteúdo
dos anúncios é devidamente extraído por um componente com a função de parser, os
anúncios são usados para popular a ontologia de domínio. A configuração do web
crawler é definida pelo administrador do sistema na interface de configuração.</p>
    </sec>
    <sec id="sec-4">
      <title>2.2. Ontologia de Interesse do Usuário</title>
      <p>A ontologia que representa os interesses do usuário é um subconjunto da ontologia de
domínio e, para construí-la, é realizado um mapeamento entre os interesses do usuário e
os conceitos da ontologia de domínio (Figura 2). A fim de tornar as recomendações
mais personalizadas, o usuário avalia os itens de acordo com as suas preferências.</p>
      <p>
        Figura 2. Processo de construção da Ontologia de Interesse do Usuário
É importante garantir que as características dos itens recomendados combinem
com os interesses do usuário [
        <xref ref-type="bibr" rid="ref3">Ge et al. 2012</xref>
        ] a fim de garantir recomendações que
atendam às suas necessidades. O interesse de cada usuário é representado por um
modelo chamado de Modelo de Interesse do Usuário e formalmente pode ser definido
como:
Θ = (D, I, G, S),
onde:
 D = {login, sexo, estadoCivil, anoNascimento, numeroFilhos, renda}
representa os dados pessoais do usuário;
 I = {I1, I2, ..., In} é o conjunto de interesses (interesses iniciais + interesses
descobertos através de interações) representados na ontologia do usuário;
 G = {G1, G2, ..., Gn} é o grau de interesse do usuário por cada um dos
conceitos de I e;
 S = [Sij]n x n é a matriz que representa a similaridade entre todos os usuários.
      </p>
    </sec>
    <sec id="sec-5">
      <title>2.3. Grau de Interesse do Usuário</title>
      <p>Depois de apresentadas as ontologias de domínio e de interesses, é calculado o grau de
interesse do usuário por cada um dos conceitos de sua ontologia. Através de um
formulário, realiza-se a avaliação dos itens {ótimo, bom, razoável, ruim, péssimo} de
acordo com a pontuação {5, 4, 3, 2, 1}, respectivamente. O feedback explícito
(avaliações) de um usuário em relação a um conceito C, representado por Exp(Ci), está
no intervalo [-1, 1] e é calculado de acordo com a Equação 1:
Em seguida, Exp(Ci) é normalizado para o intervalo [0, 1]. Já o feedback implícito
(visitas), é baseado nas frequências de acesso e é calculado conforme Equação 2:
∑
( )
,
onde F(Ci) é a frequência de acesso aos conceitos da ontologia de interesse. Por fim, o
grau de interesse em relação a um conceito C, G(Ci), é calculado pela Equação 3:
onde α e β são pesos que influenciam diretamente no cálculo do grau de interesse do
usuário. A soma desses pesos é igual a 1 (α + β = 1) e os seus valores são definidos pelo
administrador do sistema.</p>
    </sec>
    <sec id="sec-6">
      <title>3. Mecanismo de Recomendação</title>
    </sec>
    <sec id="sec-7">
      <title>3.1. Filtragem Colaborativa</title>
      <p>Após o cálculo do grau de interesse, os usuários são agrupados de acordo com suas
similaridades e, para tal, são utilizados os Mapas Auto-Organizáveis e o algoritmo
KMeans. O objetivo é que o sistema utilize a Filtragem Colaborativa para recomendar a
um determinado usuário anúncios considerados interessantes baseado na opinião de
outros usuários que apresentam perfis similares ao seu.</p>
      <p>
        Os Mapas Auto-Organizáveis (Self-Organizing Maps ou simplesmente SOM)
são algoritmos de redes neurais artificiais que se baseiam no aprendizado competitivo
não-supervisionado, o que significa que o treinamento é inteiramente orientado pelos
dados e que leva em consideração apenas os padrões de entrada [
        <xref ref-type="bibr" rid="ref8">Kohonen 1997</xref>
        ]. Cada
neurônio i do mapa é representado por um vetor de peso p-dimensional mi = [mi1, mi2,
..., mip]T, onde p é igual à dimensão do vetor de entrada [
        <xref ref-type="bibr" rid="ref1">Costa e Netto 2001</xref>
        ].
      </p>
      <p>
        A Matriz-U é um método de visualização usada, normalmente, com os mapas
SOM para análise de agrupamentos. Ela se baseia na distância do espaço de entrada
entre um vetor de peso e os seus vizinhos no mapa [
        <xref ref-type="bibr" rid="ref11">Yamaguchi e Ichimura 2011</xref>
        ]. Já a
Matriz-U* [
        <xref ref-type="bibr" rid="ref12">Ultsch 2003</xref>
        ] leva em consideração a densidade da informação a fim de
aprimorar os resultados da Matriz-U convencional.
      </p>
    </sec>
    <sec id="sec-8">
      <title>3.2. Resultados Preliminares</title>
      <p>O vetor de entrada do algoritmo SOM é formado pelo conjunto de grau de interesses do
usuário, G(Ci) = {C1, C2, ..., Cn}, e por alguns de seus dados pessoais, representados
numericamente. Os dados utilizados nos experimentos foram obtidos de forma
(2)
(3)
simulada. No entanto, a fim de aproximá-los da realidade, eles foram gerados a partir de
uma distribuição normal e, em seguida, normalizados na faixa de valores [0, 1].</p>
    </sec>
    <sec id="sec-9">
      <title>Figura 3. Matriz-U* construída a Figura 4. Mapa SOM representando partir dos dados de entrada do SOM 7 grupos de usuários similares</title>
      <p>
        O conjunto de dados foi analisado por um mapa SOM, empregado na construção
da Matriz-U* (Figura 3). O algoritmo K-Means foi utilizado para segmentar a U*. E,
para determinar o número adequado de agrupamentos, usou-se o CDbw (Composed
Density between and within clusters) [
        <xref ref-type="bibr" rid="ref6">Halkidi e Vazirgiannis 2008</xref>
        ], um índice que
avalia a compacidade e a separação de grupos definidos por um algoritmo de
agrupamento. Ao fim da execução, são obtidos sete grupos que representam os perfis de
usuários similares (Figura 4) e a matriz de similaridade correspondente, [Sij]n x n.
      </p>
    </sec>
    <sec id="sec-10">
      <title>3.3. Processo de Recomendação</title>
      <p>A listagem de recomendação é gerada a partir de regras definidas pelo administrador. A
performance do sistema é determinada por essas regras que atuam como parâmetros de
configuração. Alguns exemplos das regras usadas são a) o threshold que determina o
interesse (ou não) do usuário por um anúncio, b) a atribuição de valores aos pesos α e β
(ver seção 2.3), c) os parâmetros de inicialização do algoritmo SOM e outros.</p>
      <p>
        Quando um usuário n é similar a um usuário u, pode-se dizer que n é um vizinho
de u. Depois de realizado o agrupamento de usuários, o próximo passo é prever os itens
i que ainda não foram visualizados pelo usuário u, mas que já foram avaliados
anteriormente pelos seus vizinhos n, conforme Equação 4 [
        <xref ref-type="bibr" rid="ref10">Schafer et al. 2007</xref>
        ]:
̅
∑
∑
̅
(4)
onde ̅ e ̅ são, respectivamente, as avaliações médias dos usuários u e n, enquanto
é a avaliação do usuário n sobre o item i. Finalmente, os itens recomendados são
ordenados baseado no valor de G(Ci).
      </p>
    </sec>
    <sec id="sec-11">
      <title>4. Conclusões</title>
      <p>Neste trabalho, é apresentada uma arquitetura hierárquica de um sistema baseado em
ontologias para recomendação de anúncios de carros usados. A arquitetura utiliza duas
ontologias: uma de domínio e outra para representar os interesses do usuário. A fim de
aplicar a técnica de Filtragem Colaborativa, um mapa SOM é empregado para agrupar
usuários com características e interesses similares. Enquanto os sistemas de
recomendação tradicionais utilizam palavras-chave para representar os interesses do
usuário, este trabalho utiliza conceitos de ontologia. Dessa forma, o modelo de
interesses será mais adequado à realidade do usuário e consequentemente o mecanismo
de recomendação sugerirá um maior número de anúncios que atendam às reais
necessidades do usuário. O trabalho ainda está em fase de desenvolvimento e a
continuidade na implementação de outras funcionalidades é o foco de trabalhos futuros.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Costa</surname>
            ,
            <given-names>J. A. F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Netto</surname>
            ,
            <given-names>M. L. A.</given-names>
          </string-name>
          (
          <year>2001</year>
          ).
          <article-title>Clustering of complex shaped data sets via Kohonen maps and mathematical morphology</article-title>
          .
          <source>In Proceedings of the SPIE</source>
          ,
          <article-title>Data Mining</article-title>
          and
          <string-name>
            <given-names>Knowledge</given-names>
            <surname>Discovery</surname>
          </string-name>
          . B.
          <string-name>
            <surname>Dasarathy</surname>
          </string-name>
          (Ed.), vol.
          <volume>4384</volume>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Doran</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2006</year>
          ).
          <article-title>Ontology reuse via ontology modularisation</article-title>
          .
          <source>In Proceedings of Knowledge Web PhD Symposium</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Ge</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peng</surname>
            , J. e Li,
            <given-names>T.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>An ontology-based method for personalized recommendation</article-title>
          .
          <source>In 11th International Conference on Cognitive Informatics &amp; Cognitive Computing (ICCI*CC)</source>
          , pp.
          <fpage>522</fpage>
          -
          <lpage>526</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Gao</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yan</surname>
            , J. e Liu,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>A Semantic Approach to Recommendation System based on User Ontology and Spreading Activation Model”</article-title>
          .
          <source>In International Conference on Network and Parallel Computing</source>
          , pp.
          <fpage>488</fpage>
          -
          <lpage>492</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Gruber</surname>
            ,
            <given-names>T. R.</given-names>
          </string-name>
          (
          <year>1993</year>
          ).
          <article-title>A translation approach to portable ontology specifications</article-title>
          .
          <source>Journal Knowledge Acquisition</source>
          , pp.
          <fpage>199</fpage>
          -
          <lpage>220</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Halkidi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>e</article-title>
          <string-name>
            <surname>Vazirgiannis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>A density-based cluster validity approach using multi representatives</article-title>
          .
          <source>Pattern Recognition Letters</source>
          , vol.
          <volume>29</volume>
          , pp.
          <fpage>773</fpage>
          -
          <lpage>786</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Kang</surname>
            ,
            <given-names>J.</given-names>
            e Choi, J.
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>An ontology-based recommendation system using long-term and short-term preferences</article-title>
          .
          <source>In International Conference on Information Science and Applications</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>Kohonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          (
          <year>1997</year>
          ).
          <article-title>Self-Organizing Maps</article-title>
          . 2nd. Ed., Berlim: Springer, Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Makolab</surname>
          </string-name>
          [site] (
          <year>2012</year>
          ).
          <article-title>Used Cars Ontology Metadata</article-title>
          . Disponível em: http://ontologies.makolab.com/uco/ns.html. Acessado em:
          <volume>15</volume>
          <fpage>jun</fpage>
          .
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>Schafer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Ben</surname>
            , Frankowski,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Herlocker</surname>
            , J. e Sen,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2007</year>
          ).
          <article-title>The adaptive web</article-title>
          , P. Brusilovsky,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Kobsa e W. Nejdl, Springer-Verlag, Alemanha, p.
          <fpage>291</fpage>
          -
          <lpage>324</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Yamaguchi</surname>
            ,
            <given-names>T.</given-names>
            e Ichimura, T.
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>Visualization using multi-layered U-Matrix in growing Tree-Structured self-organizing feature map</article-title>
          .
          <source>Systems, Man and Cybernetics</source>
          (SMC), IEEE International Conference, p.
          <fpage>3580</fpage>
          -
          <lpage>3585</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <surname>Ultsch</surname>
            ,
            <given-names>Alfred.</given-names>
          </string-name>
          (
          <year>2003</year>
          ). U*
          <article-title>-Matrix: a Tool to visualize Cluster in high dimensional Data</article-title>
          .
          <source>Technical Report No. 36</source>
          , Dept. of Mathematics and Computer Science, University of Marburg, Germany.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>Zikopoulos</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eaton</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deutsch</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deroos</surname>
            , D. e Lapis,
            <given-names>G.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>Understanding Big Data: Analytics for Enterprise Class Hadoop</article-title>
          and
          <string-name>
            <given-names>Streaming</given-names>
            <surname>Data</surname>
          </string-name>
          . New York:
          <string-name>
            <surname>McGraw-Hill</surname>
          </string-name>
          , pp.
          <fpage>176</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>Zhen</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>G. Q. e</given-names>
          </string-name>
          <string-name>
            <surname>Jiang</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>An inner-enterprise knowledge recommender system</article-title>
          .
          <source>In Expert Systems with Applications</source>
          , vol.
          <volume>37</volume>
          , pp.
          <fpage>1703</fpage>
          -
          <lpage>1712</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>