KR20230171040A - 컴퓨팅 환경에 걸친 로봇 프로세스 자동화에 의한 태스크 및 프로세스 마이닝 - Google Patents

컴퓨팅 환경에 걸친 로봇 프로세스 자동화에 의한 태스크 및 프로세스 마이닝 Download PDF

Info

Publication number
KR20230171040A
KR20230171040A KR1020217040339A KR20217040339A KR20230171040A KR 20230171040 A KR20230171040 A KR 20230171040A KR 1020217040339 A KR1020217040339 A KR 1020217040339A KR 20217040339 A KR20217040339 A KR 20217040339A KR 20230171040 A KR20230171040 A KR 20230171040A
Authority
KR
South Korea
Prior art keywords
task
user
mining engine
tasks
recorded
Prior art date
Application number
KR1020217040339A
Other languages
English (en)
Inventor
그레고리 바렐로
찰스 박
프라샨스 단나마네니
Original Assignee
유아이패스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유아이패스, 인크. filed Critical 유아이패스, 인크.
Publication of KR20230171040A publication Critical patent/KR20230171040A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/776Validation; Performance evaluation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39298Trajectory learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40391Human to robot skill transfer

Abstract

태스크 마이닝 엔진에 의해 구현되는 방법이 본원에서 개시된다. 태스크 마이닝 엔진은 메모리 상에 프로세서 실행가능 코드로서 저장된다. 프로세서 실행가능 코드는 메모리에 통신 가능하게 커플링되는 프로세서에 의해 실행된다. 방법은, 컴퓨팅 환경에 대한 유저 활동을 식별하는 기록된 태스크를 수신하는 것 및 각각의 기록된 유저 태스크를 프로세싱하고 채점하는 것에 의해 기록된 유저 태스크를 단계로 클러스터링하는 것을 포함한다. 방법은 또한 유저 활동을 모방하기 위해 단계의 유사한 조합 또는 반복된 조합을 식별하는 단계 시퀀스를 추출하는 것을 포함한다.

Description

컴퓨팅 환경에 걸친 로봇 프로세스 자동화에 의한 태스크 및 프로세스 마이닝
본 출원은 2021년 4월 13일자로 출원된 미국 출원 번호 제17/229,085호의 이익을 주장하는데; 상기 미국 출원의 내용은 참조에 의해 본원에 통합된다.
본원에서의 개시는 로봇 프로세스 자동화(robotic process automation; RPA)의 분야에 관한 것으로, 특히, 컴퓨팅 환경에 걸친 RPA에 의한 태스크 및 프로세스 마이닝에 관한 것이다.
종래의 오퍼레이팅 및 소프트웨어 시스템은 데이터 마이닝 및 프로세스 마이닝을 제공할 수 있다. 데이터 마이닝은 대규모 데이터 세트에서 패턴을 발견하기 위한 컴퓨터 과학 및 통계 기술을 포함한다. 프로세스 마이닝은 이벤트 로그에 기초하는 운영 프로세스의 분석을 위한 데이터 과학 및 프로세스 관리 기술을 포함한다. 데이터 및 프로세스 마이닝의 목표는 종래의 오퍼레이팅 및 소프트웨어 시스템 내의 이벤트를 통찰력 및/또는 액션으로 전환하는 것을 지원하는 것일 수 있다.
그러나, 종래의 오퍼레이팅 및 소프트웨어 시스템은, 별개의 분리된 오퍼레이팅 및 소프트웨어 시스템에 걸쳐 데이터 및 프로세스 마이닝을 위한 자동화 경험을 제공할 방식이 현재로선 없다. 따라서, 자동화를 데이터 및 프로세스 마이닝에 통합할 필요가 있다.
하나 이상의 실시형태에 따르면, 태스크 마이닝 엔진에 의해 구현되는 방법이 제공된다. 태스크 마이닝 엔진은 메모리 상에서 프로세서 실행 가능 코드로서 저장된다. 프로세서 실행 가능 코드는 메모리에 통신 가능하게 커플링되는 적어도 하나의 프로세서에 의해 실행된다. 방법은, 컴퓨팅 환경에 대한 유저 활동을 식별하는 하나 이상의 기록된 태스크를 수신하는 것 및 각각의 기록된 유저 태스크를 프로세싱하고 채점하는 것에 의해 하나 이상의 기록된 유저 태스크를 하나 이상의 단계로 클러스터링하는 것을 포함한다. 방법은 또한, 유저 활동을 모방하기 위해 하나 이상의 단계의 유사한 조합 또는 반복된 조합을 식별하는 하나 이상의 단계 시퀀스를 추출하는 것을 포함한다.
하나 이상의 실시형태에 따르면, 상기의 컴퓨팅 디바이스 실시형태는 방법, 장치, 시스템, 및/또는 컴퓨터 프로그램 제품으로서 구현될 수 있다.
첨부의 도면과 연계하여 예로서 주어지는 다음의 설명으로부터 더욱 상세한 이해가 이루어질 수도 있는데, 첨부의 도면에서, 도면에서의 동일한 참조 번호는 동일한 엘리먼트를 나타내고, 첨부의 도면에서:
도 1은 하나 이상의 실시형태에 따른 로봇 프로세스 자동화(RPA)의 개발, 설계, 동작, 및/또는 실행을 예시하는 환경을 묘사한다;
도 2는 하나 이상의 실시형태에 따른 컴퓨팅 시스템의 예시이다;
도 3은 하나 이상의 실시형태에 따른 컴퓨팅 환경 내에서 실행되는 방법을 예시하는 블록도이다;
도 4는 하나 이상의 실시형태에 따른 컴퓨팅 환경의 예시이다;
도 5는 하나 이상의 실시형태에 따른 컴퓨팅 환경 내에서 실행되는 방법을 예시하는 블록도이다.
하나 이상의 실시형태에 따른 태스크 마이닝 엔진이 본원에서 개시된다. 태스크 마이닝 엔진은 로봇 프로세스 자동화(RPA)를 컴퓨팅 환경에 통합하는 소프트웨어 및/또는 하드웨어를 포함한다. 더 구체적으로, 태스크 마이닝 엔진은 컴퓨팅 환경의 컴퓨팅/소프트웨어/하드웨어 시스템에 걸쳐 RPA에 의해 태스크 및 프로세스 마이닝을 구현한다.
일반적으로 태스크 마이닝 엔진은 유저 활동을 모니터링, 평가 및 자동화하기 위해 인공 지능을 사용한다. 유저 활동은 유저에 의해 수행되는 단계, 액션, 및/또는 태스크로서 간주될 수 있다. 이와 관련하여, 인공 지능은, 어떤 그리고 얼마나 많은 컴퓨팅/소프트웨어/하드웨어 시스템이 사용되는지에 무관하게, 컴퓨팅 환경 내에서 유저가 취하는 임의의 개개의 단계(및/또는 그 내부의 태스크 및 액션)의 시작과 끝은 식별 및 분석(예를 들면, 모니터링 및 평가)하려고 시도한다. 그 다음, 단계/액션/태스크는, 유저가 모니터링하고 평가한 활동을 수행하는 코드(예를 들면, 로봇/RPA/스크립트)를 생성하기 위해 시퀀싱에 의해 자동화된다.
더욱 세분화된 레벨에서, 모니터링은, 유저가 수행하는 단계, 액션, 및/또는 태스크를 인공 지능이 캡쳐하는 것을 목표로 하는 데이터 국면(data phase) 또는 입력 국면(input phase)으로서 간주될 수 있다. 이어서, 인공 지능은 실시간으로 데이터를 기록하거나, 기록의 데이터 세트를 수신/획득하거나, 또는 이 캡쳐를 수행하기 위해 이들의 조합을 활용한다.
평가는 유저 액션의 이해를 달성하는 태스크 마이닝 엔진의 메인 국면일 수 있다. 부분적으로, 이 메인 국면은, 자동화가 '이치에 맞는지'를 결정하기 위한 클러스터링(예를 들면, 태스크/액션을 단계로 분류하고 단계를 클러스터링함)을 포함한다. 즉, 클러스터링은, 단계와 같은, 클러스터를 생성하기 위해 개인의 태스크 및/또는 액션을 어떤 의미 있는 방식으로 함께 분류하는 것을 포함할 수 있다. 다른 부분에서, 이 메인 국면은 하나 이상의 시퀀스를 결정하기 위해 클러스터로부터 추출하는 것(예를 들면, 클러스터 내에서의 그리고 클러스터에 걸친 시퀀스 추출)을 포함한다. 이러한 방식으로, 인공 지능은, 어떤 의미 있는 방식으로 함께 그룹화된 개개의 액션/태스크를 취하고, 의미 있는 액션/태스크의 시퀀스를 식별한다. 게다가, 인공 지능은 개개의 단계를 수행하고 의미 있는 단계의 시퀀스를 식별한다.
자동화는, 인공 지능이 코드(예를 들면, 로봇/RPA/스크립트)를 생성하는 것을 목표로 하는 출력 국면으로서 간주될 수 있다. 로봇/RPA/스크립트는 자동적으로 독립적으로 동작할 수 있는 유형의 결과이다.
태스크 마이닝 엔진은 하드웨어 및 소프트웨어(예를 들면, 하드웨어에 반드시 기반을 두는 프로세서 실행 가능 코드)의 조합을 통해 컴퓨팅 환경에서 구현될 수 있다. 태스크 마이닝 엔진은, 구현될 때, 입력 데이터, 로봇 프로세스, 및 등등을 조작하는 RPA 마이닝 기술을 위한 특정한 구성 및 툴링 로봇 프로세스 자동화 방법(configuring and tooling robotic process automation method)을 제공할 수 있다.
예시적인 구현예에서, 태스크 마이닝 엔진에 의한 특정한 구성 및 툴링 로봇 프로세스 자동화 방법("방법")의 실시형태는 컴퓨팅 환경에 대한 유저 활동을 식별하는 하나 이상의 기록된 태스크를 수신하는 것을 포함한다. 방법은 각각의 기록된 유저 태스크를 프로세싱하고 채점하는 것에 의해 하나 이상의 기록된 유저 태스크를 하나 이상의 단계로 클러스터링하는 것을 포함한다. 방법은 유저 활동을 모방하기 위해 하나 이상의 단계 시퀀스 및/또는 하나 이상의 태스크 시퀀스를 추출하는 것을 포함한다. 방법은, 실행될 때, 유저 활동을 자동적으로 수행하는 하나 이상의 단계 시퀀스(예를 들면, 및/또는 하나 이상의 태스크 시퀀스)에 기초하여 자동화 코드를 출력하는 것을 더 포함한다. 따라서, 태스크 마이닝 엔진의 특정한 구성 및 툴링 로봇 프로세스 자동화 방법은, 컴퓨팅 환경과 관련한 데이터(예를 들면, 캡쳐된 단계, 액션, 및/또는 태스크), 로봇 프로세스, 인터페이스 컴포넌트, 및 구성의 다단계 데이터 조작을 수반한다. 태스크 마이닝 엔진의 기술적 효과 및 이점은 본원에서 상세하게 설명되는 통합을 통해 유저에게 자동화 경험을 제공하는 것을 포함한다.
도 1은 하나 이상의 실시형태에 따른 로봇 프로세스 자동화(RPA)의 개발, 설계, 동작, 및/또는 실행을 예시하는 환경(100)(예를 들면, 컴퓨팅 환경)을 묘사한다. 환경(100)은 하나 이상의 컴포넌트를 포함하는 설계 및 배치 컴퓨팅 플랫폼일 수 있다. 환경(100)의 하나 이상의 컴포넌트의 각각에 대해 단일의 블록이 도시되지만, 그 단일의 블록은 그 컴포넌트 중 하나 이상을 나타낸다는 것을 유의한다.
도시되는 바와 같이, 환경(100)은 태스크 마이닝 엔진(111)을 더 포함하는 디자이너(designer; 110)를 포함할 수 있다. 태스크 마이닝 엔진(111)은, 하나 이상의 활동(124)을 수행하는 및/또는 하나 이상의 드라이버(128) 및/또는 내부 엔진(129)을 사용하여 하나 이상의 유저 인터페이스(user interface; UI) 자동화(126)를 제공하는 하나 이상의 로봇(예를 들면, 로봇(122))을 생성하는 스튜디오 컴포넌트 또는 모듈(120)을 포함할 수 있다. 로봇(122)은, 디자이너(110) 내의 다른 드라이버 컴포넌트(131) 및 모듈(132)과 또한 결합될 수도 있다. 게다가, 환경(100)은, 로봇(122)이 환경(100)에서 실행기(170)의 무인 로봇(174) 및 유인 로봇(178)으로서 제공될 수 있도록 로봇(122)을 다운로드/획득/송신할 수 있는, 실행기(170) 및 컨덕터(140)를 포함할 수 있다.
디자이너(110), 컨덕터(140), 및 실행기(170)는, 하드웨어, 소프트웨어, 또는 이들의 조합을 포함하는, 컴퓨팅 디바이스, 컴퓨팅 장치, 및/또는 컴퓨팅 시스템을 나타낸다. 디자이너(110), 컨덕터(140), 및 실행기(170), 및 그 상의 임의의 소프트웨어(예를 들면, 태스크 마이닝 엔진(111))는, 입력을 수신하고 출력을 제공하기 위해 유저 또는 오퍼레이터와 상호 작용하도록 구성된다. 한 예에서, 실행기(170)는 모바일 컴퓨팅 및/또는 모바일 디바이스 환경일 수 있거나 또는 이들을 구현할 수 있다.
하나 이상의 실시형태에 따르면, 디자이너(110)는 스튜디오 플랫폼, 개발 플랫폼, 및/또는 온라인 플랫폼으로서 지칭될 수 있다. 디자이너(110)는 하나 이상의 엔진(예를 들면, 태스크 마이닝 엔진(111)), 개발 환경(예를 들면, 스튜디오(120)), 또는 등등을 포함할 수 있고, 하나 이상의 워크플로우(예를 들면, 하나 이상의 활동(124))을 수행 또는 자동화하기 위한 및/또는 하나 이상의 UI 자동화(126)를 제공하기 위한 로봇(예를 들면, 하나 이상의 로봇(122), 무인 로봇(174) 및 유인 로봇(178))에 대한 코드, 명령어, 커맨드, 또는 등등을 생성하도록 구성될 수 있다.
태스크 마이닝 엔진(111)은, 일반적으로, 본원에서 설명되는 특정한 구성 및 툴링 로봇 프로세스 자동화 방법과 같은 로봇 프로세스 자동화를 구현하는 소프트웨어 및/또는 하드웨어이다. 이와 관련하여, 태스크 마이닝 엔진(111)은 환경(100) 내에서의 태스크 마이닝 엔진(111)의 확장성(scalability) 및 이식성(portability)을 예시하기 위해 점선의 박스로서 상세하게 설명된다. 예를 들면, 태스크 마이닝 엔진은, 태스크 마이닝 엔진(181 및 191)에 의해 도시되는 바와 같이, 환경(100) 전체에 걸쳐 별개의 인스턴스로서 구현될 수 있다.
일반적으로, 태스크 마이닝 엔진(111)은 머신 러닝 및/또는 인공 지능 알고리즘을 내부에서 구현한다. 머신 러닝 및/또는 인공 지능 알고리즘은, 머신을 트레이닝시키고, 모델을 구축하고, 결과를 예측하기 위해, 데이터(예를 들면, 유저 액션)를 사용하여, 하드웨어와 관련하여 동작한다. 하나 이상의 실시형태에 따르면, 데이터는 진행 중인 기록 데이터, 현재 수집된 데이터, 이력 데이터, 또는 다른 데이터일 수 있다. 머신은 하드웨어와 관련되는 컨트롤러로서 동작하고 수집되는 데이터의 분석 및 상관 관계를 포함하도록 트레이닝된다. 모델은, 데이터(또는 그 서브세트)가 표현되고 프로세싱되도록, 물리적 하드웨어 및/또는 소프트웨어 모델링, 알고리즘 모델링, 및/또는 등등에 의해 데이터에 대해 구축된다. 몇몇 양태에서, 모델의 구축은 머신에 의한 자체 트레이닝 동작의 일부이다. 모델은, 하드웨어에 의해 달성될 수도 있는 결과를 예측하기 위해 데이터 및/또는 하드웨어의 동작을 모델링하도록 구성될 수 있다. 따라서, 태스크 마이닝 엔진(111)이, 데이터를 사용하여, 하드웨어와 관련하여 동작하기 위해, 머신을 트레이닝시키기 위해, 모델을 구축하기 위해, 그리고 결과(440)를 예측하기 위해, 머신 러닝 및/또는 그 내부의 인공 지능 알고리즘은 신경망을 포함할 수 있다. 일반적으로, 신경망은 뉴런의 네트워크 또는 회로이거나, 또는 현대적 의미에서, 인공 뉴런 또는 노드 또는 셀로 구성되는 인공 신경망(artificial neural network, ANN)이다.
예를 들면, ANN은 프로세싱 엘리먼트와 엘리먼트 파라미터 사이의 연결에 의해 결정되는, 복잡한 전역적 거동을 나타낼 수 있는 프로세싱 엘리먼트(인공 뉴런)의 네트워크를 수반한다. 뉴런의 회로 또는 네트워크의 이들 연결은 가중치로서 모델링된다. 양의 가중치는 흥분성(excitatory) 연결을 반영하고, 음의 값은 억제성(inhibitory) 연결을 의미한다. 입력은 가중치에 의해 수정되고 선형 조합을 사용하여 합산된다. 활성화 함수가 출력의 진폭을 제어할 수도 있다. 예를 들면, 출력의 허용 가능한 범위는 일반적으로 0과 1 사이이거나, 또는 그것은 -1과 1일 수 있다. 대부분의 경우, ANN은, 네트워크를 통해 흐르는 외부 또는 내부 정보에 기초하여 자신의 구조를 변경하는 적응형 시스템이다.
더욱 실용적인 표현에서, 신경망은, 입력과 출력 사이의 복잡한 관계를 모델링하기 위해 또는 데이터에서 패턴을 찾기 위해 사용될 수 있는 비선형 통계 데이터 모델링 또는 의사 결정 도구이다. 따라서, ANN은, 데이터세트를 통해 트레이닝되는 동안, 예측 모델링 및 적응적 제어 애플리케이션을 위해 사용될 수도 있다. 경험으로부터 유래하는 자가 학습은, 정보의 복잡하고 겉보기에 관련이 없는 세트로부터 결론을 유도할 수 있는 ANN 내에서 발생할 수 있다는 것을 유의한다. 인공 신경망 모델의 유용성은, 그들이 관찰 결과로부터 함수를 추론하기 위해 그리고 또한 그것을 사용하기 위해 사용될 수 있다는 사실에 있다. 자율(unsupervised) 신경망은 또한, 입력 분포의 현저한 특성을 캡쳐하는 입력의 표현을 학습하기 위해 사용될 수 있고, 더욱 최근에는, 관찰된 데이터의 분포 함수를 암시적으로 학습할 수 있는 딥 러닝 알고리즘을 학습하기 위해서도 사용될 수 있다. 신경망에서의 학습은, 데이터(예를 들면, 유저 액션) 또는 결과적으로 나타나는 태스크/단계/시퀀스/워크플로우의 복잡도가 그러한 함수의 설계를 수작업으로는 불가능하게 만드는 애플리케이션에서 특히 유용하다.
신경망은 상이한 분야에서 사용될 수 있다. 따라서, 태스크 마이닝 엔진(111)의 경우, 머신 러닝 및/또는 그 내부의 인공 지능 알고리즘은, 그들이 적용되는 태스크에 따라 일반적으로 분할되는 신경망을 포함할 수 있다. 이들 분할은 다음의 카테고리에 속하는 경향이 있다: 시계열 예측 및 모델링을 포함하는 회귀 분석(예를 들면, 함수 근사); 패턴 및 시퀀스 인식을 포함하는 분류; 신규성 검출 및 순차적 의사 결정; 필터링을 포함하는 데이터 프로세싱; 클러스터링; 블라인드 신호 분리, 및 압축. 예를 들면, ANN의 적용 영역은, 비선형 시스템 식별 및 제어(차량 제어, 프로세스 제어), 게임 플레이 및 의사 결정(백개먼(backgammon), 체스, 경주), 패턴 인식(레이더 시스템, 얼굴 식별, 오브젝트 인식), 시퀀스 인식(제스쳐, 음성, 필기 텍스트 인식), 의료 진단 및 치료, 금융 애플리케이션, 데이터 마이닝(또는 데이터베이스에서의 지식 디스커버리(knowledge discovery in databases; "KDD"), 시각화 및 전자 메일 스팸 필터링을 포함한다.
하나 이상의 실시형태에 따르면, 신경망은 장단기 메모리 신경망 아키텍쳐, 컨볼루션 신경망(convolutional neural network; CNN) 아키텍쳐, 또는 기타 등등을 구현할 수 있다. 신경망은 레이어의 수, 연결(예를 들면, 인코더/디코더 연결)의 수, 정규화 기술(예를 들면, 드롭아웃(dropout)); 및 최적화 피쳐와 관련하여 구성 가능할 수 있다.
장단기 메모리 신경망 아키텍쳐는 피드백 연결을 포함하고, (예를 들면, 타이핑, 말하기, 및/또는 애플리케이션 스위칭과 같은) 데이터의 전체 시퀀스와 함께, (예를 들면, 이미지 또는 스크린 샷과 같은) 단일의 데이터 지점을 프로세싱할 수 있다. 장단기 메모리 신경망 아키텍쳐의 단위는 셀, 입력 게이트, 출력 게이트, 및 망각 게이트(forget gate)로 구성될 수 있는데, 여기서 셀은 임의의 시간 간격에 걸쳐 값을 기억하고 게이트는 셀 안으로의 그리고 셀 밖으로의 정보의 흐름을 조절한다.
CNN 아키텍쳐는, 하나의 계층의 각각의 뉴런이 다음 번 계층의 모든 뉴런에 연결되는 평행 이동 불변성 특성(translation invariance characteristic)을 갖는 공유된 가중치 아키텍쳐(shared-weight architecture)이다. CNN 아키텍쳐의 정규화 기술은 데이터에서의 계층적 패턴을 활용할 수 있고 더 작고 더 간단한 패턴을 사용하여 더 복잡한 패턴을 취합할 수 있다. 신경망이 CNN 아키텍쳐를 구현하는 경우, 아키텍쳐의 다른 구성 가능한 양태는, 각각의 스테이지에서의 필터의 수, 커널 사이즈, 계층당 커널의 수를 포함할 수 있다.
게다가, 하나 이상의 실시형태에 따르면, 태스크 마이닝 엔진(111)은, 코드를 자동적으로 구현하고 스튜디오(120) 내에서 로봇(122)을 설계하는 프레임워크/메커니즘(예를 들면, 환경(100))의 일부일 수 있다. 태스크 마이닝 엔진(111)은 또한, 개발자 및/또는 오케스트레이터(예를 들면, 유저 또는 오퍼레이터)가, 예컨대 스튜디오(120)를 통해, 로봇(122)을 코딩, 프로그래밍, 및/또는 설계하는 것을 가능하게 할 수 있다. 한 실시형태에서, 스튜디오(120)는, 써드파티 애플리케이션, 행정 정보 기술(information technology; IT) 태스크, 및/또는 비즈니스 IT 프로세스의 자동화와 함께, 애플리케이션 통합을 제공할 수 있다.
로봇(122)(및 무인 로봇(174) 및 유인 로봇(178))은, 하나 이상의 워크플로우(예를 들면, 하나 이상의 활동(124)에 의해 부분적으로 표현됨)를 수행 및/또는 자동화할 수도 있고 및/또는 하나 이상의 UI 자동화(126)를 제공할 수도 있는 애플리케이션, 애플릿, 스크립트, 또는 등등일 수도 있다. 워크플로우는, 유저가 수행하는 임의의 단계, 액션, 및/또는 태스크와 함께, 태스크 시퀀스, 플로우차트, 유한 상태 머신(Finite State Machine; FSM), 전역적 예외 핸들러(global exception handler), UI 투명성(transparent), 또는 등등을 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 태스크 시퀀스는 하나 이상의 애플리케이션 또는 윈도우 사이의 선형 태스크를 핸들링하기 위한 선형 프로세스일 수도 있다. 플로우차트는, 다수의 분기 로직 연산자를 통한 더욱 다양한 방식의 결정의 통합 및 활동의 연결을 가능하게 하는 복잡한 비즈니스 로직을 핸들링하도록 구성될 수도 있다. FSM은 대규모 워크플로우를 위해 구성될 수도 있다. FSM은, 조건, 이행(transition), 활동, 또는 등등에 의해 트리거될 수도 있는 유한한 수의 상태를 그들의 실행에서 사용할 수도 있다. 전역적 예외 핸들러는, 실행 에러와 조우하는 경우, 프로세스를 디버깅하기 위해, 또는 등등을 위해, 워크플로우 거동을 결정하도록 구성될 수도 있다. UI 투명성은 기저의 오퍼레이팅 시스템(operating system; OS) 또는 하드웨어에 대한 소프트웨어 동작일 수 있다. 하나 이상의 워크플로우에 의해 달성될 수 있는 동작의 비제한적 예는, 로그인 수행, 양식 채우기, 정보 기술(information technology; IT) 관리, 또는 등등 중 하나 이상일 수도 있다. UI 자동화를 위한 워크플로우를 실행하기 위해, 로봇(122)은, 애플리케이션 액세스 또는 애플리케이션 개발에 관계없이, 버튼, 체크박스, 텍스트 필드, 라벨, 등등과 같은 특정한 화면 엘리먼트를 고유하게 식별하는 것을 필요로 할 수도 있다. 애플리케이션 액세스의 예는, 로컬, 가상, 원격, 클라우드, Citrix®(시트릭스), VMWare®, VNC®, Windows®(윈도우즈) 원격 데스크탑, 가상 데스크탑 인프라(virtual desktop infrastructure; VDI), 또는 등등일 수도 있다. 애플리케이션 개발의 예는, win32, Java(자바), Flash(플래시), 하이퍼텍스트 마크업 언어(hypertext markup language; HTML), HTML5, 확장 가능한 마크업 언어(Extensible Markup Language; XML), JavaScript(자바스크립트), C#, C++, Silverlight(실버라이트), 또는 등등일 수도 있다.
하나 이상의 실시형태에 따르면, 개발시, 로봇(122)은 디자이너(110)(예를 들면, 스튜디오(120))에서/에 의해 생성될 수 있다. 게다가, 배치시, 로봇(122)은 컨덕터(140)에서/에 의해(예를 들면, 태스크 마이닝 엔진(181) 내에서) 관리, 제어, 구성될 수도 있거나, 또는 등등으로 될 수도 있다. 배치시, 로봇(122)은 실행기(170) 내에서도 또한 실행될 수도 있다. 한 예에서, 유저 입력(예를 들면, 디스플레이 상에서의 선택)은 유저 또는 오퍼레이터에 의해 디자이너(110)에게 제출될 수 있다. 디자이너(110)가 로봇(122)에게 제공할 수도 있는 선택으로부터, 로봇(122)은 (예를 들면, 유저 또는 오퍼레이터에 의해 선택되는) 시각적 디스플레이의 영역(들)의 대표적인 데이터를 결정할 수도 있다. RPA의 일부로서, 컴퓨터 비전(computer vision; CV) 동작 및/또는 머신 러닝(machine learning; ML) 모델에 관련하여 UI 로봇 개발 및 런타임 동안 다차원의 형상(예를 들면, 정사각형, 직사각형, 원, 다각형, 자유 형태, 또는 등등)이 활용될 수도 있다.
하나 이상의 실시형태에 따르면, UI 자동화(126)는 내부의 드라이버(128)를 사용하여 로봇(122)에 의해 수행될 수도 있고, 태스크 마이닝 엔진(111)은 모듈(130)(예를 들면, CV 활동 모듈 또는 엔진)을 사용하여 활동을 수행할 수 있다. 드라이버 컴포넌트(132)는, UI의 엘리먼트를 획득하기 위해 로봇(122)에 의한 UI 자동화를 위해 활용될 수도 있다. 드라이버 컴포넌트(132)는, OS 드라이버, 브라우저 드라이버, 가상 머신 드라이버, 엔터프라이즈 드라이버, 및 등등을 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 소정의 구성에서, 모듈(130)은 UI 자동화를 위해 사용되는 드라이버일 수도 있다. 게다가, 로봇(122)에 의한 이들 액션 중 임의의 것은 클라이언트 상에서 (예를 들면, 실행기(170)의 무인 로봇(174) 및 유인 로봇(178)으로서) 구현될 수 있다.
컨덕터(140)는, 로봇(122, 174, 및 178) 또는 실행기(170)에게, 메인프레임, 웹, 가상 머신, 원격 머신, 가상 데스크탑, 엔터프라이즈 플랫폼, 온라인 플랫폼, 데스크탑 앱(들), 브라우저, 또는 등등의 클라이언트, 애플리케이션 또는 프로그램에서 워크플로우를 실행 또는 모니터링할 것을 지시 또는 명령할 수도 있다. 컨덕터(140)는, 컴퓨팅 플랫폼(예를 들면, 환경(100))을 자동화할 것을 하나 이상의 로봇(예를 들면, 로봇(122, 174, 및 178))을 지시 또는 명령하기 위한 중앙 또는 반중앙 지점으로서 작용할 수도 있다.
하나 이상의 실시형태에 따르면, 컨덕터(140)는 프로비저닝, 배치, 구성, 큐잉, 모니터링, 로깅, 및/또는 상호연결성을 제공하도록 구성될 수도 있다. 프로비저닝은 하나 이상의 로봇, 실행기(170), 및 컨덕터(140) 사이의 연결 또는 통신의 생성 및 유지 보수를 포함할 수도 있다. 배치는, 실행을 위해, 할당된 로봇으로의 패키지 버전의 전달을 보장하는 것을 포함할 수도 있다. 구성은 로봇 환경 및 프로세스 구성의 유지 보수 및 전달을 포함할 수도 있다. 큐잉은 큐 및 큐 아이템의 관리를 제공하는 것을 포함할 수도 있다. 모니터링은 로봇 식별 데이터를 계속 추적하는 것 및 유저 퍼미션을 유지하는 것을 포함할 수도 있다. 로깅은 데이터베이스(예를 들면, SQL 데이터베이스) 및/또는 다른 저장 메커니즘(예를 들면, 대규모 데이터세트를 저장하고 빠르게 조회하는 능력을 제공하는 ElasticSearch®(엘라스틱서치))에 로그를 저장하고 인덱싱하는 것을 포함할 수도 있다. 컨덕터(140)는 써드파티 솔루션 및/또는 애플리케이션에 대한 통신의 중앙 집중식 지점으로서 작용하는 것에 의해 상호 연결성을 제공할 수도 있다.
하나 이상의 실시형태에 따르면, 하나 이상의 로봇 및 실행기(170)는 무인 로봇(174) 및/또는 유인 로봇(178)으로서 구성될 수도 있다. 무인 동작의 경우, 무인 로봇(174)에 의한 자동화는, 예컨대 써드파티에 의한 입력 또는 제어 없이 수행될 수도 있다. 유인 동작의 경우, 예컨대 써드파티 컴포넌트로부터, 입력, 커맨드, 명령어, 안내, 또는 등등을 수신하는 것에 의해 유인 로봇(178)에 의한 자동화가 수행될 수도 있다. 무인 로봇(174) 및/또는 유인 로봇(178)은 모바일 컴퓨팅 또는 모바일 디바이스 환경 상에서 실행 또는 실시될 수도 있다.
하나 이상의 실시형태에 따르면, 하나 이상의 로봇(122) 및 실행기(170)는, 디자이너(110)에서 구축되는 워크플로우를 실행하는 실행 에이전트로서 구성될 수도 있다. UI 또는 소프트웨어 자동화를 위한 로봇(들)의 상업적인 예는 UiPath Robots™이다. 몇몇 실시형태에서, 하나 이상의 로봇(122) 및 실행기(170)는, 디폴트로, Microsoft Windows®(마이크로소프트 윈도우즈) Service Control Manager(서비스 제어 관리자; SCM) 관리 서비스를 설치할 수도 있다. 결과적으로, 그러한 로봇(122)은 로컬 시스템 계정 하에서 상호 작용식 Windows®(윈도우즈) 세션을 열 수도 있고, Windows® 서비스의 권한을 가질 수 있다.
하나 이상의 실시형태에 따르면, 하나 이상의 로봇(122) 및 실행기(170)는 유저 모드에서 설치될 수도 있다. 예를 들면, 하나 이상의 로봇(122)은 주어진 로봇이 설치되는 유저와 동일한 권한을 가질 수도 있다. 이 피쳐는 고밀도(High Density; HD) 로봇에 대해 또한 이용 가능할 수도 있는데, 이것은, 예컨대 HD 환경에서 최대 성능에서의 각각의 머신의 최대 활용을 보장한다.
하나 이상의 실시형태에 따르면, 하나 이상의 로봇(122) 및 실행기(170)는, 각각이 특정한 자동화 태스크 또는 활동에 전용되는 몇몇 컴포넌트로 분할될 수도 있거나, 분배될 수도 있거나, 또는 등등으로 될 수도 있다. 로봇 컴포넌트는 SCM 관리 로봇 서비스, 유저 모드 로봇 서비스, 실행기, 에이전트, 커맨드 라인, 또는 등등을 포함할 수도 있다. SCM 관리 로봇 서비스는 Windows®(윈도우즈) 세션을 관리 또는 모니터링할 수도 있고 컨덕터(140)와 실행 호스트(즉, 하나 이상의 로봇이 실행되는 컴퓨팅 시스템) 사이의 프록시로서 역할을 할 수도 있다. 이들 서비스는 하나 이상의 로봇 및 실행기(170)에 대한 자격 증명을 사용하여 신뢰될 수도 있고 그 자격 증명을 관리할 수도 있다. 유저 모드 로봇 서비스는 Windows® 세션을 관리 및 모니터링할 수도 있고 컨덕터(140)와 실행 호스트 사이의 프록시로서 역할을 할 수도 있다. 유저 모드 로봇 서비스는 로봇에 대한 자격 증명을 사용하여 신뢰될 수도 있고 그 자격 증명을 관리할 수도 있다. SCM 관리 로봇 서비스가 설치되지 않은 경우 Windows® 애플리케이션이 자동적으로 론칭될 수도 있다. 한 예에서, 실행기(170)는 Windows® 세션 하에서 주어진 작업을 실행할 수도 있고(예를 들면, 그들은 본원에서 설명되는 워크플로우를 실행할 수도 있음) 모니터당 인치당 도트(dots per inch; DPI) 설정을 알고 있을 수도 있다. 에이전트는 시스템 트레이 윈도우(system tray window)에서 이용 가능한 작업을 디스플레이하는 Windows® Presentation Foundation(윈도우즈 프리젠테이션 파운데이션; WPF) 애플리케이션일 수도 있다. 에이전트는 서비스의 클라이언트일 수도 있다. 에이전트는 작업을 시작 또는 중지할 것을 그리고 설정을 변경할 것을 요청할 수도 있다. 커맨드 라인은 서비스의 클라이언트일 수도 있다. 커맨드 라인은, 작업을 시작할 것을 요청할 수 있고 그들의 출력을 대기하는 콘솔 애플리케이션이다.
하나 이상의 실시형태에 따르면, 하나 이상의 로봇(122) 및/또는 실행기(170)의 컴포넌트가 분할되는 구성은 개발자, 지원 유저 및 컴퓨팅 시스템이 각각의 컴포넌트에 의한 실행을 더욱 쉽게 실행, 식별 및 추적하는 데 도움이 된다. 실행기(170) 및 서비스에 대해 상이한 방화벽 규칙을 셋업하는 것과 같은 방식으로, 컴포넌트별로 특수한 거동이 구성될 수도 있다. 실행기(170)는 몇몇 실시형태에서 모니터당 DPI 설정을 항상 인식할 수도 있다. 결과적으로, 워크플로우는, 그들이 생성되었던 컴퓨팅 시스템의 구성에 관계없이, 임의의 DPI에서 실행될 수도 있다. 디자이너(110)로부터의 프로젝트는 또한, 몇몇 실시형태에서, 브라우저 줌 레벨과 무관할 수도 있다. DPI를 알지 못하는 또는 알지 못하는 것으로 의도적으로 마킹되는 애플리케이션의 경우, 몇몇 실시형태에서, DPI는 디스에이블될 수도 있다.
이제 도 2를 참조하면, 하나 이상의 실시형태에 따른 컴퓨팅 시스템(200)이 예시되어 있다. 컴퓨팅 시스템(200)은, 하드웨어, 소프트웨어, 또는 이들의 조합(예를 들면, 도 1의 태스크 마이닝 엔진(111)을 지원하는 하드웨어)을 포함하는 임의의 컴퓨팅 디바이스, 컴퓨팅 장치, 및/또는 컴퓨팅 환경을 나타낼 수 있다. 게다가, 개시되는 컴퓨팅 시스템(200)의 실시형태는 장치, 시스템, 방법, 및/또는 컴퓨터 프로그램 제품을, 통합의 임의의 가능한 기술적 세부 레벨에서, 포함할 수도 있다.
컴퓨팅 시스템(200)은, 일괄적으로 또는 일반적으로 프로세서(210)로서 지칭되는 하나 이상의 중앙 프로세싱 유닛(central processing unit; CPU)(들)을 갖는 디바이스(205)(예를 들면, 도 1의 디자이너(110), 컨덕터(140), 및 실행기(170))를 구비한다. 프로세싱 회로로 또한 지칭되는 프로세서(210)는, 시스템 버스(215)를 통해, 시스템 메모리(220) 및 다양한 다른 컴포넌트에 커플링된다. 컴퓨팅 시스템(200) 및/또는 디바이스(205)는, 온라인 플랫폼, 서버, 임베디드 컴퓨팅 시스템, 퍼스널 컴퓨터, 콘솔, 개인 휴대형 정보 단말(personal digital assistant; PDA), 셀 폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 디바이스, 클라우드 컴퓨팅 디바이스, 모바일 디바이스, 스마트폰, 고정식 모바일 디바이스(fixed mobile device), 스마트 디스플레이, 웨어러블 컴퓨터, 또는 등등으로서 수행되도록 적응되거나 또는 구성될 수도 있다.
프로세서(210)는, 중앙 프로세싱 유닛(CPU), 주문형 집적 회로(application specific integrated circuit; ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA), 그래픽 프로세싱 유닛(graphics processing unit; GPU), 컨트롤러, 다중 코어 프로세싱 유닛, 삼차원 프로세서, 양자 컴퓨팅 디바이스, 또는 이들의 임의의 조합을 비롯한, 임의의 타입의 범용 또는 특수 목적의 프로세서일 수도 있다. 프로세서(210)는 또한 다수의 프로세싱 코어를 가질 수도 있고, 코어 중 적어도 일부는 특수 기능을 수행하도록 구성될 수도 있다. 내부에서 다중 병렬 프로세싱이 또한 구성될 수도 있다. 또한, 프로세서(210)는 생물학적 뉴런을 모방하는 프로세싱 엘리먼트를 포함하는 뉴로모픽 회로(neuromorphic circuit)일 수도 있다.
버스(215)(하나 이상의 통신 메커니즘을 나타냄)는 정보 또는 데이터를 프로세서(210), 시스템 메모리(220), 및 다양한 다른 컴포넌트, 예컨대 어댑터(225, 226, 및 227)로 전달하도록 구성된다.
시스템 메모리(220)는 (비일시적) 컴퓨터 판독 가능 저장 매체의 한 예인데, 여기서, 소프트웨어(230)는, 디바이스(205)로 하여금 도 3 및 도 5를 참조하여 본원에서 설명되는 바와 같이 동작하게 하는 프로세서(210)에 의한 실행을 위한 소프트웨어 컴포넌트, 모듈, 엔진, 명령어, 또는 등등으로서 저장될 수 있다. 시스템 메모리(220)는 리드 온리 메모리(read only memory; ROM), 랜덤 액세스 메모리(random access memory; RAM), 내부 또는 외부 플래시 메모리, 임베딩된 정적 RAM(static-RAM; SRAM), 솔리드 스테이트 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 스토리지, 또는 임의의 다른 타입의 휘발성 또는 불휘발성 메모리의 임의의 조합을 포함할 수 있다. 비일시적 컴퓨터 판독 가능 저장 매체는 프로세서(210)에 의해 액세스될 수 있는 임의의 매체일 수도 있고, 휘발성 매체, 불휘발성 매체, 또는 등등을 포함할 수도 있다. 예를 들면, ROM은 시스템 버스(215)에 커플링되고, 디바이스(205)의 소정의 기본 기능을 제어하는 기본 입력/출력 시스템(basic input/output system; BIOS)을 포함할 수도 있고, RAM은 프로세서(210)에 의한 사용을 위해 시스템 버스(215)에 커플링되는 읽기-쓰기 메모리이다. 비일시적 컴퓨터 판독 가능 저장 매체는, 착탈식, 비착탈식, 또는 등등인 임의의 매체를 포함할 수 있다.
도 1과 관련하여, 도 2의 소프트웨어(230)는, 메모리(220) 및 프로세서(210)가, 하나 이상의 활동(124)을 추가로 수행하는 및/또는 하나 이상의 드라이버 컴포넌트(128) 및/또는 내부 엔진(129)을 사용하여 하나 이상의 유저 인터페이스(UI) 자동화(126)를 제공하는 로봇(122)을 논리적으로 설계/구성/제공할 수 있도록, 인터페이스 엔진(111) 및 그 내부의 컴포넌트를 나타낼 수 있다. 도 2의 소프트웨어(230)는 컴퓨팅 시스템(200)에 대한 디바이스(205)에 대한 오퍼레이팅 시스템을 또한 나타낼 수 있다.
하나 이상의 실시형태에 따르면, 소프트웨어(230)는 하드웨어, 소프트웨어, 또는 하이브리드 구현예로 구성될 수 있다. 소프트웨어(230)는, 서로 동작 가능하게 통신하며, 정보 또는 명령어를 전달하기 위한 모듈로 구성될 수 있다. 소프트웨어(230)는, 컴퓨팅 시스템(200)이 추가적인 기능성(functionality)을 포함할 수도 있도록, 애플리케이션 고유의 프로세스 또는 그 파생물을 수행하기 위한 맞춤형 모듈을 더 포함할 수 있다. 예를 들면, 하나 이상의 실시형태에 따르면, 소프트웨어(230)는 동작(231, 232, 233, 및 234)을 가능하게 하기 위해 프로세서(210)에 의해 실행될 또는 프로세싱될 정보, 명령어, 커맨드, 또는 데이터를 저장하도록 구성될 수도 있다.
예를 들면, 도 2의 소프트웨어(230)로서 구현되는 도 1의 태스크 마이닝 엔진(111)은 특정한 구성 및 툴링 로봇 프로세스 자동화 방법을 컴퓨팅 시스템(200)에 제공할 수 있고, 그 결과, 컴퓨팅 시스템(200)은 컴퓨팅 환경에 대한 유저 활동을 식별하는 하나 이상의 기록된 태스크를 수신할(231) 수 있고, 각각의 기록된 유저 태스크를 프로세싱 및 채점하는 것에 의해 하나 이상의 기록된 유저 태스크를 하나 이상의 단계로 클러스터링할(232) 수 있고, 유저 활동을 모방하기 위해 하나 이상의 단계 시퀀스 및/또는 하나 이상의 태스크 시퀀스를 추출할(233) 수 있고, 그리고 실행시 유저 활동을 자동적으로 수행하는 하나 이상의 단계 시퀀스(예를 들면, 및/또는 하나 이상의 태스크 시퀀스)에 기초하여 자동화 코드를 출력할(234) 수 있다.
게다가, 소프트웨어(210)의 모듈은, 프로그래머블 하드웨어 디바이스(예를 들면, 필드 프로그래머블 게이트 어레이, 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스), 그래픽 프로세싱 유닛, 또는 등등에서, 맞춤형 초고밀도 집적(very large scale integration; VLSI) 회로 또는 게이트 어레이, 기성의(off-the-shelf) 반도체 예컨대 로직 칩, 트랜지스터, 또는 다른 개별 컴포넌트를 포함하는 하드웨어 회로로서 구현될 수 있다. 소프트웨어(210)의 모듈은 다양한 타입의 프로세서에 의한 실행을 위해 소프트웨어로 적어도 부분적으로 구현될 수 있다. 하나 이상의 실시형태에 따르면, 실행 가능 코드의 식별된 단위는, 예를 들면, 객체, 프로시져, 루틴, 서브루틴, 또는 함수로서 편제될 수도 있는, 컴퓨터 명령어의 하나 이상의 물리적 또는 논리적 블록을 포함할 수도 있다. 식별된 모듈의 실행 파일(executable)은, 논리적으로 함께 결합될 때, 모듈을 포함하도록, 상이한 위치에 함께 위치되거나 또는 저장된다. 실행 가능 코드의 모듈은, 몇몇 상이한 코드 세그먼트에 걸쳐, 상이한 프로그램 사이에서, 몇몇 메모리 디바이스에 걸쳐, 또는 등등에서 분산되는 단일의 명령어, 하나 이상의 데이터 구조, 하나 이상의 데이터 세트, 복수의 명령어, 또는 등등일 수도 있다. 동작 또는 기능 데이터는 본원에서 소프트웨어(210)의 모듈 내에서 식별되고 예시될 수도 있으며, 적절한 형태로 구체화되고 임의의 적절한 타입의 데이터 구조 내에서 편제될 수도 있다.
도 2의 어댑터(225, 226, 및 227)와 관련하여, 디바이스(205)는 특히 입력/출력(input/output; I/O) 어댑터(225), 디바이스 어댑터(226), 및 통신 어댑터(227)를 포함할 수 있다. 하나 이상의 실시형태에 따르면, I/O 어댑터(225)는, 주파수 분할 다중 액세스(frequency division multiple access; FDMA), 싱글 캐리어 FDMA(single carrier FDMA; SC-FDMA), 시분할 다중 액세스(time division multiple access; TDMA), 코드 분할 다중 액세스(code division multiple access; CDMA), 직교 주파수 분할 멀티플렉싱(orthogonal frequency-division multiplexing; OFDM), 직교 주파수 분할 다중 액세스(orthogonal frequency-division multiple access; OFDMA), 이동 통신용 글로벌 시스템(Global System for Mobile communication; GSM), 일반 패킷 무선 서비스(general packet radio service; GPRS), 범용 이동 통신 시스템(universal mobile telecommunications system; UMTS), cdma2000, 광대역 CDMA(wideband CDMA; W-CDMA), 고속 다운링크 패킷 액세스(high-speed downlink packet access; HSDPA), 고속 업링크 패킷 액세스(high-speed uplink packet access; HSUPA), 고속 패킷 액세스(high-speed packet access; HSPA), 롱 텀 에볼루션(long term evolution; LTE), LTE 어드밴스드(LTE Advanced; LTE-A), 802.11x, Wi-Fi(와이파이), Zigbee(지그비), 초광대역(Ultra-WideBand; UWB), 802.16x, 802.15, 홈 Node-B(home Node-B; HnB), Bluetooth(블루투스), 무선 주파수 식별(radio frequency identification; RFID), 적외선 데이터 연합(infrared data association; IrDA), 근접장 통신(near-field communications; NFC), 5세대(fifth generation; 5G), 뉴 라디오(new radio; NR), 또는 통신을 위한 임의의 다른 무선 또는 유선 디바이스/트랜스시버의 관점에서, 소형 컴퓨터 시스템 인터페이스(small computer system interface; SCSI)로서 구성될 수 있다. 디바이스 어댑터(226)는, 디스플레이(241), 키보드(242), 제어 디바이스(243), 또는 등등(예를 들면, 카메라, 스피커, 등등)과 같은 입력/출력 디바이스를 시스템 버스(215)에 상호 연결한다. 통신 어댑터(226)는 시스템 버스(215)를, 외부 네트워크일 수도 있는 네트워크(250)와 인터커넥트하여, 디바이스(205)가 다른 그러한 디바이스와(예를 들면, 예컨대 로컬 컴퓨팅 디바이스(255)와 그리고, 추가로, 네트워크(260)를 통해 원격 컴퓨팅 시스템(256)과) 데이터를 통신하는 것을 가능하게 한다. 하나의 실시형태에서, 어댑터(225, 226, 및 227)는 중간 버스 브리지를 통해 시스템 버스(215)에 연결되는 하나 이상의 I/O 버스에 연결될 수도 있다. 하드 디스크 컨트롤러, 네트워크 어댑터, 및 그래픽 어댑터와 같은 주변장치 디바이스를 연결하기 위한 적절한 I/O 버스는 통상적으로 주변 장치 컴포넌트 인터커넥트(Peripheral Component Interconnect; PCI)와 같은 공통 프로토콜을 포함한다.
디스플레이(241)의 예는, 플라즈마, 액정 디스플레이(liquid crystal display; LCD), 발광 다이오드(light emitting diode; LED), 전계 방출 디스플레이(field emission display; FED), 유기 발광 다이오드(organic light emitting diode; OLED) 디스플레이, 플렉시블 OLED 디스플레이, 플렉시블 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, 고선명(high definition; HD) 디스플레이, Retina®(레티나) 디스플레이, 인 플레인 스위칭(in-plane switching; IPS) 디스플레이 또는 등등을 포함할 수 있지만, 그러나 이들로 제한되지는 않는다. 디스플레이(241)는, 입력/출력(input/output; I/O)에 대해 기술 분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 저항성, 용량성, 표면 탄성파(surface-acoustic wave; SAW) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 불완전 내부 전반사(frustrated total internal reflection), 또는 등등을 사용하여 터치 디스플레이, 삼차원(three dimensional; 3D) 터치 디스플레이, 다중 입력 터치 디스플레이, 또는 멀티 터치 디스플레이로서 구성될 수도 있다.
컴퓨터 마우스, 터치패드, 터치스크린, 키패드, 또는 등등과 같은 키보드(242) 및 제어 디바이스(243)는, 디바이스(205)에 대한 입력을 위해 시스템 버스(215)에 추가로 커플링될 수도 있다. 또한, 하나 이상의 입력이 컴퓨팅 시스템(200)에, 그와 통신하는 다른 컴퓨팅 시스템(예를 들면, 로컬 컴퓨팅 디바이스(255) 및/또는 원격 컴퓨팅 시스템(256))을 통해, 원격에서 제공될 수도 있거나, 또는 디바이스(205)는 자율적으로 동작될 수도 있다.
하나 이상의 실시형태에 따르면, 소프트웨어(210)와 관련한 디바이스(205)의 기능성은, 태스크 마이닝 엔진(290)의 별개의 인스턴스에 의해 표현되는 바와 같이, 로컬 컴퓨팅 디바이스(255) 및/또는 원격 컴퓨팅 시스템(256) 상에서 또한 구현될 수 있다.
이제 도 3을 참조하면, 하나 이상의 실시형태에 따른 컴퓨팅 환경(예를 들면, 도 1의 환경(100)) 내에서 실행되는 방법(300)을 예시하는 블록도가 예시되어 있다. 더 구체적으로, 방법(300)은 태스크 마이닝 엔진(191)에 의한 환경(100)에 걸친 RPA에 의한 태스크 및 프로세스 마이닝의 예시적인 구현예이다.
프로세스 플로우(300)는, 태스크 마이닝 엔진(191)이 환경(100)과 관련한 유저 활동을 식별하는 하나 이상의 기록된 태스크를 수신/모니터링하는(예를 들면, 실시간으로 데이터를 기록하거나, 기록의 데이터 세트를 수신/획득하거나, 또는 이들의 조합을 활용함) 블록(310)에서 시작한다. 하나 이상의 기록된 태스크는 유저 활동 동안 실행기(170)에서 유저가 취하는 액션을 포함할 수 있다. 하나 이상의 기록된 태스크는, 유저 활동이 발생하는 동안, (예를 들면, 환경(100)으로부터 태스크 마이닝 엔진(191)에 의해) 실시간으로 기록되는 구조화되지 않은 데이터를 또한 포함할 수 있다. 하나 이상의 기록된 태스크는, 데이터베이스 또는 저장소와 같은 외부 소스로부터 실행기(170)로 수신될 수 있다. 하나 이상의 실시형태에 따르면, 태스크 마이닝 엔진(191)은, 하나 이상의 활동(124)(예를 들면, 워크플로우)을, 단계, 액션, 및/또는 태스크로서 캡쳐하기 위해 무인 로봇(174)을 활용할 수도 있다.
블록(330)에서, 태스크 마이닝 엔진(191)은 하나 이상의 기록된 유저 태스크를 하나 이상의 단계로 클러스터링한다. 한 실시형태에서, 태스크 마이닝 엔진(191)은, 예를 들면, 예컨대, 하나 이상의 기록된 유저 태스크를 클러스터링하기 위해 중심 기반의(centroid-based) 또는 K 평균(K-means) 클러스터링 알고리즘을 활용하는 것에 의해, 각각의 기록된 유저 태스크를 프로세싱 및 채점할 수 있다. 일반적으로, K 평균 클러스터링 알고리즘은, 각각의 관찰 결과가 가장 가까운 평균을 갖는 클러스터(예를 들면, 그 클러스터에 대한 프로토타입으로서 기능하는 클러스터 중심)에 속하도록, n 개의 관찰 결과를 k 개의 클러스터로 분할하는 벡터 양자화 방법을 포함할 수 있다. 하나 이상의 다른 클러스터링 알고리즘은, 연결성 기반의 클러스터링(예를 들면, 계층적 클러스터링), 분포 기반의 클러스터링, 밀도 기반의 클러스터링, 및 그리드 기반의 클러스터링과 같은 K 평균 클러스터링 알고리즘 대신에 또는 이들과 조합하여 사용될 수 있다.
블록(350)에서, 태스크 마이닝 엔진(191)은 유저 활동을 모방하기 위해 하나 이상의 단계 시퀀스를 추출한다. 하나 이상의 단계 시퀀스는 하나 이상의 단계의 유사한 조합 또는 반복된 조합을 식별한다. 태스크 마이닝 엔진(191)은 또한 하나 이상의 태스크 시퀀스를 추출할 수 있다. 하나 이상의 태스크 시퀀스는 하나 이상의 단계 내에서 유저 활동의 자동화를 식별한다.
하나 이상의 실시형태에 따르면, 블록(330 및 350)의 동작을 통해, 태스크 마이닝 엔진(191)은, 클러스터링하여(예를 들면, 태스크/액션을 단계로 분류하고 단계를 클러스터링함) 자동화가 '이치에 맞는'지를 결정하는 것에 의해 그리고 클러스터로부터 추출하여(예를 들면, 클러스터 내에서의 그리고 클러스터에 걸친 시퀀스 추출) 하나 이상의 시퀀스를 결정하는 것에 의해 유저 액션을 이해하는 기술적 효과 및 이점을 제공한다. 이러한 방식으로, 태스크 마이닝 엔진(191)은, 어떤 의미 있는 방식으로 함께 그룹화된 개개의 액션/태스크를 취하고, 의미 있는 액션/태스크의 시퀀스를 식별한다. 게다가, 태스크 마이닝 엔진(191)은 개개의 단계를 취할 수 있고 의미 있는 단계의 시퀀스를 식별할 수 있다.
블록(370)에서, 태스크 마이닝 엔진(191)은, 실행시 유저 활동을 자동적으로 수행하는 하나 이상의 단계 시퀀스에 기초하여 자동화 코드를 출력한다. 자동화 코드는 하나 이상의 태스크 시퀀스에 또한 기초할 수 있다. 하나 이상의 실시형태에 따르면, 자동화 코드는 자동적으로 그리고 독립적으로 동작할 무인 로봇(174)(예를 들면, 또는 임의의 로봇(122))의 다른 인스턴스로서 구현될 수 있다. 따라서, 태스크 마이닝 엔진(191)은 자동화 코드를 통해 유저에게 자동화 경험을 제공한다.
도 4는 하나 이상의 실시형태에 따른 로봇 프로세스 자동화(RPA)의 개발, 설계, 동작, 및/또는 실행을 예시하는 환경(400)(예를 들면, 컴퓨팅 환경)을 묘사한다. 일반적으로, 환경(400)은 출력에서 별개의 태스크를 생성하기 위해 데이터가 기록, 클러스터링, 및 마이닝되는 태스크 마이닝 프로젝트를 예시한다. 설명의 간결성 및 용이성을 위해, 도 1 및 도 2의 컴포넌트와 유사한 환경(400)의 컴포넌트는 재정의되지 않는다. 환경(100)의 하나 이상의 컴포넌트의 각각에 대해 단일의 블록이 도시되지만, 그 단일의 블록은 그 컴포넌트 중 하나 이상을 나타낸다는 것을 유의한다.
도시되는 바와 같이, 환경(100)은, 하나 이상의 원격 컴퓨팅 시스템(409)(예를 들면, 도 2의 원격 컴퓨팅 시스템(256))이 동작하는 광역 네트워크(wide area network; WAN)(408)(예를 들면, 도 2의 네트워크(250 및 260))에 추가로 연결되는 근거리 통신망(local area network; LAN)(407)에 연결되는 하나 이상의 디바이스(405 및 406)(예를 들면, 도 1의 실행기(170) 또는 도 2의 디바이스(205))를 포함할 수 있다. 환경 내에서, 태스크 마이닝 엔진(411 및 412)(예를 들면, 도 1의 태스크 마이닝 엔진(111, 181, 및 191) 또는 도 2의 소프트웨어(230))의 인스턴스는, 유저 액션(431, 432, 및 433)을 수신/모니터링/기록하기 위해, 하나 이상의 로봇(416 및 417)(예를 들면, 도 1의 로봇(122, 174, 및 178)) 및 데이터베이스(429)(예를 들면, 도 1의 컨덕터(140) 또는 도 2의 시스템 메모리(220))를 실행하고 및/또는 이들과 상호 작용한다.
유저 액션(431, 432, 및 433)은, 본원에서 설명되는 바와 같이, 워크플로우에 대한 임의의 유저 입력 또는 활동을 포함할 수 있다. 예를 들면, 유저는 디바이스(206)(예를 들면, 디지털 전화)를 활용하여 보험 청구 전화 통화를 수신한다. 유저는 디바이스(205)(예를 들면, 데스크탑 컴퓨터)를 활용하여 보험 청구 전화 통화의 세부 사항을 입력한다. 이어서, 유저 액션(432)은 통화에 대한 응답, 전달, 종료, 녹음, 유지 동작을 포함할 수 있고, 한편, 유저 액션(431)은 고객 정보 입력, 정보 청구, 웹 양식 작성, 조정자 또는 다른 동료에 대한 전자 메일 보내기를 포함할 수 있다. 또한, 유저 액션(433)은 클레임 또는 등등의 관리자 승인을 포함할 수 있다.
환경의 예시적인 동작은, 하나 이상의 실시형태에 따른 방법(500)의 블록도를 예시하는 도 4와 관련하여 설명된다. 더 구체적으로, 방법(500)은 환경(400)에 걸친 태스크 마이닝 엔진(411 및 412) 및 로봇(416 및 417)에 의한 태스크 및 프로세스 마이닝의 예시적인 구현예이다.
방법(500)은, 로봇(416)이 제1 유저의 유저 액션(431)을 실시간으로 기록하는 블록(505)에서 시작한다. 추가적으로, 블록(506)에서, 무인 로봇(417)은 제2 유저(예를 들면, 또는, 현재 상이한 디바이스를 사용하고 있는 제1 유저)의 유저 액션(432)을 실시간으로 기록한다. 유저 액션(431 및 432)은 각각의 디바이스(405 및 406)와 함께 로컬하게 저장될 수 있고 및/또는 데이터베이스(429)로 전달될 수 있다. 각각의 유저에 대해 이전에 기록이 수행되었기 때문에, 유저 액션(433)(예를 들면, 실시간으로 기록되는 구조화되지 않은 데이터)은 현재 데이터베이스(429) 상에 저장되어 있을 수 있다(블록(407)). 어떤 경우든, 유저 액션(431, 432, 및 433)은, 화면의 특정한 UI에서 임의의 유저가 취하는 하나 이상의 개개의 단계, 액션, 및/또는 태스크(예를 들면, 소정의 웹 양식에서의 웹 양식 액션, 소정의 애플리케이션 윈도우, 등등)를 일괄적으로 나타낸다. 예를 들면, 유저 액션은 유저 인터페이스 내에서의 커서의 단일의 클릭, 유저에 의한 타이핑, 스크롤링을 통한 내비게이션, 끌어서 놓기(drag and dropping), 등등을 포함할 수 있다. 유저 액션(431, 432, 및 433)은 또한, 본원에서 설명되는 바와 같은 하나 이상의 태스크로 결합되는 하위 태스크로서 간주될 수 있다. 특정한 예에서, 고객 서비스 호출의 상황에서, 유저 액션(431)은 양식 1 및 2를 완료하는 것과 관련한 액션을 포함할 수 있고, 유저 액션(432)은 고객 호출을 수신하는 것과 관련한 액션을 포함할 수 있으며, 유저 액션(433)은 관리자 승인과 관련한 액션을 포함할 수 있다.
하나 이상의 실시형태에 따르면, 태스크 마이닝 엔진(411)은 디바이스(205)의 화면으로부터 광학 문자 인식(optical character recognition; OCR) 메커니즘 및 워드 대 벡터 인공 지능 알고리즘(words-to-vector artificial intelligence algorithm)을 사용하여, 화면 상의 외관에 기초하여 개개의 워드의 표현을 생성할 수 있다. 즉, 태스크 마이닝 엔진(411)은 유저 액션(431)의 표현을 생성한다(표현은 시간 정보와 같은 다수의 상이한 품질을 포함할 수 있다는 것을 유의한다). OCR 메커니즘은 텍스트의 이미지(예를 들면, 스크린 샷)의 머신 인코딩된 텍스트로의 임의의 변환을 포함할 수 있다. 워드 대 벡터 인공 지능 알고리즘은, 워드 임베딩을 생성하여 워드의 언어적 컨텍스트를 재구성하기 위해(예를 들면, 액션 또는 단계의 코딩된 표현을 제공하기 위해) 사용되는 임의의 모델 그룹(예를 들면, 2 계층 신경망)을 포함할 수 있다. 추가적으로 또는 대안적으로, 현대의 통계적 머신 러닝을 사용하는, GENSIM(젠심) 및/또는 Scikit-Learn(사이킷-런)과 같은, 자율 토픽 모델링 및 자연어 프로세싱을 위한 오픈 소스 라이브러리가 또한 사용될 수 있다. 실제로, 태스크 마이닝 엔진(411)은 전체 화면에 대한 단일의 표현을 생성하기 위해 OCR 메커니즘과 워드 대 벡터 인공 지능 알고리즘을 결합한다.
블록(510)에서, 태스크 마이닝 엔진(411) 또는 태스크 마이닝 엔진(412)은 유저 액션(431, 432, 및 433)을 수신한다(예를 들면, 고객 서비스 호출과 관련한 데이터를 집성한다). 설명의 용이성을 위해, 태스크 마이닝 엔진(412)이 본원에서의 동작을 복제할 수 있지만, 방법(500)의 나머지는 태스크 마이닝 엔진(411)의 관점에서 설명된다. 태스크 마이닝 엔진(411)은 LAN(407) 또는 WAN(408)에 걸친 풀 리퀘스트(pull request) 또는 등등에 의해 유저 액션(432 및 433)을 수신할 수 있다. 하나 이상의 기록된 태스크는 또한, 유저 활동이 발생하는 동안, (예를 들면, 도 1의 환경(100)으로부터 태스크 마이닝 엔진(191)에 의해) 실시간으로 기록되는 구조화되지 않은 데이터를 포함할 수 있다. 하나 이상의 기록된 태스크는, 데이터베이스 또는 저장소와 같은 외부 소스로부터 또한 수신될 수 있다. 하나 이상의 실시형태에 따르면, 태스크 마이닝 엔진(411)은 무인 로봇(417)을 활용하여 하나 이상의 활동(예를 들면, 워크플로우)을 단계, 액션, 및/또는 태스크로서 캡쳐할 수도 있다.
블록(525)에서, 태스크 마이닝 엔진(411)은 유저 액션(431, 432, 및 433)을 클러스터링하여 액션이 동일한 것으로서 간주될 수 있는지의 여부를 결정한다(예를 들면, 유저가 고객 서비스 호출과 관련되는 코멘트를 타이핑하고, 그 다음, 동일한 코멘트를 양식 1의 코멘트 박스에 타이핑함). 일반적인 언급으로서, 블록(525)의 클러스터링은 개개의 단계/스크린 샷의 클러스터링으로서 간주될 수 있다. 게다가, 유저 액션(431, 432, 및 433)의 시퀀스는, 태스크 마이닝 엔진(411)에 의한 이 클러스터링 동작에서 고려될 수 있다(예를 들면, 제1 유저에 의한 스크롤링 이전의 클릭 대 클릭 이전의 스크롤링; 시퀀스는 다양한 활동을 볼 수 있고 활동이 동일한 결과를 달성하는지의 여부를 확인할 수 있다). 이러한 방식으로, 유저 액션(431, 432, 및 433)으로부터 초기 클러스터링을 통해 하나 이상의 유저 태스크가 식별될 수 있고(예를 들면, 하위 태스크를 하나 이상의 태스크로 결합함; 개개의 액션이 클러스터링됨), 유저 액션(431, 432, 및 433)을 하나 이상의 유저 태스크로 클러스터링하는 것은, 하나 이상의 유저 태스크를 하나 이상의 단계로 결합하는 것에 의해 추가로 실행될 수 있다. 더구나, 블록(525)의 초기 클러스터링은, 전체 클러스터가 유저가 취할 수 있는 타입의 단계이도록, 하나 이상의 단계를 찾기 위해 유저 액션(431, 432, 및 433)을 클러스터링한다. 초기 클러스터링은 또한 얼마나 많은 상이한 단계가 표현되는지를 결정할 수 있을 뿐만 아니라, "얼마나 많은지를 결정하는 방법"을 결정할 수 있다. 이 후자의 경우, 초기 클러스터링은 다수의 상이한 클러스터링을 실행하고, 클러스터링을 채점하고, 품질 메트릭을 결정하기 위해(예를 들면, 생성되는 클러스터링이 주어지면 로그에서 구조의 양을 최대화하기 위해) 각각의 실행이 얼마나 잘 수행되었는지를 측정한다.
초기 클러스터링은, 너무 구체적인 것(유저 액션 매치가 누락되게 함)과 너무 일반적인 것(유사하지 않은 유저 액션이 그룹화되게 함) 사이의 균형을 유지하는 것의 기술적 효과 및 이점을 제공하는 사소하지 않은 동작이다. 이러한 균형을 달성하기 위해, 태스크 마이닝 엔진(411)은, 필요에 따라, 하나 이상의 클러스터링 알고리즘을 구현할 수 있다(예를 들면, 클러스터링 알고리즘은 유저 액션이 발생한 인터페이스 화면과 관련하여 선택될 수 있음). 하나 이상의 클러스터링 알고리즘의 예는, 중심 기반의 또는 K 평균 클러스터링, 연결성 기반의 클러스터링(예를 들면, 계층적 클러스터링), 분포 기반의 클러스터링, 밀도 기반의 클러스터링, 및 그리드 기반의 클러스터링을 포함하지만, 그러나 이들로 제한되지는 않는다.
하나 이상의 실시형태에 따르면, 태스크 마이닝 엔진(411)은, 먼저, 유저 액션(431, 432, 및 433)을, 유저 액션(431, 432, 및 433)이 어떤 종류의 UI 상에서 수행되었는지로 그룹화/클러스터링한다(예를 들면, 소정의 웹 양식에서의 웹 양식 액션, 소정의 애플리케이션 윈도우, 등등). 예를 들면, 화면 상에서 서로 가까운 워드는 (워드 대 벡터 인공 지능 알고리즘, Scikit-Learn, 및/또는 GENSIM을 통해) 유사한 표현을 제공받을 경향이 있다. 상이한 화면 타입은 상이한 워드를 가지며, 상이한 화면 상의 워드는 상이한 표현을 제공받아서, 태스크 마이닝 엔진(411)이 화면을 구별하는 것을 허용한다고 가정한다. 몇몇 경우에, 유사한 워드를 갖는 두 개의 화면은 유사한 표현을 얻고, 예를 들면, K 평균 클러스터링에 의해 유사하게 그룹화/클러스터링될 수 있다. 표현을 분석하기 위한 클러스터링의 다른 예는, 이미지 데이터, 텍스트 사이즈, 텍스트 폰트, 선택기(예를 들면, 화면 상에서 실행 중인 애플리케이션)로부터의 정보, 개개의 페이지, 등등을 사용하는 것을 포함한다.
하나 이상의 실시형태에 따르면, 태스크 마이닝 엔진(411)은 클러스터링 알고리즘의 하나 이상의 파라미터를 설정할 수 있다. 태스크 마이닝 엔진(411)은 정확도에 기초하여 그룹화/클러스터를 채점할 수 있고 점수를 피드백하여 최적의 파라미터 설정을 결정할 수 있다. 예를 들면, k 평균 클러스터링은, 상이한 수의 클러스터에 걸쳐 다수 회 실행하는 것 및 점수(예를 들면, 실루엣 점수(silhouette score) 및/또는 시간 점수)를 사용하여 최상의 파라미터를 찾는 것에 의해 클러스터의 수에 기초하여 최상의 그룹화를 찾을 수 있다. 실루엣 점수는 유저 액션(431, 432, 및 433)이 얼마나 잘 클러스터링되는지의 관점에서 클러스터 품질을 평가한다. 실루엣 점수는, 실루엣 점수가 각각의 클러스터에 대해 동일한 점수인지의 여부 및/또는 각각의 클러스터가 한 번보다 더 많이 실행되는지의 여부를 결정하는 것과 함께, 상이한 클러스터의 각각의 샘플에 대해 계산될 수 있다. 시간 점수는 실루엣 점수 대신일 수 있거나 또는 그에 추가될 수 있으며, 그 결과, 최상의 파라미터를 결정할 때 표현의 시간 정보가 고려될 수 있다.
블록(530)에서, 태스크 마이닝 엔진(411)은 시퀀스를 클러스터링한다. 일반적인 언급으로서, 블록(530)의 클러스터링은, 클러스터링된 단계/스크린 샷이 시간과 관련하여 추가로 클러스터링되는 시간적 엘리먼트를 포함할 수 있다(예를 들면, 타임스탬프를 사용하여, 태스크 마이닝 엔진(411)은 상이한 단계/스크린 샷이 시간적으로 얼마나 가깝게 발생할 수 있는지를 결정한다). 하나 이상의 실시형태에 따르면, 태스크 마이닝 엔진(411)은 블록(530)에서와 동일한 클러스터링 알고리즘 및/또는 하나 이상의 상이한 클러스터링 알고리즘을 사용할 수 있다. 한 예에서, 태스크 마이닝 엔진(411)은, 심볼 클러스터링 및/또는 순차적 패턴 마이닝을 구현하는 시퀀스 추출 알고리즘(예를 들면, 알파 알고리즘)을 실행한다. 태스크 마이닝 엔진(411)이 시퀀스 정보에 대한 효율적인 데이터베이스 및 인덱스를 구축할 수 있고, 빈번하게 발생하는 패턴을 추출할 수 있고, 유사성에 대해 시퀀스를 비교할 수 있으며, 누락된 시퀀스 멤버를 복구할 수 있도록, 순차적 패턴 마이닝은 시퀀스에서 전달되는 블록(525)에서 생성되는 클러스터 및/또는 유저 액션(431, 432, 및 433)으로부터 통계적으로 관련된 패턴을 추출하는 것을 포함할 수 있다.
예를 들면, 클러스터링 시퀀스 또는 제2 클러스터링은 시퀀스 추출 또는 유저 액션(431, 432, 및 433) 및/또는 블록(525)에서 생성되는 클러스터로부터 시퀀스를 식별하기 위한 동작으로서 간주될 수 있다. 일반적으로, 클러스터 시퀀스는 본원에서 설명되는 바와 같은 유저 활동을 모방하기 위해 하나 이상의 단계 시퀀스 및/또는 하나 이상의 태스크 시퀀스를 추출하는 것을 포함한다. 방법(500)과 관련하여, 클러스터링 시퀀스는 두 개의 양태를 가질 수 있다: 하위 블록(533)에서 유용성을 결정하는 것 및 하위 블록(536)에서 순위를 결정하는 것.
하위 블록(533)에서, 태스크 마이닝 엔진(411)은 유용성을 결정한다. 즉, 태스크 마이닝 엔진(411)이 해결하는 기술적 문제는, 액션의 시퀀스가 유용하게 되는 것이 무엇을 의미하는지를 결정하는 것이다. 태스크 마이닝 엔진(411)은, 예를 들면, 온라인에서 '물건'을 찾고 있는 유저를 캡쳐하기를 원하지 않고 랜덤 기회보다 더 자주 발생하는 시퀀스를 원한다. 랜덤 확률 또는 랜덤성은 패턴 또는 예측 가능성의 명백한 또는 실제의 부족이며, 그 결과, 유저 액션(431, 432, 및 433) 중 하나 이상은 순서를 가지지 않거나 또는 이해 가능한 패턴 또는 조합을 따르지 않는다(예를 들면, 확률 분포가 시간 경과에 따른 유저 액션(431, 432, 및 433) 중 하나 이상의 빈도에 기초하여 결정될 수 있음). 본질적으로, 태스크 마이닝 엔진(411)은 '유용한 시퀀스를 추출하는 방법'을 식별하기 위한 양호한 방식을 결정하려고 시도한다.
예를 들면, 태스크 마이닝 엔진(411)은 생성된 클러스터로부터 상이한 그러나 결합되어야 할 만큼 충분히 유사한 태스크 또는 시퀀스 예를 추출할 수 있다. 게다가, 태스크 마이닝 엔진(411)은 이들 태스크 또는 시퀀스 예로부터 변동을 결정할 수 있고 변동이 분리되어야 할 만큼 변동이 충분히 상이한지의 여부를 결정할 수 있다. 한 실시형태에서, 태스크 마이닝 엔진(411)은, 모든 액션이 랜덤한 것으로 가정되고 시퀀스 발생 가능성이 계산되는 임의의 Poisson(푸아송) 프로세스 통계 모델과 같은 하나 이상의 상관 검출기를 활용할 수 있다. 통계 모델을 사용하는 태스크 마이닝 엔진(411)의 상관 검출기의 예는 단계 시퀀스 내에서 p 값 및 상관을 계산한다. 이러한 방식으로, 태스크 마이닝 엔진(411)은, 변동이 얼마나 자주 함께 나타나는지, 게다가, 얼마나 멀리 떨어져 있는지를 결정할 수 있다. 한 시간에 대략 한 번 노래를 검색하는 것과 같은, 몇몇 상대적으로 빈번하지 않은 프로세스는 유용하지 않다. 태스크 마이닝 엔진(411)의 상관 검출기는, 다수 회 더 강력하게 반복되는 액션을 인식하고, 시퀀스가 상이한 순서를 가지지만 그러나 동일한 결과를 달성하는(따라서, 동일한 것으로 인식되는) 어떤 변화를 고려할 수 있다. 게다가, 태스크 마이닝 엔진(411)의 상관 검출기는, 순서에 추가하여, 임의의 순서로 액션의 세트를 볼 수 있고, 따라서, 상관 검출기는 엄격하게 어떤 시퀀스에 있지 않은 액션을 인식할 수 있다.
하위 블록(536)에서, 태스크 마이닝 엔진(411)은 순위를 결정한다. 즉, 태스크 마이닝 엔진(411)이 해결하는 기술적 문제는, 유용한 것으로 결정되었던 각각의 것의 순위를 결정하는 것이다. 다시 말하면, 태스크 마이닝 엔진(411)은 추출된 태스크 및 시퀀스의 순위를 지정하여, 어떤 것이 가장 흥미로운지를 결정한다(예를 들면, 추출된 태스크와 시퀀스 사이의 관계를, 임의의 두 아이템의 경우, 하나가 제2의 다른 것"보다 더 높은 순위로 지정되도록" 또는 그 제2의 다른 것"보다 더 흥미롭도록" 설정함). 순위는 스케일에 걸쳐 영숫자 값일 수 있다(예를 들면, 1에서부터 10까지의 숫자). 흥미도(interestingness)는, 태스크 또는 시퀀스가 유저의 비즈니스 이의(business objection)에 관련될 가능성을 식별하고, 그 결과, 시간이 지남에 따라 유저 액션(431, 432, 및 433) 중 임의의 것은 중요한 것으로 식별되고 다른 유저 액션을 식별하기 위해 사용될 수 있다는 것을 유의한다. 태스크 마이닝 엔진(411)은, 전체 시퀀스를 통합 청크로서 보고 확률론적 모델(예를 들면, 은닉 마르코프 모델(hidden Markov model))의 변화에 기초하여 통계치(예를 들면, 순위)를 계산하는 통계 모델(본원에서 설명되는 상관 검출기와는 상이함)을 활용할 수 있다. 동작 하위 블록(536 및 536)은, 환경(400)에 대한 계산 비용에 기초하여, 결합되는 것과 무관할 수 있다는 것을 유의한다.
하나 이상의 실시형태에 따르면, 블록(525 및 530)은, 본원에서의 동작에 대안적으로 또는 추가하여, 별개의 독립적인 액션 및/또는 하위 태스크를 결정하기 위해 시퀀스를 분석하기 위한 분석 양태를 포함할 수 있다. 즉, 두 개의 태스크가 완전히 분리된다는 보장이 없기 때문에, 태스크 마이닝 엔진(411)은 그들 자신의 별개의 태스크로서 태스크로부터 하위 태스크를 추출할 것을 요구받을 수도 있다. 이러한 방식으로, 태스크 마이닝 엔진(411)은, 하위 태스크가 더 큰 태스크의 일부이고 하위 태스크의 추출이 유용하다는 것을 식별한다.
태스크 마이닝 엔진(411)은, 태스크의 쌍의 일부로서 다른 태스크에 또한 할당될 수 있는, 태스크 단계의 단편(fraction)을 계산한다는 것을 유의한다. 이와 관련하여, 하나의 태스크에 대해 상당한 중복이 있지만, 다른 태스크에 대해서는 중복이 없는 경우, 제1 태스크는 제2 태스크의 일부일 가능성이 있다. 상당한 중복은, 제1 태스크에 포함되는 액션의 일부가 슬라이딩 스케일 상에서 설정되는 동적 임계치과 관련하여 다른 태스크 내에 있는 경우를 포함할 수 있다. 태스크 마이닝 엔진(411)은 85 %와 65 % 사이를 연결하는 것과 같이, 0 % 내지 100 % 사이의 역학을 조정할 수 있다. 따라서, 태스크 마이닝 엔진(411)은 태스크의 각각의 쌍에 대한 동적 임계치를 사용할 수 있고, 방향성 그래프를 생성할 수 있고, 방향성 그래프를 사용하여 태스크의 모든 조합 및/또는 하위 조합을 그룹화할 수 있다.
하나 이상의 실시형태에 따르면, 블록(525 및 530)은, 본원에서의 동작에 대안적으로 또는 그에 추가하여, 반복된 시퀀스 추출 양태를 포함할 수 있다. 반복된 시퀀스 추출 양태는 클러스터에서 반복된 액션을 찾는데, 이들 반복된 액션이 잠재적으로 자동화 가능한 프로세스/워크플로우를 포함할 수도 있기 때문이다. 반복된 시퀀스 추출 양태는, 태스크 마이닝 엔진(411)이 머신 러닝 및/또는 인공 지능 알고리즘을 사용함에 있어서 유연할 수 있도록, 클러스터링을 사용하여 다양한 레벨의 특이성을 가능하게 한다. 이와 관련하여, 태스크 마이닝 엔진(411)은 심층 신경망을 활용하여 현재의 시퀀스의 로그로부터 미래의 액션을 예측할 수 있다. 예를 들면, 머신 러닝 및/또는 인공 지능 알고리즘은, 유저 액션(431, 432, 및 433) 및 클러스터로부터, 미래의 액션을 예측하는 방법을 학습할 수 있고, 그 다음, 이들 예측을 사용하여 (예를 들면, 더 빈번하게 그리고 더 정확하게 수행되는 시퀀스를 예측하기 위한) 특정한 하위 태스크/태스크/시퀀스를 발견할 수 있다. 몇몇 경우에, 클러스터링은, 클러스터링이 프로세싱 병목 현상이 되는 문제를 해결하기 위해 그리고 학습 시퀀스의 이점을 추상적으로 제공하기 위해, 머신 러닝 및/또는 인공 지능 알고리즘 동작 이후에 발생할 수도 있다. 다른 신경망이 활용될 수 있다는 것을 유의한다.
신경망은 본원에서 설명되는 (예를 들면, 태스크 마이닝 엔진(411)에 의해 구현되는 바와 같은) 머신 러닝 및/또는 인공 지능 알고리즘의 구현을 지원하도록 동작한다. 신경망은, 소프트웨어뿐만 아니라, 하드웨어로 구현될 수 있다. 예시적인 동작에서, 신경망의 입력 계층은 유저 액션(431, 432, 및 433)과 같은 입력을 수신한다. 신경망은 (예를 들면, 유저 액션(431, 432, 및 433)의 임의의 부분 및 태스크 마이닝 엔진(111)에 의해 생성되는 예측을 활용하여) 이들 입력을 인코딩하여 잠재적 표현 또는 데이터 코딩을 생성한다. 잠재적 표현은 복수의 입력으로부터 유도되는 하나 이상의 중간 데이터 표현을 포함한다. 하나 이상의 실시형태에 따르면, 잠재적 표현은 태스크 마이닝 엔진(111)의 엘리먼트별 활성화 함수(예를 들면, 시그모이드 함수(sigmoid function) 또는 수정된 선형 유닛)에 의해 생성된다. 입력은, 프로세싱 엘리먼트와 엘리먼트 파라미터 사이의 연결에 의해 결정되는, 복잡한 전역적 거동을 나타내도록 프로세싱을 수행하는 은닉 계층으로 제공된다. 따라서, 입력 계층과 은닉 계층 사이의 전이는, 입력을 취하고 그것을 (은닉 계층 내의) 심층 신경망으로 전송하여 입력의 어떤 더 작은 표현(예를 들면, 결과적으로 나타나는 잠재적 표현)을 학습하는 인코더 스테이지로서 간주될 수 있다. 심층 신경망은 CNN, 장단기 메모리 신경망, 완전 연결 신경망, 또는 이들의 조합일 수 있다. 이 인코딩은 입력의 차원수 감소(dimensionality reduction)를 제공한다. 차원수 감소는, 주요 변수의 세트를 획득하는 것에 의해 고려 하에 있는 (입력의) 랜덤 변수의 수를 감소시키는 프로세스이다. 예를 들면, 차원수 감소는, 데이터(예를 들면, 입력)를 고차원 공간(예를 들면, 10 개보다 더 많은 차원)으로부터 더 낮은 차원의 공간(예를 들면, 2-3 차원)으로 변환하는 피쳐 추출일 수 있다. 차원수 감소의 기술적 효과 및 이점은, 유저 액션(431, 432, 및 433)에 대한 시간 및 저장 공간 요건을 감소시키는 것, 유저 액션(431, 432, 및 433)의 시각화를 개선하는 것, 및 머신 러닝을 위한 파라미터 해석을 개선하는 것을 포함한다. 이 데이터 변환은 선형적 또는 비선형적일 수 있다. 수신 및 인코딩의 동작은 태스크 마이닝 엔진(111)에 의한 다단계 데이터 조작의 데이터 준비 부분으로서 간주될 수 있다. 게다가, 신경망은 잠재적 표현을 디코딩한다. 디코딩 스테이지는 인코더 출력(예를 들면, 결과적으로 나타나는 잠재적 표현)을 취하고 다른 심층 신경망을 사용하여 입력의 일부 형태를 재구성하려고 시도한다. 이와 관련하여, 잠재적 표현의 노드가 결합되어 출력 계층에서 출력을 생성한다. 즉, 출력 계층은 간섭, 아티팩트(artifact), 노이즈, 또는 등등이 없이 감소된 차원 상에서 입력을 재구성한다.
방법(500)을 참조하면, 블록(530)과 관련하여 본원에서 나타내어지는 바와 같이, 태스크 마이닝 엔진(411)은 블록(525)의 초기 클러스터링 및 그들 시퀀스의 유용성을 고려하는 유저 액션(431, 432, 및 433)으로부터 순위가 매겨진 시퀀스를 생성한다. 블록(570)에서, 태스크 마이닝 엔진(411)은, 실행될 때, 유저 활동을 자동적으로 수행하는 순위가 매겨진 시퀀스에 기초하여 자동화 코드를 출력한다. 하나 이상의 실시형태에 따르면, 자동화 코드는 자동적으로 그리고 독립적으로 동작할 무인 로봇(417)(예를 들면, 또는 임의의 로봇(416))의 다른 인스턴스로서 구현될 수 있다. 예를 들면, 무인 로봇(417)은 고객 서비스 호출을 기록할 수 있고, 로봇(416)은 양식 2의 완료시 승인을 위해 관리자에게 자동적으로 전자 메일을 전송한다. 따라서, 태스크 마이닝 엔진(191)은 자동화 코드를 통해 유저에게 자동화 경험을 제공한다.
하나 이상의 실시형태에 따르면, 본원에서 설명되는 태스크 마이닝 엔진의 하나 이상의 기술적 효과, 이점 및 이익은 태스크의 시작 및 종료를 식별하는 것이다. 이러한 방식으로, 환경 내에 들어오는 임의의 구조화되지 않은 데이터는 환경의 데이터베이스(예를 들면, 클라우드)로 전송되는 하나 이상의 소스로부터 집성될 수 있다. 게다가, 태스크 마이닝 엔진의 클라이언트 버전도 데이터를 또한 기록할 수 있다. 집성되고 기록된 데이터를 사용하여, 태스크 마이닝 엔진은 클러스터링을 실행하여 데이터를 분석하고, 점수로 고정되며 대응하는 점수에 기초하여 RPA로서 자동화되는 태스크/단계/시퀀스를 결정한다.
하나 이상의 실시형태에 따르면, 하나 이상의 태스크 마이닝 엔진은 태스크 변동을 또한 결정할 수 있다. 태스크 변동은 두 개 이상의 태스크가 동일한 결과를 달성하는 경우(예를 들면, 양식의 세트를 완료함)를 포함할 수 있지만, 그러나 두 개 이상의 태스크 중 하나는 더 효율적이다(예를 들면, 특정한 순서로 양식의 세트를 완료함). 태스크 변동은 또한 다른 양태를 나타낼 수도 있다(예를 들면, 예컨대 고객 대신 호텔 예약을 완료하는 것, 태스크 변동은 호텔 예약에 패키지를 추가하는 것을 포함함). 태스크 마이닝 엔진은, 이어서, 태스크 변동 중 가장 효율적인 태스크를 자동화할 수 있다.
예를 들면, 태스크 마이닝 엔진은 (예를 들면, 태스크/워크플로우/프로세스에 대한) 액션 세트를 수신하고, 그 내부의 각각의 액션에 서명을 할당하고, 내부에서 어떤 순서 액션이 발생하였는지를 결정하기 위해 액션 세트 내의 시퀀스에 기초하여 태스크의 트레이스(trace)를 생성한다. 일반적으로, 시퀀스 순서의 표시를 제공하기 위해 각각의 액션 타입에 대해 하나의 서명이 존재하며, 이들 서명에 기초하여 액션 세트를 그룹화하는 것은 액션 세트 내에서 변동을 제공할 수 있다. 즉, 시퀀스 순서가 변하는 경우 트레이스가 변한다. 액션 A(예를 들면, 서명 A를 할당받는 유저 액션)가 액션 B(예를 들면, 서명 B를 할당받는 유저 액션) 이전에 6 번 중 5 번 발생하였다면, 그러면, 액션 A는 트레이스에서 액션 B 이전에 올 것이다. 태스크 마이닝 엔진이 동일한 워크플로우/프로세스의 이들 변동을 이미 알고 있기 때문에, 태스크 마이닝 엔진은, 효율성을 결정하기 위해, 단계의 평균 수, 각각의 변동이 걸리는 시간, 등등을 주시한다.
한 예에서, 유저는 양식 1과 양식 2를 25 번 완료하는데, 매번 양식 2는 관리자 승인을 받는다(예를 들면, 양식 1은 제1 서명을 가지며, 양식 2는 제2 서명을 가지며, 관리자 승인은 제3 서명을 가짐). 양식 2 및 관리자 승인 이전에 양식 1이 25 번 중 21 번을 완료하였다면, 그러면, 제1 트레이스에서 양식 1은 양식 2 이전에 올 것이다. 나머지 4 번의 경우, 제2 트레이스는, 유저가 양식 2를 먼저 완료하고 유저가 양식 1을 완료하는 동안 관리자 승인이 발생하는 것을 포함하는 시퀀스 순서를 식별한다. 태스크 마이닝 엔진이 제2 트레이스가 제1 트레이스보다 더 짧은 것을 식별하면, 양식 1의 완료와 병행하여 발생하는 관리자 승인에 기인하여, 태스크 마이닝 엔진은 제2 트레이스가 더 효율적이다는 것을 결정할 수 있다. 따라서, 제2 트레이스는 제1 트레이스에 우선하여 제안, 자동화 및 구현될 수 있다.
도면에서의 플로우차트 및 블록도는 본 발명의 다양한 실시형태에 따른 장치, 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현예의 아키텍쳐, 기능성, 및 동작을 예시한다. 이와 관련하여, 플로우차트 또는 블록도에서의 각각의 블록은, 명시된 논리적 기능(들)을 구현하기 위한 하나 이상의 실행 가능 명령어를 포함하는 모듈, 세그먼트, 또는 명령어의 일부를 나타낼 수도 있다. 몇몇 대안적인 구현예에서, 블록에서 언급되는 기능은 도면에서의 플로우차트 및 블록도에서 언급되는 순서 밖에서 발생할 수도 있다. 예를 들면, 연속적으로 도시되는 두 개의 블록은, 실제로는, 실질적으로 동시에 실행될 수도 있거나, 또는 블록은, 때때로, 수반되는 기능성에 따라, 역순으로 실행될 수도 있다. 또한, 블록도 및/또는 플로우차트 예시의 각각의 블록, 및 블록도 및/또는 플로우차트 예시에서의 블록의 조합은, 명시된 기능 또는 액트를 수행하는 또는 특수 목적 하드웨어 및 컴퓨터 명령어의 조합을 실행하는 특수 목적 하드웨어 기반의 시스템에 의해 구현될 수 있다는 것을 또한 알 수 있을 것이다.
비록 피쳐 및 엘리먼트가 상기에서 특정한 조합으로 설명되지만, 기술 분야의 숙련된 자는, 각각의 피쳐 또는 엘리먼트가 단독으로 또는 다른 피쳐 및 엘리먼트와의 임의의 조합으로 사용될 수 있다는 것을 인식할 것이다. 예를 들면, 본원에서 설명되는 방법 및 프로세스 중 임의의 것의 경우, 언급되는 단계는 임의의 순서로 순서 없이 수행될 수도 있고 명시적으로 설명되지 않는 또는 도시되지 않는 하위 단계가 수행될 수도 있다. "A 또는 B"를 언급하는 것을 사용하는 경우, 그것은 A, B 또는 A 및 B를 포함할 수도 있는데, 이것은 긴 목록에 대해 유사하게 확장될 수도 있다. 표기법 X/Y를 사용하는 경우, 그것은 X 또는 Y를 포함할 수도 있다. 대안적으로, 표기법 X/Y를 사용하는 경우, 그것은 X 및 Y를 포함할 수도 있다. X/Y 표기법은, 동일한 설명된 로직을 가지고 더 긴 목록에 대해 유사하게 확장될 수도 있다. 또한, "커플링되는" 또는 "동작 가능하게 커플링되는"은, 오브젝트가 연결되지만 그러나 연결된 오브젝트 사이에 0 개 이상의 중간 오브젝트를 가질 수도 있다는 것을 의미할 수도 있다. 또한, 개시된 피쳐/엘리먼트의 임의의 조합이 하나 이상의 실시형태에서 사용될 수도 있다.
또한, 본원에서 설명되는 방법 및 프로세스는 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독 가능 매체에서 통합되는 컴퓨터 프로그램, 소프트웨어, 및/또는 펌웨어(예를 들면, 컴퓨터 프로그램 제품)로 구현될 수도 있다. 즉, 컴퓨터 프로그램 제품은, 컨트롤러, 프로세서, 또는 등등으로 하여금 본 발명의 양태를 실행하게 하기 위한 컴퓨터 판독 가능 프로그램 명령어를 구비하는 컴퓨터 판독 가능 저장 매체(또는 매체들)를 포함할 수도 있다.
컴퓨터 판독 가능 저장 매체는, 컴퓨터 판독 가능 프로그램 명령어를 보유 및 저장할 수 있는 유형의 디바이스일 수 있다. 컴퓨터 판독 가능 저장 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광학 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것의 임의의 적절한 조합일 수도 있지만, 그러나 이들로 제한되지는 않는다. 컴퓨터 판독 가능 저장 매체는, 본원에서 사용될 때, 전파(radio wave) 또는 다른 자유롭게 전파하는 전자기파, 도파관 또는 다른 송신 매체를 통해 전파하는 전자기파(예를 들면, 광섬유 케이블을 통해 통과하는 광 펄스), 또는 배선(wire)을 통해 송신되는 전기 신호와 같은, 일시적 신호 그 자체인 것으로 해석되지 않아야 한다. 컴퓨터 판독 가능 저장 매체의 예는, 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 내장 하드 디스크 및 착탈식 디스크와 같은 자기 매체, 광자기 매체, 컴팩트 디스크(compact disk; CD) 및 디지털 다기능 디스크(digital versatile disk; DVD)와 같은 광학 매체, 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 소거 가능한 프로그래머블 리드 온리 메모리(erasable programmable read-only memory; EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(static random access memory; SRAM), 및 메모리 스틱을 포함하지만, 그러나 이들로 제한되지는 않는다.
본원에서 설명되는 컴퓨터 판독 가능 프로그램 명령어는, 연결, 예를 들면, 네트워크 통신을 통해, 장치, 디바이스, 컴퓨터, 또는 외부 스토리지로부터 각각의 컨트롤러, 프로세서, 또는 등등으로 통신 및/또는 다운로드될 수 있다. 본 발명의 동작을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령어는, 어셈블러 명령어, 명령어 세트 아키텍쳐(instruction-set-architecture; ISA) 명령어, 머신 명령어, 머신 종속 명령어, 마이크로코드, 펌웨어 명령어, 상태 설정 데이터, 집적 회로부(integrated circuitry)용 구성 데이터, 또는 Smalltalk(스몰토크), C++, 또는 등등과 같은 객체 지향 프로그래밍 언어, 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어와 같은 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성되는 소스 코드 또는 오브젝트 코드 중 어느 하나일 수도 있다. 몇몇 실시형태에서, 예를 들면, 프로그래머블 로직 회로부, 필드 프로그래머블 게이트 어레이(FPGA), 또는 프로그래머블 로직 어레이(programmable logic array; PLA)를 포함하는 전자 회로부는, 본 발명의 양태를 수행하기 위해, 컴퓨터 판독 가능 프로그램 명령어의 상태 정보를 활용하여 전자 회로부를 개인화하는 것에 의해 컴퓨터 판독 가능 프로그램 명령어를 실행할 수도 있다.
본원에서 사용되는 전문 용어는 단지 특정한 실시형태를 설명하는 목적을 위한 것이며, 제한하는 것으로 의도되는 것은 아니다. 본원에서 사용될 때, 단수 형태 "한(a)", "한(an)" 및 "그(the)"는, 문맥이 명백하게 달리 나타내지 않는 한, 복수 형태를 또한 포함하도록 의도된다. 용어 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은, 본원에서 사용될 때, 언급된 피쳐, 정수, 단계, 동작, 엘리먼트, 및/또는 컴포넌트의 존재를 명시하지만, 그러나, 하나 이상의 다른 피쳐, 정수, 단계, 동작, 엘리먼트 컴포넌트, 및/또는 이들의 그룹의 존재 또는 추가를 배제하지는 않는다는 것이 추가로 이해될 것이다.
본원의 다양한 실시형태의 설명은 예시의 목적을 위해 제시되었지만, 그러나 망라적인 것으로 또는 개시되는 실시형태로 제한되도록 의도되는 것은 아니다. 설명된 실시형태의 범위 및 취지를 벗어나지 않으면서, 기술 분야에서 통상의 지식을 가진 자에게는 많은 수정예 및 변형예가 명백할 것이다. 본원에서 사용되는 전문 용어는, 실시형태의 원리, 시장에서 발견되는 기술에 대한 실질적인 적용 또는 기술적 개선을 최상으로 설명하기 위해, 또는 기술 분야에서 통상의 지식을 가진 자가 본원에서 개시되는 실시형태를 이해하는 것을 가능하게 하기 위해 선택되었다.

Claims (20)

  1. 메모리 상에 프로세서 실행가능 코드로서 저장되는 태스크 마이닝 엔진(task mining engine)에 의해 구현되는 방법에 있어서, 상기 프로세서 실행가능 코드는 상기 메모리에 통신 가능하게 커플링되는 적어도 하나의 프로세서에 의해 실행되고, 상기 방법은:
    상기 태스크 마이닝 엔진에 의해, 컴퓨팅 환경에 대한 유저 활동을 식별하는 하나 이상의 기록된 태스크를 수신하는 단계;
    상기 태스크 마이닝 엔진에 의해, 각각의 기록된 유저 태스크를 프로세싱하고 채점하는 것에 의해 상기 하나 이상의 기록된 유저 태스크를 하나 이상의 단계로 클러스터링하는 단계; 및
    상기 태스크 마이닝 엔진에 의해, 상기 유저 활동을 모방(mimic)하기 위해 상기 하나 이상의 단계의 유사한 조합 또는 반복된 조합을 식별하는 하나 이상의 단계 시퀀스를 추출하는 단계
    를 포함하는, 메모리 상에 프로세서 실행가능 코드로서 저장되는 태스크 마이닝 엔진에 의해 구현되는 방법.
  2. 제1항에 있어서,
    상기 태스크 마이닝 엔진에 의해, 실행시 상기 유저 활동을 자동적으로 수행하는 상기 하나 이상의 단계 시퀀스에 기초하여 자동화 코드를 출력하는 단계를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 태스크 마이닝 엔진에 의해, 상기 하나 이상의 단계 내에서부터 상기 유저 활동의 자동화를 식별하는 하나 이상의 태스크 시퀀스를 추출하는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 하나 이상의 기록된 태스크는, 상기 유저 활동이 발생하는 동안, 상기 컴퓨팅 환경으로부터 상기 태스크 마이닝 엔진에 의해, 실시간으로 기록되는 구조화되지 않은 데이터(unstructured data)를 포함하는 것인, 방법.
  5. 제1항에 있어서,
    상기 하나 이상의 기록된 태스크의 각각은 상기 유저 활동 동안 유저가 취하는 액션을 포함하는 것인, 방법.
  6. 제1항에 있어서,
    상기 태스크 마이닝 엔진은 중심 기반의(centroid-based), 연결성 기반의, 분포 기반의, 밀도 기반의, 또는 그리드 기반의 클러스터링을 활용하여 상기 하나 이상의 기록된 유저 태스크를 클러스터링하는 것인, 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 기록된 유저 태스크를 클러스터링하는 단계는, 유저 액션 매치를 놓치는 것과 유사하지 않은 유저 액션을 그룹화하는 것 사이의 균형을 맞추는 초기 클러스터링 동작을 포함하는 것인, 방법.
  8. 제1항에 있어서,
    상기 하나 이상의 단계 시퀀스를 추출하는 단계는 상기 하나 이상의 단계에 대한 시간적 근접성(closeness)을 결정하기 위한 시간적 엘리먼트를 포함하는 것인, 방법.
  9. 제1항에 있어서,
    상기 하나 이상의 단계 시퀀스를 추출하는 단계는 순차적 패턴 마이닝을 구현하는 시퀀스 추출 알고리즘을 실행하는 단계를 포함하는 것인, 방법.
  10. 제1항에 있어서,
    상기 태스크 마이닝 엔진은 상기 하나 이상의 기록된 태스크 또는 상기 하나 이상의 단계 시퀀스를 분석하여 별개의 독립적인 유저 액션 또는 하위 태스크를 결정하는 것인, 방법.
  11. 제1항에 있어서,
    상기 태스크 마이닝 엔진은 랜덤 기회보다 더 빈번한 발생에 기초하여 상기 하나 이상의 기록된 태스크 또는 상기 하나 이상의 단계 시퀀스에 대한 유용성(usefulness)을 결정하는 것인, 방법.
  12. 제1항에 있어서,
    상기 태스크 마이닝 엔진은 흥미도(interestingness)를 식별하는 상기 하나 이상의 기록된 태스크 또는 상기 하나 이상의 단계 시퀀스에 대한 순위를 결정하는 것인, 방법.
  13. 시스템에 있어서,
    태스크 마이닝 엔진에 대한 프로세서 실행가능 코드를 저장하는 메모리; 및
    상기 메모리에 통신 가능하게 커플링되며 상기 프로세서 실행가능 코드를 실행하도록 구성되는 적어도 하나의 프로세서
    를 포함하고, 상기 프로세서 실행가능 코드는, 상기 시스템으로 하여금:
    상기 태스크 마이닝 엔진에 의해, 컴퓨팅 환경에 대한 유저 활동을 식별하는 하나 이상의 기록된 태스크를 수신하는 것;
    상기 태스크 마이닝 엔진에 의해, 각각의 기록된 유저 태스크를 프로세싱하고 채점하는 것에 의해 상기 하나 이상의 기록된 유저 태스크를 하나 이상의 단계로 클러스터링하는 것; 및
    상기 태스크 마이닝 엔진에 의해, 상기 유저 활동을 모방하기 위해 상기 하나 이상의 단계의 유사한 조합 또는 반복된 조합을 식별하는 하나 이상의 단계 시퀀스를 추출하는 것
    을 수행하게 하는 것인, 시스템.
  14. 제13항에 있어서,
    상기 적어도 하나의 프로세서는 상기 프로세서 실행가능 코드를 실행하여, 상기 시스템으로 하여금:
    상기 태스크 마이닝 엔진에 의해, 실행시 상기 유저 활동을 자동적으로 수행하는 상기 하나 이상의 단계 시퀀스에 기초하여 자동화 코드를 출력하는 것
    을 수행하게 하도록 구성되는 것인, 시스템.
  15. 제13항에 있어서,
    상기 적어도 하나의 프로세서는 상기 프로세서 실행가능 코드를 실행하여, 상기 시스템으로 하여금:
    상기 태스크 마이닝 엔진에 의해, 상기 하나 이상의 단계 내에서부터 상기 유저 활동의 자동화를 식별하는 하나 이상의 태스크 시퀀스를 추출하는 것
    을 수행하게 하도록 구성되는 것인, 시스템.
  16. 제13항에 있어서,
    상기 하나 이상의 기록된 태스크는, 상기 유저 활동이 발생하는 동안, 상기 컴퓨팅 환경으로부터 상기 태스크 마이닝 엔진에 의해, 실시간으로 기록되는 구조화되지 않은 데이터를 포함하는 것인, 시스템.
  17. 제13항에 있어서,
    상기 하나 이상의 기록된 태스크의 각각은 상기 유저 활동 동안 유저가 취하는 액션을 포함하는 것인, 시스템.
  18. 제13항에 있어서,
    상기 태스크 마이닝 엔진은 중심 기반의, 연결성 기반의, 분포 기반의, 밀도 기반의, 또는 그리드 기반의 클러스터링을 활용하여 상기 하나 이상의 기록된 유저 태스크를 클러스터링하는 것인, 시스템.
  19. 제13항에 있어서,
    상기 하나 이상의 기록된 유저 태스크를 클러스터링하는 것은, 유저 액션 매치를 놓치는 것과 유사하지 않은 유저 액션을 그룹화하는 것 사이의 균형을 맞추는 초기 클러스터링 동작을 포함하는 것인, 시스템.
  20. 제13항에 있어서,
    상기 하나 이상의 단계 시퀀스를 추출하는 것은, 상기 하나 이상의 단계에 대한 시간적 근접성을 결정하기 위한 시간적 엘리먼트를 포함하는 것인, 시스템.
KR1020217040339A 2021-04-13 2021-10-27 컴퓨팅 환경에 걸친 로봇 프로세스 자동화에 의한 태스크 및 프로세스 마이닝 KR20230171040A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/229,085 2021-04-13
US17/229,085 US11934416B2 (en) 2021-04-13 2021-04-13 Task and process mining by robotic process automations across a computing environment
PCT/US2021/056865 WO2022220873A1 (en) 2021-04-13 2021-10-27 Task and process mining by robotic process automations across a computing environment

Publications (1)

Publication Number Publication Date
KR20230171040A true KR20230171040A (ko) 2023-12-20

Family

ID=83400710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217040339A KR20230171040A (ko) 2021-04-13 2021-10-27 컴퓨팅 환경에 걸친 로봇 프로세스 자동화에 의한 태스크 및 프로세스 마이닝

Country Status (6)

Country Link
US (1) US11934416B2 (ko)
EP (1) EP4094210A4 (ko)
JP (1) JP2024517362A (ko)
KR (1) KR20230171040A (ko)
CN (1) CN115474440A (ko)
WO (1) WO2022220873A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220043668A1 (en) * 2020-08-06 2022-02-10 Pricewaterhousecoopers Llp System and methods for implementing a computer process automation tool
US20230368104A1 (en) * 2022-05-12 2023-11-16 Nice Ltd. Systems and methods for automation discovery recalculation using dynamic time window optimization
CN117406972B (zh) * 2023-12-14 2024-02-13 安徽思高智能科技有限公司 基于拟合度分析的rpa高价值流程实例发现方法及系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6778995B1 (en) * 2001-08-31 2004-08-17 Attenex Corporation System and method for efficiently generating cluster groupings in a multi-dimensional concept space
US8346770B2 (en) * 2003-09-22 2013-01-01 Google Inc. Systems and methods for clustering search results
US8285719B1 (en) * 2008-08-08 2012-10-09 The Research Foundation Of State University Of New York System and method for probabilistic relational clustering
US20130055268A1 (en) 2011-08-31 2013-02-28 International Business Machines Corporation Automated web task procedures based on an analysis of actions in web browsing history logs
US10163063B2 (en) * 2012-03-07 2018-12-25 International Business Machines Corporation Automatically mining patterns for rule based data standardization systems
US9116974B2 (en) * 2013-03-15 2015-08-25 Robert Bosch Gmbh System and method for clustering data in input and output spaces
US9798783B2 (en) * 2013-06-14 2017-10-24 Actuate Corporation Performing data mining operations within a columnar database management system
EP3112965A1 (en) 2015-07-02 2017-01-04 Accenture Global Services Limited Robotic process automation
EP3133539A1 (en) 2015-08-19 2017-02-22 Tata Consultancy Services Limited Method ans system for process automation in computing
US10365799B2 (en) 2016-02-09 2019-07-30 Wipro Limited System and methods for creating on-demand robotic process automation
US11107090B2 (en) 2016-06-06 2021-08-31 Epiance Software Pvt. Ltd. System and method for automated content generation
US11210613B2 (en) 2016-08-25 2021-12-28 Dialpad Uk Limited Method and system for semi-supervised semantic task management from semi-structured heterogeneous data streams
US10339027B2 (en) * 2016-09-06 2019-07-02 Accenture Global Solutions Limited Automation identification diagnostic tool
US10613838B2 (en) 2016-10-26 2020-04-07 Soroco Private Limited Systems and methods for discovering automatable tasks
US11282035B2 (en) * 2017-06-21 2022-03-22 Accenture Global Solutions Limited Process orchestration
US11017180B2 (en) * 2018-04-18 2021-05-25 HelpShift, Inc. System and methods for processing and interpreting text messages
US20190324781A1 (en) * 2018-04-24 2019-10-24 Epiance Software Pvt. Ltd. Robotic script generation based on process variation detection
US11403201B2 (en) * 2018-08-08 2022-08-02 Atos France Systems and methods for capture and generation of process workflow
US11281936B2 (en) 2018-12-31 2022-03-22 Kofax, Inc. Systems and methods for identifying processes for robotic automation and building models therefor
US11562311B2 (en) 2019-01-09 2023-01-24 Nice Ltd. Robotic process automation for significant sequences of desktop events
US11613008B2 (en) 2019-01-14 2023-03-28 International Business Machines Corporation Automating a process using robotic process automation code
US11106789B2 (en) 2019-03-05 2021-08-31 Microsoft Technology Licensing, Llc Dynamic cybersecurity detection of sequence anomalies
US11433536B2 (en) 2019-09-19 2022-09-06 UiPath, Inc. Process understanding for robotic process automation (RPA) using sequence extraction
US11762819B2 (en) * 2019-10-15 2023-09-19 Target Brands, Inc. Clustering model analysis for big data environments

Also Published As

Publication number Publication date
WO2022220873A1 (en) 2022-10-20
CN115474440A (zh) 2022-12-13
EP4094210A1 (en) 2022-11-30
EP4094210A4 (en) 2023-08-16
US20220327351A1 (en) 2022-10-13
US11934416B2 (en) 2024-03-19
JP2024517362A (ja) 2024-04-22

Similar Documents

Publication Publication Date Title
US11934416B2 (en) Task and process mining by robotic process automations across a computing environment
US11433536B2 (en) Process understanding for robotic process automation (RPA) using sequence extraction
JP2022551833A (ja) ロボティックプロセスオートメーションのための人工知能ベースのプロセス識別、抽出、および自動化
US11836626B2 (en) Artificial intelligence layer-based process extraction for robotic process automation
US11803397B2 (en) Determining sequences of interactions, process extraction, and robot generation using artificial intelligence / machine learning models
US20230393870A1 (en) Determining sequences of interactions, process extraction, and robot generation using generative artificial intelligence / machine learning models
CN116070712A (zh) 使用针对机器人流程自动化的长运行工作流的构建和管理人工智能流
US20220414527A1 (en) System and method for providing automatic guidance in data flow journeys
EP4187452A1 (en) Machine learning based entity recognition
EP4361921A1 (en) Semantic automation builder for robotic process automation
US20230360388A1 (en) Training a generative artificial intelligence / machine learning model to recognize applications, screens, and user interface elements using computer vision
US20230415338A1 (en) Target-based schema identification and semantic mapping for robotic process automation
US20240046142A1 (en) Intent-based automation
US20230044508A1 (en) Data labeling processing
JP2024065102A (ja) ロボットプロセス自動化のためのセマンティック自動化ビルダー