<!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>Recommendations Based on Visual Content</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Taras Hnot</string-name>
          <email>tarashnot@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>National University of Life and Environmental Science of Ukraine, Department of Economic Cybernetics</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>There is a large number of algorithms to perform recommendations for customers of online platforms. All depends on the data sources we have. Widely used approaches are based on transactional data and “ratings” matrices. For such kind of products as clothes, furniture, hand clocks it is very important to take into account not only some metadata characteristics, but also their “visual look”. People always buy clothes based not only on their size, sleeves lengths, textile type, etc., but based on how it looks in general. In this poster paper, we will show how feature vectors of visual content could be extracted and used to enhance recommendations.</p>
      </abstract>
      <kwd-group>
        <kwd>Visual Recommendations</kwd>
        <kwd>Deep Neural Networks</kwd>
        <kwd>ResNet50</kwd>
        <kwd>Deep features representation</kwd>
        <kwd>fine-tuning of NN</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>In today’s world, there are multiple ways to perform recommendations starting from
using attributes and metadata of the products and ending with rates, received by
multiple users. In this paper, we are proposing to include into recommendations also visual
information, which could be extracted from photos of the products.</p>
      <p>Visual information is stored in pixel values of the images. But exact pixels’
representation is not the best way to represent images’ features. These values are shifted
towards position of the object on the image, lighting, etc. It is better to use some
“deeper” representation, which could be extracted using neural networks.</p>
    </sec>
    <sec id="sec-2">
      <title>Neural Networks for Deep Features Extraction</title>
      <p>The best way to extract features of images is to use some neural network, which uses
these features to perform classification. Earlier layers of such networks give us an
opportunity to represent images in the best possible way for comparison with nearest
neighbors.</p>
      <p>
        Fine-tuning [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is a frequently used approach while training neural networks with
images. The main idea is to use already trained model and only slightly tune it to work
with new data of the same nature. This approach is very useful while working with
limited number of data. For example, to train image classifier from scratch we need
tens of thousands of observations per class and days of training to achieve high
accuracy. In case of fine-tuning it will be enough to have just few hundreds of images per
class and a model could be trained in just a few minutes. This could be achieved by
using pretrained deep features and building even linear classifier on top of them.
      </p>
      <p>
        To create a model, subset of DeepFashion[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] dataset was used (46,985 images) to
train 46-classes classifier (shirt, cutoff, jeans, suit, etc.). Subset of it could be seen on
Fig.1.
      </p>
      <p>
        To do fine-tuning, some base model is needed. For that purpose we have used
ResNet5[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] trained on ImageNet (1000 classes of 1.28 millions of images).
      </p>
      <p>Process of training is next:
1. Cut off last output layer with 1000 neurons;
2. Add two fully-connected layers (256, 64 neurons) with RELU activation;
3. Add output layer with 46 possible outputs with SOFTMAX activation;
4. Freeze all weight except just added;
5. Train new weights for 10 epochs with ADAM optimizer;
6. Unfreeze all other weights;
7. Fine-tune all weights for 10 epochs with very small learning rate, like (0.001).</p>
      <p>Following approach described above, we have achieved 0.76 top 3 accuracy (top 3
means that observation is classified correctly if true value is predicted in top 3
classifier’s outputs).</p>
      <p>Then deep image features could be extracted from network using activation of layer
before two last layers, which perform classification. In our case – they are 1000 numeric
vectors. After the whole dataset of ~290 thousands of images was processed to extract
features vectors, comparison was performed using Euclidean distance. Achieved results
are on Fig.2.</p>
      <p>These kind of recommendations are not final. They could be improved by
incorporating into feature vector information, related to e.g., color, style, patter.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Conclusions</title>
      <p>Deep features give an ability to extract information from a visual content that is
important for specific task. In our work, we have showed that models, which are used to
extract these features, could be trained easily on small data sets using such technique
as fine-tuning.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Kaiming</surname>
            <given-names>He</given-names>
          </string-name>
          , Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun:
          <article-title>Deep residual learning for image recognition</article-title>
          .
          <source>In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition</source>
          , pp.
          <fpage>770</fpage>
          -
          <lpage>778</lpage>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Ziwei</surname>
            <given-names>Liu</given-names>
          </string-name>
          , Sijie Yan, Ping Luo, Xiaogang Wang, Xiaoou Tang:
          <article-title>DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations</article-title>
          .
          <source>In: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition</source>
          , (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Ec</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Ji</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Leng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            ,
            <surname>Zou</surname>
          </string-name>
          , H.:
          <article-title>Deep Convolutional Highway Unit Network for SAR Target Classification with Limited Labeled Training Data</article-title>
          .
          <source>IEEE Geosci. Remote Sens. Lett</source>
          .
          <volume>14</volume>
          ,
          <fpage>1091</fpage>
          -
          <lpage>1095</lpage>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>