趙越超,李睿哲,汪達(dá)欽
(1. 東華大學(xué)旭日工商管理學(xué)院,上海200051;2. 倫斯勒理工學(xué)院,美國(guó) 紐約 12180)
電話外呼客戶是當(dāng)前諸多企業(yè)主動(dòng)觸達(dá)客戶、服務(wù)客戶的重要手段之一。然而由于存在空號(hào)、無人接聽、電話占線等情況,并非所有電話都會(huì)接通,營(yíng)銷類的電話接通率一般只有5-20%[1]。傳統(tǒng)的外呼模式是依靠人工手動(dòng)撥號(hào)[2]進(jìn)行外呼,當(dāng)接通率較低時(shí),大量人力浪費(fèi)在撥打和等待的時(shí)間上,導(dǎo)致坐席的有效工作時(shí)長(zhǎng)短,坐席利用率低下等問題。為了提升坐席利用率,企業(yè)引入了自動(dòng)外呼的方式,即利用機(jī)器人代替人工撥號(hào),在電話接通后再轉(zhuǎn)給人工。這種方式可以大幅提高坐席利用率,但需要精確計(jì)算外呼速率:如果外呼速率過高,會(huì)出現(xiàn)客戶接通但沒有空閑坐席及時(shí)接電話的情況,那電話的性質(zhì)就會(huì)變成騷擾電話,也稱之為呼損;如果外呼速率過低,會(huì)出現(xiàn)大量坐席空閑的情況,無法體現(xiàn)自動(dòng)外呼的優(yōu)勢(shì)。因此預(yù)測(cè)式外呼[3]的概念被引入了進(jìn)來,即采用有效算法計(jì)算每周期內(nèi)最合適的外呼速度[4],從而控制坐席利用率與呼損的平衡。
預(yù)測(cè)式外呼算法的難點(diǎn)主要體現(xiàn)在如下幾方面:首先,系統(tǒng)自動(dòng)外呼的速度與呼損率呈現(xiàn)出一種互相制約的關(guān)系,無法同時(shí)達(dá)到高水準(zhǔn)的平衡。外呼速度過快會(huì)導(dǎo)致呼損升高,形成騷擾電話影響企業(yè)口碑[5];外呼速度過會(huì)慢導(dǎo)致坐席利用率低下,浪費(fèi)人力成本。其次,手動(dòng)調(diào)整算法速度存在流程繁瑣、不準(zhǔn)確等問題,且對(duì)員工的技術(shù)要求極高。一般情況下,員工只能利用過去實(shí)際測(cè)試得到的經(jīng)驗(yàn)來設(shè)置不同的外呼速度,而且每當(dāng)負(fù)責(zé)調(diào)試算法的員工更換時(shí),經(jīng)驗(yàn)也會(huì)隨之改變,所以具有很大的不確定性。最后,現(xiàn)有的預(yù)測(cè)算法能夠使用的范圍十分有限,無法完全自動(dòng)化,且難以適應(yīng)不同業(yè)務(wù)的外呼環(huán)境。對(duì)于客戶接通率高的名單,現(xiàn)有算法具有較好的撥打效果,而對(duì)于接通率低的名單撥打效果則不令人滿意,這對(duì)于業(yè)務(wù)數(shù)量龐大且適用場(chǎng)景較多的大型企業(yè)來說,就只能退而求其次,在接通率低的名單中選擇人工調(diào)整撥打速度或者直接選擇手工撥打,這大大降低了預(yù)測(cè)試自動(dòng)外呼的效率。
在此之前,已有很多位學(xué)者對(duì)預(yù)測(cè)式外呼算法展開過研究。Fourati等[6]采用連續(xù)時(shí)間馬爾可夫鏈(CTMC)來控制外呼頻率與速度,在外呼頻率與坐席利用率之前進(jìn)行權(quán)衡,減少客戶等待時(shí)間,但是沒有控制呼損;Dumas等[7]同時(shí)考慮了呼入與呼出,但設(shè)定總有k個(gè)坐席是空閑的,導(dǎo)致坐席利用率偏低;Bhulai等[8]對(duì)排隊(duì)模型展開了深入研究,但僅當(dāng)坐席數(shù)超過閾值才會(huì)分配接通的電話,沒有考慮客戶愿意等待的最大時(shí)間;Avramidis等[9]提出仿真模型和基于仿真的決策可能會(huì)在呼叫中心的管理中發(fā)揮核心作用;Pichitlamken等[10]也采用CTMC控制排隊(duì)情況并采用了仿真模擬,但最終僅有70%坐席利用率和超過3%的呼損,結(jié)果并不理想;李剛[11]等人提出從預(yù)測(cè)式外呼算法和動(dòng)態(tài)統(tǒng)計(jì)兩方面同時(shí)優(yōu)化,避免出現(xiàn)瓶頸問題,但僅使用了兩組真實(shí)數(shù)據(jù)模擬,且規(guī)定坐席數(shù)偏少;馬麗[1]等人提出從通話結(jié)束的概率入手及時(shí)更改外呼速度的,但使用的號(hào)碼接通率偏高,沒有考慮接通率很低的情況。
本文的主要目的是提出一種可以根據(jù)呼叫環(huán)境自適應(yīng)調(diào)整的預(yù)測(cè)式外呼算法,該算法能夠通過調(diào)節(jié)外呼速度使坐席利用率與呼損率在理想范圍內(nèi)。本文與其它論文的不同之處在于:①使用機(jī)器學(xué)習(xí)技術(shù)構(gòu)建預(yù)測(cè)試外呼算法;②構(gòu)建仿真平臺(tái)模擬外呼流程,通過該平臺(tái)獲取機(jī)器學(xué)習(xí)訓(xùn)練數(shù)據(jù)以及實(shí)驗(yàn)驗(yàn)證,是一種數(shù)據(jù)驅(qū)動(dòng)的預(yù)測(cè)試外呼算法;③該算法無需通過手動(dòng)調(diào)整參數(shù),能夠自動(dòng)適應(yīng)不同接通率、通話時(shí)長(zhǎng)的外呼環(huán)境。
本文旨在構(gòu)造一個(gè)預(yù)測(cè)式外呼算法,目標(biāo)是在不同的業(yè)務(wù)場(chǎng)景下,可以根據(jù)話務(wù)波動(dòng)進(jìn)行自適應(yīng)調(diào)整,從而保持高水平的外呼效果。預(yù)測(cè)式外呼的效果是由兩個(gè)指標(biāo)來評(píng)價(jià)的:坐席利用率(即坐席通話時(shí)間占坐席工作時(shí)間的比率)和呼損率(呼損個(gè)數(shù)占接通個(gè)數(shù)的比率)來決定。由于坐席利用率和呼損率是正相關(guān)的,即坐席利用率的升高會(huì)導(dǎo)致呼損率的升高,所以算法需要在控制呼損率的前提下,盡可能地提升坐席利用率。
預(yù)測(cè)式外呼的流程如下,首先由算法根據(jù)當(dāng)前反饋的上周期數(shù)據(jù)狀態(tài)計(jì)算出需要撥打的電話量λ(每隔一定時(shí)間計(jì)算一次,間隔的時(shí)間稱為決策周期),之后系統(tǒng)自動(dòng)撥出λ個(gè)電話,每通電話的振鈴時(shí)間β服從某個(gè)隨機(jī)分布,振鈴后有λρ(ρ為接通率)通電話被客戶接通,λ(1-ρ)通被掛斷,若此時(shí)有空閑坐席N個(gè),則會(huì)由控制系統(tǒng)分配坐席給已接通電話,分配后若有剩余c通電話無坐席分配,則進(jìn)入等待區(qū)。假設(shè)在等待區(qū)的電話的最大等待時(shí)間η服從某個(gè)隨機(jī)分布,在此之前若有空閑坐席,則會(huì)自動(dòng)接通電話,否則客戶會(huì)掛斷電話,形成呼損。每周期外呼流程具體如圖1所示。
圖1 每周期外呼流程圖
并作如下假設(shè):
1)坐席員工一個(gè)電話結(jié)束后,無縫銜接下一通電話;
2)坐席員工服務(wù)時(shí)間同質(zhì)化,即每個(gè)員工單通電話的通話市場(chǎng)服從同一分布;
3)振鈴時(shí)間和通話時(shí)間服從負(fù)指數(shù)分布[12]。
定義變量如表1所示:
表1 變量定義表
預(yù)測(cè)式外呼的效果是由外呼速度與之前k個(gè)周期的坐席狀態(tài)決定的。預(yù)測(cè)式外呼的效果評(píng)價(jià)指標(biāo)包括坐席利用率與呼損率。外呼速度是該周期內(nèi)需要撥打的外呼數(shù)量,該數(shù)量決定了撥打所需的坐席資源。坐席狀態(tài)中的主要內(nèi)容能夠計(jì)算出下周期可利用的坐席資源,其內(nèi)容包括空閑坐席數(shù)、繁忙坐席數(shù)、振鈴數(shù)、接通率、等待隊(duì)列長(zhǎng)度,其中空閑坐席數(shù)是直接可利用的坐席數(shù)量,繁忙坐席數(shù)將在下一周期按照一定比例轉(zhuǎn)化為空閑坐席數(shù),振鈴數(shù)通過接通率折算轉(zhuǎn)化為下一周期將要占用的空閑坐席數(shù)量,等待隊(duì)列長(zhǎng)度中的一部分也將在下周期占用空閑坐席。因此,根據(jù)上文中預(yù)測(cè)試外呼效果、外呼速度、坐席狀態(tài)之間的關(guān)系描述,可構(gòu)建如下數(shù)學(xué)模型
Agent_ratiot+1=f(Call_speed,Xt,…,Xt-k)
Lost_ratiot+1=g(Call_speed,Xt,…,Xt-k)
Xt=(Freestaff_numt,Busystaff_numt,
Ringing_numt,Connect_ratiot,Queue_numt)
其中Xt為t周期的坐席狀態(tài),k是觀察周期數(shù)量。
由于上述模型中的f和g函數(shù)無法得到顯性的表達(dá)式,且實(shí)際運(yùn)行過程中,話務(wù)的接通率會(huì)存在波動(dòng),使得事先預(yù)制的模型都無法適應(yīng)變化,因此設(shè)計(jì)了一種自適應(yīng)的算法,根據(jù)實(shí)際數(shù)據(jù)來動(dòng)態(tài)擬合f和g函數(shù)。建模思路為:構(gòu)建模擬自動(dòng)化外呼的全流程仿真平臺(tái),利用仿真平臺(tái)進(jìn)行實(shí)驗(yàn)來獲取訓(xùn)練數(shù)據(jù)集,然后利用機(jī)器學(xué)習(xí)方法來訓(xùn)練模型。具體步驟如下:
首先,構(gòu)建自動(dòng)化外呼的全流程仿真平臺(tái)。該平臺(tái)能夠模擬每通電話的撥打、振鈴、接通、等待、通話、掛斷等流程,且能夠模擬多通電話大規(guī)模并行撥打、按周期持續(xù)撥打,并同時(shí)模擬不同分布的振鈴時(shí)長(zhǎng)、通話時(shí)長(zhǎng)。
其次,利用仿真平臺(tái)生成機(jī)器學(xué)習(xí)訓(xùn)練數(shù)據(jù)。假設(shè)外呼速度起始量等于當(dāng)前空閑人力:
Call_speed=Freestaff_num+n
其中n為調(diào)整量。按照固定周期,以Call_speed的速度進(jìn)行外呼,每m個(gè)周期后,使n從0按照一定的步長(zhǎng)自增,間隔m個(gè)周期的作用是使n的增長(zhǎng)所產(chǎn)生的坐席利用率變化趨于穩(wěn)定,記錄n自增時(shí)周期的外呼速度、坐席狀態(tài)、坐席利用率與呼損率作為一條訓(xùn)練樣本。自增n直到某一個(gè)n滿足Lost_ratio>Lost_ratiomax(給定可接受的最大呼損率),則停止實(shí)驗(yàn)。通過重復(fù)多組隨機(jī)數(shù)據(jù)實(shí)驗(yàn),可以得到樣本數(shù)量充足的訓(xùn)練數(shù)據(jù)集。
最后,利用仿真平臺(tái)生成的數(shù)據(jù)集訓(xùn)練機(jī)器學(xué)習(xí)模型。本文使用的機(jī)器學(xué)習(xí)算法是LSTM算法,LSTM算法能夠較好地學(xué)習(xí)多個(gè)時(shí)間步的狀態(tài)特征。
通過上述機(jī)器學(xué)習(xí)模型,能夠通過外呼速度Call_speedt與坐席狀態(tài)Xt,得到相應(yīng)坐席利用率Agent_ratiot+1與呼損率Lost_ratiot+1。由于坐席狀態(tài)是客觀存在的,所以能夠通過選取合適的Call_speedt,使t+1周期在滿足呼損率的條件下Agent_ratiot+1最高。由于Call_speed與Agent_ratio是正相關(guān)的,所以可以在最小最大外呼速度之間使用二分法快速查找到最合適的Call_speed。
本節(jié)將利用數(shù)值實(shí)驗(yàn)來驗(yàn)證該算法的效果和穩(wěn)定性。首先會(huì)構(gòu)建一個(gè)簡(jiǎn)單的仿真平臺(tái),來模擬真實(shí)的預(yù)測(cè)式外呼的流程,并把不同的算法(自適應(yīng)算法以及對(duì)比算法)嵌入,來驗(yàn)證算法效果。
首先參照?qǐng)D1中流程構(gòu)建了一個(gè)仿真平臺(tái),模擬電話的撥打、等待、接通、掛斷等流程,其中對(duì)每通已撥出的電話實(shí)時(shí)按秒更新其狀態(tài)。仿真平臺(tái)會(huì)在每次撥完一份名單后,自動(dòng)統(tǒng)計(jì)總體的數(shù)據(jù)。該仿真平臺(tái)能在最大的程度上模擬了實(shí)際預(yù)測(cè)式外呼的情況,且可以用極短的時(shí)間來模擬現(xiàn)實(shí)中很長(zhǎng)的一段外呼時(shí)間,從而幫助評(píng)估算法的效果。
基于上述仿真平臺(tái),開展了一系列的數(shù)值實(shí)驗(yàn)來驗(yàn)證和分析自適應(yīng)算法的效果,并分析了算法在不同場(chǎng)景中的魯棒性。
選取了Pichitlamken等[11]的CTMC隊(duì)列模型來作為對(duì)比模型,該模型通過經(jīng)驗(yàn)值研究服務(wù)隊(duì)列,對(duì)隊(duì)列深入探究后改進(jìn)經(jīng)驗(yàn)算法。該論文中也采用了實(shí)驗(yàn),通過十萬天的仿真,得到的平均坐席利用率為73.3%,呼損率6%。用精確式算法[13]作為下限模型,該模型優(yōu)點(diǎn)是可以控制呼損為0,但實(shí)驗(yàn)效果一般。
首先分析自適應(yīng)算法在不同話務(wù)量和坐席數(shù)量下的表現(xiàn)。考慮了話務(wù)量為10000,50000,100000,以及坐席數(shù)量為10,50,100,500,1000,共15種情況。實(shí)驗(yàn)中,設(shè)定接通率為0.2,服務(wù)時(shí)間均值為30s,決策周期為10s。仿真結(jié)果如表2所示。
表2 坐席數(shù)與話務(wù)量對(duì)算法結(jié)果的影響表
通過表2可以得出,精確式算法雖然能夠保障零呼損,但坐席利用率太低。對(duì)比自適應(yīng)算法和CTMC算法,發(fā)現(xiàn)自適應(yīng)算法總能在相同呼損的情況下獲得更好的坐席利用率。說明自適應(yīng)算法在不同的人員數(shù)量或者話務(wù)量情況下,都明顯優(yōu)于CTMC算法。
為了驗(yàn)證不同話務(wù)波動(dòng)下自適應(yīng)算法的表現(xiàn),選取了接通率為0.1~1,間隔為0.1的10組數(shù)據(jù)來測(cè)試算法。其中設(shè)置實(shí)驗(yàn)話務(wù)量10000,坐席數(shù)100,通話時(shí)間均值30s、標(biāo)準(zhǔn)差30s以及決策周期10s。仿真結(jié)果如表3所示。
表3 接通率對(duì)算法結(jié)果的影響表
由表3可知,自適應(yīng)算法的結(jié)果在總體上與對(duì)比算法相比明顯較優(yōu),并大幅超過了下限算法,坐席利用率均值為88%,呼損率為5%。另外,可以發(fā)現(xiàn)圖2中出現(xiàn)了坐席利用率與呼損率隨著接通率升高的情況,這是因?yàn)榻油矢邥r(shí),接通的電話量也不斷增加,相同人力下,坐席利用率更容易達(dá)到飽和,因而會(huì)觸發(fā)更多的呼損。
圖2 接通率對(duì)自適應(yīng)算法的影響折線圖
根據(jù)企業(yè)現(xiàn)實(shí)話務(wù)數(shù)據(jù)分析得出,通話時(shí)間近似服從負(fù)指數(shù)分布,且均值在30s左右。本節(jié)選取了不同的通話時(shí)間分布(均值取30s和300s,標(biāo)準(zhǔn)差取1~5倍均值)的10組數(shù)據(jù)測(cè)試算法。實(shí)驗(yàn)數(shù)據(jù)設(shè)置為話務(wù)量10000,坐席數(shù)100,接通率0.3以及決策周期10s。仿真結(jié)果如表4所示。
表4 通話時(shí)間波動(dòng)情況對(duì)算法結(jié)果的影響表
圖3 通話時(shí)間波動(dòng)對(duì)自適應(yīng)算法的影響折線圖
由表4可知,自適應(yīng)算法在每個(gè)實(shí)驗(yàn)中的結(jié)果均優(yōu)于另外兩種算法,坐席利用率均值90%,呼損率均值是6%,且通話時(shí)間越長(zhǎng),坐席利用率越高。同時(shí)隨著通話時(shí)長(zhǎng)波動(dòng)性變大,呼損一般也會(huì)變多,這是因?yàn)椴▌?dòng)性會(huì)帶來更多的不確定性,使得評(píng)估函數(shù)的準(zhǔn)確性降低。由圖3可知通話時(shí)間分布的變異系數(shù)不同時(shí),對(duì)自適應(yīng)算法坐席利用率和呼損的影響并不大,說明算法具有很好的魯棒性。
本文設(shè)計(jì)了一種基于機(jī)器學(xué)習(xí)的自適應(yīng)預(yù)測(cè)式外呼算法,目的是更好地解決預(yù)測(cè)式外呼問題,幫助企業(yè)提升效率,降低成本,同時(shí)盡可能避免客戶抱怨。利用機(jī)器學(xué)習(xí)來構(gòu)建關(guān)鍵變量的函數(shù)關(guān)系,并設(shè)計(jì)了自適應(yīng)的算法機(jī)制。搭建了仿真平臺(tái)來模擬實(shí)際的預(yù)測(cè)式外呼過程。通過數(shù)值分析結(jié)果發(fā)現(xiàn),自適應(yīng)算法在不同場(chǎng)景下(不同坐席數(shù),不同接通率,不同通話時(shí)間分布)都明顯優(yōu)于兩種對(duì)比算法,且具有很好的穩(wěn)健性。