TW201945996A - 將資料分析系統轉換為對可配置目標度量優化的跨平台即時決策系統的方法 - Google Patents
將資料分析系統轉換為對可配置目標度量優化的跨平台即時決策系統的方法 Download PDFInfo
- Publication number
- TW201945996A TW201945996A TW108108559A TW108108559A TW201945996A TW 201945996 A TW201945996 A TW 201945996A TW 108108559 A TW108108559 A TW 108108559A TW 108108559 A TW108108559 A TW 108108559A TW 201945996 A TW201945996 A TW 201945996A
- Authority
- TW
- Taiwan
- Prior art keywords
- decision
- series data
- time series
- event
- software application
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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 for performance assessment
- G06F11/3419—Recording 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 for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
- G06F16/337—Profile generation, learning or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0635—Risk analysis of enterprise or organisation activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
- G06Q10/06375—Prediction of business process outcome or impact based on a proposed change
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/067—Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/065—Generation of reports related to network devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/067—Generation of reports using time frame reporting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
Abstract
本文描述的系統,提供用於將被動分析系統轉換為決策系統(及(或)推薦系統)的結構和功能,其可以基於分析資料主動地修改軟體行為以相對於可配置的目標度量來改進軟體效能。特定而言,本文呈現的具體實施例引入了軟體構造和概念,用於將分析系統轉換成決策系統。此外,本文描述的系統提供了用於執行具有低潛時的決策系統的基於網路的硬體的若干替代性佈置。
Description
對於相關申請案的交互參照:本申請案對下列申請案主張優先權:申請於2018年3月14日的美國專利臨時申請案第62/643,028號「Methodologies to Transform Data Analytics Systems Into Cross-Platform Real-Time Decision-Making Systems That Optimize For Configurable Goal Metrics」;申請於2018年10月19日的美國專利臨時申請案第62/748,225號「Methodologies to Transform Data Analytics Systems Into Cross-Platform Real-Time Decision-Making Systems That Optimize For Configurable Goal Metrics」;申請於2018年11月7日的美國專利申請案第16/183,056號「Methods and Systems for Transforming Computing Analytics Frameworks Into Cross-Platform Real-Time Decision-Making Systems Through a Decision-Making Agent」;申請於2018年11月7日的美國專利申請案第16/183,082號「Methods and Systems for Transforming Computing Analytics Frameworks Into Cross-Platform Real-Time Decision-Making Systems By Executing Intelligent Decisions on an Endpoint Device」;申請於2018年11月7日的美國專利申請案第16/183,120號「Methods and Systems for Optimized Policy Generation to Transform Computing Analytics Frameworks Into Cross-Platform Real-Time Decision-Making Systems」;申請於2018年11月7日的美國專利申請案第16/183,220號「Methods and Systems for Generating Data Visualizations and Control Interfaces to Transform Computing Analytics Frameworks Into Cross-Platform Real-Time Decision-Making Systems」;申請於2018年11月7日的美國專利申請案第16/183,260號「Methods and Systems for Transforming Computing Analytics Frameworks Into Cross-Platform Real-Time Decision-Making Systems That Optimize Configurable Goal Metrics」;申請於2018年11月7日的美國專利申請案第16/183,288號「Methods and Systems for Integrating Speculative Decision-Making In Cross-Platform Real-Time Decision-Making Systems」;以及申請於2018年11月7日的美國專利申請案第16/183,323號「Methods and Systems for Real-Time Decision-Making Using Cross-Platform Telemetry」,以上各申請案之申請人亦為本案之申請人,在此併入此等申請案全文以作為參照。
本文揭示的具體實施例大抵涉及用於擴展軟體分析框架的系統。特定而言,本文揭示的具體實施例,提供用於將被動分析系統轉換為決策系統(及(或)推薦系統)的結構和功能,其可以基於分析資料主動地修改軟體行為以相對於可配置的目標度量來改進軟體效能。
網路連接的軟體應用程式(例如本機應用程式、網頁應用程式和混合應用程式)和網站,是許多組織的寶貴資源。此類應用程式和網站可以滿足各種目的。例如,一些行動應用程式(如游戲)旨在娛樂用戶。其他行動應用程式(諸如文字處理器)專為商業目的而設計。一些網站用於傳播有關組織的資訊,或該等組織推廣的原因。其他網站旨在促進網站顧客之間的通信和協作,而其他網站用於宣傳產品或服務或促進商家和客戶之間的安全交易。無論如何,創建或提供應用程式和網站的組織,通常會出於某種目的這樣做 - 應用程式或網站將隨著時間的推移始終如一地達成的一些目標結果。
大多數組織都明白,並非所有應用程式和網站都能有效實現其預期目的。例如,由於介面混亂、延遲過多、錯誤或兼容性問題,一些應用程式無法吸引和留住用戶。由於內容過時、演示不佳、某些類型的瀏覽器或設備的兼容性問題、安全協定不佳以及其他問題,一些網站無法吸引和留住網站訪問者。為了確保應用程式或網站繼續有效地服務於其預期目的,組織可以使用諸如Google™ Analytics、Springmetrics、Crazy Egg、Kissmetrics、Optimizely、Woopra等工具,來監控用戶如何回應應用程式或網站中的不同頁面,以便可以識別和替換未達到預期目的的頁面。
有時,組織藉由部署兩個向用戶顯示的不同版本頁面來執行A/B測試,並監視用戶對這兩個版本的回應。若一個版本在測試階段優於另一個版本,則在測試階段結束後組織通常採用效能更好的版本。
本揭示內容的一個具體實施例包含一種系統,包含:一個或多個處理器,以及儲存一個或多個指令的記憶體,一個或多個指令在執行於一個或多個處理器上時使系統:從策略生成器接收決策策略,決策策略指定當軟體應用程式檢測到決策點事件時,軟體應用程式要執行的一個或多個操作,其中策略基於會話中的時間序列資料,將相同決策點事件類型的決策點事件映射到不同的操作,會話相關聯於與軟體應用程式互動的顧客;接收源自軟體應用程式的決策請求,其中決策請求包含顧客識別符並指示決策點事件類型;從資料儲存庫檢索在相關聯於顧客識別符的會話中的時間序列資料;藉由將時間序列資料和事件類型與決策策略比較,以選擇軟體應用程式要執行的不同操作中的一個或多個操作;回應於決策請求而發送一個或多個所選操作的指示;以及更新與資料儲存庫中的顧客識別符相關聯的會話中的時間序列資料,以反映決策點事件和一個或多個所選操作。
另一個具體實施例包含一種系統,包含:一個或多個處理器,以及儲存一個或多個指令的記憶體,一個或多個指令在執行於一個或多個處理器上時使系統:在計算設備處接收相關聯於軟體應用程式的客戶端側碼;基於在計算設備處接收到的來自與軟體應用程式互動的顧客的輸入,來檢測決策點事件;識別儲存在相關聯於顧客的會話容器中的時間序列資料;藉由將時間序列資料和決策點事件的類型與客戶端側碼中包含的決策策略進行比較,來選擇軟體應用程式回應於檢測到決策點事件而執行的一個或多個不同操作;以及在計算設備處執行一個或多個所選操作。
另一個具體實施例包含一種系統,包含:一個或多個處理器;以及儲存一個或多個指令的記憶體,一個或多個指令在執行於一個或多個處理器上時使系統:經由計算網路,接收由遠端執行的軟體應用程式針對複數個會話收集的時間序列資料,其中每一會話相關聯於各別的顧客;將時間序列資料儲存在持續性資料儲存庫中;經由介面部件接收目標定義,其中目標定義指定如何基於至少一個度量來計算目標分數,至少一個度量可基於時間序列資料來計算出;對於會話中的每一個,確定對於會話的該至少一個度量的對應值;基於時間序列資料和會話的值,訓練機器學習模型,以基於會話中的決策點事件之前的事件確定遠程執行的軟體應用程式回應於決策點事件而執行的一個或多個操作,以增加會話的目標分數滿足危險條件的概率;生成決策策略,決策策略表示在訓練期間由機器學習模型學習的邏輯;以及將策略部署到計算網路中的位置,在此位置接收源自軟體應用程式的決策請求。
另一個具體實施例包含一種系統,包含:一個或多個處理器;以及儲存一個或多個指令的記憶體,一個或多個指令在執行於一個或多個處理器上時,使系統:接收複數個會話,其中每個會話相關聯於顧客,具有開始時間,並且包括時間序列資料,時間序列資料表徵顧客與在一個或多個遠端計算設備處執行的軟體應用程式之間的互動;經由介面部件接收目標定義,其中目標定義指定如何基於至少一個度量來計算目標分數,至少一個度量可基於時間序列資料來計算出;將會話分組到箱中,其中每個箱對應於時間間隔,並包括具有在時間間隔內的開始時間的會話;對於每個會話:使用會話中包括的時間序列資料計算會話的第一度量的當前值,其中用於計算第一度量的當前值的時間序列資料的至少一部分,描述在對應於會話被分組到的箱的時間間隔之外發生的事件,以及基於第一度量的當前值與目標定義,來確定會話的當前目標分數;對於每個箱,基於被分組到箱中的會話的當前值目標分數,來計算箱的當前平均目標分數;以及呈現箱的當前平均目標分數相對於時間的圖形圖,其由箱分區以經由介面部件顯示。
另一個具體實施例包含一種系統,包含:一個或多個處理器以及儲存一個或多個指令的記憶體,一個或多個指令在執行於一個或多個處理器上時,使系統:在計算設備處接收來自軟體應用程式的推測性決策請求,其中推測性決策請求包含顧客識別符;回應於決策請求而生成複數個操作,複數個操作相關聯於複數個決策點事件,複數個決策點事件欲在與軟體應用程式的顧客互動中被檢測到;將與軟體應用程式互動的顧客所請求的內容、複數個決策點事件和相關聯於複數個決策點事件中之每一個的操作發送至計算設備;基於在計算設備處接收到的來自與軟體應用程式互動的顧客的輸入,來檢測複數個決策點事件中的決策點事件;在計算設備處執行相關聯於檢測到的決策點事件的操作;從計算設備接收資訊,資訊識別檢測到的決策點事件和相關聯於所檢測到的決策點事件且在計算設備處執行的操作;以及將相關聯於所識別的決策點事件的時間序列資料儲存至相關聯於顧客的會話容器,時間序列資料包含決策點事件和相關聯於檢測到的決策點事件的時間戳。。
本文呈現的具體實施例,提供用於將被動分析系統轉換為決策系統(及(或)推薦系統)的結構和功能,其可以基於分析資料主動地修改軟體行為以相對於可配置的目標度量來改進軟體效能。特定而言,本文呈現的具體實施例引入了一組軟體抽象和概念,用於將分析系統轉換成決策系統。本揭示內容解釋了如何以無縫擴展現有分析應用程式程式介面(API)的方式應用此等軟體抽象和概念,從而向分析系統添加以目標為中心的介入能力。藉由擴展彼等API,本文描述的示例保留了彼等API提供的整合簡化性。因此,熟悉分析API的軟體開發者,可以輕易存取由本文描述的具體實施例提供的功能,而不需熟悉不熟悉的程式語言、專有介面或深奧的平台。
本揭示內容提供了如何應用本文揭示的概念的若干說明性具體示例。然而,本文揭示的概念可以輕易應用於涉及人與軟體之間的互動(或兩個軟體之間的互動)、關於互動的至少一個結果的不確定性、互動期間的與結果相關的循序決策、以及至少一個可量化的目標(藉由此目標評估決策執行(例如相對於結果))的任何場景。
本揭示內容還描述了用於支持本文描述的決策系統和推薦系統的某些元件。例如,本揭示內容描述了用於存儲與應用程式的顧客相關聯的時間序列資料(例如描述在定義的時間發生或開始的事件)的容器(這裡稱為「會話」)。對於給定顧客的容器,可以包括在顧客和軟體之間的不同設備上發生的多次互動期間長時間收集的時間序列資料。此外,本文描述的系統,允許管理員基於自定義度量定義自定義目標,並為彼等度量設置危險等級和目標等級。基於時間序列資料和目標度量設置,本文描述的系統可以生成經訂製的決策策略,以確保滿足度量的危險等級並且優先考慮目標等級。策略可以部署到決策代理或客戶端設備,並在策略所涉及的互動期間應用。當發生要求決定軟體應用程式如何發生行為的事件時,此策略根據事件之前的時間序列資料指示軟體執行的一個或多個操作。此外,隨著會話容器中的時間序列資料隨著時間的推移且目標度量設置被增加、移除或去優先化而演變,藉由生成更新的決策策略來確保危險等級和目標等級得到尊重,本文所述的系統不斷優化。此外,決策策略可以允許回應於檢測到預期在用戶與軟體應用程式互動中觀察到的一組事件中的一個事件,而執行針對軟體的一個或多個操作的推測性生成和預計算。
本揭示內容還描述了用於繪製會話的度量的新穎方案。會話被分組為箱,其中每個箱對應於具有明確的開始時間和結束時間的相應時間間隔。根據會話的開始時間將每個會話分組到箱中。但是,會話本身不需要具有明確的結束時間,並且基於會話中的所有資料計算度量 - 甚至是描述在會話被分組到的箱的結束時間之後發生的事件的資料。因此,箱中會話的平均度量值可以反映在箱的結束時間之後發生的事件。當用新的時間序列資料連續更新箱中的會話時,即使在對應於箱的時間間隔的結束時間之後,也可以以實時方式更新箱中的會話的平均度量值。此更新的度量值可以反映在也以即時方式更新的繪圖上。但是,對應於箱和會話開始時間的時間間隔不會改變,因此無論度量值更新多少次,分組到箱中的會話組都保持一致。
大量的現代軟體被設計為以某種方式與人類或其他類型的軟體互動。例如,電玩遊戲被設計為接收來自用戶的輸入(例如經由觸控螢幕、麥克風、鍵盤等)、基於輸入更新遊戲狀態、並回應於輸入向用戶呈現輸出。其他電腦程式,諸如機器人,可以被設計為直接與軟體互動而不是與人互動。無論此類軟體是否旨在與人工代理或軟體代理(或兩者)進行互動,互動都可以建模為簡單的多代理系統,其中包括正在優化的軟體應用程式和顧客(顧客,諸如人類用戶或其他軟體)。在互動期間,顧客可以選擇以各種方式回應軟體。一些可能的顧客回應,可以實現為軟體指定的目標,而其他可能的顧客回應可能並非如此。因此,從軟體的角度來看,是否會實現依賴於顧客回應的目標存在不確定性。
儘管存在這種不確定性,但軟體在與代理互動期間的行為方式,可能會影響目標實現的可能性。例如,在與代理的一系列互動中,軟體選擇向代理呈現的資訊、軟體呈現資訊的格式、軟體呈現資訊的順序、軟體呈現資訊的速度、以及軟體可以單方面控制的許多其他因素,可能使代理或多或少地執行特定目標所依賴的回應。若可以將軟體配置為以增加實現目標的可能性的方式運行,則為實現目標而設計軟體的供應商將受益匪淺。
但是,根據目標的性質、代理的身份以及其他因素,可能沒有先前的方法來說明軟體行為的不同變體將如何影響特定目標的實現概率。因此,許多軟體供應商使用分析工具,來收集有關代理在軟體以不同方式表現或呈現不同內容變體時如何回應的經驗資料。一旦獲得此種經驗資料,資料科學家就會檢查資料。資料科學家可以將統計和機器學習技術應用於資料,以發現軟體行為和感興趣的度量之間的模式和相關性。在完成此種分析之後,資料科學家可以得出關於資料反映的內容,以及哪種類型的行為更好地服務於特定目標的結論。基於彼等結論,資料科學家可能會提供有關長期在軟體中採用哪些行為修改和內容變體的建議。
使用「時間點」獎勵概念創建了幾種針對此類經驗資料進行訓練的最先進的機器學習模型,其中一個度量用作從經驗資料生成的訓練實例的標籤,僅在會話或互動期間的單個時間點確定一次。但是,實際上,一些度量可能會隨著時間而變化。例如,假設有一萬人可能最初忽略他們的行動設備側邊欄中顯示的廣告,但最終決定幾天後從他們的桌上型電腦購買廣告中顯示的項目。若為行動設備上的互動和桌上型電腦上的互動生成個別的訓練實例,則訓練實例具有錯誤地暗示行動設備上呈現的廣告不生成任何收入的標籤。若使用此種錯誤標記的訓練實例來訓練機器學習模型,則評估機器學習模型的組成和輸出的資料科學家可能會錯誤地斷定在行動設備上廣告此項目是無效的 - 即使行動設備上呈現的廣告實際上是促使購買的近因。
然而,本揭示內容的系統藉由隨時間重新計算會話的度量、更新從彼等會話生成的訓練實例、以及利用更新的訓練實例重新訓練機器學習模型,來解決此問題。會話不需要具有結束時間,並且可以包含跨多個設備收集的時間序列資料,因此訓練實例反映(並且在其上訓練的機器學習模型擷取)時間滯後(time-lagged)關係,現有分析方法可能無法檢測到這樣的關係。
A/B測試,也稱為分割測試或桶測試,是收集經驗資料的一種示例方法。在A/B測試中,修改網頁或應用程式螢幕的第一版本,以創建第二版本。第一版本被呈現給訪問網頁或應用程式螢幕的用戶的第一子集,而第二版本被呈現給用戶的第二子集。記錄並比較兩個子集的用戶操作。
但是,A/B測試通常會顯示整個用戶群的差異。在一些情況下,呈現給用戶的版本與期望結果之間的關係,可能比人口範圍的平均值所暗示的更複雜。在用戶群中,可能存在許多具有不同特徵的用戶組。較大的用戶組可以更有利地回應第一版本,而較小的用戶組可以更有利地回應第二版本。但是,若僅計算人口範圍的平均值,則較小群體的偏好可能會被淹沒。儘管一些分析平台可以允許管理員指定感興趣的用戶的片段(例如,組),但是管理員通常必須具有關於如何預先定義片段的一些先前知識。分析平台缺乏主動發現用戶片段的能力,第二個版本比第二個版本更可靠地生成期望的結果。相反的,本揭示內容的系統可以主動發現此種片段,而無需管理員的輸入。
現有分析方法的另一個缺點,是它們需要相對長的時間來收集統計上顯著量的經驗資料。收集資料後,資料科學家需要額外的時間來訓練機器學習模型、從資料中收集見解、並制訂建議。在資料科學家完成其建議之前,時間延遲可能會導致丟棄軟體的用戶失去機會。時間延遲也帶來問題,因為用戶偏好和用戶人口統計可能隨時間而變化。因此,當開發人員根據資料科學家的建議完成軟體更改時,彼等建議可能已經過時。
因此,在時間緊迫的情況下,使用分析資料和機器學習模型的現有方法可能是不適當的。例如,考慮發布新行動應用程式的場景。在發布新的行動應用程式後的頭幾天,喜歡嘗試新應用程式的用戶往往首先下載新應用程式。彼等用戶可能會轉換為此應用程式的經常用戶,或者可能會在首次使用後不久放棄此應用程式。研究表明,新應用程式的長期成功取決於第一組用戶的回應方式。
若第一組用戶中有足夠數量的用戶進行轉換,則應用程式會開始被第二組更廣泛的用戶注意到,該等用戶會從第一組用戶中聽到應用程式(例如,通過部落格、線上評論、口耳相傳等 )。第二組中的用戶決定嘗試應用程式、轉換和傳播有關新應用程式的單詞。當應用程式變得更加被認可和受歡迎時,會出現滾雪球效應,從而導致應用程式的持續長期商業成功。
但是,若第一組中轉換的用戶數量不足,則第二組用戶可能會在聽到來自第一組用戶的否定或不冷不熱的評論後,決定不嘗試此應用程式。在一些情況下,第二組用戶可能根本從未知道此應用程式。負面評論和缺乏受歡迎程度,可能會導致應用程式被推到應用程式商店搜尋結果的底部,從而進一步降低新用戶發現和嘗試應用程式的可能性。新用戶可能會共同選擇嘗試出現在應用程式商店搜尋結果頂部附近的競爭對手應用程式。總之,在第一組中的用戶之間未能實現足夠的轉換率,經常導致應用程式的商業性失敗。
出於這個原因,應用程式發布後的前幾天,是在第一組用戶中實現高轉換率的關鍵時間窗口。但是,由於此關鍵時間窗口通常在應用程式發佈時開始並且僅在幾天後就結束,因此難以收集足夠數量的樣本以使用具有統計顯著性的A/B測試。由於應用程式是新的,因此沒有可用於分析或用於訓練機器學習模型的預先存在的資料。當資料科學家收集到足夠的資料來確定呈現應用程式的幾種替代方式中的哪一種導致轉換率提高時,關鍵的時間窗口 - 以及應用程式實現持續性商業成功的機會 - 可能已經結束。
作為時間至關重要的另一示例,考慮其中軟體供應商想要在現有應用程式的外觀或功能中引入顯著變化的場景(例如藉由添加新按鈕或重新組織圖形用戶介面)。部署更改後,應用程式的現有用戶可能會或可能不會做出正面回應。例如,若更改涉及對現有介面的實質性修改,則更熟悉先前版本的用戶可能會發現介面令人困惑。由於這些變化,彼等用戶可能完全放棄應用程式。由於研究表明吸引新客戶的成本比保留現有客戶的成本高出約400%,因此現有客戶的損失可能對軟體供應商來說成本高昂。收集經驗資料、進行分析以及實施建議所需的時間越長,丟失的現有客戶就越多。
本揭示內容的系統更適合於比起現有分析系統而言時間更為重要的場景。現有的分析系統無法足夠快地提供可據以行動,以便及時進行更改以影響第一組中用戶的回應的見解。相比之下,本文描述的系統可以快速地檢測趨勢並且持續快速地更新用於控制軟體行為的策略,以足以影響第一組中的用戶的回應。
特定而言,本文描述的系統可以自動檢測軟體行為和內容的哪些變體對於在系統主動發現的不同用戶子組(或與軟體互動的其他代理)中實現特定目標是有效的,自動生成規定軟體如何在與每個子組中的代理互動時表現以促進目標實現的策略,並自動部署策略以在軟體中使用,而無需資料科學家或開發人員的干預或分析。一旦部署了策略,本文描述的系統可以應用策略來控制具有接近零潛時的遠端設備處的軟體行為(例如,花費少於100毫秒來完成對遠端設備的決定)。隨著更多的經驗資料變得可用,系統可以定期自動更新策略而無需人為干預,以確保策略快速發展以回應資料中反映的變化趨勢。
管理員定義目標後,管理員可以隨意編輯、調整或重新定義目標。每次編輯目標時,系統都可以不間斷地重複生成、更新和部署策略的程序,而無需人為干預。通常,可以在幾分鐘內完成程序的單次迭代。因此,在時間緊迫的情況下,本文描述的系統可以檢測趨勢,並非常快速地回應於彼等趨勢並回應於目標的改變來更新用於控制軟體行為的策略。
現有分析系統的另一個問題是它們是被動的。換句話說,現有分析系統可以從軟體收集觀察(例如事件的觀察),並將彼等觀察結果轉發給管理員,但是現有分析系統缺乏整合的決策功能,用於對報告觀察結果的軟體進行主動、動態控制。由於沒有決策功能整合到現有分析系統中,因此資料科學家和開發人員必須手動干預,以由分析系統從其收集觀察結果的軟體實現分析系統帶來的好處。特定而言,資料科學家分析資料(例如,藉由訓練機器學習模型)並形成建議。開發人員將基於彼等建議的修改編碼到軟體本身,或使用資料科學家提供的固定模型。如上所述,在進行觀察的時間與調整軟體行為以反映從彼等觀察獲得的見解的時間之間,手動干預步驟可導致顯著延遲。手動干預還使現有解決方案更複雜、效率更低、可擴展性更低。此外,人工干預非常容易出錯。
然而,阻礙將決策功能與分析系統整合的一個障礙是潛時(latency)。相對於運行軟體的設備而言分析系統通常是遠程的,分析系統從此軟體接收觀察資料。此軟體經由網路(例如網際網路)將彼等觀察結果報告給分析系統。若分析系統僅僅從軟體接收觀察結果,則網路潛時不太可能影響與軟體互動的用戶的體驗品質(QoE)。但是,若軟體依賴於分析系統來決定軟體回應事件而執行的操作,則軟體可能有義務經由網路向分析系統發送決策請求,並在操作完成之前等待分析系統的回應。在軟體執行操作之前,網路潛時可能會導致明顯的延遲,從而導致用戶的QoE降低。
本文描述的系統在單個系統中整合自動決策功能和分析功能,並且消除了對手動干預以實現從收集資料的軟體中的分析資料中獲益的需要。此外,本揭示內容提供了可用於實現所描述的系統的基礎設施設置的若干不同示例。該等基礎設施設置允許決策功能以接近零的潛時運行。
現有的分析系統也缺乏管理員定義自定義度量和自定義目標的方式,該等自定義目標是彼等自定義度量的多變量函數。相比之下,本文描述的系統允許管理員定義自定義度量和作為彼等度量的函數的自定義目標。此外,這裡描述的系統允許管理員將自定義度量的危險等級和目標等級整合到自定義目標定義中,並根據自定義目標生成管理軟體行為的策略。
圖1a示出了根據一個具體實施例的本揭示內容的系統可以在其中操作的第一示例計算環境100a。如圖所示,計算環境100a包括後端系統120、在專用網路102中執行的決策代理110、專用網路102中的網頁伺服器114、以及端點設備130。在一個具體實施例中,後端系統120是分佈式雲端計算系統。端點設備130可以表示任何類型的客戶端端點設備,諸如行動電話、膝上型電腦、桌上型電腦、平板電腦、或物聯網(IoT)設備。專用網路102可以是企業專用網路(EPN)、區域網路(LAN)、校園區域網路(CAN)、虛擬專用網路(VPN)、或一些其他類型的專用網路。
伺服器側應用程式116表示在網頁伺服器114上執行的軟體應用程式。伺服器側應用程式116包括特定於一種程式語言的精簡客戶端117。精簡客戶端117藉由在決策代理110和伺服器側應用程式116之間包裝應用程式程式介面(API)通信,來允許伺服器側應用程式116與決策代理110通信。精簡客戶端117包括用於經由專用網路連結103向決策代理110報告時間序列事件資料和其他使用資料的碼。儘管圖1a中示出了伺服器側應用程式116的僅一個實例和僅一個精簡客戶端117,但是本領域技術人員將理解到,由網頁伺服器114表示的額外伺服器可以分別具有與精簡客戶端117不同的版本,對於不同的程式語言。
客戶端側應用程式135表示在端點設備130上執行的軟體應用程式。客戶端側應用程式135包括用於經由網路連結106、負載平衡器115和網路連結104,向後端系統120報告時間序列事件資料和其他使用資料的碼。客戶端側應用程式135包括單片客戶端131,單片客戶端131可以在本地做出決定而無需來自決策代理110的輸入。單片客戶端131允許客戶端側應用程式135與決策代理110通信,以將時間序列資料報告給後端系統120。儘管圖1a中示出了客戶端側應用程式135的僅一個實例和僅一個單片客戶端131,但是本領域技術人員將理解,由端點設備130表示的額外端點設備可以分別具有特定於額外端點設備的類型的單片客戶端131的版本。
報告給後端系統120的時間序列事件資料,可以包括在伺服器側應用程式116和客戶端側應用程式135與顧客互動時發生的事件的描述,以及指示何時發生所描述的事件的時間戳。顧客可以經由在端點設備180上執行的瀏覽器181,存取伺服器側應用程式116。根據伺服器側應用程式116和客戶端側應用程式135的性質,可能發生許多不同類型的事件。例如,可以記錄文件物件模型(DOM)事件,諸如滑鼠事件、觸控事件、鍵盤事件、表單事件和視窗事件。在其他示例中,可以檢測和報告其他類型的事件。
一些事件類型觸發來自伺服器側應用程式116(或客戶端側應用程式135)的回應。例如,若用戶點擊伺服器側應用程式116(或客戶端側應用程式135)的頁面或螢幕上顯示的「下一個」按鈕,則伺服器側應用程式116(或客戶端側應用程式135)可以藉由導航到伺服器側應用程式116(或客戶端側應用程式135)的後續頁面或螢幕來回應。在本文中稱為「顧客」的用戶可以是人(例如經由瀏覽器存取伺服器側應用程式116或直接存取客戶端側應用程式135)或另一軟體。
一些事件類型可以指定為決策點事件類型。決策點事件觸發來自伺服器側應用程式116(或客戶端側應用程式135)的回應,但是伺服器側應用程式116(或客戶端側應用程式135)對決策點事件的回應不需要被事先確定性地決定。相反的,當在伺服器側應用程式116處檢測到決策點事件時,伺服器側應用程式116經由精簡客戶端117向決策代理110發送決策請求。作為回應,決策代理110基於控制策略111a或優化策略111b(如下面更詳細描述的)選擇伺服器側應用程式116執行的一個或多個操作,並發送一個或多個所選擇的操作的指示到伺服器側應用程式116。伺服器側應用程式116回應於決策點事件執行所選擇的操作。
當在客戶端側應用程式135處檢測到決策點事件時,單片客戶端131基於控制策略132(控制策略111a的本地副本)或優化策略133(優化策略111b的本地副本)來選擇客戶端側應用程式135執行的一個或多個操作。客戶端側應用程式135回應於決策點事件執行所選擇的操作。
在描述諸如策略生成器124和會話122之類的其他元素之後,下面更詳細地論述決策代理110和單片客戶端135操作的方式以及生成優化策略111b的方式。決策代理110將決策類型事件和回應於彼等決策點事件而執行的操作報告給後端系統120。決策代理110還具有重放隊列,以在網路連結不可用時保持請求,並且在網路連結可用時就發送請求。
在後端系統120中,由決策代理110報告的資料被組織成會話122並存儲在持續性資料儲存庫121中。每個會話122映射到伺服器側應用程式116及(或)客戶端側應用程式135的特定顧客。每次顧客登錄到伺服器側應用程式116或客戶端側應用程式135時,描述顧客與伺服器側應用程式116或客戶端側應用程式135的互動的時間序列事件資料(例如包括指示何時發生每個事件的時間戳)被存儲在與顧客相對應的會話中。因此,若顧客登錄到伺服器側應用程式116,則顧客與伺服器側應用程式116的互動(例如,時間序列事件資料)被記錄在與此顧客相對應的會話中。若相同的顧客也登錄到端點設備130上的客戶端側應用程式135,則顧客與客戶端側應用程式135的互動也被記錄在與顧客相對應的會話中。因此,可以跨多個不同設備收集每個會話122中的資料,顧客從該等設備存取伺服器側應用程式116或客戶端側應用程式135。
另外,每個會話122具有明確的開始時間(例如,表示顧客何時創建伺服器側應用程式116和客戶端側應用程式135的登錄帳戶的時間戳)。然而,與傳統分析系統中使用的會話不同,會話122不受限於明確的結束時間。傳統分析系統使用的會話,通常在30分鐘不活動後結束(或者最多為一天,不管活動如何)。相反的,會話122可以包括在數天、數週、數月、數年或甚至更長時間(依所需)內收集的資料。任何會話122都不需要會話結束事件,因為本文定義的會話不必具有結束時間。缺少所需的結束時間約束,使得會話122適合於經由「實時」度量進行資料分析(例如,如關於圖7更詳細地解釋的)。
當管理員想要分析會話122中的資料時,管理員可以藉由經由介面部件127提供度量/目標定義128開始。度量定義是邏輯或數學表達式,其包括一個或多個參數,參數的值可以基於會話122中包含的資料來確定。當使用特定會話(或會話組)的參數(即實際參數)評估定義特定度量的表達式時,輸出是此會話(或會話組)的度量值。當然,預先存在的共同或預設度量定義也可以被包括在度量/目標定義128中,使得管理員不必重新創建由其他人創建的定義。
對於每個會話122,度量跟蹤器125計算在度量/目標定義128中定義的每個度量的值。度量跟蹤器125將計算的值索引並存儲在分析資料庫123中。除了度量的值之外,度量跟蹤器125還可以計算會話122的其他特徵,並將彼等特徵以展平的索引格式存儲在分析資料庫123中。
目標定義包括使用所選度量作為參數的邏輯或數學表達式。如上所述,可以基於會話122中包含的資料來確定彼等度量的值。目標定義對每個選定的度量指定優化方向。度量的優化方向指示管理員希望度量值增加或減少。例如,目標定義可以指示管理員希望諸如「總收入」的度量增加。另一方面,目標定義可以指示管理員希望諸如「流失率」的度量減小。
目標定義還可以包括一個或多個所選度量的危險條件。若度量的優化方向是向上的(即,管理員希望度量增加),則危險條件指定度量的閾值最小級別。若度量的值低於閾值最小級別,則決策代理110可以恢復到預設決策方法(例如,如包含在控制策略111a中)。相反的,若度量的優化方向是向下的(即,管理員希望度量減少),則危險條件指定度量的閾值最大級別。若度量的值下降超過閾值最大級別,則決策代理110可以恢復到預設決策方法(例如,如包含在控制策略111a中)。當不滿足危險條件時恢復到預設方法,可以作為安全措施(例如,若優化策略111b由於某種原因暫時執行不良)。
目標定義還可以包括一個或多個所選度量的目標條件。若度量的優化方向是向上的(即,管理員希望度量增加),則目標條件指定度量的目標級別,使得超出目標級別的度量的增加對管理員而言不具有價值。若度量的優化方向是向下的(即,管理員希望度量減少),則目標條件指定度量的目標級別,使得超出目標級別的度量的減少對管理員而言不具有價值。管理員可以使用目標條件來指定度量的邊際效用漸近減少的點。
此外,目標定義可以指定所選度量的優先級順序。優先級順序按照管理員的重要性順序對所選度量進行排名。若會話122中的時間序列 - 資料表明在所選擇的兩個度量之間存在折衷關係(例如,當具有相同優化方向的兩個度量被反向相關時,或者當關於這兩個度量達到帕累托(Pareto)邊界的邊緣時),優先級順序確定兩個度量中的哪一個優先用於策略生成。
有許多方法可以將優先級順序合併到表示目標定義的表達式中。在一個示例中,假設目標定義是函數GM1
, M2
, ..., Mn
,當使用n個度量值M1
, M2
, ..., Mn
(其中n是正整數)進行評估時,輸出目標分數。還假設每個度量的優先級順序的位置與度量的下標匹配(即,M1
具有第一優先級,M2
具有第二優先級,Mn
具有最後優先級等)。在此示例中,目標分數可以定義為:
其中Wi 是第i個度量Mi 的權重構造。還假設Bi 是布林(Boolean)值,若滿足Mi 的危險條件則等於1,否則為0。此外,假設Ti 是布林值,若滿足Mi 的目標條件則等於1,否則為0。還假設若Ti = 1,則Bi = 1。還假設βi 是Mi 的危險等級,τi 是Mi 的目標等級,且βi ≠τi 。另外,假設j是正整數,使得j <i. 在此示例中,為了將優先級順序合併到目標定義中,可以按以下方式定義權重構造Wi :
其中Wi 是第i個度量Mi 的權重構造。還假設Bi 是布林(Boolean)值,若滿足Mi 的危險條件則等於1,否則為0。此外,假設Ti 是布林值,若滿足Mi 的目標條件則等於1,否則為0。還假設若Ti = 1,則Bi = 1。還假設βi 是Mi 的危險等級,τi 是Mi 的目標等級,且βi ≠τi 。另外,假設j是正整數,使得j <i. 在此示例中,為了將優先級順序合併到目標定義中,可以按以下方式定義權重構造Wi :
注意到,權重構造Wi
可以由其他方式定義而不脫離本揭示內容的範圍,特別是在不是每個度量都具有目標等級的情況下。無論如何定義權重構造,權重構造基於具有較高優先級的度量是否滿足相應的危險條件,並且基於度量是否滿足相應的目標條件,來調整每個度量對目標分數的貢獻。
一旦建立了度量/目標定義128,策略生成器124就創建一組訓練資料,用於訓練機器學習模型。訓練資料包括對應於記錄在會話122中的決策點事件的訓練實例。對於對應於特定決策點事件的訓練實例,策略生成器124基於會話容器中的整個時間序列資料組確定所選度量(以及可選地,目標分數)的值,在會話容器中記錄決策點事件 - 包括描述在決策點事件之後發生的事件的資料。會話容器的所選度量(和目標分數)的確定值,用作訓練實例的標籤。訓練實例的輸入特徵,包括決策點事件的類型和回應決策點事件而執行的操作。還可以為訓練實例確定額外輸入特徵。但是,與所選度量的值不同,額外特徵僅基於在決策點事件之前而不是在之後發生的會話容器中記錄的事件來確定。這是為了確保機器學習模型將被訓練以預測所選度量(或目標分數)的值,而不需要當彼等未來的決策點事件發生時可能無法使用的資訊,若回應相同類型的未來決策點事件執行操作將生成該等所選度量(或目標分數)的值。
額外特徵可以包括關於記錄在會話容器中的先前決策點事件的細節,諸如先前決策點事件的類型、回應於先前決策點事件而採取的操作、以及先前事件的時間戳和對應於訓練實例的決策點事件的時間戳之間的差異。這是為了確保機器學習模型將具有足夠的資訊來擷取決策點事件序列之間的依賴關係、回應彼等事件所採取的操作、以及所選度量(或目標分數)的值。
一旦策略生成器124創建了此組訓練資料,策略生成器124就在此組訓練資料上訓練機器學習模型。在訓練過程中,機器學習模型「學習」邏輯,此邏輯指定輸入特徵與所選度量(或目標分數)之間的關係。策略生成器124還可以使用此邏輯來量化所選度量之間的權衡關係。在確定權衡關係時,策略生成器124可以確定相對於度量的帕累托邊界的組成(即多度量空間中的邊界,超過此邊界,一個度量的值不能在針對此度量的優化方向上增加而不對另一個度量的值生成負面影響)。
基於機器學習模型學習的邏輯,策略生成器124生成優化策略111b。優化策略111b識別當回應於會話中的決策點事件而執行時,最有可能(根據機器學習模型基於訓練資料學習的邏輯)來改善對於會話(給定會話包含的時間序列資料)的目標分數的操作。
控制策略111a(「控制」而不是「實驗」或「優化」)還識別回應於決策點事件而要執行的操作,但是控制策略111a不使用由機器學習模型學習的邏輯。相反的,控制策略111a可以定義要回應於決策點事件而執行的預設操作。(在其他具體實施例中,控制策略111a可以隨機地或根據管理員想要與優化策略111b進行比較的一些其他方法來選擇操作)。應用控制策略111a以確定回應於決策點事件的操作的會話,作為會話的控制組。可以將控制組的度量值或目標分數的分佈,與應用優化策略111b的優化會話組的度量值或目標分數的分佈進行比較。
管理員可以將會話122(及(或)相應的顧客)的百分比,分配給優化策略111b和控制策略111a,以分別定義控制組和優化組。在一個具體實施例中,管理員經由介面部件127指定百分比。一旦分配了百分比,就可以生成優化策略111b。
後端系統120經由網路連結101將優化策略111b和控制策略111a部署到決策代理110。決策代理110是在專用網路102內的硬體上執行的軟體模組。決策代理110在其上執行的硬體,包括至少一個或多個處理器和記憶體,並且可以分佈在專用網路102中的若干不同伺服器、機架或其他實體位置上。後端系統120還將優化策略111b和控制策略111a部署到單片客戶端131(例如,直接地或經由決策代理110),其中優化策略111b被本地存儲為優化策略133且控制策略111a被本地存儲為控制策略132。
使決策代理110駐留在專用網路102中而不是後端系統120中的一個優點,是決策代理110和網頁伺服器114之間將存在較低的潛時。當經由精簡客戶端117向伺服器側應用程式116提供決策功能時,這生成較低的潛時。此外,在一些具體實施例中,客戶端側應用程式135運行的端點設備,也可以被包括在專用網路102中。例如,若專用網路102是大公司的企業網路,則公司可以在專用網路102內的硬體上執行決策代理110,以向在專用網路102內的計算設備上運行的企業應用程式的伺服器側版本和客戶端版本提供低潛時決策功能。
一旦決策代理110接收到優化策略111b和控制策略111a,決策代理110就準備好向網頁伺服器114提供決策功能。當在伺服器側應用程式116處檢測到決策點事件時,精簡客戶端117經由網路連結103向決策代理110發送決策請求。在一個具體實施例中,決策請求是API訊息,API訊息包括登錄到伺服器側應用程式116的顧客的識別符。決策請求還指示決策點事件的類型,以使請求的決策類型明確。例如,對於一些類型的決策點事件,決策請求可以要求向從較大的候選項目組中選擇的顧客推薦的項目列表。對於其他類型的決策點事件,決策請求可以要求從一組數個候選內容項(例如背景顏色、字體顏色、字體類型、CSS檔案、圖像、視頻、工具欄、產品說明和幻燈片)選擇單個內容項呈現給顧客。對於其他類型的決策點事件,決策請求可以要求選擇一些其他類型的操作或操作列表,以回應於決策點事件而執行。
決策代理110包括內存資料庫112。在一個具體實施例中,內存資料庫112完全或部分地包含在隨機存取記憶體(RAM)或快取記憶體中(儘管可以在替代性具體實施例中使用儲存器)。內存資料庫112存儲活動會話113。在一個具體實施例中,用詞「活動會話」指的是其中最新記錄的事件發生的時間小於閾值時間量的會話。將活動會話存儲在記憶體中可減少決策任務的潛時,並促進跨不同平台的會話狀態同步。活動會話113是會話122的子集,因此活動會話113存儲在持續性資料儲存庫121和內存資料庫112中。
決策代理110識別與顧客ID相關聯的會話(來自活動會話113),並從內存資料庫112中檢索包含在會話中的時間序列資料。將活動會話113存儲在內存資料庫112中的一個優點是潛時減少,因為可以從內存資料庫112中相對快速地獲取時間序列資料,而不需要在專用網路102外部進行通信。若在活動會話113中沒有找到與顧客ID相關聯的會話,則決策代理110可以從可選持續性資料庫118中檢索包含在會話中的時間序列資料,持續性資料庫118可連接到專用網路102內的決策代理110。在極少數情況下,時間序列資料可能不存在於活動會話113或持續性資料庫118中。在此種情況下,決策代理110可以經由網路連結101從持續性資料儲存庫121檢索包含在會話中的時間序列資料。注意到,一些具體實施例不必包括持續性資料庫118。
一旦檢索到來自與顧客ID相關聯的會話的時間序列資料,決策代理110可以首先確定對於相同類型的決策點事件的決策請求是否先前已經發生在閾值量的時間內,藉由檢查與對於相同類型的先前決策點事件的顧客ID相關聯的會話中的時間序列資料。此閾值時間量用作回應於先前決策點事件而做出的決定的生存時間(TTL)。若先前在決策TTL內發生了相同類型的決策點事件,則決策代理110選擇回應於相同類型的先前決策點事件而執行的相同操作,以確保顧客對於此決策點事件的一致體驗。
否則,決策代理110確定是應用控制策略111a還是優化策略111b。例如,決策代理110可以將顧客ID(或會話的另一個識別符)輸入到隨機分配適用策略的散列函數中。若分配了控制策略111a,則決策代理110基於控制策略111a選擇應用程式實例131a執行的一個或多個操作。若分配了優化策略111b,則決策代理110將時間序列資料和決策點事件的類型與優化策略111b進行比較。基於此比較,決策代理110為應用程式實例131a選擇一個或多個操作,以回應於決策點事件而執行。例如,若經由特徵的函數(例如,訓練集中的訓練實例的輸入特徵)來表示優化策略111b,則決策代理110基於時間序列資料計算彼等特徵的值,並評估使用該等值作為輸入的函數。
接下來,決策代理110經由網路連結103向精簡客戶端117發送指示一個或多個所選操作的回應訊息。在經由精簡客戶端117接收到回應訊息時,伺服器側應用程式116執行一個或多個所選操作,並經由精簡客戶端117向決策代理110報告執行。
決策代理110更新對於活動會話113中的顧客的會話,以反映決策點事件的發生和所選操作的執行。決策代理110還向後端系統120發信號,以更新在會話122中找到的會話的副本。
隨後,當顧客在端點設備130上登錄到客戶端側應用程式135時,單片客戶端131在會話134中記錄登錄事件的描述。會話134是與顧客相關聯的會話的本地存儲副本。單片客戶端131可以藉由以預定義或可變速率輪詢決策代理110,來使會話134與活動會話113和會話122中與顧客相關聯的會話保持同步。然而,若顧客先前沒有在端點設備130處登錄到客戶端側應用程式135,或者顧客在最後一次在端點設備130處登錄之後從不同的設備登錄,則會話134可能尚未與會話122中與顧客相關聯的會話同步。因此,可能先前記錄了與尚未添加到會話134的顧客相關聯的時間序列資料。
為此,單片客戶端131向決策代理110發送訊息,以報告登錄事件並請求先前記錄的與活動會話113、持續性資料庫118、或會話122中的顧客的顧客ID相關聯的時間序列資料。若先前記錄的與顧客ID相關聯的時間序列資料當前存儲在活動會話113中,則決策代理110回應於此請求立即將時間序列資料發送到單片客戶端131。否則,決策代理110嘗試從持續性資料庫118檢索時間序列資料。若先前記錄的時間序列資料在活動會話113或持續性資料庫118中不可用,則決策代理110從後端系統120請求先前記錄的時間序列資料。後端系統120從持續性資料儲存庫121中的會話122檢索先前記錄的時間序列資料,並將先前記錄的時間序列資料發送到決策代理110。決策代理110將先前記錄的時間序列資料複製到內存資料庫112的活動會話113中,並將先前記錄的時間序列資料發送到單片客戶端131。單片客戶端131將先前記錄的時間序列資料添加到會話134。
當在客戶端側應用程式135處檢測到決策點事件時,單片客戶端131可以首先藉由檢查與對於相同類型的先前決策點事件的顧客ID相關聯的會話中的時間序列資料,來確定在決策TTL內是否先前發生了對相同類型的決策點事件的決策請求。若先前在決策TTL內發生了相同類型的決策點事件,則單片客戶端131可選擇回應於相同類型的先前決策點事件而執行的相同操作,以確保顧客對於此決策點事件的一致體驗。否則,單片客戶端131確定是應用控制策略132還是優化策略133。例如,單片客戶端131可以將顧客ID(或會話134的另一個識別符)輸入到隨機分配適用策略的散列函數中。若分配了控制策略132,則單片客戶端131基於控制策略132選擇要執行的一個或多個操作。若分配了優化策略133,則單片客戶端131將會話134中的時間序列資料和決策點事件的類型與優化策略133進行比較。基於此比較,單片客戶端131為客戶端側應用程式135選擇一個或多個操作,以回應於決策點事件而執行。例如,若經由特徵的函數(例如,訓練組中的訓練實例的輸入特徵)來表示優化策略133,則單片客戶端131基於時間序列資料計算彼等特徵的值,並評估使用該等值作為輸入的函數。
在一些情況下,單片客戶端131可能不會在決策點事件發生之前或之後不久時,從決策代理110接收先前記錄的時間序列資料。為了確保顧客的QoE不受影響,單片客戶端131可以在確定自發送請求先前記錄的時間序列資料的訊息以來已經過預定量的時間,並且未接收到對此請求的回應時,在接收來自決策代理110的回應之前進行將會話134中的時間序列資料和決策點事件的類型與優化策略133進行比較。類似地,若單片客戶端131確定可以聯繫決策代理110的網路連結不可用,則單片客戶端131可以進行將會話134中的時間序列資料和決策點事件的類型與優化策略133進行比較。此備用作法確保單片客戶端131的決策功能對於網路延遲或伺服器延遲是強健的。單片客戶端131還可以將先前記錄的時間序列資料的任何未發送的輪詢請求存儲在重放隊列中,並且一旦到決策代理110的網路連結變為可用,就發送重放隊列中的任何請求。
接下來,客戶端側應用程式135執行一個或多個所選操作,並經由單片客戶端131向決策代理110報告執行。決策代理110更新對於活動會話113中的顧客的會話,以反映決策點事件的發生和所選操作的執行。決策代理110還向後端系統120發信號,以更新與在會話122中找到的顧客ID相關聯的會話的副本。
因此,儘管伺服器側應用程式116和客戶端側應用程式135可以在使用不同平台(例如不同作業系統)的機器上執行,但是精簡客戶端117和單片客戶端131決策代理110做出可用於兩個平台的基於策略的決策功能。
隨著新的時間序列資料在會話122中變得可用,策略生成器124基於新的時間序列資料創建更新的訓練資料組。更新的訓練資料組包括在創建前一組訓練資料之後發生的決策點事件的訓練實例。
另外,由於自創建前一組訓練資料以來會話的度量值和目標分數可能已經改變,因此一些決策點的訓練實例的標籤在更新的組中可能是不同的。例如,假設在生成第一組訓練資料之前在會話中記錄了特定的決策點事件。還假設當時「購買 - 美元 - 總計」度量的值為零(意味著與會話相關聯的顧客尚未通過軟體應用程式購買任何東西)。表示第一組訓練資料中的決策點事件的訓練實例對於「收入支付」度量將具有零標籤。但是,在生成第一組訓練資料後,假定顧客透過軟體應用程式以50美元購買了一些東西。購買將被記錄為會話中的事件。隨後,當生成更新的訓練資料組時,對應於決策點事件的更新訓練實例的標籤將是50。但是,更新的訓練實例的輸入特征將保持不變,因為購買發生在決策點事件和回應決策點事件後執行的操作之後。
一旦策略生成器124創建了更新的訓練資料組,策略生成器124就在更新的集合上訓練更新的機器學習模型。基於由更新的機器學習模型學習的邏輯,策略生成器124生成優化策略111b的更新版本。策略生成器124還可以自動將更新後的版本部署到決策代理110和單片客戶端131。
策略生成器124可以繼續創建更新的訓練組、生成更新的機器學習模型、以及生成(和部署)優化策略111b的更新版本,而無需管理員的任何干預。可以基於會話122中的資料改變的速度,在後端系統120中動態地確定部署更新策略的間隔。例如,若自從上次部署策略以來在閾值數量的會話122中記錄了少於閾值數量的事件,則策略生成器124可以等待直到滿足閾值,隨後再生成優化策略111b的更新版本。另一方面,若自上次部署策略以來僅僅幾分鐘甚至幾秒就滿足閾值,則策略生成器124可以進行生成優化策略111b的更新版本而沒有延遲。(或者,在一些具體實施例中,可以固定部署更新的策略的間隔)。這允許優化策略111b基於新時間序列資料中反映的新趨勢快速演進。每當管理員修改度量/目標定義128時,策略生成器124還可以生成優化策略111b的更新版本。
在一個具體實施例中,介面部件127可以生成總結會話122的平均度量值和目標分數的圖形圖和其他報告。在一個示例中,可以以下面的方式生成繪圖。首先,會話122被分組為箱。每個箱對應於具有明確的開始時間和結束時間的相應時間間隔。在一些具體實施例中,箱可以是相互不重疊的。根據會話的開始時間將每個會話分組到一個箱中(即,會話被分組到其對應的時間間隔包含開始時間的箱中)。但是,會話122不需要具有明確的結束時間,並且基於會話122中的所有資料計算度量 - 甚至是描述在會話122被分組到的箱的結束時間之後發生的事件的資料。因此,箱中會話的平均度量值可以反映在箱的結束時間之後發生的事件。當用新的時間序列資料連續更新箱中的會話時,即使在對應於箱的時間間隔的結束時間之後,也可以以實時方式更新箱中的會話的平均度量值。
為了生成繪圖,可以沿著第一軸循序地佈置箱,其中在箱中(並且因此由時間)量測單位。第二軸可以相對於第一軸橫向。第二軸的單位可以是用於量測所選度量(或目標分數)的單位。可以針對箱繪製箱中會話的所選度量(或目標分數)的平均值(例如平均值、中位數、模式、百分位數等)。特定而言,若優化策略111b應用於箱中的第一組會話,且控制策略111a應用於同一箱中的第二組會話,則可以據此繪製和標記第一組和第二組兩者的平均值。
如上所述,當用新的時間序列資料更新會話122時,更新所選度量的平均值。相應的,平均值的圖也被更新以反映更新的平均值,即使對應於箱的時間間隔保持不變。由於對應於箱的時間間隔和會話122的開始時間不改變,因此分組到每個箱中的會話保持一致,而不管圖的更新次數。
介面部件127還可以向管理員提供若干不同類型的預覽功能和一鍵式策略購買選項。特定而言,介面部件可以預覽使用在不同長度的時間段上收集的資料生成的候選策略的執行、預覽手動定義的自定義策略的執行、以及預覽具有不同度量優先級的策略的執行(例如,位於帕累托邊界的邊緣,此邊緣定義了度量之間的權衡)。
為了預覽在不同長度的時間段上生成的策略的執行,策略生成器124可以藉由基於不同時間段生成若干候選策略來開始。每個候選策略包括來自機器學習模型的邏輯,係使用從對應於候選策略的相應時間段期間開始的會話導出的訓練資料來訓練此機器學習模型。第一候選策略的時間段可以被包含在第二候選策略的時間段中,而第二策略的時間段可以被包含在第三候選策略的時間段中,以此類推。例如,策略生成器124可以基於機器學習模型創建第一候選策略,係使用與在前一天內開始的會話相對應的訓練實例來訓練此機器學習模型。策略生成器124可以基於前一周創建第二候選策略、基於前一個月創建第三候選策略,以此類推。
一旦生成了候選策略,若候選策略已經在對應於候選策略的時間段期間被應用,則度量跟蹤器125可以估計每個候選策略將實現的所選度量(或目標分數)的平均值(例如,經由交叉折疊驗證(cross-fold validation)或保持組(holdout set))。接下來,度量跟蹤器可以確定每個候選策略的估計平均值與控制策略111a在對應於控制策略的時間段內實現的平均值之間的估計差異。度量跟蹤器125還可以確定每個候選策略的估計差異的信心等級。一般而言,信心等級隨著與候選策略對應的時間段的長度增加而增加。因此,第三候選策略的信心等級將高於第二候選策略的信心等級,且第二策略的信心等級將高於第三策略的信心等級。此外,隨著時間段的長度增加,相應候選策略所基於的訓練資料量通常增加。更多的訓練資料不僅可以提高信心,還可以提供更準確的機器學習模型(以及更準確的策略)。結果,候選策略的估計差異通常隨著相應時間段的長度增加而增加。因此,第三候選者的估計差異可能高於第二候選策略的估計差異,而第二候選者的估計差異可能高於第三候選策略的估計差異。
一旦計算出估計差異和信心等級,介面部件127就向管理員呈現候選策略的估計差異和信心等級。此外,介面部件還計算並呈現每個候選策略的價格。每個候選策略的價格可以藉由候選策略的估計差異及(或)信心等級的函數來確定。在一個具體實施例中,價格隨著估計差異及(或)信心等級的增加而增加。因此,第三候選策略可能具有比第二候選策略更高的價格,而第二候選策略可能具有比第一候選策略更高的價格。介面部件127可以向管理員呈現每個候選策略的按鈕。藉由點擊特定候選策略的按鈕,管理員可以購買相關價格的候選策略。當點擊按鈕時,介面部件127向策略生成器124發信號通知將候選策略部署到決策代理110,作為對優化策略110b的更新。
為了預覽(完全或部分)手動定義的自定義策略的執行,管理員可以透過介面部件127手動定義自定義策略。此種人為引導的自定義策略可用於許多目的。例如,假設管理員希望執行健全性檢查(sanity check),以驗證度量跟蹤器125中的源碼正在正確地計算執行度量(即,沒有明顯的算術錯誤,沒有超過理論限制的值等等)。在此示例中,管理員可以手動定義預先獨立計算給定時間段內的資料的度量值的策略,向用戶提示介面部件127以使用相同的時間段預覽策略的執行,並比較預覽輸出與預先計算的值。管理員可能還希望出於其他原因(例如A/B測試)預覽自定義策略。
預覽功能還可以預覽基於調整的目標定義自動生成的候選策略的執行。調整後的目標定義的優先級,可能與管理員的初始目標定義略有不同。此種自動生成的候選策略在一些情況下可能是有用的。例如,假設管理員提供了初始目標定義,此定義指定了多個度量的危險條件。在一些情況下,在策略生成器124基於初始目標定義生成決策策略之後,度量跟蹤器125可以發現此策略在應用於大量會話時按平均計算不能滿足至少一個危險條件。
在一些情況下,這種失敗可能是由於指定危險條件的兩個(或更多)度量之間的不利相關性。例如,假設第一度量和第二度量正相關。再假設第一度量的優化方向是向上的,但第二度量的優化方向是向下的。在此示例中,第一度量和第二度量之間的正相關是不利的,因為這導致第一度量和第二度量之間的權衡關係。度量定義中引用的度量之間可能存在其他不利的相關性。一般而言,若兩個度量的優化方向相反,則兩個度量之間的正相關是不利的。相反的,兩個度量的優化方向相同,則兩個度量之間的負相關是不利的。
度量之間的此種不利相關性,可能使得創建能夠平均滿足初始目標定義中指定的所有危險條件的策略變得不切實際。(正式來說,可能存在定義度量之間權衡的帕累托邊界,且初始目標定義中指定的危險條件的組合可能超出帕累托邊界。)但是,當度量之間存在此種不利的相關性時,仍可能創建滿足初始目標定義的至少一些危險條件的候選替代策略。例如,若放鬆了至少一個危險條件(亦即調整為更容易滿足),則平均來說策略生成器124可能能夠生成滿足放寬危險條件和最初指定的其他危險條件的候選策略。若度量的優化方向是向上的,則可以藉由降低危險條件指定的危險等級來放寬此度量的危險條件。另一方面,若度量的優化方向是向下的,則可以藉由增加危險條件指定的危險等級來放寬此度量的危險條件。
當度量跟蹤器125檢測到生成的策略未能滿足初始目標定義中指定的至少一個危險條件時,策略生成器124可以創建若干不同的替代目標定義。例如,若存在n個危險條件(n是大於零的整數),則策略生成器124可以創建n個替代目標定義。每個替代目標定義可以包括一個放寬的危險條件,但包括最初目標定義中最初指定的其他n-1個危險條件。
接下來,策略生成器124可以基於每個替代目標定義生成對應的候選策略,並且預覽若在特定時間段期間(諸如在應用基於初始目標定義的原始策略的時間段)應用,則每個候選策略將如何執行。介面部件127可以向管理員呈現候選策略的預覽執行和對應的替代目標定義的描述。這樣就不需要管理員手動嘗試不同的目標定義來查找策略平均可以滿足的目標定義。
再次說明,介面部件127可以向管理員呈現每個候選策略的按鈕。藉由點擊特定候選策略的按鈕,管理員可以購買相關價格的候選策略。當點擊按鈕時,介面部件127向策略生成器124發信號通知將候選策略部署到決策代理110,作為對優化策略110b的更新。
另外,片段發現部件126可以確定被稱為片段的會話122(或對應的顧客)的子集的所選度量的平均值。在分析欄位中,片段包括一個或多個非破壞性過濾器(即,不改變過濾器所應用的資料的過濾器)與會話122中的時間序列資料及(或)從中導出的分析資料庫123中的資料。若果管理員希望查看特定片段的平均度量,則管理員可以藉由指定經由介面部件127定義片段的過濾器來手動定義片段。另外,與現有分析系統不同,片段發現部件126提供用於在沒有來自用戶的任何干預的情況下主動發現事件中的感興趣片段和循序模式的功能。
片段發現部件126可以根據決策點事件是否已被整合到會話122中來以不同方式操作。為了在整合決策點事件(即,預決策案例)之前發現感興趣的片段,片段發現部件126計算會話122(或其中的一部分)的所選度量(或目標分數)的總體(例如,全域)平均值。
接下來,片段發現部件126搜索可能片段的空間。可能的片段的數量是指數級的,因此窮舉搜索所有可能片段的空間在計算上可能是不切實際的。因此,片段發現部件126可以執行基於啟發式的搜索或基於模型的搜索(例如,如關於圖7更詳細地描述的)。
對於在搜索中分析的每個片段,片段發現部件126確定片段的所選度量的平均值。若片段的所選度量的平均值中的至少一個與所選度量的總體平均值相差超過閾值量,則片段發現部件126將此片段添加到感興趣的片段列表。介面部件127可以將片段呈現給管理員(例如藉由示出片段包括的過濾器,並且示出片段的平均值與總體平均值之間的差異)。
藉由自動發現感興趣的片段,片段發現部件126可以幫助管理員識別有意義的模式,該等模式反映顧客在不同情況下如何回應軟體應用程式(例如伺服器側應用程式116或客戶端側應用程式135)。例如,假設其中用戶設備正在運行特定作業系統的片段,具有對於特定度量的較差平均值。管理員可能能夠推斷出軟體應用程式對於作業系統具有先前未發現的兼容性問題。以這種方式,當介面部件127向管理員通知感興趣的片段時,管理員可以在檢查片段的過濾器時推斷可操作的見解。
特定而言,在決策前情況下發現的片段,可以幫助管理員確定應該在何處以及如何整合決策點事件。例如,當看到特定片段中的顧客對特定操作的回應很差時,管理員整合決策點事件類型,此類型使得能夠基於上下文執行替代操作以代替特定操作。
在以這種方式(即,在決策後情況下)整合決策點事件類型之後,片段發現部件126可以以不同的方式操作。特定而言,一旦整合了決策點事件類型,策略生成器124就可以配置優化策略111b以利用決策點事件,來改進伺服器側應用程式116和客戶端側應用程式135相對於度量/目標定義128的執行方式。
接下來,度量跟蹤器125可以在逐片段基礎上,確定優化組的度量值(例如,應用優化策略111b的會話)和控制組的度量值(例如,應用控制策略111a的會話)。介面部件127允許管理員選擇片段,並查看將優化組的度量值與所選片段內的控制組的度量值進行比較。若比較結果顯示片段內兩個組的度量值的差異很大,則管理員可以得出結論:將優化策略111b應用於決策點事件類型的事件對於改進此片段內的度量值是有效的。另一方面,若比較結果顯示片段內兩個組的度量值的差異微小,則管理員可以得出結論:回應於該等事件的可用替代操作對於此片段中的度量值都沒有顯著影響。
圖1b示出了根據一個具體實施例的本揭示內容的系統可以在其中操作的第二示例計算環境100b。如圖所示,計算環境100b包括後端系統160、在專用網路102b中執行的決策代理170、以及專用網路102b中的網頁伺服器174。在一個具體實施例中,後端系統160是分佈式雲端計算系統。專用網路102可以是EPN、LAN、CAN、VPN、或一些其他類型的專用網路。
伺服器側應用程式176表示在網頁伺服器器174上執行的軟體應用程式,作為面向外部服務的一部分。伺服器側應用程式176包括用於程式語言的精簡客戶端177。精簡客戶端177允許伺服器側應用程式176以與語言無關的方式與決策代理170通信。精簡客戶端177包括用於經由專用網路連結103b向後端系統160報告時間序列事件資料和其他使用資料的碼。儘管圖1b示出伺服器側應用程式176的僅一個實例和僅一個精簡客戶端177,但本領域技術人員將理解到,由網頁伺服器174表示的額外伺服器可以分別具有對於其他語言的精簡客戶端177的版本。
對於圖1b,對於時間序列事件資料、顧客、決策點事件類型、會話、度量/目標定義、優化方向、優先級順序、權重構造、訓練實例和機器學習模型、權衡關係、以及會話分配至策略的解釋,適用於針對圖1a所提供的彼等。此外,對於關於圖1a的後端系統120、持續性資料儲存庫161、會話162、分析資料庫123、策略生成器124、度量跟蹤器125、片段發現部件126、介面部件127、度量/目標定義128、控制策略111a、優化策略111b、內存資料庫112、活動會話113、專用網路102、持續性資料庫118、端點設備180、瀏覽器181、以及網路連結103的說明,適用於後端系統160、持續性資料儲存庫161、會話162、分析資料庫163、策略生成器164、度量跟蹤器165、片段發現部件166、介面部件167、度量/目標定義168、控制策略171a、優化策略171b、內存資料庫172、活動會話173、專用網路102b、持續性資料庫178、端點設備190、瀏覽器191和網路連結103b。
但是,在圖1b中,沒有使用單片客戶端。精簡客戶端比單片客戶端更簡單、更容易創建。因此,用於支援特定程式語言的精簡客戶端,可以比單片客戶端更快速且更便宜地創建。此外,由於決策策略和會話存儲在決策代理中,因此精簡客戶端是無狀態的(stateless)。此外,由於精簡客戶端允許在決策代理處進行決策,因此可以在決策代理處應用基於複雜模型的複雜策略。相反的,可以簡化或截斷存儲在單片客戶端的策略,以滿足單片客戶端在其上執行的端點設備的資源約束(例如,對於處理或記憶體)。
如上面關於圖1a所解釋的,將活動會話173存儲在內存資料庫172中的一個優點是潛時減少,因為可以從內存資料庫172中相對快速地獲取時間序列資料,而不需要在專用網路102b外部進行通信。
當在伺服器側應用程式176處檢測到決策點事件時(例如基於從在端點設備190處執行的瀏覽器191接收的通信),精簡客戶端177經由網路連結103b向決策代理170發送決策請求。在一個具體實施例中,決策請求是API訊息,API訊息包括登錄到伺服器側應用程式176的顧客的識別符。決策請求還指示決策點事件的類型,以使請求的決策類型明確。例如,對於一些類型的決策點事件,決策請求可以要求向從較大的候選項目組中選擇的顧客推薦的項目列表。對於其他類型的決策點事件,決策請求可以要求從一組數個候選內容項(例如背景顏色、字體顏色、字體類型、CSS檔案、圖像、視頻、工具欄、產品說明和幻燈片)選擇單個內容項呈現給顧客。對於其他類型的決策點事件,決策請求可以要求選擇一些其他類型的操作或操作列表,以回應於決策點事件而執行。
決策代理170包括內存資料庫172。在一個具體實施例中,內存資料庫172完全或部分地包含在隨機存取記憶體(RAM)或快取記憶體中(儘管可以在替代性具體實施例中使用儲存器)。內存資料庫172存儲活動會話173。在一個具體實施例中,用詞「活動會話」指的是其中最新記錄的事件發生的時間小於閾值時間量的會話。活動會話173是會話162的子集,因此活動會話173存儲在持續性資料儲存庫161和內存資料庫172中。持續性資料庫178還可以存儲活動會話173及(或)會話162的其他子集的副本。
決策代理170識別與顧客ID相關聯的會話(來自活動會話173),並從內存資料庫172中檢索包含在會話中的時間序列資料。將活動會話173存儲在內存資料庫172中的一個優點是潛時減少,因為可以從內存資料庫172中相對快速地獲取時間序列資料,而不需要在專用網路102外部進行通信。若在活動會話173中沒有找到與顧客ID相關聯的會話,則決策代理170可以從持續性資料庫178中檢索包含在會話中的時間序列資料,持續性資料庫178可連接到專用網路102內的決策代理170。在極少數情況下,時間序列資料可能不存在於活動會話173或持續性資料庫178中。在此種情況下,決策代理170可以經由網路連結101b從持續性資料儲存庫161檢索包含在會話中的時間序列資料。
一旦檢索到與顧客ID相關聯的會話的時間序列資料,決策代理170就確定是應用控制策略171a還是應用優化策略171b。例如,決策代理170可以將顧客ID(或會話的另一個識別符)輸入到隨機分配適用策略的散列函數中。若分配了控制策略171a,則決策代理170基於控制策略171a選擇伺服器側應用程式176執行的一個或多個操作。若分配了優化策略171b,則決策代理170將時間序列資料和決策點事件的類型與優化策略171b進行比較。基於此比較,決策代理170為伺服器側應用程式176選擇一個或多個操作,以回應於決策點事件而執行。例如,若經由特徵的函數(例如,訓練組中的訓練實例的輸入特徵)來表示優化策略171b,則決策代理170基於時間序列資料計算彼等特徵的值,並評估使用該等值作為輸入的函數。
接下來,決策代理170經由網路連結103b向精簡客戶端117發送指示一個或多個所選操作的回應訊息。在經由精簡客戶端177接收到回應訊息時,伺服器側應用程式176執行一個或多個所選操作,並經由精簡客戶端177向決策代理170報告執行。
決策代理170更新對於活動會話173中的顧客的會話,以反映決策點事件的發生和所選操作的執行。決策代理170還向後端系統160發信號,以更新在會話162中找到的會話的副本。
圖1c示出了根據一個具體實施例的本揭示內容的系統可以在其中操作的第三示例計算環境100c。如圖所示,計算環境100c包括後端系統140和端點設備150。在一個具體實施例中,後端系統140是分佈式雲端計算系統。端點設備150可以表示任何類型的客戶端端點設備,諸如行動電話、膝上型電腦、桌上型電腦、平板電腦、或IoT設備。後端系統140和端點設備150可以透過由網路連結101c表示的網路(例如網際網路或另一WAN)連接。
客戶端側應用程式155在端點設備150上執行。單片客戶端151包括用於經由網路連結101c向後端系統140報告時間序列事件資料和其他使用資料的碼。單片客戶端151允許客戶端側應用程式155與後端系統140通信以報告時間序列資料。儘管圖1b中示出了客戶端側應用程式155的僅一個實例和僅一個單片客戶端151,但是本領域技術人員將理解,由端點設備150表示的額外端點設備可以分別具有特定於額外端點設備的類型的單片客戶端151的版本。
在一個具體實施例中,單片客戶端151可以是從高度可用的內容傳遞網路(CDN)提供的JavaScript檔案。在另一具體實施例中,單片客戶端151內置於客戶端側應用程式155中(例如,若端點設備150是行動設備且客戶端側應用程式155是行動設備的本機應用程式)。
對於圖1c,對於時間序列事件資料、顧客、決策點事件類型、會話、度量/目標定義、優化方向、優先級順序、權重構造、訓練實例和機器學習模型、權衡關係、以及會話分配至策略的解釋,適用於針對圖1a所提供的彼等。此外,對於關於圖1a的後端系統120、持續性資料儲存庫121、會話122、分析資料庫123、策略生成器124、度量跟蹤器125、片段發現部件126、介面部件127、度量/目標定義128、控制策略132、優化策略133、以及會話134的說明,分別適用於後端系統140、持續性資料儲存庫141、會話142、分析資料庫143、策略生成器144、度量跟蹤器145、片段發現部件146、介面部件147、度量/目標定義148、控制策略152、優化策略153、和會話154。
但是,在圖1c中,沒有使用決策代理。為此,一旦策略生成器144生成決策策略,策略生成器144就將策略直接部署到單片客戶端151而不是決策代理。單片客戶端151存儲由策略生成器144部署的策略的本地副本。為此,單片客戶端151包括控制策略152和優化策略153。
在端點設備150上本地存儲策略的一個優點,是用於決策功能的潛時減少。當策略被本地應用於端點設備150上的決策點事件時,可以消除由於網路通信(例如,在端點設備150和決策代理之間)引起的潛時。然而,端點設備150上可用的處理速度,記憶體和其他硬體可能相對受限。此外,客戶端程式語言(例如JavaScript)可能不適合實現佔用大量記憶體的策略。為了解決此等問題,當策略生成器144根據由機器學習模型基於訓練資料學習的邏輯生成策略時(例如,如上面關於圖1a中的策略生成器124所描述的),策略生成器144可以表示在客戶端程式語言中相對較小的空間(例如,1百萬位元組或更少)的策略。策略可以是機器學習模型(例如完整或截斷的模型),或者在一些具體實施例中,是將會話狀態映射到一個或多個操作的一組規則。
當顧客在端點設備150上登錄到客戶端側應用程式155時,單片客戶端151在會話154中記錄登錄事件的描述。會話154是與顧客相關聯的本地存儲的會話。單片客戶端151可以使用本地存儲器(例如cookies)來確保TTL內的會話繼續(例如,若客戶端側應用程式155關閉和重新打開之間的時間段小於TTL,則恢復前一會話)。
當在客戶端側應用程式155處檢測到決策點事件時,單片客戶端151首先確定是應用控制策略152還是優化策略153。例如,單片客戶端151可以將顧客ID(或會話154的另一個識別符)輸入到隨機分配適用策略的散列函數中。若分配了控制策略152,則單片客戶端151基於控制策略152選擇要執行的一個或多個操作。若分配了優化策略153,則單片客戶端151將會話154中的時間序列資料和決策點事件的類型與優化策略153進行比較。基於此比較,單片客戶端151選擇一個或多個操作,以回應於決策點事件而執行。例如,若經由特徵的函數(例如,訓練組中的訓練實例的輸入特徵)來表示優化策略153,則單片客戶端151基於時間序列資料計算彼等特徵的值,並評估使用該等值作為輸入的函數。
接下來,單片客戶端151執行一個或多個所選操作,並經由網路連結101c向後端系統140報告執行。後端系統140更新對於會話142中的顧客的會話,以反映決策點事件的發生和所選操作的執行。
圖2示出了根據一個具體實施例的本揭示內容的系統可以在其中操作的第四示例計算環境200。如圖所示,計算環境200包括後端系統260、在專用網路202中執行的決策代理270、以及專用網路202中的網頁伺服器274。在一個具體實施例中,後端系統260是分佈式雲端計算系統。專用網路202可以是EPN、LAN、CAN、VPN、或一些其他類型的專用網路。
對於圖2,對於時間序列事件資料、顧客、決策點事件類型、會話、度量/目標定義、優化方向、優先級順序、權重構造、訓練實例和機器學習模型、權衡關係、以及會話分配至策略的解釋,適用於針對圖1a所提供的彼等。此外,對於關於圖1a的網頁伺服器114、伺服器側應用程式116、精簡客戶端117、持續性資料儲存庫161、會話162、策略生成器124、片段發現部件126、介面部件127、度量/目標定義128、控制策略111a、優化策略111b、內存資料庫112、活動會話113、專用網路102、以及網路連結103的說明,分別適用於網頁伺服器274、伺服器側應用程式276、精簡客戶端277、持續性資料儲存庫261、會話262、策略生成器264、片段發現部件266、介面部件267、度量/目標定義268、控制策略271a、優化策略271b、內存資料庫272、活動會話273、專用網路202、以及網路連結203。
然而,在計算環境200中,策略生成器264、介面部件267、度量/目標定義268和片段發現部件266被包括在決策代理270中而不是後端系統260中。此外,持續性資料儲存庫261位於專用網路202中而不是後端系統260中。因此,會話262中的時間序列資料完全存儲在專用網路202內,並由策略生成器264、片段發現部件266和介面部件267處理,而不必離開專用網路202。出於這個原因,計算環境200可以適用於其中時間序列資料是敏感的並且出於安全目的不應該存儲在站外雲端計算基礎設施中的場景。若醫療服務提供者擁有的專用網路202和時間序列資料包括機密醫療資訊,則醫療服務提供者可能希望防止時間序列資料從專用網路202的任何滲出。
當在伺服器側應用程式276處檢測到決策點事件時,精簡客戶端277經由網路連結203向決策代理270發送決策請求。在一個具體實施例中,決策請求是API訊息,API訊息包括登錄到伺服器側應用程式276的顧客的識別符。決策請求還指示決策點事件的類型,以使請求的決策類型明確。例如,對於一些類型的決策點事件,決策請求可以要求向從較大的候選項目組中選擇的顧客推薦的項目列表。對於其他類型的決策點事件,決策請求可以要求從一組數個候選內容項(例如背景顏色、字體顏色、字體類型、CSS檔案、圖像、視頻、工具欄、產品說明和幻燈片)選擇單個內容項呈現給顧客。對於其他類型的決策點事件,決策請求可以要求選擇一些其他類型的操作或操作列表,以回應於決策點事件而執行。
決策代理270包括內存資料庫272。在一個具體實施例中,內存資料庫272完全或部分地包含在隨機存取記憶體(RAM)或快取記憶體中(儘管可以在替代性具體實施例中使用儲存器)。內存資料庫272存儲活動會話273。在一個具體實施例中,用詞「活動會話」指的是其中最新記錄的事件發生的時間小於閾值時間量的會話。活動會話273是會話262的子集,因此活動會話273存儲在持續性資料儲存庫261和內存資料庫272中。
決策代理270識別與顧客ID相關聯的會話(來自活動會話273),並從內存資料庫272中檢索包含在會話中的時間序列資料。將活動會話273存儲在內存資料庫272中的一個優點是潛時減少,因為可以從內存資料庫272中相對快速地獲取時間序列資料。若在活動會話273中沒有找到與顧客ID相關聯的會話,則決策代理270可以從持續性資料儲存庫261中檢索包含在會話中的時間序列資料。
一旦檢索到與顧客ID相關聯的會話的時間序列資料,決策代理270就確定是應用控制策略271a還是應用優化策略271b。例如,決策代理270可以將顧客ID(或會話的另一個識別符)輸入到隨機分配適用策略的散列函數中。若分配了控制策略271a,則決策代理270基於控制策略271a選擇伺服器側應用程式276執行的一個或多個操作。若分配了優化策略271b,則決策代理270將時間序列資料和決策點事件的類型與優化策略271b進行比較。基於此比較,決策代理270為伺服器側應用程式276選擇一個或多個操作,以回應於決策點事件而執行。例如,若經由特徵的函數(例如,訓練組中的訓練實例的輸入特徵)來表示優化策略271b,則決策代理270基於時間序列資料計算彼等特徵的值,並評估使用該等值作為輸入的函數。
接下來,決策代理270經由網路連結203向精簡客戶端277發送指示一個或多個所選操作的回應訊息。在經由精簡客戶端277接收到回應訊息時,伺服器側應用程式276執行一個或多個所選操作,並經由精簡客戶端277向決策代理270報告執行。
決策代理270更新對於活動會話273中的顧客的會話,以反映決策點事件的發生和所選操作的執行。決策代理270還向持續性資料儲存庫261發信號,以更新在會話262中找到的會話的副本。
圖3示出了根據一個具體實施例的用於後端系統320、決策代理310、伺服器側應用程式330、和端點設備340之間的通信的示例信號圖300。提供的信號圖200僅用於說明目的。在一些具體實施例中,可以改變信號圖中描繪的通信的順序,並且可以在不同的元素對之間組合、省略或交換一些通信。此外,在一些具體實施例中,可以完全省略一些元素。
在箭頭301處,當生成決策策略(例如,諸如優化策略111b)時,後端系統320將策略的副本發送到決策代理310。
在箭頭302a處,當顧客經由端點設備340(例如,透過瀏覽器)登錄到伺服器側應用程式330時,端點設備340將用於顧客的登錄憑證發送到伺服器側應用程式330。伺服器側應用程式330使用登錄憑證來認證顧客。伺服器側應用程式330可以包括精簡客戶端,用於處理以在端點設備340處使用的程式語言接收的通信。顧客經過身份驗證後,會有兩種與用戶關聯的不同類型的會話。一個可以是保存在伺服器側應用程式330的超文本標記語言(HTML)會話,此會話具有預定義的生存時間(TTL)。若顧客先前在先前登錄之後在TTL內退出伺服器側應用程式330,則伺服器側應用程式330可以繼續在先前登出時處於活動狀態的先前HTML會話。但是,若TTL已過期,則伺服器側應用程式330可以創建新的HTML會話。然而,在決策代理310處與顧客相關聯的會話可能不會到期。
在箭頭302b處,伺服器側應用程式330將事件資料發送到決策代理310。在箭頭302b處發送的事件資料,包括顧客的識別符(即顧客ID)和指示登錄事件何時發生的時間戳。在接收到事件資料時,決策代理310識別與顧客ID相關聯的會話,並驗證存儲在會話中的任何先前時間序列資料與事件資料一起被加載到記憶體中。藉由將先前的時間序列資料加載到記憶體中,決策代理310確保當從伺服器應用程式330接收到決策點請求時,會話中的先前時間序列資料將快速可用於與決策策略進行比較。
在箭頭302c處,決策代理310將事件資料和顧客ID轉發到後端系統320。後端系統320將事件資料存儲在會話的副本中,副本存儲在持續性資料儲存庫中。此外,後端系統320更新會話的度量值,以反映事件資料。此外,後端系統320更新一組訓練資料以反映事件資料,使用更新的訓練資料訓練機器學習模型,並基於機器學習模型和目標定義生成更新的決策策略。
在箭頭303處,後端系統將更新的策略部署到決策代理310。在箭頭304a處,當顧客經由端點設備340與伺服器側應用程式330互動時,端點設備340發送通信,通信包括來自顧客的針對伺服器側應用程式330的輸入。
決策請求包括顧客識別符,並指示決策點事件的類型。伺服器側應用程式330使用語言包裝器,以可由決策代理310解釋的方式來格式化決策請求。基於輸入,伺服器側應用程式330檢測到特定類型的決策點事件已經發生。
在箭頭304b處,伺服器側應用程式330(直接地或從重放隊列)向決策代理310發送決策請求。決策代理310可以首先確定對於相同類型的決策點事件的決策請求是否先前已經在閾值時間量內發生(例如,藉由檢查對於相同類型的決策點事件的與顧客相關聯的會話中的時間序列資料)。此閾值時間量用作回應於先前決策點事件而做出的決定的生存時間(TTL)。若先前在決策TTL內發生了相同類型的決策點事件,則決策代理310選擇回應於相同類型的先前決策點事件而執行的相同操作,以確保顧客對於此決策點事件的一致體驗。否則,決策代理310藉由將會話容器中的時間序列資料和決策事件的類型與更新的策略進行比較,來選擇端點設備340執行的一個或多個操作。從預定義的一組操作中選擇操作。
在箭頭305a處,決策代理310將指示一個或多個操作的回應發送到伺服器側應用程式330。伺服器側應用程式330執行一個或多個操作中的一些或全部。
在箭頭305b處,伺服器側應用程式330將對來自顧客的輸入的回應,發送到端點設備340。端點設備340執行伺服器側應用程式330未完成的一個或多個操作的任何剩餘部分。
圖4示出了根據一個具體實施例的用於後端系統420、決策代理410、和客戶端側應用程式430之間的通信的示例信號圖400。
在箭頭401a處,當生成決策策略時,後端系統420將策略的副本發送給決策代理410。在箭頭401b處,決策代理410將策略發送到客戶端側應用程式430。
在箭頭402a處,當顧客在端點設備處登錄到客戶端側應用程式430時,客戶端側應用程式430將描述登錄事件的事件資料發送到決策代理410。在箭頭402a處發送的事件資料,包括顧客的識別符(即顧客ID)和指示登錄事件何時發生的時間戳。客戶端側應用程式430包括用於與決策代理410通信的單片客戶端。
在接收到事件資料時,決策代理410識別與顧客ID相關聯的會話,並驗證存儲在會話中的任何先前時間序列資料與事件資料一起被加載到記憶體中。
在箭頭403a處,決策代理410將先前時間序列資料發送到客戶端側應用程式430。客戶端側應用程式430將先前時間序列資料與會話的的本地副本中事件資料一起存儲在記憶體中,使得在檢測到決策點事件時,會話中的資料將在客戶端側應用程式430處快速可用以與策略進行比較。
在箭頭402c處,決策代理410將事件資料和顧客ID轉發到後端系統420。後端系統420將事件資料存儲在會話的副本中,副本存儲在持續性資料儲存庫中。此外,後端系統420更新會話的度量值,以反映事件資料。此外,後端系統420更新一組訓練資料以反映事件資料,使用更新的訓練資料訓練機器學習模型,並基於機器學習模型和當前目標定義生成更新的決策策略。
在箭頭404a處,後端系統420將更新的策略發送到決策代理410。在箭頭404b處,決策代理410將更新的策略轉發到客戶端側應用程式430。
當在客戶端側應用程式430處檢測到決策點事件時,單片客戶端藉由將會話中的時間序列資料和決策事件的類型與更新的策略進行比較,來選擇客戶端側應用程式430執行的一個或多個操作。從預定義的一組操作中選擇操作。客戶端側應用程式430在端點設備處執行一個或多個操作。
圖5示出了根據一個具體實施例的示例介面500,管理員可以透過此介面提供度量定義和度量的優化方向。儘管提供介面500作為說明性示例,但是本領域技術人員將認識到,在不脫離揭示內容的精神和範圍的情況下,可以使用具有不同欄位,格式,標籤和其他特性的介面。實際上,允許管理員指定度量名稱、計算度量的方式、以及度量的優化方向的任何圖形或命令列界面,可以在本文描述的具體實施例中使用。
在欄位502中,管理員可以輸入當前正在定義的度量的名稱。在此示例中,如圖所示,此度量名為「註冊率(Signup Rate)」。
在標題「量測(Measurement)」下,管理員可以指定一個或多個事件類型,其中度量是欄位503中的函數,其被標記為「事件名稱(Event Name)」。特定而言,管理員可以點擊箭頭504以顯示下拉列表,下拉列表包含可在顧客和軟體應用程式之間的互動期間收集的可選事件、屬性和其他資料。在此示例中,選擇標題為「註冊(Signup)」的事件(例如,顧客註冊經由軟體應用程式提供的特定服務,或者利用軟體應用程式創建帳戶的事件)。若在欄位503中選擇了屬性而不是事件,則可以將標籤「事件名稱(Event Name)」動態地改變為「屬性名稱(Property Name)」。
另外,在標題「量測」下,單選按鈕506和單選按鈕507允許管理員指定用於表示當前正被定義的度量的值的方案(例如二進制方案或計數方案)。例如,若選擇了標籤508,則對於記錄至少一個「註冊」的會話,度量的值可以由數字1表示,否則由數字零表示。可選地,管理員可以藉由點擊括號510中的單詞「編輯(edit)」,來設置度量的預設值(例如,對於事件或屬性未見或未定義的會話)。若選擇了標籤509,則可以由在欄位503中選擇的事件發生的次數的計數(記錄在會話容器中)來表示度量的值。
在另一示例中,若選擇單選按鈕507而不是單選按鈕506,則管理員可以選擇用於表示在欄位503中選擇的屬性的值的方案。根據所選屬性的性質和進行量測所需的粒度,可以使用許多可能的方案。例如,若屬性是自顧客上次登錄到軟體應用程式以來的時間量,則時間屬性可以由數分鐘、數秒或數毫秒表示(例如表示為實數或整數)。
在標題「方向(Direction)」下,管理員可以為度量值指定優化方向。優化方向指示管理員是否希望策略平均來說增加(例如像保齡球分數)或減少(例如像高爾夫分數)度量值。這使得可以在度量的不同值之間進行有意義的比較,使得可以明確地將一個值識別為比另一個更符合管理員的目標。在此示例中,由於選擇了單選按鈕511,因此「註冊率」的優化方向是向上的(意味著管理員希望策略平均來說增加註冊率的值)。在另一示例中,若選擇了單選按鈕513,則優化的方向將是向下的。在另一示例中,管理員可以選擇單選按鈕512以指示管理員希望跟蹤度量的值,但是管理員不希望調整策略以平均來說增加或減少度量的值。
此外,管理員可以在標題「描述(Description)」下輸入目標度量的簡明語言文本描述,以供管理員參考。用戶可以藉由點擊按鈕514刪除當前度量定義,或藉由點擊按鈕515保存當前度量定義。
圖6示出了根據一個具體實施例的示例介面600,管理員可通過此介面指定作為目標定義的參數的度量的危險條件和目標條件。儘管提供介面600作為說明性示例,但是本領域技術人員將認識到,在不脫離揭示內容的精神和範圍的情況下,可以使用具有不同欄位,格式,標籤和其他特性的介面。實際上,允許管理員指定度量的危險條件和目標條件的任何圖形或命令列介面,可以用在本文描述的具體實施例中。
介面600引用的目標定義,包括三個度量作為參數:瀏覽深度(scroll depth)、註冊率和流失率。在其他示例中,可以包括其他數量的度量,以作為目標定義中的參數。目標組中的每個度量的表示方案、優化方向和事件參數,可以由管理員(例如在類似於介面500的介面中)預先定義。
管理員可以在滑塊602上滑動圖標604,以指示瀏覽深度度量的目標等級。如圖所示,目標等級目前設定為80%。類似地,管理員可以在滑塊602上滑動圖標603,以指示瀏覽深度度量的危險條件。如圖所示,危險等級目前設定為0%。若瀏覽深度的優化方向是向上的,則瀏覽深度的目標條件為瀏覽深度的值是80%或更高,而瀏覽深度的危險條件為瀏覽深度的值是0%或更高。
管理員可以在滑塊606上滑動圖標608,以指示註冊率度量的目標等級。如圖所示,目標等級目前設定為100%。類似地,管理員可以在滑塊606上滑動圖標607,以指示註冊率度量的危險等級。如圖所示,危險等級目前設定為0%。若註冊率的優化方向是向上的,則註冊率的目標條件為註冊率的值是100%或更高,而註冊率的危險條件為註冊率的值是0%或更高。
注意到,百分比可能不是指定一些度量的目標條件或危險條件的合適方式。對於沒有明確最大值(例如收入)的度量,可以根據實際值(例如,諸如收入的金額)而不是百分比來定義目標條件和危險條件。
管理員可以在滑塊610上滑動圖標612,以指示流失率度量的目標等級。如圖所示,目標等級目前設定為100%。類似地,管理員可以在滑塊610上滑動圖標611,以指示瀏覽深度度量的危險條件。如圖所示,危險等級目前設定為0%。若流失率的優化方向是向下的,則流失率的目標條件為流失率的值是100%或更低,而流失率的危險條件為流失率的值是0%或更低。若管理員在圖標611和圖標612處於所示位置時點擊保存按鈕,則可以顯示錯誤訊息。錯誤訊息可以解釋圖標611和圖標612的當前位置,表明可以滿足目標條件而不會同時滿足危險條件。
圖7示出了根據一個具體實施例的示例介面700,管理員可通過此介面查看軟體應用程式關於目標定義中參照的度量的執行情況。側邊欄702具有可選擇的度量列表。在示例中,目標定義引用的度量包括瀏覽深度、註冊率和流失率。概要框704指示選擇了註冊率目標度量。
由於選擇了註冊率目標度量,因此線圖706示出了在所選週(例如,從6月8日開始的周,如圖所示)開始的會話的平均註冊率。管理員可以通過點擊箭頭715來選擇時間段,以顯示可用資料的可選時間段的下拉列表。曲線707跟蹤會話的平均每日註冊率,其中應用優化策略以選擇回應於決策點事件而執行的操作。在此示例中,所選周中的每一天用作對應於箱的時間間隔。管理員可以通過點擊箭頭716來選擇策略,以顯示可用資料的可選策略的下拉列表。管理員還可以通過點擊箭頭717選擇決策點事件類型,以顯示可選擇的決策點事件類型的下拉列表。通過這種方式,管理員可以查看記錄特定類型的決策點事件的會話子集的平均註冊率和其他統計資訊,並排除未發生此類型的決策點事件的會話。曲線708跟蹤應用控制策略而不是優化策略的會話的平均註冊率。線709繪製了在應用控制策略的會話中在選定周的期間內開始的會話的平均註冊率(即總體平均值)。
根據會話的開始時間將會話分組到箱中。因此,6月8日開始的會話被分組到標記為6月8日的箱,6月9日開始的會話被分組到標記為6月9日的箱,依此類推。但是,會話不需要具有明確的結束時間,因此會話的持續時間不受分配會話的箱的持續時間的限制。由於會話的度量值是基於會話中的所有資料計算的,因此度量值可以反映事件,甚至是描述在會話被分組到的箱的結束時間之後發生的事件的資料。在此示例中,由曲線707和曲線708歸因於「6月8日」箱的註冊率,可以反映在6月8日之後、6月14日之後或甚至更晚之後發生的註冊。因此,即使對應於箱的時間間隔保持不變,每當新的時間序列資料變得可用時,曲線707、曲線708和線709也可以改變。由於對應於箱的時間間隔和會話的開始時間不改變,因此無論曲線707、曲線708和線709被更新多少次,分組到每個箱中的特定會話保持一致。可選地,介面還可以在每次更新後保存曲線707、曲線708和線709的狀態,並允許管理員連續查看不同的狀態作為動畫。在查看動畫時,管理員可能能夠檢測時間序列資料中的延遲趨勢。
介面700還包括片段的可選擇列表710(在標題「按段(By Segment)」下)。「保存的片段(Saved Segmentation)」組指的是管理員先前指定為感興趣的段。例如,假設管理員想要查看在特定地理區域中使用桌上型設備的顧客的平均註冊率與總體平均註冊率的比較。管理員可以預先手動定義片段並保存定義,使得介面700將自動確定片段的平均註冊率以及給定時間段的平均註冊率。
在此示例中,框711指示選擇「DiscoveredA1」片段,而不是「保存的片段」組。「DiscoveredA1」組指的是片段發現部件已確定平均註冊率與總體平均註冊率相差超過閾值量的段(例如5%或另一預定量以避免由於取樣引起的誤報錯誤)。例如,表712的列713示出了在白天期間使用行動設備的會話的平均註冊率比總體平均值高69%。另外,表612的列614示出了使用在夜間運行Windows作業系統的桌上型設備的會話的平均註冊率比總體平均值低29%。
為了便於清楚地解釋片段發現部件如何智能地搜索可能片段的空間,以發現平均註冊率與總體平均值相差超過閾值量的片段,以下提供如何定義片段的一個示例。
首先,考慮一個簡單的情況,其中一個片段被定義為其中一特徵具有特定值(或特定值的分離)的所有會話。假設第一特徵表示會話期間使用的用戶設備的設備類型,並且設備類型有三個可能的值:「行動」、「平板電腦」和「桌上型」。在對於設備類型的值為已知的一組會話中,有六個可能的會話片段(即子集),可以藉由過濾器與第一特徵的值來定義:(1)第一特徵=「行動」;(2)第一特徵=「平板電腦」;(3)第一特徵=「桌上型」;(4)第一特徵=「行動」或「桌上型」;(5)第一特徵=「行動」或「平板電腦」;以及(6)第一特徵=「平板電腦」或「桌上型」。
接下來,假設考慮第二特徵。假設第二特徵表示會話是在白天或晚上發生的,並且第二特徵有兩個可能的值:「白天」和「晚上」。有兩個可能的片段可以藉由過濾器對第二特徵值來定義:(1)第二特徵=「白天」;和(2)第二特徵=「晚上」。若同時考慮第一和第二特徵,則可以藉由第一特徵和第一特徵的限制的聯合組合來定義十二個額外的片段:(1)第一特徵=「行動」且第二特徵=「白天」;(2)第一特徵=「行動」且第二特徵=「晚上」;(3)第一特徵=「平板」且第二個特徵=「白天」;(4)第一特徵=「平板」且第二特徵=「晚上」;(5)第一特徵=「桌上型」且第二特徵=「白天」;(6)第一特徵=「桌上型」且第二特徵=「晚上」;(7)第一特徵=「行動」或「桌上型」且第二特徵=「白天」;(8)第一特徵=「行動」或「桌上型」且第二特徵=「晚上」;(9)第一特徵=「行動」或「平板」且第二特徵=「白天」;(10)第一特徵=「行動」或「平板」且第二特徵=「晚上」;(11)第一特徵=「平板」或「桌上型」且第二特徵=「白天」;及(12)第一特徵=「平板」或「桌上型」且第二特徵=「晚上」。此外,可以藉由第一特徵和第二特徵的限制的聯合組合來定義十二個額外片段:(1)第一特徵=「行動」或第二特徵=「白天」;(2)第一特徵=「行動」或第二特徵=「晚上」;(3)第一特徵=「平板」或第二個特徵=「白天」;(4)第一特徵=「平板」或第二特徵=「晚上」;(5)第一特徵=「桌上型」或第二特徵=「白天」;(6)第一特徵=「桌上型」或第二特徵=「晚上」;(7)第一特徵=「行動」或「桌上型」或第二特徵=「白天」;(8)第一特徵=「行動」或「桌上型」或第二特徵=「晚上」;(9)第一特徵=「行動」或「平板」或第二特徵=「白天」;(10)第一特徵=「行動」或「平板」或第二特徵=「晚上」;(11)第一特徵=「平板」或「桌上型」或第二特徵=「白天」;及(12)第一特徵=「平板」或「桌上型」或第二特徵=「晚上」。
對於考慮每個額外特徵,可以定義的片段數量呈指數增長。因此,若每個特徵有許多特徵和許多可能的值,則搜索檢查所有可能的片段以識別具有與度量的總體平均值偏離預定量的片段可能是不切實際的。因此,片段發現部件可以使用啟發式作法來搜索感興趣的片段。
在一個示例中,作為用於識別要分析哪些片段的第一步驟,片段發現部件可以應用一個或多個特徵選擇技術,以根據上下文特徵與目標定義所引用的度量相關聯的強度,來對特徵進行排名。可以應用的一些特徵選擇技術,包括拉斯維加斯濾波器(LVF)、拉斯維加斯增量(LVI)救援、循序前向生成(SFG)、循序後向生成(SBG)、循序浮動前向搜索(SFFS)、焦點、分支定界(B&B)和快速分支定界(QB&B)技術。與度量最強相關的前n個特徵(其中n是預定義的正整數),可以基於一組訓練資料的一個或多個特徵選擇技術的輸出來識別(例如,表示先前會話的經標記的訓練實例)。
接下來,片段發現部件可以從分析中排除不包括針對前n個特徵的值的任何過濾器的片段,並且僅針對包括對前n個特徵中的至少j個的限制的片段計算平均目標分數(或其他描述性值)(其中j是小於或等於n的預定義正整數)。管理員可以預先指定j和n的值,或者片段發現部件可以由確保將分析不超過預定數量的片段的方式,來確定j和n的值。以這種方式,片段發現部件可以將用於分析的片段的數量減少到更易處理的等級。
在一些具體實施例中,片段發現部件還可以搜索上下文特徵之間的權衡關係,並且經由介面700向管理員通知彼等權衡關係。例如,片段發現部件可以確定每對特徵之間的相關係數。片段發現部件可以向管理員通知相關係數的量值超過預定閾值的任何特徵對。
圖8示出了根據一個具體實施例的決策代理將主動決策功能整合到計算分析框架中的程序800。程序800可以實施為方法,或者程序800可以作為機器上的指令來執行(例如藉由一個或多個處理器),其中指令被包括在至少一個非暫態性電腦可讀取儲存媒體上。
如方塊802所示,程序800包括從策略生成器接收決策策略,此決策策略指定當軟體應用程式檢測到決策點事件時,軟體應用程式要執行的一個或多個操作。策略基於會話中的時間序列資料,將相同決策點事件類型的決策點事件映射到不同操作,該等會話相關聯於與軟體應用程式互動的顧客。會話容器中的時間序列資料可以包括在複數個設備上發生的事件的時間戳和事件描述,顧客識別符指定的顧客先前已通過該等設備存取了軟體應用程式。
如方塊804所示,程序800包括接收源自軟體應用程式的決策請求。決策請求包括顧客識別符並指示決策點事件類型。可以從包括在軟體應用程式中的精簡客戶端接收此請求。而且,在一些具體實施例中,可以透過決策代理和軟體應用程式之間的專用網路連結來接收請求。
決策請求可以包括指示要選擇多少操作的數字。選擇軟體應用程式要執行的一個或多個不同操作之步驟,和發送一個或多個所選操作的指示之步驟,可以包括以下步驟:生成不同操作的子集的有序列表。子集的基數與數字匹配;
如方塊806所示,程序800包括從資料儲存庫中檢索與顧客識別符相關聯的會話中的時間序列資料。資料儲存庫可以包含在隨機存取記憶體(RAM)記憶體、快取記憶體、或RAM和快取記憶體的組合中。
如方塊808所示,程序800包括藉由將時間序列資料和事件類型與決策策略進行比較,來選擇軟體應用程式要執行的一個或多個不同操作。
如方塊810所示,程序800包括回應於決策請求而發送一個或多個所選操作的指示。
如方塊812所示,程序800包括更新與資料儲存庫中的顧客識別符相關聯的會話中的時間序列資料,以反映決策點事件和一個或多個所選操作。
程序800還可以包括將更新的時間序列資料發送到策略生成器可存取的持續性資料存儲庫;並從策略生成器接收更新的策略。更新的策略可以基於更新的時間序列資料。
圖9示出了根據一個具體實施例的單片客戶端將主動決策功能整合到計算分析框架中的程序900。程序900可以實施為方法,或者程序900可以作為機器上的指令來執行(例如藉由一個或多個處理器),其中指令被包括在至少一個非暫態性電腦可讀取儲存媒體上。
如方塊902所示,程序900包括在計算設備處接收與軟體應用程式相關聯的客戶端側碼。
如方塊904所示,程序900包括基於在計算設備處從與軟體應用程式互動的顧客接收的輸入,來檢測決策點事件。
如方塊906所示,程序900包括識別存儲在與顧客相關聯的會話容器中的時間序列資料。識別時間序列資料,可以包括將對與顧客相關聯的時間序列資料的遠端存儲部分的請求發送給決策代理。識別時間序列資料還可以包括:回應於請求,經由網路接收時間序列資料的遠端存儲部分;以及將時間序列資料的遠端存儲部分,添加到時間序列資料的本地存儲部分。時間序列資料的遠端存儲部分,可以包括在一個或多個額外計算設備上發生的事件的描述。識別時間序列資料還可以包括:確定到遠端網路位置的網路連結不可用;並且藉由將時間序列資料的本地存儲部分和決策點事件的類型,與決策策略進行比較,來進行選擇。
程序900還可以包括:確定自發送請求以來已經經過了預定義的時間量,並且沒有接收到對請求的回應;以及藉由將時間序列資料的本地存儲部分和決策點事件的類型與決策策略進行比較,來進行選擇。
如方塊908所示,程序900包括藉由將時間序列資料和決策點事件的類型與客戶端側碼中包含的決策策略進行比較,來選擇軟體應用程式回應於檢測到決策點事件而執行的一個或多個不同操作。
如方塊910所示,程序900包括在計算設備處執行一個或多個所選操作。
程序900還可以包括更新時間序列資料以反映一個或多個所選操作的執行;並經由網路將更新的時間序列資料發送到遠端網路位置以存儲在遠端資料儲存庫中。
圖10示出了根據一個具體實施例的策略生成器的程序1000。程序1000可以實施為方法,或者程序1000可以作為機器上的指令來執行(例如藉由一個或多個處理器),其中指令被包括在至少一個非暫態性電腦可讀取儲存媒體上。
如方塊1002所示,程序1000包括經由計算網路接收由遠端執行的軟體應用程式針對複數個會話收集的時間序列資料。每個會話與相應的顧客相關聯。
如方塊1004所示,程序1000包括將時間序列資料存儲在持續性資料儲存庫中。
如方塊1006所示,程序1000包括經由介面部件接收目標定義。目標定義指定如何基於至少一個可基於時間序列資料計算的度量,來計算目標定義。
如方塊1008所示,程序1000包括:對於每個會話,確定會話的至少一個度量的對應值。
如方塊1010所示,程序1000包括:基於時間序列資料和會話的值,訓練機器學習模型,以基於會話中的決策點事件之前的事件確定遠程執行的軟體應用程式回應於決策點事件而執行的一個或多個操作,以增加會話的目標分數滿足危險條件(或目標條件,若適用)的概率。目標定義還可以包括至少一個度量的目標條件。
如方塊1012所示,程序1000包括生成決策策略,策略表示在訓練期間由機器學習模型學習的邏輯。在一個示例中,生成決策策略之步驟可以包括:以客戶端側程式語言對邏輯進行編碼,並且將邏輯編碼為不超過一百萬位元組(MB)的存儲空間。
如方塊1014所示,程序1000包括將策略部署到計算網路中的位置,在此位置接收源自軟體應用程式的決策請求。部署策略之步驟可以包括:將策略發送到軟體應用程式在其上執行的遠端計算設備,以使策略能夠在遠端計算設備本地處應用。
若計算網路是專用網路,則程序1000還可以包括:經由計算網路從遠端計算設備接收決策請求,決策請求包括顧客識別符並指示決策點事件類型;從資料儲存庫中檢索與顧客識別符相關聯的會話中的時間序列資料的集合;藉由將時間序列資料和事件類型的集合與決策策略進行比較,以選擇軟體應用程式要執行的操作;並回應於決策請求而發送所選操作的指示。與顧客識別符相關聯的會話中的時間序列資料的集合,可以包括對事件類型的先前決策點事件的描述和對應時間戳。
圖11示出了根據一個具體實施例的介面部件的程序1100。程序1100可以實施為方法,或者程序1100可以作為機器上的指令來執行(例如藉由一個或多個處理器),其中指令被包括在至少一個非暫態性電腦可讀取儲存媒體上。
如方塊1102所示,程序1100包括接收複數個會話。每個會話與顧客相關聯,具有開始時間,並且包括時間序列資料,時間序列資料表徵顧客與在一個或多個遠端計算設備處執行的軟體應用程式之間的互動。
如方塊1104所示,程序1100包括經由介面部件接收目標定義。目標定義指定如何基於至少一個可基於時間序列資料計算的度量,來計算目標分數。
如方塊1106所示,程序1100包括將會話分組到箱中。每個箱對應於一個時間間隔,並包括具有在此時間間隔內的開始時間的會話。
如方塊1108所示,對於每個會話,程序1100包括:使用會話中包括的時間序列資料計算會話的第一度量的當前值,並基於第一度量的當前值與目標定義確定會話的當前目標分數。用於計算第一度量的當前值的時間序列資料的至少一部分,描述在對應於會話被分組到的箱的時間間隔之外發生的事件。
目標定義可以指定第一度量和第二度量的函數。此外,對於每個會話,程序1100可以包括:使用會話中包括的時間序列資料計算會話的第二度量的當前值,其中,用於計算第二度量的當前值的時間序列資料的至少一部分,描述在對應於會話被分組到的箱的時間間隔之外發生的事件,以及藉由使用第一度量的當前值作為函數的第一參數,並使用第二度量的當前值作為函數的第二參數,來確定會話的當前目標分數。
接收目標定義之步驟可以包括接收以下中的一個或多個:第一度量或第二度量的危險條件;第一度量或第二度量的目標條件;第一度量和第二度量的排名;或第二度量或第一度量的權重。
接收目標定義之步驟還可以包括:接收第一度量的第一優化方向和第二度量的第二優化方向。
如方塊1110所示,程序1100包括:對於每個箱,基於被分組到箱中的會話的當前值目標分數,來計算箱的當前平均目標分數。
如方塊1112所示,程序1100包括:呈現箱的當前平均目標分數相對於時間的圖形圖,其由箱分區以經由介面部件顯示。
程序1100還可以包括:基於會話的當前目標分數計算對於各個箱的總體平均目標分數,並將會話分組為複數個片段。每個片段包括針對可基於時間序列資料計算的特徵的至少一個濾波器。對於每個片段,程序1100還可以包括:基於片段中包括的會話的當前目標分數,來確定片段的當前平均目標分數,確定片段的當前平均目標分數與總體平均值之間的差異,並確定差異是否超過閾值。此外,程序1100可以包括:對於差異超過閾值的至少一個片段,經由介面部件呈現片段和差異的指示,以供顯示。
每個會話可以包括所選類型的至少一個決策點事件。程序1100還可以包括:從策略生成器接收候選決策策略,此策略指定在一個或多個遠端計算設備處執行的軟體應用程式的一個或多個操作,以在一個或多個遠端設備上發生決策點事件時執行,其中策略基於會話中的時間序列資料將相同決策點事件類型的決策點事件映射到不同的操作;基於候選決策策略所對應的時間段內開始的會話,確定候選決策策略的估計平均目標分數;確定在此時間段期間應用的控制決策策略的估計平均目標分數與平均目標分數之間的估計差異;基於此時間段的長度確定估計差異的信心等級;基於估計差異和信心等級確定候選決策策略的價格;並經由介面部件呈現估計差異、信心等級和顯示價格的指示。
程序1100還可以包括:經由介面部件呈現候選決策策略的按鈕;檢測按鈕上的點擊事件;並且基於檢測,將候選決策策略部署到網路中的位置,在此位置接收源自軟體應用程式的決策請求。
本文描述的決策能力可以由同步或異步方式實現。可以基於何時做出決定和應用決策的時間,以及在做出決定時所需和可用的上下文,來選擇決策功能到計算分析框架的同步和非同步整合。在同步整合中,回應於決策點事件而做出的決定,可能會阻止執行其他活動,直到應用決策為止。相對的,在非同步整合中,可以在客戶伺服器正在執行其他活動的同時做出決定,並且可以藉由基於由決策代理發送的指令執行回調函數來應用此決定。
圖12是示出根據一個具體實施例的訊息流程圖,訊息流程圖圖示在決策系統中發送的訊息的時序圖1200,其中同步決策功能被整合在客戶伺服器上。如圖所示,在客戶伺服器上執行同步決策所涉及的訊息,被在端點設備1202、執行軟體應用程式和精簡客戶端的客戶伺服器1204、決策代理1206、和後端系統1208之間交換。
如圖所示,時序圖1200開始於端點設備1202將內容請求1212發送到客戶伺服器1204以請求來自客戶伺服器的內容。客戶伺服器1204觀察第一組事件,並將對第一組事件的觀察和決策請求1214發送給決策代理1206,決策代理1206又將訊息1216發送到後端系統1208,以記錄在與軟體應用程式的用戶(或所請求的內容)相關聯的時間序列資料中的第一組事件的發生。如本文所使用的,訊息1214中包括的第一組事件可以是單個事件或多個事件,其可以作為決策代理1206做出的決策的上下文。儘管觀察和決策請求1214在此被示為單個訊息,但應該認識到,第一組事件和決策請求的觀察可以作為個別的訊息以從客戶伺服器1204發送到決策代理1206。例如,此等訊息可以透過在客戶伺服器1204和決策代理1206之間建立的不同通信通道同時發送或者循序發送(例如,其中在發送決策請求之前先將第一組事件的觀察發送到決策代理1206)。可以使用觀察和決策請求1214作為單個訊息的傳輸,例如以避免競爭條件或其他情境(其中第一組事件的觀察的個別、非並發傳輸與決策請求可能無法針對觀察到的事件組發起決策請求(例如,其中來自另一個端點設備或對於另一組觀察事件的決策請求到達,並在收到對於觀察到的第一組事件的決策請求之前執行))。
在方塊1218,決策代理1206使用第一組事件(例如,在觀察1214中報告的事件)作為決策的上下文而做出決定。可以基於對於軟體應用程式的用戶,決策代理1206可用的有限的上下文資訊組(例如,在訊息1214中報告的第一組事件並且用作透過訊息1214請求的決策的上下文),來做出此決定。在決策代理1206做出決定之後,決策代理1206將訊息1220發送到後端系統1208,以記錄基於第一事件的觀察做出的決定。此決策可被記錄在與軟體應用程式的用戶相關聯的時間序列資料中,並且可以包括識別所做出的決策的資訊(例如回應於對第一事件的觀察而要執行的一個或多個操作)、時間戳資料、以及可用於做出後續決策的其他資訊。基於第一事件做出的決策經由訊息1222發送到客戶伺服器1204,且客戶伺服器1204經由訊息1224將所請求的內容和所做出的決策發送到端點設備1202。在1226處,在端點設備1202處應用此決策,以執行回應於第一觀察而要執行的一個或多個操作。
隨後,可以在端點設備1202處觀察到其他事件,並且經由訊息1228將事件發送到客戶伺服器1204。客戶伺服器1204經由訊息1230將觀察到的事件或事件組傳遞給決策代理1206,且決策代理1206經由訊息1232將觀察到的事件或事件組發送到後端系統1208,以記錄在與用戶相關聯的時間序列資料中。
如所論述的,圖12中所示的同步決策,可能受到可用於回應於事件觀察做出決策的上下文資料量的限制。例如,當用戶開始與軟體應用程式或其一部分互動時,基於用戶會話資料的決策可以使用有限的上下文資料觀點(例如,與來自客戶伺服器1204的內容的初始請求相關聯的上下文)做出決策。為了改進決策程序,可以使用如上文針對圖16和圖17並論述於下文的推測性決策,來為在軟體應用程式的執行期間可能發生的任何數量的事件生成決策。
圖13是示出根據一個具體實施例的訊息流程圖,訊息流程圖圖示在決策系統中發送的訊息的時序圖1300,其中非同步決策功能被整合在客戶伺服器上。如上所述,當不需要回應於觀察決策點事件或啟動軟體應用程式的會話而立即做出決定並應用時,可以使用非同步決策。如圖所示,在客戶伺服器上執行非同步決策所涉及的訊息,被在端點設備1302、執行軟體應用程式和精簡客戶端的客戶伺服器1304、決策代理1306、和後端系統1308之間交換。
如所論述的,在非同步應用中,可以獨立地執行向端點設備1302提供所請求的內容,以及基於用戶與軟體應用程式的互動的觀察來做出和執行決策。基於對決策點事件的觀察做出決定的請求,可以不阻止其他活動發生,並且可以使用從客戶伺服器1304到端點設備1302的回調機制,來應用為觀察決策點事件而生成的決策。
如圖所示,時序圖1300開始於端點設備1302發送來自客戶伺服器1304的內容的請求1312。非同步地,端點設備1302還觀察第一組上下文事件的發生,並將對第一組上下文事件1314的觀察發送到客戶伺服器1304。第一組上下文事件通常包括可以作為所請求決策的上下文的一個或多個事件。
回應於請求1312和觀察1314,客戶伺服器1304經由訊息1316將所請求的內容發送到端點設備1302,並且經由訊息1318將對第一組上下文事件的觀察和決策請求發送到決策代理1306。儘管訊息1318在這裡被示為單個訊息,但應該認識到,第一組上下文事件和決策請求的觀察可以作為個別的訊息從客戶伺服器1304同時或循序地發送到決策代理1306。可以使用第一組上下文事件的觀察和決策請求作為單個訊息1318的傳輸,例如以避免競爭條件或其他情境(其中第一組事件的觀察的個別、非並發傳輸與決策請求可能無法針對觀察到的事件組發起決策請求(例如,其中來自另一個端點設備或對於另一組觀察事件的決策請求到達,並在收到對於觀察到的第一組事件的決策請求之前執行))。
決策代理1306經由訊息1320將觀察到的第一事件發送到後端系統1308,指示後端系統1308將第一事件記錄在與軟體應用程式的用戶相關聯的時間序列資料中。回應於所接收的決策請求(如上所述,請求可以作為訊息1318的一部分或作為報告對第一組上下文事件的觀察的訊息的個別訊息而發送),在方塊1322,決策代理1306基於對第一組上下文事件的觀察做出決定。此決定經由訊息1326發送到客戶伺服器1304,並且客戶伺服器1304經由訊息1328將此決定發送到端點設備1302以進行應用。在方塊1330,應用此決定。
隨後,可以在端點設備1302處觀察到其他事件(單個或多個),並且經由訊息1332將事件發送到客戶伺服器1304。客戶伺服器1304經由訊息1334將觀察到的事件傳遞給決策代理1306,並且決策代理1306經由訊息1336將觀察到的事件傳輸到後端系統1308,以記錄在與用戶相關聯的時間序列資料中。如上所述,決策代理1306可以在從客戶伺服器1304接收到決策請求時,基於觀察到的事件做出決定。
在一些情況下,可以使用在端點設備上執行的精簡客戶端來實現決策功能。精簡客戶端可以例如部署在使用本地可執行碼的網頁應用程式中(例如,使用非同步JavaScript和XML(AJAX)技術來更新網頁應用程式中的內容的網頁應用程式)或利用可透過公共及(或)專用網路存取的資料的行動應用程式中。可基於安全及(或)驗證原因,選擇此種實施。例如,出於軟體驗證的原因,可以選擇使用提供連接到遠端決策代理的包裝器的精簡客戶端,因為精簡客戶端的使用通常會減少要測試的碼量,以確保將決策代理與其他應用程式代碼整合不會對應用程式碼的功能生成負面影響。然而,在使用精簡客戶端的情況下,客戶伺服器可能會從決策程序中移除,因此,此等實施中的決策可能無法考慮客戶伺服器上可用的資料,在根據對端點設備上的事件的觀察做出決定時。
在一些情況下,可以使用單片客戶端來實現決策功能。如上所述,單片客戶端允許將決策代理與在客戶端設備上執行的應用程式整合。藉由將決策代理與在客戶端設備上執行的應用程式整合,不需要在客戶端設備上執行的應用程式與決策代理之間透過一個或多個中介(例如,通過公眾網路)交換訊息。因此,藉由使用單片客戶端,可以藉由在本地做出決策,而從向決策代理發送觀察和從決策代理接收決策的程序中移除中介。
圖14是示出根據具體實施例的在使用在端點設備上執行的單片客戶端執行同步決策時交換的訊息的時序圖1400的訊息流程圖。如圖所示,可以在客戶伺服器1402、執行單片客戶端的端點設備1404、和後端系統1406之間,交換使用單片客戶端執行同步決策所涉及的訊息。
如圖所示,時序圖1400開始於端點設備1404將對內容的請求1412發送到客戶伺服器1402。客戶伺服器1402用所請求的內容1414回應請求1412。隨後,在接收到所請求的內容1414之後,端點設備1404觀察到第一組事件,事件可以包括形成可據以做出決定的上下文的一個或多個事件。觀察由端點設備1404經由訊息1416發送到後端系統1406,以記錄在與軟體應用程式的用戶相關聯的時間序列資料中。為了請求針對第一組事件的觀察做出決策,端點設備1404執行回送請求1417,請求來自單片客戶端的決策。在方塊1418,回應於決策請求1417,使用在端點設備上執行的單片客戶端的端點設備1404,基於對第一事件的觀察做出決策並應用決策。在一些具體實施例中,決策的應用可以使用先前下載到端點設備1404上或以其他方式包括在單片客戶端中的資源;在其他具體實施例中,決策的應用可以包括從遠端源(例如,客戶伺服器1402)下載資源,並在端點設備1404上執行所下載的資源。在基於對第一事件的觀察作出決策之後,端點設備1404發送訊息1420以記錄基於第一事件的決策。
隨後,端點設備1404可以經由訊息1422從客戶伺服器1402請求額外內容,且客戶伺服器1402可以藉由向端點設備1404提供內容1424來滿足此請求。如圖所示,在端點設備1404處可以在發送內容請求1422至客戶伺服器1402和從客戶伺服器1402接收內容1424之間觀察到第二組事件。端點設備1404可以將對第二事件1422的觀察發送到後端系統1406,以存儲在對於軟體應用程式的用戶的時間序列資料中,並且可以回應於觀察第二事件而做出並應用決策(例如,藉由執行回送請求以請求來自單片客戶端的決策)。
圖15是示出根據具體實施例的在使用在端點設備上執行的客戶端執行非同步決策時交換的訊息的時序圖1500的訊息流程圖。如圖所示,可以在客戶伺服器1502、端點設備1504、決策代理1506、和後端系統1508之間,交換在端點設備上執行的精簡客戶端執行非同步決策所涉及的訊息。
如圖所示,時序圖1500開始於端點設備1504向客戶伺服器1502發送對內容的請求1512。客戶伺服器1502藉由將包括所請求內容的訊息1514發送到端點設備,來滿足請求1512。
隨後,端點設備1504觀察第一事件的發生,並將第一事件的觀察1516發送給決策代理1506。決策事件發送訊息1518,指示後端系統1508將第一事件記錄在與在端點設備1504上執行的軟體應用程式的用戶相關聯的時間序列資料中。決策代理1506從端點設備1504接收基於對第一事件的觀察做出決定的顯式請求。作為回應,在方塊1526處,決策代理1506基於對第一事件的觀察做出決策。決策代理1506向後端系統1508發送決策以及指令,以將決策記錄在與在端點設備1504上執行的軟體應用程式的用戶相關聯的時間序列資料中。決策代理1506另外向端點設備1504發送訊息1530,此訊息1530通知端點設備基於觀察第一事件做出的決策。在方塊1532,端點設備1504應用在訊息1530中識別的決策。由訊息1534和1536說明的其他事件的後續觀察,可以被類似地處理。
如圖所示,基於對第一事件的觀察作出的決定的請求1518與來自客戶伺服器1502的內容的請求1520非同步地執行。如圖所示,在端點設備將請求1522發送到決策代理1506之後並且在從決策代理1506接收要在端點設備處應用的決策之前,可以在端點設備1504處從客戶伺服器1502接收所請求的內容1524。
如前述,圖12至圖15圖示說明的範例,可基於一些量上下文資訊來做出決策。在一些情況下,諸如當用戶啟動軟體應用程式的會話或開始使用軟體應用程式的一部分時,可能沒有(或僅有限量的)上下文資訊可供決策代理做出決策以在軟體應用程式中應用。在此種情況下,可以使用推測性決策技術來生成針對各種預期用戶操作或上下文的決策。
圖16示出了根據一個具體實施例的用於在決策系統中執行推測性決策的程序1600。例如,在其中可回應於檢測到可在軟體應用程式執行期間(例如在起始或啟動軟體應用程式的會話或其一部分時)遭遇到的一組已知用戶上下文中的不同用戶上下文而應用不同決策的情境中,可使用推測性決策。程序1600可以實施為方法,或者程序1600可以作為機器上的指令來執行(例如藉由一個或多個處理器),其中指令被包括在至少一個非暫態性電腦可讀取儲存媒體上。
程序1600開始於方塊1602,其中決策系統從軟體應用程式接收推測性決策請求。在一些具體實施例中,當啟動軟體應用程式的會話時(例如,當用戶登錄到軟體應用程式或以其他方式開始與軟體應用程式互動時、當軟體應用程式為用戶創建會話容器時等等),可以從軟體應用程式接收推測性決策請求;在其他具體實施例中,可以在軟體應用程式的執行期間接收推測性決策請求。在一些具體實施例中,推測性決策請求可以包括識別將在稍後的一些時間點應用的推測性決策的複數個上下文事件的資訊。複數個上下文事件中的每一個,可以對應於軟體應用程式的用戶可能期望在與軟體應用程式互動時執行的不同操作。
在方塊1604,決策系統針對複數個上下文事件中的每一個生成一個或多個操作,該等操作係回應於檢測到相對於在稍後的時間點所應用的推測性決策的複數個上下文事件中的特定一個而由軟體應用程式執行。在一些具體實施例中,複數個事件中的每個事件,可以包括互斥的上下文事件。例如,在事件的發生或不發生可以表示為布林值的情況下,推測性地生成的操作可以被定義為一組操作,其中在上下文布林值解為布林值TRUE時執行組中的第一操作,並在上下文布林值解為布林值FALSE時執行組中的第二、相異的操作。可以藉由將與顧客識別符相關聯的時間序列資料以及與一個或多個推測性決策的上下文事件相關聯的事件類型,與決策策略進行比較,來生成要由軟體應用程式執行的一個或多個操作。
在方塊1606,決策系統將與軟體應用程式互動的顧客所請求的內容、要進行的推測性決策的複數個上下文事件、以及與複數個上下文事件中的每一個相關聯的操作,發送到計算設備,用戶在此計算設備上與軟體應用程式互動。
在方塊1608,決策系統檢測特定推測性決策點事件的發生,特定推測性決策點事件具有對於推測性決策請求的複數個上下文事件中的一個。可以基於在計算設備處從與軟體應用程式互動的顧客接收的用戶輸入,來檢測用作推測性決策請求的上下文的特定事件的發生。
在方塊1610,在計算設備處執行與檢測到的決策點(上下文)事件相關聯的操作。
在方塊1612,決策系統從計算系統接收識別檢測到的上下文事件的資訊。一般而言,接收到識別在推測性決策中的複數個上下文事件的所檢測到的上下文事件的資訊,可以被認為是「釋放觀察」。當發生釋放觀察時,決策系統可以停止對作為推測性決策的上下文的複數個上下文事件的監視。若在發生釋放觀察之後隨後檢測到用作推測性決策的上下文的複數個上下文事件中的一個,則可以基於其中發生了隨後檢測到的決策點事件的上下文,對隨後檢測到的決策點事件生成決策,如上文進一步說明的。
在方塊1614,決策系統將與所識別的決策點事件相關聯的時間序列資料保存到與顧客相關聯的會話容器,以作為推測性決策的上下文。時間序列資料通常至少包括作為推測性決策的上下文的所檢測到的事件、與作為推測性決策的上下文的事件相關聯的時間戳、與檢測到的推測性決策點事件相關聯的操作、以及與操作相關聯的時間戳。在一些具體實施例中,與作為推測性決策的上下文的事件相關聯的時間戳,和與檢測到的推測性決策點事件相關聯的操作,可以被設至一時間,此時間在執行軟體應用程式的計算設備中實際檢測到事件並執行操作的時間之前。例如,與作為推測性決策的上下文的事件相關聯的時間戳,可以被設為在接收推測性決策請求的時間之前的時間。與回應於檢測到的事件而執行的操作相關聯的時間戳,可以被設置為接收推測性決策請求的時間。藉由將與決策點事件(作為推測性決策與所執行操作的上下文)相關聯的時間戳,設置為在決策點事件實際發生以及對應操作執行的時間之前的時間,決策系統可以對其中用戶活動未知但期望發生一些用戶操作組的情境執行推測性決策,並將作為推測性決策上下文的事件適當識別為回應決策點事件而執行的操作的上下文。另外,在發生作為推測性決策的上下文的複數個事件中的一個之前,可針對其他決策點事件做出其他決策。
在一些具體實施例中,決策系統可接收關於發生在軟體應用程式中、不同於作為推測性決策上下文的複數個事件的其他決策點事件的資訊(亦即,如前述,在接收到指示作為推測性決策上下文的複數個事件中的一個已發生在軟體應用程式中的資訊之前)。在此種情況下,基於其中接收到其他決策點事件的上下文,為其他事件生成決策(例如,基於相關聯於與軟體應用程式互動的顧客的時間序列資料)。決策系統通常保留作為推測性決策的上下文的事件的可能值的映射,以及回應於檢測到特定事件而執行的操作,直到決策系統接收到釋放觀察(亦即,如上所述,指示複數個上下文事件中的一個發生)。
圖17是示出根據具體實施例的在執行推測性決策時交換的訊息的時序圖1700的訊息流程圖。如圖所示,執行推測性決策所涉及的資訊,被在端點設備1702、執行軟體應用程式和精簡客戶端的客戶伺服器1704、決策代理1706、和後端系統1708之間交換。
如圖所示,時序圖1700開始於端點設備1702將內容請求1712發送到客戶伺服器1704以請求來自客戶伺服器的內容。內容可例如包括用戶希望與之互動的網頁應用程式的一部分、文本內容、多媒體內容等。回應於接收內容請求1712,客戶伺服器1704向決策代理1706發送請求生成複數個推測性決策的訊息1714。如所論述的,在一些具體實施例中,用於生成推測性決策的請求,可以包括識別用戶可能被期望以執行的多個互斥事件組的資訊。作為回應,在方塊1716,決策代理1706為訊息1714中指定的每個互斥事件組生成推測性決策。決策代理1706將推測性決策1718發送到客戶伺服器1704,且客戶伺服器將包括內容和推測性決策的訊息1720發送到端點設備1702。
在接收包括所請求內容和推測性決策的訊息1720之後的時間點,在方塊1722處,在端點設備1702上執行的應用程式檢測請求推測性決策的複數個互斥的事件組中的一個的發生。作為回應,在方塊1724,在端點設備1702上執行的軟體應用程式,應用與檢測到的事件組相關聯的決策。如所論述的,決策可以包括當用戶執行所檢測到事件組時,將由決策代理1706識別的一個或多個操作執行作為要執行的操作。
端點設備1702將檢測到的事件組的觀察1726發送到客戶伺服器1704,客戶伺服器1704經由訊息1728將觀察結果傳遞給決策代理1706。決策代理1706經由訊息1730將觀察到的事件發送到後端系統1708。在方塊1732,後端系統將檢測到的事件組和所應用的決策,記錄到與顧客相關聯的時間序列資料容器中,此顧客經由端點設備1702與軟體應用程式互動。如所論述的,記錄檢測到的事件組和應用決策之步驟通常包括:將與檢測到的事件和應用決策相關聯的記錄回溯或標記時間戳到在實際檢測到事件與應用相關聯於所檢測到事件的決策之前的時間段,以便可以適當識別與記錄所檢測到的事件組,並記錄為所應用決策的上下文。例如,與所應用的決策相關聯的時間戳,可以是與訊息1714相關聯的時間戳,其中客戶伺服器1704請求生成推測性決策,且與檢測到的事件組相關聯的時間戳可以是在與訊息1714相關聯的時間戳之前的時間戳。
隨後,可以在端點設備1702處觀察到其他事件,並且經由訊息1734將事件發送到客戶伺服器1704。客戶伺服器1704經由訊息1736將觀察到的事件傳遞給決策代理1706,且決策代理1706經由訊息1738將觀察到的事件傳輸到後端系統1708,以記錄在與用戶相關聯的時間序列資料中,並做出決策以回應觀察到的事件。
在一些具體實施例中,可以由決策代理、客戶伺服器或應用程式正在其上執行(可被稱為混合整合)的端點設備,向後端系統報告關於在應用程式的執行和用戶互動期間觀察到的事件的資訊。例如,可以由決策代理向後端系統報告上下文和決策事件,並且可直接從端點設備或客戶伺服器向後端系統報告結果事件(例如,在根據上下文事件做出決定以及與此決策相關聯的操作已在端點設備或客戶伺服器上執行之後發生的事件)。藉由將結果事件直接報告給後端系統,可以減少報告結果事件中的潛時,因為包括關於結果事件的資訊的訊息不需要被傳輸到決策代理以便重傳到後端系統。
圖18示出了根據一個具體實施例的用於將決策功能整合到分析框架中的程序1800。程序1800一般而言,說明觀察報告的混合整合,其中如上所述,上下文和決策事件由第一系統報告給後端系統,且結果事件由第二系統報告給後端服務。程序1800可以實施為方法,或者程序1800可以作為機器上的指令來執行(例如藉由一個或多個處理器),其中指令被包括在至少一個非暫態性電腦可讀取儲存媒體上。
程序1800開始於方塊1802,其中決策系統接收關於在執行軟體應用程式期間觀察到的事件的資訊,以作為用於做出決策的上下文資訊。在一些具體實施例中,可以獨立於隨後從軟體應用程式接收的決策請求,來接收所接收的資訊。如上所述,還可以結合決策請求來接收所接收的資訊。如本文所使用的,觀察到的事件可以是單個事件或多個事件,其可以作為決策系統做出決策的上下文。
在方塊1804,決策系統基於關於觀察到的事件的資訊做出決策,並將決策發送到一個或多個其他系統(例如,客戶伺服器或端點設備)以供執行。在一些具體實施例中,做出決策之步驟可以包括生成包含識別所做出的決策的資訊的符記,此符記可以用於將結果事件鏈接到適當的決策。決策系統可以將關於決策的資訊和生成的符記,發送到客戶伺服器或端點設備以供執行。
在方塊1806,後端系統從決策系統接收關於一個或多個觀察到的事件的資訊以及使用觀察到的事件作為上下文做出的決策。後端系統可以將觀察到的上下文事件和基於觀察到的事件做出的決策提交給資料存儲庫,以供將來使用。在一些具體實施例中,如上所述,觀察到的上下文事件和基於觀察到的決策做出的決策,可以被記錄在與軟體應用程式的用戶(或所請求的內容)相關聯的時間序列資料中。
在方塊1808,後端系統從一個或多個其他系統,接收關於回應於從觀察到的上下文事件做出的決策的執行而觀察到的結果事件的資訊。回應於從觀察到的上下文事件做出的決策而觀察到的關於結果事件的資訊,可以直接從客戶伺服器或端點設備接收。為了鏈接直接從一個或多個其他系統報告的觀察到的結果事件,關於觀察到的結果事件的資訊可以伴隨作為決策的一部分而接收的符記,使得觀察到的事件可以被鏈接至在根據先前方塊1802處報告至決策系統的上下文事件所做出的決定。例如,在同步或非同步決策功能被整合在客戶伺服器上的具體實施例中,可以從客戶伺服器接收關於觀察到的結果事件的資訊,且可以從端點設備接收關於觀察到的結果事件的資訊,如上所述,在端點設備中決策功能被整合在端點設備上執行的單片客戶端中。
在方塊1810,決策系統從軟體應用程式接收後續決策請求。隨後的決策請求可以包括關於要作為對於所請求的隨後決策的上下文的一個或多個第三事件的資訊。在一些具體實施例中,決策系統可以檢查時間序列資料中的觀察到的結果事件,以識別觀察到的結果事件中的重複事件和在後續決策請求中識別的事件。若在觀察到的結果事件和在隨後的決策請求中識別的事件中識別出重複事件,則可以從一組觀察到的結果事件或在隨後的決策請求中識別的事件中移除重複事件。
在方塊1812處,決策系統至少使用觀察到的結果事件作為所請求的後續決策的上下文來做出後續決策。在方塊1814,將後續決策發送到軟體應用程式以供執行。
圖19A和19B是示出根據一些具體實施例的在決策系統中觀察報告的混合整合的示例訊息流程圖。
圖19A示出了在決策系統中觀察報告的混合整合的示例訊息流程圖,其中觀察結果被從端點設備報告給後端系統。儘管圖19A示出了從端點設備向後端系統報告觀察結果,但應該認識到,彼等觀察結果可以附加地或替代地從客戶伺服器報告給後端系統。
如圖所示,時序圖1900A開始於端點設備1902將內容請求1912發送到客戶伺服器1904以請求來自客戶伺服器的指定內容。客戶伺服器1904觀察第一組事件,並將對第一組事件的觀察和決策請求1914發送給決策代理1906。相應的,決策代理1906將訊息1916發送到後端系統1908,以在與軟體應用程式的用戶(或所請求的內容)相關聯的時間序列資料中記錄第一組事件的發生。如本文所使用的,訊息1914中包括的第一組事件可以包含單個事件或多個事件,其可以作為決策代理1906做出的決策的上下文。儘管觀察和決策請求1914在此被示為單個訊息,但應該認識到,第一組事件和決策請求的觀察可以作為個別的訊息以從客戶伺服器1904發送到決策代理1906。
在方塊1918,決策代理1906使用第一組事件(例如,在訊息1914中報告的事件)作為決策的上下文而做出決定。在決策代理1906在方塊1918做出決策之後,決策代理1906將訊息1920發送到後端系統1908,以將基於第一組事件做出的決策和訊息1922記錄到客戶伺服器1904,通知客戶伺服器1904基於第一組事件所做出的決策。此決策可被記錄在與軟體應用程式的用戶相關聯的時間序列資料中,並且可以包括識別所做出的決策的資訊(例如回應於對第一組事件的觀察而要執行的一個或多個操作)、時間戳資料、以及可用於做出後續決策的其他資訊。客戶伺服器1904可以經由訊息1924將所請求的內容和決策代理1906做出的決策發送到端點設備1902,並且在方塊1926,端點設備1902可以應用決策代理1906做出的決策。
隨後,端點設備1902或客戶伺服器1904可以經由訊息1928,將第二組事件的觀察直接報告給後端系統1908。觀察到的第二組事件,通常包括可以被視為回應於在方塊1926處應用決策而觀察到的結果事件的事件。如圖所示,訊息1928表示來自端點設備1902的第二組事件(例如,相對於所應用的決策的結果事件)的觀察的傳輸;然而,應該認識到,可以從客戶伺服器1904而不是端點設備1902發送訊息1928。
在稍後的時間點,客戶伺服器1904藉由向決策代理1906發送請求1930來請求決策。決策代理可以基於對至少第二組事件的觀察做出決策,如上所述,第二組事件由後端系統1908記錄在與用戶識別符、所請求的內容、或其他時間序列資訊相關聯的時間序列資料中,可基於其他時間序列資訊做出決策,並且可透過識別決策的符記或其他識別符鏈接到經由訊息1920記錄的決策。在方塊1932做出決策之後,決策代理1906發送訊息1934以記錄在後端系統1908基於第二組事件做出的決策,並發送訊息1936,通知客戶伺服器1904基於第二組事件做出的決策。在方塊1938,基於第二組事件做出的決策,被從客戶伺服器1904發送到端點設備1902以供執行。在一些具體實施例中,可回應於客戶伺服器1904從端點設備1902接收的內容請求而發送請求1930,並可從客戶伺服器1904發送決策1938與端點設備1902用戶請求的內容至端點設備1902。
圖19B示出了在決策系統中觀察報告的混合整合的示例訊息流程圖,其中在部署中從客戶伺服器向後端系統報告觀察,在該部署中端點設備執行包含決策功能的單片客戶端。
如圖所示,時序圖1900B開始於端點設備1903將內容請求1940發送到客戶伺服器1904以請求來自客戶伺服器的指定內容。客戶伺服器1904經由訊息1942提供所請求的內容至端點設備1903,且端點設備1903可隨後觀察第一組事件,並將對第一組事件的觀察結果發送至後端系統1908以供記錄。如本文所使用的,資訊1944中包括的第一組事件可以包含單個事件或多個事件,其可以作為在端點設備1903上執行的單片客戶端做出的決策的上下文。
隨後,端點設備1903執行回送請求1946,請求來自單片客戶端的決策。在方塊1948,回應於決策請求1946,使用在端點設備上執行的單片客戶端的端點設備1903基於對第一事件的觀察做出決策並應用決策。在一些具體實施例中,決策的應用可以使用先前下載到端點設備1903上或以其他方式包括在單片客戶端中的資源;在其他具體實施例中,決策的應用可以包括從遠端源(例如,客戶伺服器1904)下載資源,並在端點設備1903上執行所下載的資源。在基於對第一事件的觀察作出決策之後,端點設備1903發送訊息1950以記錄基於第一事件的決策。
隨後,客戶伺服器1904可以經由訊息1952,將第二組事件的觀察直接報告給後端系統1908。如前述,觀察到的事件組通常包括可以被視為回應於在方塊1948處應用決策而觀察到的結果事件的事件。在一些具體實施例中,為了便於將在訊息1952中報告的觀察到的結果決策與在方塊1948處應用的決策鏈接,訊息1952可以包括識別符,識別符相關聯於根據對第一組事件的觀察做出的決策(例如,在方塊1948作為決策過程的一部分而生成的符記)。
在稍後的時間點,端點設備1903執行回送請求1954,以請求基於對至少第二組事件的觀察來做出決策,如前述,第二組事件被由後端系統1908記錄在相關聯於用戶識別符、所請求內容、或據以做出決策的其他時間序列資訊的時間序列資料中。在方塊1956,在端點設備1903上執行的單片客戶端可基於所觀察到的第二組事件1952做出決策,第二組事件1952被記錄在後端系統1908並被鏈接至在方塊1948處做出的決策,且單片客戶端可應用所做出的決策。在端點設備1903上執行的單片客戶端,還可以將訊息1958發送到後端系統1908以記錄在方塊1948做出的決策。
圖20示出了根據一個具體實施例的決策系統2000。如圖所示,決策系統2000包括中央處理單元(CPU)系統2002、可允許各種I/O設備2014(例如鍵盤、顯示器、滑鼠設備、筆輸入、揚聲器、麥克風、運動感測器等)連接到決策系統2000的至少一個I/O設備介面2004、網路介面2006、記憶體2008、存儲器2010、和互連件2012。
CPU 2002可以檢索並執行存儲在記憶體2008中的程式指令。類似地,CPU 2002可以檢索並存儲駐留在記憶體2008中的應用程式資料。互連件2012在CPU 2002、I/O設備介面2004、網路介面2006、記憶體2008和存儲器2010之間傳輸程式指令和應用程式資料。CPU 2002可以表示單個CPU、多個CPU、具有多個處理核心的單個CPU等。另外,記憶體2008表示隨機存取記憶體。此外,存儲器2010可以是硬碟機、固態硬碟機或其組合。儘管顯示為單個單元,但存儲器2010可以是固定或可移動存儲設備的組合,諸如固定碟機、可移除記憶卡或光學存儲器、網路附接存儲器(NAS)或存儲區域網路(SAN)。
如圖所示,記憶體2008包括決策代理2016和會話2018。存儲器2010包含決策策略2020。
決策系統2000可以以下面的方式操作。當在用戶設備上運行的軟件應用程序中檢測到決策點事件時,軟件應用程序向決策代理2016發送決策請求。請求包括顧客ID。決策代理2016從會話2018檢索與顧客ID相關聯的時間序列資料,並將時間序列數據和決策點事件的類型與決策策略2020進行比較。基於比較,決策代理2016選擇用於用戶設備回應於決策請求而執行的一個或多個操作。決策代理2016發送回應於決策請求所選操作的指示。
注意到,以上出於說明的目的呈現了本揭示內容的具體實施例的描述,但是本揭示內容的具體實施例不意圖受限於任何所揭示的具體實施例。在不脫離所描述的具體實施例的範圍和精神的情況下,許多修改和變化對於本領域普通技術人員來說是顯而易見的。本文選擇使用的術語,是為了最好地解釋具體實施例的原理、實際應用或對市場中發現的技術的技術改進,或者使本領域其他技術人員能夠理解本文揭示的具體實施例。
在前文中,參考了本揭示內容中呈現的具體實施例。然而,本揭示內容的範圍不限於特定描述的具體實施例。相反的,預期以下特徵和元素的任何組合,無論是否與不同的具體實施例相關,都可以實現和實踐預期的具體實施例。此外,儘管本文揭示的具體實施例可以實現優於其他可能的解決方案或優於現有技術的優點,但是否藉由給定具體實施例實現特定優點不是對本揭示內容的範圍的限制。因此,以下態樣、特徵、具體實施例和優點僅是說明性的,並且不被認為是所附申請專利範圍的元素或限制,除非在申請專利範圍中明確地陳述。
本揭示內容的態樣可以採取完全硬體的具體實施例、完全軟體的具體實施例(包括韌體、駐留軟體、微代碼等)或者組合軟硬體態樣的具體實施例的形式,該等具體實施例可全部大抵稱為「電路」、「模組」或「系統」。此外,本揭示內容的態樣可以採取體現在一個或多個電腦可讀取媒體中的電腦程式產品的形式,此電腦可讀取媒體具有體現在其上的電腦可讀取程式碼。
可以使用一個或多個電腦可讀取媒體的任何組合。電腦可讀取媒體可為電腦可讀取訊號媒體或電腦可讀取儲存媒體。電腦可讀取儲存媒體可例如為(但不限於)電性、磁性、光學性、電磁性、紅外線、或半導體系統、設備、或裝置、或前述之任何適合的結合者。電腦可讀取媒體的更具體示例包括以下內容:具有一條或多條電線的電連結、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、可攜式光碟唯讀記憶體(CD-ROM)、光學儲存裝置、磁性儲存裝置、或前述之任何其他適合的結合者。在當前上下文中,電腦可讀取儲存媒體可以是可以包含或存儲程序的任何有形媒體。
在上文,參考機器學習模型。有許多不同類型的感應和轉換機器學習模型可用於本文揭示的具體實施例中。示例包括吸附模型、神經網路、支持向量機、貝葉斯信念網路、關聯規則模型、決策樹、最近鄰模型(例如,k-NN)、回歸模型、人工神經網路、深信念網絡和Q-學習模型等。
對於給定類型的機器學習模型,許多配置和參數組合是可能的。例如,對於神經網路,隱藏層的數量、每層中隱藏節點的數量、以及層之間的遞歸關係的存在可以變化。批量梯度下降或隨機梯度下降可以用於調整神經網路中的節點的權重的程序中。可以改變神經網路的學習速率參數,其部分地確定每個步驟可以調整多少權重。輸入要素可以標準化。還可以應用本領域已知的其他參數,諸如動量,以改善神經網路效能。
在上文,參考物聯網(IoT)。用於安全系統的門感測器、遊戲機、電子保險箱、全球定位系統(GPS)、位置跟蹤器、活動跟蹤器、膝上型電腦、平板電腦、自動門鎖、空調熔爐、加熱器、乾燥器、無線感測器網路中的無線感測器、大型或小型器件、個人警報設備(例如由在家中跌倒的老年人使用)、心臟起搏器、條碼閱讀器、植入設備、腳踝手鐲(例如用於受到電子監管的人)、假肢設備、遙測儀、交通信號燈、用戶設備(UE)、或包括能夠實現網路連結的數位電路系統的任何設備,可以被認為對於本揭示內容的目的的IoT設備或網路設備。
此外,可以組合各個機器學習模型以形成整體機器學習模型。整體機器學習模型可以是同質的(即使用相同類型的多個成員模型)或非同質的(即使用不同類型的多個成員模型)。整體內的各個機器學習模型,可以全部使用相同的訓練資料來訓練,或者可以使用從較大的訓練資料組中隨機選擇的重疊或非重疊子集來訓練。例如,隨機森林(Random-Forest)模型是整體模型,其中使用輸入特徵的隨機子集及(或)訓練實例的隨機化子集生成多個決策樹。
儘管前述內容係關於本揭示內容的具體實施例,但可發想其他與進一步的具體實施例而不脫離前述內容的基本範圍,且前述內容的範圍係由下列申請專利範圍判定。
100a‧‧‧計算環境
100b‧‧‧計算環境
100c‧‧‧計算環境
101‧‧‧網路連結
101b‧‧‧網路連結
101c‧‧‧網路連結
102‧‧‧專用網路
102b‧‧‧專用網路
103‧‧‧專用網路連結
103b‧‧‧專用網路連結
104‧‧‧網路連結
110‧‧‧決策代理
111a‧‧‧控制策略
111b‧‧‧優化策略
112‧‧‧內存資料庫
113‧‧‧活動會話
114‧‧‧網頁伺服器
115‧‧‧負載平衡器
116‧‧‧伺服器側應用程式
117‧‧‧精簡客戶端
118‧‧‧持續性資料庫
120‧‧‧後端系統
121‧‧‧持續性資料儲存庫
122‧‧‧會話
123‧‧‧分析資料庫
124‧‧‧策略生成器
125‧‧‧度量跟蹤器
126‧‧‧片段發現部件
127‧‧‧介面部件
128‧‧‧度量/目標定義
130‧‧‧端點設備
131‧‧‧單片客戶端
132‧‧‧控制策略
133‧‧‧優化策略
134‧‧‧會話
135‧‧‧客戶端側應用程式
140‧‧‧後端系統
141‧‧‧持續性資料儲存庫
142‧‧‧會話
143‧‧‧分析資料庫
144‧‧‧策略生成器
145‧‧‧度量跟蹤器
146‧‧‧片段發現部件
147‧‧‧介面部件
148‧‧‧度量/目標定義
150‧‧‧端點設備
151‧‧‧單片客戶端
152‧‧‧控制策略
153‧‧‧優化策略
154‧‧‧會話
155‧‧‧客戶端側應用程式
160‧‧‧後端系統
161‧‧‧持續性資料儲存庫
162‧‧‧會話
163‧‧‧分析資料庫
164‧‧‧策略生成器
165‧‧‧度量跟蹤器
166‧‧‧片段發現部件
167‧‧‧介面部件
168‧‧‧度量/目標定義
170‧‧‧決策代理
171a‧‧‧控制策略
171b‧‧‧優化策略
172‧‧‧內存資料庫
173‧‧‧活動會話
174‧‧‧網頁伺服器
176‧‧‧伺服器側應用程式
177‧‧‧精簡客戶端
178‧‧‧持續性資料庫
180‧‧‧端點設備
181‧‧‧瀏覽器
190‧‧‧端點設備
191‧‧‧瀏覽器
200‧‧‧計算環境
202‧‧‧專用網路
260‧‧‧後端系統
261‧‧‧持續性資料存儲庫
262‧‧‧會話
264‧‧‧策略生成器
266‧‧‧片段發現部件
267‧‧‧介面部件
268‧‧‧度量/目標定義
270‧‧‧決策代理
271a‧‧‧控制策略
271b‧‧‧優化策略
272‧‧‧內存資料庫
273‧‧‧活動會話
274‧‧‧網頁伺服器
276‧‧‧伺服器側應用程式
277‧‧‧精簡客戶端
300‧‧‧信號圖
301‧‧‧生成決策策略時
302a‧‧‧箭頭
302b‧‧‧箭頭
302c‧‧‧箭頭
303‧‧‧箭頭
304a‧‧‧箭頭
304b‧‧‧箭頭
305a‧‧‧箭頭
305b‧‧‧箭頭
310‧‧‧決策代理
320‧‧‧後端系統
330‧‧‧伺服器側應用程式
340‧‧‧端點設備
400‧‧‧信號圖
401a‧‧‧箭頭
401b‧‧‧箭頭
402a‧‧‧箭頭
402c‧‧‧箭頭
403a‧‧‧箭頭
404a‧‧‧箭頭
404b‧‧‧箭頭
410‧‧‧決策代理
420‧‧‧後端系統
430‧‧‧客戶端側應用程式
500‧‧‧介面
502‧‧‧欄位
503‧‧‧欄位
504‧‧‧箭頭
506‧‧‧單選按鈕
507‧‧‧單選按鈕
508‧‧‧標籤
509‧‧‧標籤
510‧‧‧括號
511‧‧‧單選按鈕
512‧‧‧單選按鈕
513‧‧‧單選按鈕
514‧‧‧單擊按鈕
515‧‧‧單擊按鈕
600‧‧‧介面
602‧‧‧滑塊
603‧‧‧圖標
604‧‧‧圖標
606‧‧‧滑塊
607‧‧‧圖標
608‧‧‧圖標
610‧‧‧滑塊
611‧‧‧圖標
612‧‧‧圖標
700‧‧‧介面
702‧‧‧側邊欄
704‧‧‧概要框
706‧‧‧線圖
707‧‧‧曲線
708‧‧‧曲線
709‧‧‧線
710‧‧‧可選擇列表
711‧‧‧框
712‧‧‧表
713‧‧‧列
715‧‧‧箭頭
716‧‧‧箭頭
717‧‧‧箭頭
800‧‧‧程序
802-812‧‧‧步驟
900‧‧‧程序
902-910‧‧‧步驟
1000‧‧‧程序
1002-1014‧‧‧步驟
1100‧‧‧程序
1102-1112‧‧‧步驟
1200‧‧‧時序圖
1202‧‧‧端點設備
1204‧‧‧客戶伺服器
1206‧‧‧決策代理
1208‧‧‧後端系統
1212‧‧‧內容請求
1214‧‧‧決策請求
1216‧‧‧資訊
1218‧‧‧步驟
1220‧‧‧訊息
1222‧‧‧訊息
1224‧‧‧訊息
1226‧‧‧步驟
1228‧‧‧訊息
1230‧‧‧訊息
1232‧‧‧訊息
1300‧‧‧時序圖
1302‧‧‧端點設備
1304‧‧‧客戶伺服器
1306‧‧‧決策代理
1308‧‧‧後端系統
1312‧‧‧請求
1314‧‧‧第一組上下文事件
1316‧‧‧訊息
1318‧‧‧訊息
1320‧‧‧訊息
1322‧‧‧步驟
1326‧‧‧訊息
1328‧‧‧訊息
1330‧‧‧步驟
1332‧‧‧訊息
1334‧‧‧訊息
1336‧‧‧訊息
1400‧‧‧時序圖
1402‧‧‧客戶伺服器
1404‧‧‧端點設備
1406‧‧‧後端系統
1412‧‧‧請求
1414‧‧‧所請求的內容
1416‧‧‧訊息
1417‧‧‧回送請求
1418‧‧‧步驟
1420‧‧‧訊息
1422‧‧‧訊息
1424‧‧‧內容
1500‧‧‧時序圖
1502‧‧‧客戶伺服器
1504‧‧‧端點設備
1506‧‧‧決策代理
1508‧‧‧後端系統
1512‧‧‧請求
1514‧‧‧訊息
1516‧‧‧觀察
1518‧‧‧訊息
1520‧‧‧請求
1522‧‧‧請求
1524‧‧‧內容
1526‧‧‧步驟
1530‧‧‧訊息
1532‧‧‧步驟
1534‧‧‧訊息
1536‧‧‧訊息
1600‧‧‧程序
1602-1614‧‧‧步驟
1700‧‧‧時序圖
1702‧‧‧端點設備
1704‧‧‧客戶伺服器
1706‧‧‧決策代理
1708‧‧‧後端系統
1712‧‧‧內容請求
1714‧‧‧訊息
1716‧‧‧步驟
1718‧‧‧推測性決策
1720‧‧‧訊息
1722‧‧‧步驟
1724‧‧‧步驟
1726‧‧‧觀察
1728‧‧‧訊息
1730‧‧‧訊息
1732‧‧‧步驟
1734‧‧‧訊息
1736‧‧‧訊息
1738‧‧‧訊息
1800‧‧‧程序
1802-1814‧‧‧步驟
1900A‧‧‧時序圖
1900B‧‧‧時序圖
1902‧‧‧端點設備
1903‧‧‧端點設備
1904‧‧‧客戶伺服器
1906‧‧‧決策代理
1908‧‧‧後端系統
1912‧‧‧內容請求
1914‧‧‧資訊
1916‧‧‧訊息
1918‧‧‧步驟
1920‧‧‧訊息
1922‧‧‧訊息
1924‧‧‧訊息
1928‧‧‧訊息
1930‧‧‧請求
1932‧‧‧步驟
1934‧‧‧請求
1936‧‧‧訊息
1938‧‧‧步驟
1940‧‧‧內容請求
1942‧‧‧訊息
1944‧‧‧資訊
1946‧‧‧回送請求
1948‧‧‧步驟
1950‧‧‧訊息
1952‧‧‧訊息
1954‧‧‧回送請求
1956‧‧‧步驟
1958‧‧‧訊息
2000‧‧‧決策系統
2002‧‧‧中央處理單元(CPU)系統
2004‧‧‧I/O設備介面
2006‧‧‧網路介面
2008‧‧‧記憶體
2010‧‧‧存儲器
2012‧‧‧互連件
2014‧‧‧I/O設備
2016‧‧‧決策代理
2018‧‧‧會話
2020‧‧‧決策策略
可參考多個具體實施例以更特定地說明以上簡要總結的本公開內容,以更詳細瞭解本公開內容的上述特徵,附加圖式圖示說明了其中一些具體實施例。然而應注意到,附加圖式僅說明示例性具體實施例,且因此不應被視為限制本揭示內容的範圍。本揭示內容的範圍可以允許其他具體實施例。
圖1a示出了根據一個具體實施例的本揭示內容的系統可以在其中操作的第一示例計算環境。
圖1b示出了根據一個具體實施例的本揭示內容的系統可以在其中操作的第二示例計算環境。
圖1c示出了根據一個具體實施例的本揭示內容的系統可以在其中操作的第三示例計算環境。
圖2示出了根據一個具體實施例的本揭示內容的系統可以在其中操作的第四示例計算環境。
圖3示出了根據一個具體實施例的用於後端系統、決策代理、伺服器側應用程式、和端點設備之間的通信的示例信號圖。
圖4示出了根據一個具體實施例的用於後端系統、決策代理、和用戶端應用程式之間的通信的示例信號圖。
圖5示出了根據一個具體實施例的示例介面,管理員(即使用此介面的客戶)可以通過此介面提供度量定義和度量的優化方向。
圖6示出了根據一個具體實施例的示例介面,管理員可通過此介面指定作為目標定義的參數的度量的危險條件和目標條件。
圖7示出了根據一個具體實施例的示例介面,管理員可通過此介面查看軟體應用程式關於目標定義中參照的度量的執行情況。
圖8示出了根據一個具體實施例的決策代理將主動決策功能整合到計算分析框架中的程序。
圖9示出了根據一個具體實施例的單片客戶端將主動決策功能整合到計算分析框架中的程序。
圖10示出了根據一個具體實施例的策略生成器的程序。
圖11示出了根據一個具體實施例的介面部件的程序。
圖12示出了根據一個具體實施例的後端系統、決策代理、伺服器側應用程式、和端點設備之間的通信的示例訊息流程圖,其中同步決策功能被整合在計算分析框架中。
圖13示出了根據一個具體實施例的後端系統、決策代理、伺服器側應用程式、和端點設備之間的通信的示例訊息流程圖,其中非同步決策功能被整合在計算分析框架中。
圖14示出了根據一個具體實施例的後端系統、決策代理、伺服器側應用程式、和端點設備之間的通信的示例訊息流程圖,端點設備執行單片客戶端,其中非同步決策功能被整合在計算分析框架中。
圖15示出了根據一個具體實施例的後端系統、決策代理、伺服器側應用程式、和端點設備之間的通信的示例訊息流程圖,端點設備執行精簡客戶端,其中非同步決策功能被整合在計算分析框架中。
圖16示出了根據一個具體實施例的決策代理將推測性決策功能整合到計算分析框架中的程序。
圖17示出了根據一個具體實施例的後端系統、決策代理、伺服器側應用程式、和端點設備之間的通信的示例訊息流程圖,其中實施推測性決策功能。
圖18示出了根據一個具體實施例的後端系統、決策代理、伺服器側應用程式、和端點設備之間的通信的示例訊息流程圖,其中伺服器側應用程式和端點設備向後端系統報告事件觀察。
圖19a示出了根據一個具體實施例的示出來自決策系統中的端點設備的混合觀察報告的示例訊息流程圖。
圖19b示出了根據一個具體實施例的示出來自決策系統中的顧客伺服器的混合觀察報告的示例訊息流程圖。
圖20示出了根據一個具體實施例的決策系統。
為了協助瞭解,已儘可能使用相同的元件符號標定圖式中共有的相同元件。已思及到,一個具體實施例的元件與特徵,可無需進一步的敘述即可被有益地併入其他具體實施例中。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記)
無
無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記)
無
無
Claims (140)
- 一種用於將主動決策功能整合入一計算分析框架的方法,該方法包含以下步驟: 從一策略生成器接收一決策策略,該決策策略指定當一軟體應用程式檢測到決策點事件時,該軟體應用程式要執行的一個或多個操作,其中該策略基於會話中的時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作,該等會話相關聯於與該軟體應用程式互動的顧客; 接收源自該軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符並指示該決策點事件類型; 從一資料儲存庫檢索在相關聯於該顧客識別符的一會話中的時間序列資料; 藉由將該時間序列資料和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的該等不同操作中的一個或多個; 回應於該決策請求而發送該一個或多個所選操作的一指示;以及 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作。
- 如請求項1所述之方法,其中接收源自該軟體應用程式的該決策請求之步驟包含以下步驟: 接收來自包含在該軟體應用程式中之一精簡客戶端的該請求。
- 如請求項1所述之方法,其中透過該決策代理與該軟體應用程式之間的一專用網路連結來接收該請求。
- 如請求項1所述之方法,其中該資料儲存庫被包含在隨機存取記憶體(RAM)記憶體、一快取記憶體、或該RAM和該快取記憶體的一組合中。
- 如請求項1所述之方法,其中該會話容器中的該時間序列資料包括在複數個設備上發生的事件的事件描述和時間戳,該顧客識別符指定的一顧客先前已通過該等設備存取了該軟體應用程式。
- 如請求項1所述之方法,其中該決策請求包含指示要選擇多少操作的一數字,且其中選擇該軟體應用程式要執行的該等不同操作中的一個或多個之步驟,以及發送該一個或多個所選操作的一指示之步驟,包含以下步驟: 生成該等不同操作的一子集的一有序列表,其中該子集的一基數與該數字匹配。
- 如請求項1所述之方法,該方法進一步包含以下步驟: 將該更新的時間序列資料發送到該策略生成器可存取的一持續性資料存儲庫;以及 從該策略生成器接收一更新的策略,其中該更新的策略係基於該更新的時間序列資料。
- 一種非暫態性電腦可讀取媒體,其上儲存了指令,該等指令在由一個或多個處理器執行時執行一作業,包含: 從一策略生成器接收一決策策略,該決策策略指定當一軟體應用程式檢測到決策點事件時,該軟體應用程式要執行的一個或多個操作,其中該策略基於會話中的時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作,該等會話相關聯於與該軟體應用程式互動的顧客; 接收源自該軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符並指示該決策點事件類型; 從一資料儲存庫檢索在相關聯於該顧客識別符的一會話中的時間序列資料; 藉由將該時間序列資料和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的該等不同操作中的一個或多個; 回應於該決策請求而發送該一個或多個所選操作的一指示;以及 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作。
- 如請求項8所述之非暫態性電腦可讀取媒體,其中接收源自該軟體應用程式的該決策請求之步驟包含以下步驟: 接收來自包含在該軟體應用程式中之一精簡客戶端的該請求。
- 如請求項8所述之非暫態性電腦可讀取媒體,其中透過該決策代理與該軟體應用程式之間的一專用網路連結來接收該請求。
- 如請求項8所述之非暫態性電腦可讀取媒體,其中該資料儲存庫被包含在隨機存取記憶體(RAM)記憶體、一快取記憶體、或該RAM和該快取記憶體的一組合中。
- 如請求項8所述之非暫態性電腦可讀取媒體,其中該會話容器中的該時間序列資料包括在複數個設備上發生的事件的事件描述和時間戳,該顧客識別符指定的一顧客先前已通過該等設備存取了該軟體應用程式。
- 如請求項8所述之非暫態性電腦可讀取媒體,其中該決策請求包含指示要選擇多少操作的一數字,且其中選擇該軟體應用程式要執行的該等不同操作中的一個或多個之步驟,以及發送該一個或多個所選操作的一指示之步驟,包含以下步驟: 生成該等不同操作的一子集的一有序列表,其中該子集的一基數與該數字匹配。
- 如請求項8所述之非暫態性電腦可讀取媒體,其中該作業進一步包含: 將該更新的時間序列資料發送到該策略生成器可存取的一持續性資料存儲庫;以及 從該策略生成器接收一更新的策略,其中該更新的策略係基於該更新的時間序列資料。
- 一種系統,包含: 一個或多個處理器;以及 儲存一個或多個指令的記憶體,該一個或多個指令在執行於該一個或多個處理器上時執行一作業,包含: 從一策略生成器接收一決策策略,該決策策略指定當一軟體應用程式檢測到決策點事件時,該軟體應用程式要執行的一個或多個操作,其中該策略基於會話中的時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作,該等會話相關聯於與該軟體應用程式互動的顧客; 接收源自該軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符並指示該決策點事件類型; 從一資料儲存庫檢索在相關聯於該顧客識別符的一會話中的時間序列資料; 藉由將該時間序列資料和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的該等不同操作中的一個或多個; 回應於該決策請求而發送該一個或多個所選操作的一指示;以及 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作。
- 如請求項15所述之系統,其中接收源自該軟體應用程式的該決策請求之步驟包含以下步驟: 接收來自包含在該軟體應用程式中之一精簡客戶端的該請求。
- 如請求項15所述之系統,其中透過該決策代理與該軟體應用程式之間的一專用網路連結來接收該請求。
- 如請求項15所述之系統,其中該資料儲存庫被包含在隨機存取記憶體(RAM)記憶體、一快取記憶體、或該RAM和該快取記憶體的一組合中。
- 如請求項15所述之系統,其中該會話容器中的該時間序列資料包括在複數個設備上發生的事件的事件描述和時間戳,該顧客識別符指定的一顧客先前已通過該等設備存取了該軟體應用程式。
- 如請求項8所述之系統,其中該決策請求包含指示要選擇多少操作的一數字,且其中選擇該軟體應用程式要執行的該等不同操作中的一個或多個之步驟,以及發送該一個或多個所選操作的一指示之步驟,包含以下步驟: 生成該等不同操作的一子集的一有序列表,其中該子集的一基數與該數字匹配。
- 一種用於將主動決策功能整合入一計算分析框架的方法,該方法包含以下步驟: 在一計算設備處接收相關聯於一軟體應用程式的客戶端側碼; 基於在該計算設備處接收到的來自與該軟體應用程式互動的一顧客的輸入,來檢測一決策點事件; 識別儲存在相關聯於該顧客的一會話容器中的時間序列資料; 藉由將該時間序列資料和該決策點事件的一類型與該客戶端側碼中包含的一決策策略進行比較,來選擇該軟體應用程式回應於檢測到該決策點事件而執行的一個或多個不同操作;以及 在該計算設備處執行該一個或多個所選操作。
- 如請求項21所述之方法,其中識別該時間序列資料之步驟包含以下步驟: 將對與該顧客相關聯的該時間序列資料的一遠端存儲部分的一請求發送給一決策代理。
- 如請求項22所述之方法,其中識別該時間序列資料之步驟進一步包含以下步驟: 回應於該請求,經由該網路接收該時間序列資料的該遠端存儲部分;以及 將該時間序列資料的該遠端存儲部分,添加至該時間序列資料的一本地存儲部分。
- 如請求項23所述之方法,其中該時間序列資料的該遠端存儲部分,包含發生在一個或多個額外計算設備上的事件的描述。
- 如請求項22所述之方法,該方法進一步包含以下步驟: 確定自發送該請求以來已經經過了一預定義的時間量,並且沒有接收到對該請求的回應;以及 藉由將該時間序列資料的一本地存儲部分和該決策點事件的該類型與該決策策略進行比較,來進行該選擇。
- 如請求項21所述之方法,其中識別該時間序列資料之步驟包含以下步驟: 確定對該遠端網路位置的一網路連結為不可用;以及 藉由將該時間序列資料的一本地存儲部分和該決策點事件的該類型與該決策策略進行比較,來進行該選擇。
- 如請求項21所述之方法,該方法進一步包含以下步驟: 更新該時間序列資料,以反映該一個或多個所選操作的該執行;以及 經由一網路將該更新的時間序列資料發送到一遠端網路位置,以存儲在一遠端資料儲存庫中。
- 一種非暫態性電腦可讀取媒體,其上儲存了指令,該等指令在由一個或多個處理器執行時執行一作業,包含: 在一計算設備處接收相關聯於一軟體應用程式的客戶端側碼; 基於在計算設備處接收到的來自與該軟體應用程式互動的一顧客的輸入,來檢測一決策點事件; 識別儲存在相關聯於該顧客的一會話容器中的時間序列資料; 藉由將該時間序列資料和該決策點事件的一類型與該客戶端側碼中包含的一決策策略進行比較,來選擇該軟體應用程式回應於檢測到該決策點事件而執行的一個或多個不同操作;以及 在該計算設備處執行該一個或多個所選操作。
- 如請求項28所述之非暫態性電腦可讀取媒體,其中該識別該時間序列資料之步驟包含以下步驟: 將對與該顧客相關聯的該時間序列資料的一遠端存儲部分的一請求發送給一決策代理。
- 如請求項29所述之非暫態性電腦可讀取媒體,其中識別該時間序列資料之步驟進一步包含以下步驟: 回應於該請求,經由該網路接收該時間序列資料的該遠端存儲部分;以及 將該時間序列資料的該遠端存儲部分,添加至該時間序列資料的一本地存儲部分。
- 如請求項30所述之非暫態性電腦可讀取媒體,其中該時間序列資料的該遠端存儲部分,包含發生在一個或多個額外計算設備上的事件的描述。
- 如請求項29所述之非暫態性電腦可讀取媒體,其中該作業進一步包含: 確定自發送該請求以來已經經過了一預定義的時間量,並且沒有接收到對該請求的回應;以及 藉由將該時間序列資料的一本地存儲部分和該決策點事件的該類型與該決策策略進行比較,來進行該選擇。
- 如請求項28所述之非暫態性電腦可讀取媒體,其中該識別該時間序列資料之步驟包含以下步驟: 確定對該遠端網路位置的一網路連結為不可用;以及 藉由將該時間序列資料的一本地存儲部分和該決策點事件的該類型與該決策策略進行比較,來進行該選擇。
- 如請求項28所述之非暫態性電腦可讀取媒體,其中該作業進一步包含: 更新該時間序列資料,以反映該一個或多個所選操作的該執行;以及 經由一網路將該更新的時間序列資料發送到一遠端網路位置,以存儲在一遠端資料儲存庫中。
- 一種系統,包含: 一個或多個處理器;以及 儲存一個或多個指令的記憶體,該一個或多個指令在執行於該一個或多個處理器上時執行一作業,包含: 在一計算設備處接收相關聯於一軟體應用程式的客戶端側碼; 基於在該計算設備處接收到的來自與該軟體應用程式互動的一顧客的輸入,來檢測一決策點事件; 識別儲存在相關聯於該顧客的一會話容器中的時間序列資料; 藉由將該時間序列資料和該決策點事件的一類型與該客戶端側碼中包含的一決策策略進行比較,來選擇該軟體應用程式回應於檢測到該決策點事件而執行的一個或多個不同操作;以及 在該計算設備處執行該一個或多個所選操作。
- 如請求項35所述之系統,其中識別該時間序列資料之步驟包含以下步驟: 將對與該顧客相關聯的該時間序列資料的一遠端存儲部分的一請求發送給一決策代理。
- 如請求項36所述之系統,其中識別該時間序列資料之步驟進一步包含以下步驟: 回應於該請求,經由該網路接收該時間序列資料的該遠端存儲部分;以及 將該時間序列資料的該遠端存儲部分,添加至該時間序列資料的一本地存儲部分。
- 如請求項37所述之系統,其中該時間序列資料的該遠端存儲部分,包含發生在一個或多個額外計算設備上的事件的描述。
- 如請求項36所述之系統,其中該作業進一步包含: 確定自發送該請求以來已經經過了一預定義的時間量,並且沒有接收到對該請求的回應;以及 藉由將該時間序列資料的一本地存儲部分和該決策點事件的該類型與該決策策略進行比較,來進行該選擇。
- 如請求項35所述之系統,其中識別該時間序列資料之步驟包含以下步驟: 確定對該遠端網路位置的一網路連結為不可用;以及 藉由將該時間序列資料的一本地存儲部分和該決策點事件的該類型與該決策策略進行比較,來進行該選擇。
- 一種用於將主動決策功能整合入一計算分析框架的方法,該方法包含以下步驟: 經由一計算網路,接收由一遠端執行的軟體應用程式針對複數個會話收集的時間序列資料,其中每一會話相關聯於一各別的顧客; 將該時間序列資料儲存在一持續性資料儲存庫中; 經由一介面部件接收一目標定義,其中該目標定義指定如何基於至少一個度量來計算一目標分數,該至少一個度量可基於該時間序列資料來計算出; 對於該等會話中的每一個,確定對於該會話的該至少一個度量的一對應值; 基於該時間序列資料和該等會話的該等值,訓練一機器學習模型,以基於一會話中的一決策點事件之前的事件確定該遠程執行的軟體應用程式回應於該決策點事件而執行的一個或多個操作,以增加該會話的一目標分數滿足一危險條件的一概率; 生成一決策策略,該決策策略表示在該訓練期間由機器學習模型學習的邏輯;以及 將該策略部署到該計算網路中的一位置,在該位置接收源自該軟體應用程式的決策請求。
- 如請求項41所述之方法,其中該目標定義包含對於該至少一個度量的一目標條件。
- 如請求項41所述之方法,其中將該策略部署到該計算網路中的一位置(在該位置接收源自該軟體應用程式的決策請求)之步驟包含以下步驟: 將該策略發送到一遠端決策代理,該遠端決策代理執行在一專用網路中的計算硬體上,該專用網路相關聯於該軟體應用程式。
- 如請求項41所述之方法,其中將該策略部署到該計算網路中的一位置(在該位置接收源自該軟體應用程式的決策請求)之步驟包含以下步驟: 將該策略發送到一遠端計算設備,該軟體應用程式在該遠端計算設備上執行,以使該策略能夠在該遠端計算設備本地處應用。
- 如請求項44所述之方法,其中生成表示在該訓練期間由機器學習模型學習的該邏輯的該決策策略之步驟包含以下步驟: 以一客戶端側程式語言對該邏輯進行編碼,並且將該邏輯編碼為不超過一百萬位元組(MB)的存儲空間。
- 如請求項41所述之方法,其中該計算網路為一專用網路,且其中該方法進一步包含以下步驟: 經由該計算網路從一遠端計算設備接收一決策請求,該決策請求包含一顧客識別符並指示一決策點事件類型; 從該資料儲存庫檢索在相關聯於該顧客識別符的一會話中的一時間序列資料集合; 藉由將該時間序列資料集合和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的一操作;以及 回應於該決策請求而發送該所選操作的一指示。
- 如請求項46所述之方法,其中與該顧客識別符相關聯的該會話中的該時間序列資料集合,包括對該事件類型的先前決策點事件和對應時間戳的描述。
- 一種非暫態性電腦可讀取媒體,其上儲存了指令,該等指令在由一個或多個處理器執行時執行一作業,包含: 經由一計算網路,接收由一遠端執行的軟體應用程式針對複數個會話收集的時間序列資料,其中每一會話相關聯於一各別的顧客; 將該時間序列資料儲存在一持續性資料儲存庫中; 經由一介面部件接收一目標定義,其中該目標定義指定如何基於至少一個度量來計算一目標分數,該至少一個度量可基於該時間序列資料來計算出; 對於該等會話中的每一個,確定對於該會話的該至少一個度量的一對應值; 基於該時間序列資料和該等會話的該等值,訓練一機器學習模型,以基於一會話中的一決策點事件之前的事件確定該遠程執行的軟體應用程式回應於該決策點事件而執行的一個或多個操作,以增加該會話的一目標分數滿足一危險條件的一概率; 生成一決策策略,該決策策略表示在該訓練期間由機器學習模型學習的邏輯;以及 將該策略部署到該計算網路中的一位置,在該位置接收源自該軟體應用程式的決策請求。
- 如請求項48所述之非暫態性電腦可讀取媒體,其中該目標定義包含對於該至少一個度量的一目標條件。
- 如請求項48所述之非暫態性電腦可讀取媒體,其中將該策略部署到該計算網路中的一位置(在該位置接收源自該軟體應用程式的決策請求)之步驟包含以下步驟: 將該策略發送到一遠端決策代理,該遠端決策代理執行在一專用網路中的計算硬體上,該專用網路相關聯於該軟體應用程式。
- 如請求項48所述之非暫態性電腦可讀取媒體,其中將該策略部署到該計算網路中的一位置(在該位置接收源自該軟體應用程式的決策請求)之步驟包含以下步驟: 將該策略發送到一遠端計算設備,該軟體應用程式在該遠端計算設備上執行,以使該策略能夠在該遠端計算設備本地處應用。
- 如請求項51所述之非暫態性電腦可讀取媒體,其中 生成表示在該訓練期間由機器學習模型學習的該邏輯的該決策策略之步驟包含以下步驟: 以一客戶端側程式語言對該邏輯進行編碼,並且將該邏輯編碼為不超過一百萬位元組(MB)的存儲空間。
- 如請求項48所述之非暫態性電腦可讀取媒體,其中該計算網路為一專用網路,且其中該作業進一步包含: 經由該計算網路從一遠端計算設備接收一決策請求,該決策請求包含一顧客識別符並指示一決策點事件類型; 從該資料儲存庫檢索在相關聯於該顧客識別符的一會話中的一時間序列資料集合; 藉由將該時間序列資料集合和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的一操作;以及 回應於該決策請求而發送該所選操作的一指示。
- 如請求項53所述之非暫態性電腦可讀取媒體,其中與該顧客識別符相關聯的該會話中的該時間序列資料集合,包括對該事件類型的先前決策點事件和對應時間戳的描述。
- 一種系統,包含: 一個或多個處理器;以及 儲存一個或多個指令的記憶體,該一個或多個指令在執行於該一個或多個處理器上時執行一作業,包含: 經由一計算網路,接收由一遠端執行的軟體應用程式針對複數個會話收集的時間序列資料,其中每一會話相關聯於一各別的顧客; 將該時間序列資料儲存在一持續性資料儲存庫中; 經由一介面部件接收一目標定義,其中該目標定義指定如何基於至少一個度量來計算一目標分數,該至少一個度量可基於該時間序列資料來計算出; 對於該等會話中的每一個,確定對於該會話的該至少一個度量的一對應值; 基於該時間序列資料和該等會話的該等值,訓練一機器學習模型,以基於一會話中的一決策點事件之前的事件確定該遠程執行的軟體應用程式回應於該決策點事件而執行的一個或多個操作,以增加該會話的一目標分數滿足一危險條件的一概率; 生成一決策策略,該決策策略表示在該訓練期間由機器學習模型學習的邏輯;以及 將該策略部署到該計算網路中的一位置,在該位置接收源自該軟體應用程式的決策請求。
- 如請求項55所述之系統,其中該目標定義包含對於該至少一個度量的一目標條件。
- 如請求項55所述之系統,其中將該策略部署到該計算網路中的一位置(在該位置接收源自該軟體應用程式的決策請求)之步驟包含以下步驟: 將該策略發送到一遠端決策代理,該遠端決策代理執行在一專用網路中的計算硬體上,該專用網路相關聯於該軟體應用程式。
- 如請求項55所述之系統,其中將該策略部署到該計算網路中的一位置(在該位置接收源自該軟體應用程式的決策請求)之步驟包含以下步驟: 將該策略發送到一遠端計算設備,該軟體應用程式在該遠端計算設備上執行,以使該策略能夠在該遠端計算設備本地處應用。
- 如請求項58所述之系統,其中:生成表示在該訓練期間由機器學習模型學習的該邏輯的該決策策略之步驟包含以下步驟: 以一客戶端側程式語言對該邏輯進行編碼,並且將該邏輯編碼為不超過一百萬位元組(MB)的存儲空間。
- 如請求項55所述之系統,其中該計算網路為一專用網路,且其中該作業進一步包含: 經由該計算網路從一遠端計算設備接收一決策請求,該決策請求包含一顧客識別符並指示一決策點事件類型; 從該資料儲存庫檢索在相關聯於該顧客識別符的一會話中的一時間序列資料集合; 藉由將該時間序列資料集合和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的一操作;以及 回應於該決策請求而發送該所選操作的一指示。
- 一種用於將主動決策功能整合入一計算分析框架的方法,該方法包含以下步驟: 接收複數個會話,其中每個會話相關聯於一顧客,具有一開始時間,並且包括時間序列資料,該時間序列資料表徵該顧客與在一個或多個遠端計算設備處執行的一軟體應用程式之間的互動; 經由一介面部件接收一目標定義,其中該目標定義指定如何基於至少一個度量來計算一目標分數,該至少一個度量可基於該時間序列資料來計算出; 將該等會話分組到箱中,其中每個箱對應於一時間間隔,並包括具有在該時間間隔內的開始時間的會話; 對於每個會話: 使用該會話中包括的該時間序列資料計算該會話的該第一度量的一當前值,其中用於計算該第一度量的該當前值的該時間序列資料的至少一部分,描述在對應於該會話被分組到的一箱的一時間間隔之外發生的事件,以及 基於該第一度量的該當前值與該目標定義,來確定該會話的一當前目標分數; 對於每個箱,基於被分組到該箱中的該等會話的該當前值目標分數,來計算該箱的一當前平均目標分數;以及 呈現該等箱的該當前平均目標分數相對於時間的一圖形圖,其由該等箱分區以經由該介面部件顯示。
- 如請求項61所述之方法,其中該目標定義可以指定該第一度量和一第二度量的一函數,且其中該方法進一步包含以下步驟: 對於每個會話: 使用該會話中包括的該時間序列資料計算該會話的該第二度量的一當前值,其中用於計算該第二度量的該當前值的該時間序列資料的至少一部分,描述在對應於該會話被分組到的該箱的該時間間隔之外發生的事件,以及 藉由使用該第一度量的該當前值作為該函數的一第一參數,並使用該第二度量的該當前值作為該函數的一第二參數,來確定該會話的該當前目標分數。
- 如請求項62所述之方法,其中接收該目標定義之步驟包含以下步驟:接收該第一度量的一危險條件或該第一度量的一目標條件。
- 如請求項63所述之方法,其中接收該目標定義之步驟進一步包含以下步驟:接收下列之至少一者:該第一度量與該第二度量的一排名;或該第二度量或該第一度量的一權重。
- 如請求項61所述之方法,其中接收該目標定義之步驟進一步包含以下步驟:接收該第一度量的一第一優化方向和該第二度量的一第二優化方向。
- 如請求項61所述之方法,該方法進一步包含以下步驟: 基於該等會話的該等當前目標分數計算對於該等箱的一總體平均目標分數; 將該會話分組為複數個片段,其中每個片段包括針對可基於該時間序列資料計算的一特徵的至少一個濾波器; 對於每個片段: 基於該片段中包含的該等會話的該等當前目標分數,確定該片段的一當前平均目標分數, 確定該片段的該當前平均目標分數與該總體平均目標分數之間的一差異,以及 確定該差異是否超過一閾值;以及 對於該差異超過該閾值的至少一個片段,經由該介面部件呈現該片段和該差異的一指示,以供顯示。
- 如請求項66所述之方法,其中該等會話中的每一個包括一所選類型的至少一個決策點事件,且其中該方法進一步包含以下步驟: 從一策略生成器接收一候選決策策略,該候選決策策略指定當決策點事件發生在該一個或多個遠端設備上時,在該一個或多個遠端計算設備處執行的該軟體應用程式要執行的一個或多個操作,其中該策略基於該等會話中的該時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作; 基於在該候選決策策略所對應的一時間段內發生的會話,確定該候選決策策略的一估計平均目標分數; 確定該估計平均目標分數與在該時間段內應用的一控制決策策略的一平均目標分數之間的一估計差異; 基於該時間段的一長度,確定該估計差異的一信心等級; 基於該估計差異與該信心等級,確定該候選決策策略的一價格;以及 經由該介面部件,呈現該估計差異、該信心等級、與該價格的一指示。
- 如請求項67所述之方法,該方法進一步包含以下步驟: 經由該介面部件,呈現該候選決策策略的一按鈕; 檢測該按鈕上的一點擊事件;以及 基於該檢測,將該候選決策策略部署到一網路中的一位置,在該位置接收源自該軟體應用程式的決策請求。
- 一種系統,包含: 一個或多個處理器;以及 儲存一個或多個指令的記憶體,該一個或多個指令在執行於該一個或多個處理器上時執行一作業,包含: 接收複數個會話,其中每個會話相關聯於一顧客,具有一開始時間,並且包括時間序列資料,該時間序列資料表徵該顧客與在一個或多個遠端計算設備處執行的一軟體應用程式之間的互動; 經由一介面部件接收一目標定義,其中該目標定義指定如何基於至少一個度量來計算一目標分數,該至少一個度量可基於該時間序列資料來計算出; 將該等會話分組到箱中,其中每個箱對應於一時間間隔,並包括具有在該時間間隔內的開始時間的會話; 對於每個會話: 使用該會話中包括的該時間序列資料計算該會話的該第一度量的一當前值,其中用於計算該第一度量的該當前值的該時間序列資料的至少一部分,描述在對應於該會話被分組到的一箱的一時間間隔之外發生的事件,以及 基於該第一度量的該當前值與該目標定義,來確定該會話的一當前目標分數; 對於每個箱,基於被分組到該箱中的該等會話的該當前值目標分數,來計算該箱的一當前平均目標分數;以及 呈現該等箱的該當前平均目標分數相對於時間的一圖形圖,其由該等箱分區以經由該介面部件顯示。
- 如請求項69所述之系統,其中該目標定義可以指定該第一度量和一第二度量的一函數,且其中該操作進一步包含: 對於每個會話: 使用該會話中包括的該時間序列資料計算該會話的該第二度量的一當前值,其中用於計算該第二度量的該當前值的該時間序列資料的至少一部分,描述在對應於該會話被分組到的該箱的該時間間隔之外發生的事件,以及 藉由使用該第一度量的該當前值作為該函數的一第一參數,並使用該第二度量的該當前值作為該函數的一第二參數,來確定該會話的該當前目標分數。
- 如請求項70所述之系統,其中接收該目標定義之步驟包含:接收該第一度量的一危險條件或該第一度量的一目標條件。
- 如請求項71所述之系統,其中接收該目標定義之步驟進一步包含:接收下列之至少一者:該第一度量與該第二度量的一排名;或該第二度量或該第一度量的一權重。
- 如請求項69所述之系統,其中接收該目標定義之步驟進一步包含:接收該第一度量的一第一優化方向和該第二度量的一第二優化方向。
- 如請求項69所述之系統,其中該作業進一步包含: 基於該等會話的該等當前目標分數計算對於該等箱的一總體平均目標分數; 將該會話分組為複數個片段,其中每個片段包括針對可基於該時間序列資料計算的一特徵的至少一個濾波器; 對於每個片段: 基於該片段中包含的該等會話的該等當前目標分數,確定該片段的一當前平均目標分數, 確定該片段的該當前平均目標分數與該總體平均目標分數之間的一差異,以及 確定該差異是否超過一閾值;以及 對於該差異超過該閾值的至少一個片段,經由該介面部件呈現該片段和該差異的一指示,以供顯示。
- 如請求項74所述之系統,其中該等會話中的每一個包括一所選類型的至少一個決策點事件,且其中該操作進一步包含: 從一策略生成器接收一候選決策策略,該候選決策策略指定當決策點事件發生在該一個或多個遠端設備上時,在該一個或多個遠端計算設備處執行的該軟體應用程式要執行的一個或多個操作,其中該策略基於該等會話中的該時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作; 基於在該候選決策策略所對應的一時間段內發生的會話,確定該候選決策策略的一估計平均目標分數; 確定該估計平均目標分數與在該時間段內應用的一控制決策策略的一平均目標分數之間的一估計差異; 基於該時間段的一長度,確定該估計差異的一信心等級; 基於該估計差異與該信心等級,確定該候選決策策略的一價格;以及 經由該介面部件,呈現該估計差異、該信心等級、與該價格的一指示。
- 如請求項75所述之系統,其中該作業進一步包含: 經由該介面部件,呈現該候選決策策略的一按鈕; 檢測該按鈕上的一點擊事件;以及 基於該檢測,將該候選決策策略部署到一網路中的一位置,在該位置接收源自該軟體應用程式的決策請求。
- 一種非暫態性電腦可讀取媒體,其上儲存了指令,該等指令在由一個或多個處理器執行時執行一作業,包含: 接收複數個會話,其中每個會話相關聯於一顧客,具有一開始時間,並且包括時間序列資料,該時間序列資料表徵該顧客與在一個或多個遠端計算設備處執行的一軟體應用程式之間的互動; 經由一介面部件接收一目標定義,其中該目標定義指定如何基於至少一個度量來計算一目標分數,該至少一個度量可基於該時間序列資料來計算出; 將該等會話分組到箱中,其中每個箱對應於一時間間隔,並包括具有在該時間間隔內的開始時間的會話; 對於每個會話: 使用該會話中包括的該時間序列資料計算該會話的該第一度量的一當前值,其中用於計算該第一度量的該當前值的該時間序列資料的至少一部分,描述在對應於該會話被分組到的一箱的一時間間隔之外發生的事件,以及 基於該第一度量的該當前值與該目標定義,來確定該會話的一當前目標分數; 對於每個箱,基於被分組到該箱中的該等會話的該當前值目標分數,來計算該箱的一當前平均目標分數;以及 呈現該等箱的該當前平均目標分數相對於時間的一圖形圖,其由該等箱分區以經由該介面部件顯示。
- 如請求項77所述之非暫態性電腦可讀取媒體,其中該目標定義可以指定該第一度量和一第二度量的一函數,且其中該操作進一步包含: 對於每個會話: 使用該會話中包括的該時間序列資料計算該會話的該第二度量的一當前值,其中用於計算該第二度量的該當前值的該時間序列資料的至少一部分,描述在對應於該會話被分組到的該箱的該時間間隔之外發生的事件,以及 藉由使用該第一度量的該當前值作為該函數的一第一參數,並使用該第二度量的該當前值作為該函數的一第二參數,來確定該會話的該當前目標分數。
- 如請求項78所述之非暫態性電腦可讀取媒體,其中接收該目標定義之步驟包含:接收該第一度量的一危險條件或該第一度量的一目標條件。
- 如請求項79所述之非暫態性電腦可讀取媒體,其中接收該目標定義之步驟進一步包含:接收下列之至少一者:該第一度量與該第二度量的一排名;或該第二度量或該第一度量的一權重。
- 一種用於將主動決策功能整合入一計算分析框架的方法,該方法包含以下步驟: 基於對一遠端執行的軟體應用程式的複數個會話所收集的時間序列資料,生成一決策策略,該決策策略表示在訓練期間內一機器學習模型學習的邏輯; 將該決策策略部署到該計算網路中的一位置,在該位置接收源自該軟體應用程式的決策請求; 接收源自該軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符並指示一決策點事件類型,其中該決策點事件類型表示觸發一決策點事件的一事件類型以及一操作之間的映射,該映射係基於與顧客相關聯的時間序列資料,該等顧客與一軟體應用程式互動; 從一資料儲存庫檢索在相關聯於該顧客識別符的一會話中的時間序列資料; 藉由將該時間序列資料和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的該等不同操作中的一個或多個; 回應於該決策請求而發送該一個或多個所選操作的一指示; 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作。
- 如請求項81所述之方法,其中生成該決策策略之步驟包含以下步驟: 接收來自與該軟體應用程式相關聯的一遠端源的該時間序列資料,其中該時間序列資料包含相關聯於一各別顧客的會話資料; 將該時間序列資料儲存在一持續性資料儲存庫中; 接收一目標定義,該目標定義指定如何基於至少一個可基於該時間序列資料計算的度量,來計算一目標分數; 對於該等會話中的每一個,確定對於該會話的該至少一個度量的一對應值; 基於該時間序列資料和該等會話的該等值,訓練一機器學習模型,以基於一會話中的一決策點事件之前的事件確定該遠程執行的軟體應用程式回應於該決策點事件而執行的一個或多個操作,以增加該會話的一目標分數滿足一危險條件的一概率。
- 如請求項81所述之方法,其中將該策略部署到該計算網路中的一位置(在該位置接收源自該軟體應用程式的決策請求)之步驟包含以下步驟: 將該策略發送到一決策代理,該決策代理執行於一公眾可存取的伺服器上,該伺服器接收來自複數個軟體應用程式的決策請求。
- 如請求項81所述之方法,其中該會話中的該時間序列資料包括在複數個設備上發生的事件的事件描述和時間戳,該顧客識別符指定的一顧客先前已通過該等設備存取了該軟體應用程式。
- 如請求項81所述之方法,該方法進一步包含以下步驟: 將該更新的時間序列資料添加至該資料儲存庫; 至少部分基於該更新的時間序列資料,更新該決策策略;以及 以該更新的決策策略替換該決策策略。
- 如請求項81所述之方法,其中該決策請求包含指示要選擇多少操作的一數字,且其中選擇該軟體應用程式要執行的該等不同操作中的一個或多個之步驟,以及發送該一個或多個所選操作的一指示之步驟,包含以下步驟: 生成該等不同操作的一子集的一有序列表,其中該子集的一基數與該數字匹配。
- 如請求項81所述之方法,其中生成該決策策略之步驟係在一第一計算系統上執行,且其中該決策策略被部署在一網路中的一第二計算系統上。
- 如請求項81所述之方法,其中該資料儲存庫被包含在隨機存取記憶體(RAM)記憶體、一快取記憶體、或該RAM和該快取記憶體的一組合中,位於部署該決策策略的一計算系統本地。
- 如請求項81所述之方法,該方法進一步包含以下步驟: 將該複數個會話(包含相關聯於該顧客識別符的該會話)分組到箱中,其中每個箱對應於一時間間隔,並包括具有在該時間間隔內的開始時間的會話; 對於每個會話: 使用該會話中包括的該時間序列資料計算該會話的該第一度量的一當前值,其中用於計算該第一度量的該當前值的該時間序列資料的至少一部分,描述在對應於該會話被分組到的一箱的一時間間隔之外發生的事件,以及 基於該第一度量的該當前值與該目標定義,來確定該會話的一當前目標分數; 對於每個箱,基於被分組到該箱中的該等會話的該當前值目標分數,來計算該箱的一當前平均目標分數;以及 呈現該等箱的該等當前平均目標分數相對於時間的一圖形圖,其由該等箱分區以供顯示。
- 如請求項89所述之方法,其中該等會話中的每一個包括一所選類型的至少一個決策點事件,且其中該方法進一步包含以下步驟: 從一策略生成器接收一候選決策策略,該候選決策策略指定當決策點事件發生在該一個或多個遠端設備上時,在該一個或多個遠端計算設備處執行的該軟體應用程式要執行的一個或多個操作,其中該策略基於該等會話中的該時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作; 基於在該候選決策策略所對應的一時間段內發生的會話,確定該候選決策策略的一估計平均目標分數; 確定該估計平均目標分數與在該時間段內應用的一控制決策策略的一平均目標分數之間的一估計差異; 基於該時間段的一長度,確定該估計差異的一信心等級; 基於該估計差異與該信心等級,確定該候選決策策略的一價格;以及 呈現該估計差異、該信心等級、與該價格的一指示以供顯示。
- 一種用於將主動決策功能整合入一計算分析框架的系統,包含: 一處理器,該處理器經配置以: 基於對一遠端執行的軟體應用程式的複數個會話所收集的時間序列資料,生成一決策策略,該決策策略表示在訓練期間內一機器學習模型學習的邏輯, 將該決策策略部署到該計算網路中的一位置,在該位置接收源自該軟體應用程式的決策請求, 接收源自該軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符並指示一決策點事件類型,其中該決策點事件類型表示觸發一決策點事件的一事件類型以及一操作之間的映射,該映射係基於與顧客相關聯的時間序列資料,該等顧客與一軟體應用程式互動, 從一資料儲存庫檢索在相關聯於該顧客識別符的一會話中的時間序列資料, 藉由將該時間序列資料和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的該等不同操作中的一個或多個, 回應於該決策請求而發送該一個或多個所選操作的一指示, 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作;以及 一記憶體。
- 如請求項91所述之系統,其中該處理器經配置以藉由以下來生成該決策策略: 接收來自與該軟體應用程式相關聯的一遠端源的該時間序列資料,其中該時間序列資料包含相關聯於一各別顧客的會話資料; 將該時間序列資料儲存在一持續性資料儲存庫中; 接收一目標定義,該目標定義指定如何基於至少一個可基於該時間序列資料計算的度量,來計算一目標分數; 對於該等會話中的每一個,確定對於該會話的該至少一個度量的一對應值; 基於該時間序列資料和該等會話的該等值,訓練一機器學習模型,以基於一會話中的一決策點事件之前的事件確定該遠程執行的軟體應用程式回應於該決策點事件而執行的一個或多個操作,以增加該會話的一目標分數滿足一危險條件的一概率。
- 如請求項91所述之系統,其中該會話中的該時間序列資料包括在複數個設備上發生的事件的事件描述和時間戳,該顧客識別符指定的一顧客先前已通過該等設備存取了該軟體應用程式。
- 如請求項91所述之系統,其中該處理器進一步經配置以: 將該更新的時間序列資料添加至該資料儲存庫; 至少部分基於該更新的時間序列資料,更新該決策策略;以及 以該更新的決策策略替換該決策策略。
- 如請求項91所述之系統,其中該決策請求包含指示要選擇多少操作的一數字,且其中該處理器經配置以藉由以下來選擇該軟體應用程式要執行的該等不同操作中的一個或多個操作以及發送該一個或多個所選操作的一指示: 生成該等不同操作的一子集的一有序列表,其中該子集的一基數與該數字匹配。
- 如請求項91所述之系統,其中該處理器經配置以生成該決策策略係在一第一計算系統上執行,且其中該決策策略被部署在一網路中的一第二計算系統上。
- 如請求項91所述之系統,其中該資料儲存庫被包含在隨機存取記憶體(RAM)記憶體、一快取記憶體、或該RAM和該快取記憶體的一組合中,位於部署該決策策略的一計算系統本地。
- 如請求項91所述之系統,其中該處理器進一步經配置以: 將複數個會話(包含相關聯於該顧客識別符的該會話)分組到箱中,其中每個箱對應於一時間間隔,並包括具有在該時間間隔內的開始時間的會話; 對於每個會話: 使用該會話中包括的該時間序列資料計算該會話的該第一度量的一當前值,其中用於計算該第一度量的該當前值的該時間序列資料的至少一部分,描述在對應於該會話被分組到的一箱的一時間間隔之外發生的事件,以及 基於該第一度量的該當前值與該目標定義,來確定該會話的一當前目標分數; 對於每個箱,基於被分組到該箱中的該等會話的該當前值目標分數,來計算該箱的一當前平均目標分數;以及 呈現該等箱的該等當前平均目標分數相對於時間的一圖形圖,其由該等箱分區以供顯示。
- 如請求項98所述之系統,其中該等會話中的每一個包括一所選類型的至少一個決策點事件,且其中該處理器進一步經配置以: 從一策略生成器接收一候選決策策略,該候選決策策略指定當決策點事件發生在該一個或多個遠端設備上時,在該一個或多個遠端計算設備處執行的該軟體應用程式要執行的一個或多個操作,其中該策略基於該等會話中的該時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作; 基於在該候選決策策略所對應的一時間段內發生的會話,確定該候選決策策略的一估計平均目標分數; 確定該估計平均目標分數與在該時間段內應用的一控制決策策略的一平均目標分數之間的一估計差異; 基於該時間段的一長度,確定該估計差異的一信心等級; 基於該估計差異與該信心等級,確定該候選決策策略的一價格;以及 呈現該估計差異、該信心等級、與該價格的一指示以供顯示。
- 一種用於將主動決策功能整合入一計算分析框架的系統,包含: 一策略生成引擎,該策略生成引擎經配置以: 基於對一遠端執行的軟體應用程式的複數個會話所收集的時間序列資料,生成一決策策略,該決策策略表示在訓練期間內一機器學習模型學習的邏輯,以及 將該決策策略部署到該計算網路中的一位置,在該位置接收源自該軟體應用程式的決策請求;以及 一決策代理,該決策代理經配置以: 接收源自該軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符並指示一決策點事件類型,其中該決策點事件類型表示觸發一決策點事件的一事件類型以及一操作之間的映射,該映射係基於與顧客相關聯的時間序列資料,該等顧客與一軟體應用程式互動, 從一資料儲存庫檢索在相關聯於該顧客識別符的一會話中的時間序列資料, 藉由將該時間序列資料和該事件類型與該決策策略比較,以選擇該軟體應用程式要執行的該等不同操作中的一個或多個, 回應於該決策請求而發送該一個或多個所選操作的一指示,以及 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作。
- 一種用於將推測性決策功能整合入一計算分析框架的方法,該方法包含以下步驟: 從一計算設備接收來自一軟體應用程式的一推測性決策請求,其中該推測性決策請求包含一顧客識別符; 回應於該決策請求而生成複數個操作,該複數個操作相關聯於複數個互斥事件組,該複數個互斥事件組期望在與該軟體應用程式的顧客互動中檢測到; 將與該軟體應用程式互動的一顧客所請求的內容、該複數個互斥事件組、以及相關聯於該複數個互斥事件組中的每一個的操作,發送至該計算設備; 基於在該計算設備處接收到的來自與該軟體應用程式互動的一顧客的輸入,檢測到該複數個互斥事件組中的一個事件組; 在該計算設備處執行相關聯於該檢測到的該複數個互斥事件組中的一個事件組的該操作; 從該計算設備接收識別該檢測到的該複數個互斥事件組中的一個事件組的資訊;以及 將相關聯於該檢測到的該複數個互斥事件組中的一個事件組的時間序列資料儲存至相關聯於該顧客的一會話容器,該時間序列資料包含該決策點事件以及相關聯於該檢測到的決策點事件的一時間戳。
- 如請求項101所述之方法,其中儲存相關聯於該檢測到的該複數個互斥事件組中的一個事件組的時間序列資料之步驟,包含以下步驟:將該檢測到的該複數個互斥事件中的一個事件與一時間戳儲存至該會話容器,該時間戳表示一時間,該時間早於接收到識別該檢測到的該複數個互斥事件組中的一個事件組的該資訊的一時間。
- 如請求項102所述之方法,其中儲存相關聯於該檢測到的該複數個互斥事件中的一個事件的時間序列資料之步驟,進一步包含以下步驟:將時間戳資訊儲存至該相關聯於該顧客的該會話容器,該時間戳資訊關於相關聯於該檢測到的該複數個互斥事件中的一個事件的該操作。
- 如請求項103所述之方法,其中關於相關聯於該檢測到的該複數個互斥事件中的一個事件的該操作的該時間戳資訊,包含在該計算設備處執行該操作的一時間。
- 如請求項101所述之方法,其中與對於該顧客的該軟體應用程式的一會話的起始相結合而接收該推測性決策請求。
- 如請求項105所述之方法,該方法進一步包含以下步驟: 基於在該計算設備處接收到的來自與該軟體應用程式互動的該顧客的輸入,來檢測相異於該複數個決策點事件的一第二決策點事件,該第二決策點事件相異於該複數個互斥事件組; 識別儲存在相關聯於該顧客的該會話容器中的時間序列資料; 藉由將該時間序列資料和該決策點事件的一類型與一決策策略進行比較,來選擇該軟體應用程式回應於該檢測到該決策點事件而執行的一個或多個不同操作;以及 在該計算設備處執行該一個或多個所選操作。
- 如請求項101所述之方法,該方法進一步包含以下步驟: 從一策略生成器接收一決策策略,該決策策略指定當該軟體應用程式檢測到一個或多個決策點事件時,該軟體應用程式要執行的一個或多個操作,其中該策略基於與該顧客相關聯的該時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作。
- 如請求項107所述之方法,該方法進一步包含以下步驟: 將該更新的時間序列資料發送到該策略生成器可存取的一持續性資料存儲庫;以及 從該策略生成器接收一更新的策略,其中該更新的策略係基於該更新的時間序列資料。
- 如請求項101所述之方法,其中該會話容器中的該時間序列資料包括在複數個設備上發生的事件的事件描述和時間戳,該顧客識別符指定的該顧客先前已通過該等設備存取了該軟體應用程式。
- 如請求項101所述之方法,其中相關聯於該複數個互斥事件組中的一個事件組的每個操作,進一步包含要檢測的複數個第二決策點事件以及相關聯於該等第二決策點事件中的每個事件的第二操作,該複數個第二決策點事件要在該操作的執行之後被檢測到。
- 一種用於將推測性決策功能整合入一計算分析框架的系統,包含: 一個或多個處理器;以及 儲存指令的一記憶體,該等指令由該一個或多個處理器執行時,使該一個或多個處理器: 從一計算設備接收來自一軟體應用程式的一推測性決策請求,其中該推測性決策請求包含一顧客識別符, 回應於該決策請求而生成複數個操作,該複數個操作相關聯於複數個互斥事件組,該複數個互斥事件組欲在與該軟體應用程式的顧客互動中被檢測到, 將與該軟體應用程式互動的一顧客所請求的內容、該複數個互斥事件組、以及相關聯於該複數個互斥事件組中的每一個事件組的操作,發送至該計算設備, 基於在該計算設備處接收到的來自與該軟體應用程式互動的一顧客的輸入,檢測到該複數個互斥事件組中的一個事件組; 在該計算設備處執行相關聯於該檢測到的該複數個互斥事件組中的一個事件組的該操作, 從該計算設備接收資訊,該資訊識別該檢測到的該複數個互斥事件組中的一個事件組,以及相關聯於該檢測到的該複數個互斥事件組中的一個事件組的在該計算設備處執行的該操作,以及 將相關聯於該檢測到的該複數個互斥事件組中的一個事件組的時間序列資料儲存至相關聯於該顧客的一會話容器,該時間序列資料包含該決策點事件以及相關聯於該檢測到的該複數個互斥事件組中的一個事件組的一時間戳。
- 如請求項111所述之系統,其中儲存相關聯於該檢測到的該複數個互斥事件組中的一個事件組的時間序列資料之步驟,包含以下步驟:將該檢測到的該複數個互斥事件組中的一個事件組與一時間戳儲存至該會話容器,該時間戳表示一時間,該時間早於接收到識別該檢測到的該複數個互斥事件組中的一個事件組的該資訊的一時間。
- 如請求項112所述之系統,其中儲存相關聯於該檢測到的該複數個互斥事件組中的一個事件組的時間序列資料之步驟,包含以下步驟:將時間戳資訊儲存至相關聯於該顧客的該會話容器,該時間戳資訊關於相關聯於該檢測到的該複數個互斥事件組中的一個事件組的該操作。
- 如請求項113所述之方法,其中關於相關聯於該檢測到的該複數個互斥事件組中的一個事件組的該操作的該時間戳資訊,包含在該計算設備處執行該操作的一時間。
- 如請求項111所述之方法,其中與對於該顧客的該軟體應用程式的一會話的起始相結合而接收該推測性決策請求。
- 如請求項115所述之方法,其中該處理器進一步經配置以: 基於在該計算設備處接收到的來自與該軟體應用程式互動的該顧客的輸入,來檢測相異於該複數個決策點事件的一第二決策點事件,該第二決策點事件相異於該複數個決策點事件; 識別儲存在相關聯於該顧客的該會話容器中的時間序列資料; 藉由將該時間序列資料和該決策點事件的一類型與一決策策略進行比較,來選擇該軟體應用程式回應於該檢測到該第二決策點事件而執行的一個或多個不同操作;以及 在該計算設備處執行該一個或多個所選操作。
- 如請求項111所述之系統,其中該處理器進一步經配置以: 從一策略生成器接收一決策策略,該決策策略指定當該軟體應用程式檢測到一個或多個決策點事件時,該軟體應用程式要執行的一個或多個操作,其中該策略基於與該顧客相關聯的該時間序列資料,將一相同決策點事件類型的決策點事件映射到不同的操作。
- 如請求項117所述之方法,其中該處理器進一步經配置以: 將該更新的時間序列資料發送到該策略生成器可存取的一持續性資料存儲庫;以及 從該策略生成器接收一更新的策略,其中該更新的策略係基於該更新的時間序列資料。
- 如請求項111所述之方法,其中相關聯於該複數個互斥事件組中的一個事件組的每個操作,進一步包含要檢測的複數個第二決策點事件以及相關聯於該等第二決策點事件中的每個事件的第二操作,該複數個第二決策點事件要在該操作的執行之後被檢測到。
- 一種包含指令的電腦可讀取媒體,該等指令在由一個或多個處理器執行時,執行作業以將推測性決策功能整合入一計算分析框架中,該等作業包含: 從一計算設備接收來自一軟體應用程式的一推測性決策請求,其中該推測性決策請求包含一顧客識別符, 回應於該決策請求而生成複數個操作,該複數個操作相關聯於複數個互斥事件組,該複數個互斥事件組欲在與該軟體應用程式的顧客互動中被檢測到, 將與該軟體應用程式互動的一顧客所請求的內容、該複數個互斥事件組、以及相關聯於該複數個互斥事件組中的每一個的操作,發送至該計算設備, 基於在該計算設備處接收到的來自與該軟體應用程式互動的一顧客的輸入,檢測到該複數個互斥事件組中的一個事件組, 在該計算設備處執行相關聯於該檢測到的該複數個互斥事件組中的一個事件組的該操作, 從該計算設備接收資訊,該資訊識別該檢測到的該複數個互斥事件組中的一個事件組,以及相關聯於該檢測到的該複數個互斥事件組中的一個事件組的在該計算設備處執行的該操作,以及 將相關聯於該檢測到的該複數個互斥事件組中的一個事件組的時間序列資料儲存至相關聯於該顧客的一會話容器,該時間序列資料包含該決策點事件以及相關聯於該檢測到的該複數個互斥事件組中的一個事件組的一時間戳。
- 一種用於將主動決策功能整合入一計算分析框架的方法,該方法包含以下步驟: 從一計算設備接收來自一軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符、相關聯於該決策請求的一決策點事件類型的一指示、以及關於要作為該所請求的決定的上下文的一第一組事件的資訊; 將關於該第一組事件的該資訊提交至相關聯於該顧客識別符的時間序列資料; 藉由將該時間序列資料和事件類型與一決策策略比較,以選擇該軟體應用程式要執行的一個或多個操作,該決策策略指定在該軟體應用程式檢測到決策點事件時該軟體應用程式要執行的一個或多個操作; 回應於該決策請求而發送該一個或多個所選操作的一指示; 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作; 接收源自該軟體應用程式的相關聯於一第二事件類型的一隨後的決策請求; 從該資料儲存庫檢索在該會話中的第二時間序列資料,包含相關聯於該選擇的一個或多個操作並從一個或多個其他電腦系統提交至該時間序列資料的一個或多個結果事件; 藉由將該第二時間序列資料和該第二事件類型與該決策策略比較,以選擇該軟體應用程式要執行的一第二操作;以及 回應於該隨後決策請求而發送該所選第二操作的一指示。
- 如請求項121所述之方法,其中該一個或多個結果事件被記錄在來自接收自執行該軟體應用程式的一顧客伺服器的資訊的該時間序列資料中。
- 如請求項121所述之方法,其中該一個或多個結果事件被記錄在來自接收自在一端點設備上執行的一單片客戶端的資訊的該時間序列資料中。
- 如請求項121所述之方法,其中透過該決策代理與該軟體應用程式之間的一專用網路連結來接收該請求。
- 如請求項121所述之方法,其中該隨後的決策請求包括要作為對於該所請求的隨後決策的上下文的一個或多個第三事件。
- 如請求項125所述之方法,該方法進一步包含以下步驟: 識別該一個或多個第三事件以及該所觀察到的結果事件中的一個或多個重複事件;以及 由該一個或多個第三事件(排除該所識別的一個或多個重複事件)增強該第二時間序列資料。
- 如請求項121所述之方法,其中該會話容器中的該時間序列資料包括在複數個設備上發生的事件的事件描述和時間戳,該顧客識別符指定的一顧客先前已通過該等設備存取了該軟體應用程式。
- 如請求項121所述之方法,其中該決策請求包含指示要選擇多少操作的一數字,且其中選擇該軟體應用程式要執行的該等不同操作中的一個或多個之步驟,以及發送該一個或多個所選操作的一指示之步驟,包含以下步驟: 生成該等不同操作的一子集的一有序列表,其中該子集的一基數與該數字匹配。
- 一種系統,包含: 一處理器;以及 其上儲存有指令的一記憶體,該等指令在由該處理器執行時,執行一作業以將主動決策功能整合入一計算分析框架中,該等作業包含: 從一計算設備接收來自一軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符、相關聯於該決策請求的一決策點事件類型的一指示、以及關於要作為該所請求的決定的上下文的一第一組事件的資訊; 將關於該第一組事件的該資訊提交至相關聯於該顧客識別符的時間序列資料; 藉由將該時間序列資料和事件類型與一決策策略比較,以選擇該軟體應用程式要執行的一個或多個操作,該決策策略指定在該軟體應用程式檢測到決策點事件時該軟體應用程式要執行的一個或多個操作; 回應於該決策請求而發送該一個或多個所選操作的一指示; 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作; 接收源自該軟體應用程式的相關聯於一第二事件類型的一隨後的決策請求; 從該資料儲存庫檢索在該會話中的第二時間序列資料,包含相關聯於該選擇的一個或多個操作並從一個或多個其他電腦系統提交至該時間序列資料的一個或多個結果事件; 藉由將該第二時間序列資料和該第二事件類型與該決策策略比較,以選擇該軟體應用程式要執行的一第二操作;以及 回應於該隨後決策請求而發送該所選第二操作的一指示。
- 如請求項129所述之系統,其中該一個或多個結果事件被記錄在來自接收自執行該軟體應用程式的一顧客伺服器的資訊的該時間序列資料中。
- 如請求項129所述之系統,其中該一個或多個結果事件被記錄在來自接收自在一端點設備上執行的一單片客戶端的資訊的該時間序列資料中。
- 如請求項129所述之系統,其中透過該決策代理與該軟體應用程式之間的一專用網路連結來接收該請求。
- 如請求項129所述之系統,其中該隨後的決策請求包括要作為對於該所請求的隨後決策的上下文的一個或多個第三事件。
- 如請求項133所述之系統,其中該作業進一步包含: 識別該一個或多個第三事件以及該所觀察到的結果事件中的一個或多個重複事件;以及 由該一個或多個第三事件(排除該所識別的一個或多個重複事件)增強該第二時間序列資料。
- 如請求項129所述之方法,其中該會話容器中的該時間序列資料包括在複數個設備上發生的事件的事件描述和時間戳,該顧客識別符指定的一顧客先前已通過該等設備存取了該軟體應用程式。
- 如請求項129所述之方法,其中該決策請求包含指示要選擇多少操作的一數字,且其中選擇該軟體應用程式要執行的該等不同操作中的一個或多個之步驟,以及發送該一個或多個所選操作的一指示之步驟,包含以下步驟: 生成該等不同操作的一子集的一有序列表,其中該子集的一基數與該數字匹配。
- 一種非暫態性電腦可讀取媒體,其上儲存了指令,該等指令在由一個或多個處理器執行時執行一作業,包含: 從一計算設備接收來自一軟體應用程式的一決策請求,其中該決策請求包含一顧客識別符、相關聯於該決策請求的一決策點事件類型的一指示、以及關於要作為該所請求的決定的上下文的一第一組事件的資訊; 將關於該第一組事件的該資訊提交至相關聯於該顧客識別符的時間序列資料; 藉由將該時間序列資料和事件類型與一決策策略比較,以選擇該軟體應用程式要執行的一個或多個操作,該決策策略指定在該軟體應用程式檢測到決策點事件時該軟體應用程式要執行的一個或多個操作; 回應於該決策請求而發送該一個或多個所選操作的一指示; 更新與該資料儲存庫中的該顧客識別符相關聯的該會話中的該時間序列資料,以反映該決策點事件和該一個或多個所選操作; 接收源自該軟體應用程式的相關聯於一第二事件類型的一隨後的決策請求; 從該資料儲存庫檢索在該會話中的第二時間序列資料,包含相關聯於該選擇的一個或多個操作並從一個或多個其他電腦系統提交至該時間序列資料的一個或多個結果事件; 藉由將該第二時間序列資料和該第二事件類型與該決策策略比較,以選擇該軟體應用程式要執行的一第二操作;以及 回應於該隨後決策請求而發送該所選第二操作的一指示。
- 如請求項137所述之電腦可讀取媒體,其中該一個或多個結果事件被記錄在來自接收自執行該軟體應用程式的一顧客伺服器的資訊的該時間序列資料中。
- 如請求項137所述之電腦可讀取媒體,其中該一個或多個結果事件被記錄在來自接收自在一端點設備上執行的一單片客戶端的資訊的該時間序列資料中。
- 如請求項137所述之電腦可讀取媒體,其中該隨後的決策請求包括要作為對於該所請求的隨後決策的上下文的一個或多個第三事件,且其中該作業進一步包含: 識別該一個或多個第三事件以及該所觀察到的結果事件中的一個或多個重複事件;以及 由該一個或多個第三事件(排除該所識別的一個或多個重複事件)增強該第二時間序列資料。
Applications Claiming Priority (18)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862643028P | 2018-03-14 | 2018-03-14 | |
US62/643,028 | 2018-03-14 | ||
US201862748225P | 2018-10-19 | 2018-10-19 | |
US62/748,225 | 2018-10-19 | ||
US16/183,323 US20190287004A1 (en) | 2018-03-14 | 2018-11-07 | Methods and systems for real-time decision-making using cross-platform telemetry |
US16/183,220 | 2018-11-07 | ||
US16/183,120 | 2018-11-07 | ||
US16/183,288 | 2018-11-07 | ||
US16/183,260 | 2018-11-07 | ||
US16/183,082 | 2018-11-07 | ||
US16/183,260 US20190287002A1 (en) | 2018-03-14 | 2018-11-07 | Methods and systems for transforming computing analytics frameworks into cross-platform real-time decision-making systems that optimize configurable goal metrics |
US16/183,056 | 2018-11-07 | ||
US16/183,288 US20190287003A1 (en) | 2018-03-14 | 2018-11-07 | Methods and systems for integrating speculative decision-making in cross-platform real-time decision-making systems |
US16/183,220 US20190288927A1 (en) | 2018-03-14 | 2018-11-07 | Methods and systems for generating data visualizations and control interfaces to transform computing analytics frameworks into cross-platform real-time decision-making systems |
US16/183,323 | 2018-11-07 | ||
US16/183,056 US20190289058A1 (en) | 2018-03-14 | 2018-11-07 | Methods and systems for transforming computing analytics frameworks into cross-platform real-time decision-making systems through a decision-making agent |
US16/183,082 US20190286994A1 (en) | 2018-03-14 | 2018-11-07 | Methods and systems for transforming computing analytics frameworks into cross-platform real-time decision-making systems by executing intelligent decisions on an endpoint device |
US16/183,120 US20190286995A1 (en) | 2018-03-14 | 2018-11-07 | Methods and systems for optimized policy generation to transform computing analytics frameworks into cross-platform real-time decision-making systems |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201945996A true TW201945996A (zh) | 2019-12-01 |
Family
ID=67904080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108108559A TW201945996A (zh) | 2018-03-14 | 2019-03-14 | 將資料分析系統轉換為對可配置目標度量優化的跨平台即時決策系統的方法 |
Country Status (3)
Country | Link |
---|---|
US (7) | US20190286995A1 (zh) |
TW (1) | TW201945996A (zh) |
WO (1) | WO2019178123A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111882339A (zh) * | 2019-12-20 | 2020-11-03 | 马上消费金融股份有限公司 | 预测模型训练及响应率预测方法、装置、设备及存储介质 |
TWI755941B (zh) * | 2020-11-20 | 2022-02-21 | 英業達股份有限公司 | 階層式時間序列預測方法 |
US11302545B2 (en) | 2020-03-20 | 2022-04-12 | Nanya Technology Corporation | System and method for controlling semiconductor manufacturing equipment |
TWI770829B (zh) * | 2020-04-08 | 2022-07-11 | 南亞科技股份有限公司 | 半導體製造設備的控制系統及方法 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190042932A1 (en) * | 2017-08-01 | 2019-02-07 | Salesforce Com, Inc. | Techniques and Architectures for Deep Learning to Support Security Threat Detection |
US10797965B2 (en) * | 2018-07-30 | 2020-10-06 | Dell Products L.P. | Dynamically selecting or creating a policy to throttle a portion of telemetry data |
US11341030B2 (en) * | 2018-09-27 | 2022-05-24 | Sap Se | Scriptless software test automation |
US11190619B2 (en) * | 2019-03-21 | 2021-11-30 | International Business Machines Corporation | Generation and application of meta-policies for application deployment environments |
US11521114B2 (en) * | 2019-04-18 | 2022-12-06 | Microsoft Technology Licensing, Llc | Visualization of training dialogs for a conversational bot |
US11469954B2 (en) * | 2019-05-16 | 2022-10-11 | Verizon Patent And Licensing Inc. | System and methods for service policy optimization for multi-access edge computing services |
JP7273341B2 (ja) * | 2019-07-08 | 2023-05-15 | 日本電信電話株式会社 | 自動連携装置、自動連携方法、および自動連携プログラム |
US10904100B1 (en) * | 2019-07-19 | 2021-01-26 | Juniper Networks, Inc | Systems and method for replaying and debugging live states of network devices |
US20210042742A1 (en) * | 2019-08-09 | 2021-02-11 | Capital One Services, Llc | System and method for generating time-series token data |
US11379694B2 (en) * | 2019-10-25 | 2022-07-05 | Vmware, Inc. | Scalable and dynamic data collection and processing |
US11321115B2 (en) | 2019-10-25 | 2022-05-03 | Vmware, Inc. | Scalable and dynamic data collection and processing |
US11606262B2 (en) * | 2019-11-08 | 2023-03-14 | International Business Machines Corporation | Management of a computing system with multiple domains |
US11537809B2 (en) * | 2019-11-21 | 2022-12-27 | Kyndryl, Inc. | Dynamic container grouping |
CN111078755B (zh) * | 2019-12-19 | 2023-07-28 | 远景智能国际私人投资有限公司 | 时序数据的存储查询方法、装置、服务器及存储介质 |
US11645397B2 (en) | 2020-04-15 | 2023-05-09 | Crowd Strike, Inc. | Distributed digital security system |
US11711379B2 (en) | 2020-04-15 | 2023-07-25 | Crowdstrike, Inc. | Distributed digital security system |
US11861019B2 (en) * | 2020-04-15 | 2024-01-02 | Crowdstrike, Inc. | Distributed digital security system |
US11563756B2 (en) | 2020-04-15 | 2023-01-24 | Crowdstrike, Inc. | Distributed digital security system |
US11616790B2 (en) | 2020-04-15 | 2023-03-28 | Crowdstrike, Inc. | Distributed digital security system |
CN111757353B (zh) * | 2020-06-09 | 2021-09-17 | 广州爱浦路网络技术有限公司 | 5g核心网中的网络数据处理方法及装置 |
US11403537B2 (en) | 2020-06-26 | 2022-08-02 | Bank Of America Corporation | Intelligent agent |
US20220200878A1 (en) | 2020-12-23 | 2022-06-23 | Geotab Inc. | Anomaly detection |
US20220197890A1 (en) * | 2020-12-23 | 2022-06-23 | Geotab Inc. | Platform for detecting anomalies |
US20220245480A1 (en) * | 2021-02-01 | 2022-08-04 | Stripe, Inc. | Metrics framework for randomized experiments |
US20220284026A1 (en) * | 2021-03-04 | 2022-09-08 | T-Mobile Usa, Inc. | Suitability metrics based on environmental sensor data |
US11785038B2 (en) * | 2021-03-30 | 2023-10-10 | International Business Machines Corporation | Transfer learning platform for improved mobile enterprise security |
US11836137B2 (en) | 2021-05-19 | 2023-12-05 | Crowdstrike, Inc. | Real-time streaming graph queries |
US20220413878A1 (en) * | 2021-06-24 | 2022-12-29 | International Business Machines Corporation | Multi-source device policy management |
US11818219B2 (en) * | 2021-09-02 | 2023-11-14 | Paypal, Inc. | Session management system |
US20230109792A1 (en) | 2021-10-13 | 2023-04-13 | Nlevel Software Llc | Software path prediction via machine learning |
US20230281097A1 (en) * | 2022-03-01 | 2023-09-07 | Netflix, Inc. | Accurate global eventual counting |
US20230367696A1 (en) * | 2022-05-13 | 2023-11-16 | Microsoft Technology Licensing, Llc | Simulated training for reinforcement learning |
US20240103993A1 (en) * | 2022-09-15 | 2024-03-28 | Citrix Systems, Inc. | Systems and methods of calculating thresholds for key performance metrics |
US20240177094A1 (en) * | 2022-11-30 | 2024-05-30 | Bank Of America Corporation | Automatic Alert Dispositioning using Artificial Intelligence |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7630986B1 (en) * | 1999-10-27 | 2009-12-08 | Pinpoint, Incorporated | Secure data interchange |
US7634423B2 (en) * | 2002-03-29 | 2009-12-15 | Sas Institute Inc. | Computer-implemented system and method for web activity assessment |
US7403904B2 (en) * | 2002-07-19 | 2008-07-22 | International Business Machines Corporation | System and method for sequential decision making for customer relationship management |
US20150302436A1 (en) * | 2003-08-25 | 2015-10-22 | Thomas J. Reynolds | Decision strategy analytics |
US8112298B2 (en) * | 2006-02-22 | 2012-02-07 | Verint Americas, Inc. | Systems and methods for workforce optimization |
WO2008046227A1 (en) * | 2006-10-20 | 2008-04-24 | Her Majesty The Queen, In Right Of Canada As Represented By The Minister Of Health Through The Public Health Agency Of Canada | Method and apparatus for software policy management |
US8200527B1 (en) * | 2007-04-25 | 2012-06-12 | Convergys Cmg Utah, Inc. | Method for prioritizing and presenting recommendations regarding organizaion's customer care capabilities |
US7886021B2 (en) * | 2008-04-28 | 2011-02-08 | Oracle America, Inc. | System and method for programmatic management of distributed computing resources |
US9071805B2 (en) * | 2008-12-31 | 2015-06-30 | Verizon Patent And Licensing Inc. | Systems, methods, and apparatuses for handling failed media content recordings |
US8285499B2 (en) * | 2009-03-16 | 2012-10-09 | Apple Inc. | Event recognition |
US10290053B2 (en) * | 2009-06-12 | 2019-05-14 | Guardian Analytics, Inc. | Fraud detection and analysis |
US9225772B2 (en) * | 2011-09-26 | 2015-12-29 | Knoa Software, Inc. | Method, system and program product for allocation and/or prioritization of electronic resources |
US9621607B2 (en) * | 2011-09-29 | 2017-04-11 | Netscout Systems Texas, Llc | Systems and languages for media policy decision and control and methods for use therewith |
US10616782B2 (en) * | 2012-03-29 | 2020-04-07 | Mgage, Llc | Cross-channel user tracking systems, methods and devices |
US20130282813A1 (en) * | 2012-04-24 | 2013-10-24 | Samuel Lessin | Collaborative management of contacts across multiple platforms |
US20140279800A1 (en) * | 2013-03-14 | 2014-09-18 | Agincourt Gaming Llc | Systems and Methods for Artificial Intelligence Decision Making in a Virtual Environment |
US10459985B2 (en) * | 2013-12-04 | 2019-10-29 | Dell Products, L.P. | Managing behavior in a virtual collaboration session |
US10496927B2 (en) * | 2014-05-23 | 2019-12-03 | DataRobot, Inc. | Systems for time-series predictive data analytics, and related methods and apparatus |
US11232465B2 (en) * | 2016-07-13 | 2022-01-25 | Airship Group, Inc. | Churn prediction with machine learning |
US10715603B2 (en) * | 2016-09-19 | 2020-07-14 | Microsoft Technology Licensing, Llc | Systems and methods for sharing application data between isolated applications executing on one or more application platforms |
US10346762B2 (en) * | 2016-12-21 | 2019-07-09 | Ca, Inc. | Collaborative data analytics application |
US10567568B2 (en) * | 2018-05-31 | 2020-02-18 | Microsoft Technology Licensing, Llc | User event pattern prediction and presentation |
-
2018
- 2018-11-07 US US16/183,120 patent/US20190286995A1/en not_active Abandoned
- 2018-11-07 US US16/183,220 patent/US20190288927A1/en not_active Abandoned
- 2018-11-07 US US16/183,288 patent/US20190287003A1/en not_active Abandoned
- 2018-11-07 US US16/183,260 patent/US20190287002A1/en not_active Abandoned
- 2018-11-07 US US16/183,323 patent/US20190287004A1/en not_active Abandoned
- 2018-11-07 US US16/183,056 patent/US20190289058A1/en not_active Abandoned
- 2018-11-07 US US16/183,082 patent/US20190286994A1/en not_active Abandoned
-
2019
- 2019-03-12 WO PCT/US2019/021887 patent/WO2019178123A1/en active Application Filing
- 2019-03-14 TW TW108108559A patent/TW201945996A/zh unknown
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111882339A (zh) * | 2019-12-20 | 2020-11-03 | 马上消费金融股份有限公司 | 预测模型训练及响应率预测方法、装置、设备及存储介质 |
US11302545B2 (en) | 2020-03-20 | 2022-04-12 | Nanya Technology Corporation | System and method for controlling semiconductor manufacturing equipment |
TWI770799B (zh) * | 2020-03-20 | 2022-07-11 | 南亞科技股份有限公司 | 半導體製造設備的控制系統及方法 |
TWI770829B (zh) * | 2020-04-08 | 2022-07-11 | 南亞科技股份有限公司 | 半導體製造設備的控制系統及方法 |
US11675340B2 (en) | 2020-04-08 | 2023-06-13 | Nanya Technology Corporation | System and method for controlling semiconductor manufacturing apparatus |
TWI755941B (zh) * | 2020-11-20 | 2022-02-21 | 英業達股份有限公司 | 階層式時間序列預測方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019178123A1 (en) | 2019-09-19 |
US20190287004A1 (en) | 2019-09-19 |
US20190289058A1 (en) | 2019-09-19 |
US20190286994A1 (en) | 2019-09-19 |
US20190287002A1 (en) | 2019-09-19 |
US20190288927A1 (en) | 2019-09-19 |
US20190287003A1 (en) | 2019-09-19 |
US20190286995A1 (en) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201945996A (zh) | 將資料分析系統轉換為對可配置目標度量優化的跨平台即時決策系統的方法 | |
US20190281128A1 (en) | Optimizing user interface data caching for future actions | |
US11762649B2 (en) | Intelligent generation and management of estimates for application of updates to a computing device | |
Dumais et al. | Understanding user behavior through log data and analysis | |
JP5913754B2 (ja) | オンライン・システム内のユーザ行動に関するカスタマイズされた予測器 | |
RU2731654C1 (ru) | Способ и система для создания пуш-уведомлений, связанных с цифровыми новостями | |
US10965766B2 (en) | Synchronized console data and user interface playback | |
US20200050623A1 (en) | Method, apparatus, and computer program product for user-specific contextual integration for a searchable enterprise platform | |
US11379092B2 (en) | Dynamic location and extraction of a user interface element state in a user interface that is dependent on an event occurrence in a different user interface | |
US20150348071A1 (en) | Server and method for generating predictive patterns for website analysis | |
US11442749B2 (en) | Location and extraction of item elements in a user interface | |
US20100312737A1 (en) | Semi-Automatic Evaluation and Prioritization of Architectural Alternatives for Data Integration | |
US11366645B2 (en) | Dynamic identification of user interface elements through unsupervised exploration | |
US20220286524A1 (en) | Network latency detection | |
EP4094163A1 (en) | Intelligent management of a synchronization interval for data of an application or service | |
Geiger | Personalized task recommendation in crowdsourcing systems | |
US11726752B2 (en) | Unsupervised location and extraction of option elements in a user interface | |
US11170029B2 (en) | Multi-user cross-device tracking | |
CN108780446A (zh) | 时间依赖的机器生成的提示 | |
Li et al. | Towards a multi-label dataset of internet traffic for digital behavior classification | |
JP7549668B2 (ja) | パターンベースの分類 | |
RU2669172C2 (ru) | Способ и система мониторинга согласованности веб-сайта | |
US20210141498A1 (en) | Unsupervised location and extraction of quantity and unit value elements in a user interface | |
WO2022231810A1 (en) | Intelligent generation and management of estimates for application of updates to a computing device | |
CA3157634A1 (en) | Dynamic location and extraction of a user interface element state in a user interface that is dependent on an event occurrence in a different user interface |