<!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>Artificial Intelligence User Support System for SAP Enterprise Resource Planning</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vladimir Vlasov</string-name>
          <email>vevlasov@sberbank.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Victoria Chebotareva</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marat Rakhimov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sergey Kruglikov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>JSC Sberbank</institution>
          ,
          <addr-line>620000, Ekaterinburg, Kuibysheva 67</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Krasovsky Institute of Mathematics and Mechanics of RAS</institution>
          ,
          <addr-line>Yekaterinburg</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Ural Federal University</institution>
          ,
          <addr-line>Ekaterinburg</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>An intelligent system for SAP ERP user support is proposed in this paper. It enables automatic replies on users' requests for support, saving time for problem analysis and resolution and improving responsiveness for end users. The system is based on an ensemble of machine learning algorithms of multiclass text classification, providing efficient question understanding, and a special framework for evidence retrieval, providing the best answer derivation.</p>
      </abstract>
      <kwd-group>
        <kwd>Multi-class Text Classification</kwd>
        <kwd>Natural Language Processing</kwd>
        <kwd>Question Answering</kwd>
        <kwd>Automated User Support</kwd>
        <kwd>SAP ERP</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Enterprise resource planning (ERP) is business process management software that
allows organization to use a system of integrated applications to manage the business
and automate many functions, related to technology, services and human resources.</p>
      <p>For a large scale business running complex IT system such as SAP ERP, it is
typical to have hundreds of thousands of users’ requests annually reported to the help
desk verbally by telephone or via specialized help desk systems, such as Service
Manager (SM) or Service Desk.</p>
      <p>There are usually two types of problems that are reported: errors, arising from
incorrect users’ actions or system failures and requests for information, advice on a
particular user case. Both of these types of problems interrupt a normal course of
operations requiring 1-2 days for a problem being solved, leading to additional costs
on support team maintenance.</p>
      <p>Users’ requests are messages in natural language, containing some kind of
information about the problem, which is relevant in the users opinion. In fact, types of
problem descriptions range from a deep problem analysis conducted by a professional
user to less informative and sometimes useless or misleading messages.</p>
      <p>The ability to understand human posed questions and to provide relevant answers
refers to one of the most challenging AI problems – Question Answering (QA). QA is
a computer science discipline within the fields of information retrieval and natural
language processing. In comparison with the open-domain QA systems, such as IBM
Watson, designed to challenge human champion in the Jeopardy! Game [1], dealing
with various problems of producing sensible answers out of general knowledge: from
lexical answer type determination to massively parallel hypothesis scoring,
closeddomain QA systems deal with specific knowledge which can be formalized in
ontologies.</p>
      <p>The problem of implementing machine learning algorithms to help desk
automation is described in [2].</p>
      <p>Thus building an intelligent user support system is a closed-domain QA problem.
In this paper we present a description of such QA system with application to a
particular domain of SAP ERP user support, based on machine learning algorithms of
text classification.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Intelligent user support system architecture</title>
      <p>The high-level architecture of the intelligent user support system is presented in figure
1.
The main steps in a high-level architecture of the proposed intelligent user support
system.
1. Content acquisition including creation, cleaning and extending of a corpus of
users’ requests.
2. Request analysis including SAP module determination and deep request
classification.
3. Knowledge database development in order to map classes of requests on sets of
possible causes.
4. Generation of a set of possible causes for the particular type of problem.
5. Gathering evidence from SAP to evaluate hypothesis about candidate causes of
problem.
6. Answer merging w.r.t. available information from SAP tables, system log and user
information.
7. Answer checked by an expert. If:
• Correct, then the answer sent to user.
• Incorrect, then the request and the correct class1 added to the training set in R. An
algorithm relearned and updated.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Request Classification Algorithm</title>
      <p>A classification of requests is a standard text classification task performed by various
machine learning algorithms providing multi-class classification [3, 4, 5, 6].There
were attempts to implement more sophisticated algorithms for this task such as
recurrent convolutional neural network [7], but the increase in accuracy was not
significant.</p>
      <p>Raw data comes from SAP ERP support database of one large Russian company.
All requests are primarily divided into six main categories (modules) in accordance
with business processes realized in SAP ERP environment. Requests out of each
module have been labeled by human experts tby one of the classes from the set of
classes (C).</p>
      <p>Main categories (modules) are the following.
─ Purchases and agreements.
─ Property and material management.
─ Budget planning and execution.
─ Real estate management and construction.
─ Business trips and hospitality expenses and Payments.
─ User Access management.</p>
      <p>A class label is a short text of typical SAP ERP user problem: an error message or
general user request problem type. Each class is constructed in a manner, that requests
attributed to one class, share the same set of possible causes and corresponding
answers.</p>
      <p>Some class labels examples in the Purchases and Agreements category: «How to
execute the request for supply», «Error: applicant is unavailable», «Specification not
displayed in agreement»,“no resource found when creating a request for supply”, etc.</p>
      <p>Users can express one problem in different ways, for example, by the following
examples. Consider a user is faced with a problem “no resource found when creating
a request for supply”. Then request can be formulated as: “when creating Request for
Supply I cannot select the required resource” or “when creating Request for Supply
the program does not find the resource”
1 New classes of requests potentially can arise.</p>
      <p>The number of classes by categories is : ! = 81, ! = 43, ! = 26, ! = 23,
! = 33, ! = 9. Total number of classes is  = 215. Each request can be related only
to one class. The number of requests in the labeled sample is the following:
! = 4168 , ! = 2824 , ! = 1698 , ! = 867 , ! = 1609 , ! = 1388 . Total
number of requests in a labeled sample  = 12554.</p>
      <p>The key aspect to an efficient classification algorithm is the preparation of the text
corpus [2]. Corpus – is a complete collection of texts of user requests, containing raw
texts with class labels. Cleaning and extension of a corpus include a sequence of
procedures, developed in R via different packages of text mining (“tm”), stemming
(“SnowballC”), splitting, and combining data ("plyr"):
1. Conversion to lowercase.
2. Deletion of doubled whitespaces, numbers, punctuation.
3. Deletion of stopwords (“and”, “or”, “good morning”, “thank”, “please”).
4. Reducing words to their word stems, base form (stemming).
5. N-gram retrieval (n-gram – is a contiguous sequence of n items from a given
sequence of text), (“create new request for supply”, “insufficient budget”).
6. Unification of synonymic constructions
Building a term-document matrix (TDM), containing each request as a vector of
numerical attributes, corresponding to tokens encountered inside requests.</p>
      <p>In the course of the work, it was concluded that not all stopwords should be
removed. The word “not/no” turned out to be meaningful within the framework of our
task. And for module “User Access management” prepositions proved to be
important. Without them you cannot correctly determine the class.</p>
      <p>To reduce the number of words in corpus and to improve accuracy of classification
you can combine words into artificial terms. You can combine words in accordance
with one of three principles: acronym expansions: “RFS” – “request for supply”,
synonyms in the sense of the Russian language: “storekeeper” – “warehouse manager”
and synonymous words in the context of SAP: “budget indicator red” – “insufficient
budget”. Such synonyms where chosen manually. Users can formulate one problem in
different ways, sometimes with the most unusual words.</p>
      <p>A TDM is a sparse matrix, i.e. most of its elements are zeros. To prevent
overfitting and ensure classes generalization and interpretability, we should remove sparse
terms for each class. Selection of a appropriate sparsity threshold parameter is a
subject to optimization. This value of a threshold delivering the best average accuracy is
chosen for each class. We use sparsity thresholds 60% for all classes. Also we use
TFIDF to assess the importance of words in requests. But this method did not give a
good result in our problem: specific words from small classes remained invaluable.
To eliminate this imbalance, the TF-SLF was applied. This method is based on the
fact, that the term is important within a category if it occurs in most documents of this
category. This approach allows you to estimate the weight of keywords for all classes
and reduce the weight of words that are key for several classes.</p>
      <p>We train each of the following algorithms on a training set and test it on a test set
randomly sampled from each class in proportion of 75%/25%.
A brief description of each algorithm used for classification is presented in the
following section.
3.1</p>
      <sec id="sec-3-1">
        <title>Naïve Bayes Algorithm (NB)</title>
        <p>
          NB – is one of the simplest yet effective method of multi-class classification [5] based
on Bayesian Rule. The probability of class c given document d is determined by the
following equation (
          <xref ref-type="bibr" rid="ref1">1</xref>
          ):
   =
   ∙ ()
        </p>
        <p>
          ()
Thus, a class of request is determined by (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ):
! = argmax(   )
!∈!
= argmax    ∙
        </p>
        <p>!∈!
= argmax  !, !, … , !  ∙</p>
        <p>!∈!
where !, !, … , ! – is a vector representation of d (“bag of words” representation).</p>
        <p>
          Making an assumption of feature ! conditional independence, which is
obviously wrong (terms «budget» and «control» more often appear together), but allows
joint probability  !, !, … , !  to be represented as a product of probabilities
 !  . Then formula (
          <xref ref-type="bibr" rid="ref2">2</xref>
          ) takes its final representation (
          <xref ref-type="bibr" rid="ref3">3</xref>
          ):
!" = argmax  !
!∈!
!∈!
(|)
The probabilities in (
          <xref ref-type="bibr" rid="ref3">3</xref>
          ) are substituted by their frequency-based estimators:  ! is
estimated as a ratio of requests related to class ! to total number of requests, (|)
is estimated as a fraction of times term x appears among all terms in requests of class
!.
        </p>
        <p>
          Classification made by NB is a good benchmark for other more sophisticated
algorithms.
(
          <xref ref-type="bibr" rid="ref2">2</xref>
          )
(
          <xref ref-type="bibr" rid="ref3">3</xref>
          )
(
          <xref ref-type="bibr" rid="ref1">1</xref>
          )
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>K Nearest Neighbors (KNN)</title>
        <p>
          KNN – is an algorithm that returns the class which contains the most similar training
request to the one that is being classified. The use of different similarity functions
forms different types of kNN. We use the standard Euclidean distance (
          <xref ref-type="bibr" rid="ref4">4</xref>
          ).
where !! – i-th neighbor of the object u.
        </p>
        <p>
          For each u, its neighbors from the training sample can be arranged in
ascending order w.r.t. . If !! – is the class of i-th neighbor of object u, then the class of u
is determined by the equation (
          <xref ref-type="bibr" rid="ref5">5</xref>
          ):
(, !) =
!
!!!
        </p>
        <p>! !
! − !</p>
        <p>
          !/!
!"" = argmax
!∈!
!
!!!
[!
!
= ] ∙ (, )
(
          <xref ref-type="bibr" rid="ref4">4</xref>
          )
(
          <xref ref-type="bibr" rid="ref5">5</xref>
          )
(
          <xref ref-type="bibr" rid="ref6">6</xref>
          )
Choosing (, ) one can form various types of kNN algorithm: exponentially
weighted NN, Parzen window kNN, etc. [8]. The number k of NN is modelled by
leave-one-out cross-validation.
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Support Vector Machine (SVM)</title>
        <p>
          SVM – is the non-probabilistic classification method introduced by V. Vapnik, which
constructs a hyperplane in a high-dimensional feature space by empirical risk
minimization [8]. SVM – is a binary classification algorithm. Traditional way of performing
multiclass classification with SVM is combining several binary “one-against-all” or
“one-against-one” SVM classifiers [5]. We have k (by the number of classes) similar
“one-against-all” optimization tasks (
          <xref ref-type="bibr" rid="ref6">6</xref>
          ):
        </p>
        <p>1
min
!,!,! 2
! +</p>
        <p>!
!!!</p>
        <p>!
! ! +  ≥ 1 − !,  ! = ,
! ! +  ≤ −1 + !,  ! ≠ ,</p>
        <p>! ≥ 0
where !- class of !,  – kernel function. C – penalty parameter.</p>
        <p>
          Thus a class of request is derived by (
          <xref ref-type="bibr" rid="ref7">7</xref>
          ):
!"# = argmax((!)!  + !)
        </p>
        <p>!∈!
As long as in the text classification problem classes are usually linearly separable,
SVM with linear kernel should perform well for text categorization [5].
3.4</p>
      </sec>
      <sec id="sec-3-4">
        <title>Maximum Entropy (MaxEnt)</title>
        <p>Multinominal logistic regression or maximum entropy [9] – probabilistic log-linear
classifier, maximizing log-likelihood of a set of weighted features from input data.
The class c of the request х is determined as maximum probability    that is
computed by (8)
   =</p>
        <p>!
exp ( !!! !!(, ))</p>
        <p>!
!!∈! exp ( !!! !!(′, ))
where !(, ) – i-th binary feature of request  given class с. This feature takes the
value of 1, if a term is present in a request and the class is с, and zero otherwise.</p>
        <p>Special regularization methods are also used to fix the problem of overfitting.
In our work we used the implementation of MaxEnt algorithm in R written by T. P.
Jurka [6, 10].</p>
        <p>The results in terms of accuracy and its variation on local tests are presented in
Table 1. The results for parameters with the best performance on the test set are
reported.
Support group (SAP module / process)
Purchases and agreements</p>
        <sec id="sec-3-4-1">
          <title>Property and material management</title>
        </sec>
        <sec id="sec-3-4-2">
          <title>Budget planning and execution Real estate management and construction Business trips and hospitality expenses and Payments</title>
        </sec>
        <sec id="sec-3-4-3">
          <title>User Access management</title>
          <p>NB
76.4
(2.1)
76.6
(2.5)
64.6
(3.4)
88.8
(2.9)
88.3
(1.9)
82.1
85.4
(1.4)
86.6
(1.6)
77.4
(3.5)
91.1
(3.2)
92.2
(2.1)
91.9
(2.98)</p>
          <p>SVM
87.8
(1.9)
89.5
(2.1)
85.6
(1.5)
93.5
(2.9)
94.5
(1.8)
95.1
(2.6)</p>
          <p>MaxEnt
87.1
(2.1)
90.3
(1.5)
87.3
(2.3)
92.4
(2.9)
93.9
(1.4)
56.3
(3.6)
As it is shown in table 1, there is no single choice for the type of the classification
algorithm. MaxEnt and SVM are the most popular choice. So by far we completed the
steps that allowed the proposed system to understand what kind of problem a user was
trying to express in his request.
4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Answering the request and error analysis</title>
      <p>After defining the problem class the system gives the expert a prepared answer for
this class. The answer for class can be unambiguous (for the request “how to get the
role of a material responsible person”) or may consist of several recommendations
depending on the cause of the problem (for the request “no resource found when
creating a request for supply”). In this later case it is necessary to conduct additional
analysis. The analysis consists of hypotheses testing for the candidate causes of the
problem. Hypotheses testing imply check-listing a set of rigid rules predefined by the
expert in order to reduce the number of potential causes and the corresponding
answers.</p>
      <p>For each class of requests there are certain parameters to retrieve from SAP ERP
system and to compare with the values from the user request. In case of missing user
parameters in the initial request, the system either looks them up in a system log or
asks user to send information.</p>
      <p>After the evidence has been retrieved the process of “pruning the trees” of
candidate causes is performed and a single answer (perhaps combined of several reasons
and recommendations) is given. The answer is then verified by a human expert and in
case it is incorrect – reclassified by an expert.</p>
      <p>Thus the process of forming a response can be represented as follows:
• Collecting necessary data to test hypotheses about the cause of the problem (from a
user request).
• Requesting SAP database for necessary parameters specified for each class.
• Verification of criteria.
• Rejection of incorrect hypotheses.
• Formulation of the final answer.</p>
      <p>For example we will take the class from the module "Purchases and agreements": “no
resource found when creating a request for supply”. The data required for the
hypothesis testing are the number of the resource and the number of request for supply. If
these data are present in the message, we can proceed to step 2. In case of the absence
of necessary information, the system will send a request to the user or the system
looks it up in a system log. When the number of request for supply and resource are
obtained, we proceed to testing the hypotheses. In this case there are 3 of them.
1. Expiration date of the resource &gt; date of consumption in the request for supply.
2. Invalid resource number.
3. A resource cannot be used in the request for supply.</p>
      <p>With respect to a certain request ID, for each of hypotheses the system retrieves
specific parameters (Expiration date of the resource, number of the resource, number of
the request for supply) and in case the conditions of the hypothesis are matched, it is
regarded as true.</p>
      <p>If this hypothesis is confirmed, then the user receives a particular response, such
as: “Good day! Select another resource”.</p>
      <p>As for incorrectly classified appeals, they are analyzed. The training set and the
classification algorithm is updated on weekly basis with regard to the error analysis.
The most common reasons of errors in classification of requests are the following:
• Uncommon synonym for the specific term was used in the request. In this case this
synonym is added to a term definition.
• Presence of keywords from different classes in one request. Usually this is a
problem of long requests, when the user formulates several questions in one request.</p>
      <p>Those requests are treated individually by an expert.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>The paper introduces a machine-powered user support system for SAP ERP. It
describes the main steps of the process of corpus preparation, problem understanding
and answer derivation combined in a simple architecture, providing the system to
evolve.</p>
      <p>The system is scalable on various problems of closed-domain question answering
in different spheres and requires joint efforts of human experts for data preparation,
building a knowledge database and text mining techniques and machine learning
algorithms of multi-class classification to potentially reach a high-level accuracy on
understanding and answering natural language requests.
8. Cortes,C., Vapnik,V.: Support-vector network. Machine Learning, 20: pp. 273–297,
(1995)
9. Jurafsky, D., Martin, J. H.: Speech and Language Processing. Lecture.
10. Jurka, T. P.: Maxent: An R Package for Low-memory Multinomial Logistic Regression
with Support for Semi-automated Text Classification.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Ferrucci</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brown</surname>
          </string-name>
          , E. et al.:
          <article-title>Building Watson: An Overview of the DeepQA Project</article-title>
          .
          <source>AI Magazine</source>
          ,
          <article-title>(</article-title>
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Logan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kenyon</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>HELPDESK: Using AI to Improve Customer Service</article-title>
          .
          <source>In Proceedings AAAI-92</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bijalwan</surname>
            ,
            <given-names>V. Kumar V.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Kumari</surname>
          </string-name>
          and
          <string-name>
            <surname>Pascual J.: KNN</surname>
          </string-name>
          <article-title>based Machine Learning Approach for Text and Document Mining</article-title>
          . In
          <source>International Journal of Database Theory and Application</source>
          Vol.
          <volume>7</volume>
          , No.
          <issue>1</issue>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>70</lpage>
          , (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Jurafsky</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          : Text Classification and
          <string-name>
            <given-names>Naïve</given-names>
            <surname>Bayes</surname>
          </string-name>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Joachims</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Text categorization with support vector machines: Learning with many relevant features</article-title>
          .
          <source>In Proceedings of the European Conference on Machine Learning</source>
          . Springer, (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Nigam</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lafferty</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          and
          <string-name>
            <surname>McCallum</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Using maximum entropy for text classification</article-title>
          .
          <source>IJCAI-99Workshop on Machine Learning for Information Filtering</source>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>67</lpage>
          , (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Lai</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Recurrent Convolutional Neural Networks for Text Classification</article-title>
          .
          <source>In Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>