◆左 英
?
網上書店主動推送書籍的預測算法設計
◆左 英
(長沙市電子工業學校 湖南 410008)
本文提出了一種網上書店預測客戶需求的算法,用偽代碼描述了如何主動地向客戶“推”送頁面。
網絡書店;推送;客戶喜愛度;預測算法
在網絡書店首頁中,雖然有很多類別的圖書展示在客戶眼前,但客戶對書店首頁中展示的書籍并不感興趣,他可能要花一些時間才能找到自己真正感興趣的書籍。這將浪費客戶很多時間和精力。我們能否采取一種有效的措施把這種客戶在信息豐富的網頁中“拉”內容的方式改變成向客戶主動“推”送網頁的方式呢?為了實現這種信息的“推”送技術,作者認為首先要知道客戶可能對哪些類別的書籍感興趣,然后要了解客戶經常瀏覽哪些類別的圖書、已經購買了哪些類別的圖書等問題,最后才能根據自己掌握的一些客戶信息和喜愛向其“推”送某些書籍。
本預測算法其基本思想是分別為客戶可能感興趣書籍所屬的大類別(客戶注冊時的需求)和購買書籍時所定位的精細類別增加一個可信度和喜愛度,這兩個值可分別反映出客戶對書的粗度需求和細度需求。其中,可信度的值反映出客戶對喜歡書所屬的大類別可信程度,值越高,代表客戶對此類別的書越感興趣。喜愛度是用來描述對精細類別所喜愛的程度,值越高,代表客戶對此類別的書越感興趣。當客戶有著不同的書籍瀏覽行為、不同的購買行為時,可信度和喜愛度的值也會隨之發生變化。也就是說可信度和喜愛度值的變化記錄著客戶的動態需求。
為了行文方便,特使用以下符號:
(1)Base-x: x∈{1,2,3,…n},字符串變量,當客戶注冊時,將提取喜愛圖書的粗度分類代碼存放于此變量下,x為自增變量,步長為1。
(2) Favor-x: x∈{1,2,3,…n},字符串變量,用來記錄客戶購買圖書的精細類別,x為自增變量,步長為1。
(3)Value(Base-x):可信度,代表著客戶對某一大類書是否關注的可信程度。
(4)Value(Favor-x):喜愛度,客戶對精細圖書類別的喜歡程度,值越大,表明客戶對此類圖書的喜歡度越高,該值會隨著客戶需求的變化而變化(值增加或減少)。
(5)BASE-X:符合一定條件的Base-x集合。如BASE-X={Base-1,Base-2…}。
(6)FAVOR-X:符合一定條件的Favor-x集合。如FAVOE-X={Favor1,Favor4…}。
(7) MIN_BASE:可信度的初值。
(8)MAX_BASE:可信度的最大值。
(9)MIN_FAVOR:喜愛度的初值。
(10) MAX_FAVOR:喜愛度的最大值。
客戶注冊時,會選擇自己所感興趣的幾類書,此時將每大類書的表示代碼分別用Base-1,Base-2,Base-3...記錄著,并將其對應的可信度賦予初始值MIN_BASE,即Value(Base-x)=MIN_BASE。
客戶在購買一本書時,往往會事先上網瀏覽多本書籍以做選擇,那么當注冊客戶在網上瀏覽書籍時,我們使他感興趣書籍類別(通過注冊或購買了書籍時所得到的記錄)的可信度和喜愛度也跟著發生變化,以動態的預測客戶的需求。算法描述[5]如下所示:

(1)客戶在瀏覽書籍時,首先看該書籍的大類別是否在BASE-X的集合中(該集合中的初始值是從客戶在注冊過程中填寫的資料所確定的),如果在,則將瀏覽書籍的可信度加A(A為客戶在瀏覽書籍時可信度、喜愛度增加的數值,該值可由系統設計者根據需要來設定)。即:Value(Base-x)+A,其中Base-x對應著客戶正在瀏覽書籍的類別符號。如果不在,對其不進行操作。
(2)當加完書籍大類別的可信度值時會對其值進行判斷是否大于MAX_BASE,如果大于則將該值設為最大值MAX_BASE,如果沒有則保留改變的值進行下一步操作。
(3)判斷該書是否在客戶的精細分類中有記錄,如果有,則將其喜愛度加A,即Value(Favor-x)+A,其中Favor-x對應著客戶正在瀏覽書籍的細類別符號。
(4)當加完書籍細類別的喜愛度值時會對其值進行判斷是否大于MAX_FAVOR,如果大于則將該值設為最大值MAX_FAOVR,如果沒有則保留改變的值進行下一步操作。
(5)判斷是否繼續瀏覽圖書,若是,則重復以上過程。
購買書籍時可信度的評定算法如下所示:

(1)首先判斷客戶是否要購買圖書,如果購買,看購買圖書的大類別在BASE-X中是否有記錄,如果沒有記錄,表明客戶在注冊時并沒有選擇喜愛該類別的書,系統將自動將購買書籍的大類別加入BASE-X中,并將該類記錄的可信度的值設為初始值MIN_BASE,如果該類別的書籍有記錄,則進入下一步。
(2)系統判斷客戶是不是第N次(N次是指第2次或第2次以上,如果是第1次購買則不算N次)購買圖書,如果客戶連續多次購買某類圖書則表明他一定對此類圖書很感興趣,那么該類圖書的類別的可信度應成倍的加值。
(3)若不是N次購買,則將Val(Base-x)+B。
(4)判斷Value(Base-x)>MAX_BASE是否成立,如果成立,將Value(Base-x)的值設為MAX_BASE,否則繼續。
(5)將記錄在BASE-X中其他類別書籍的可信度均減B(購買書籍類別除外)。
(6)判斷是否在BASE-X記錄中存在任一項Value(Base-y)<0(表示客戶對此類書的信用度已降至最低),若是,則刪除該記錄。

(1)首先判斷客戶是否要購買圖書,如果該類別的書籍有記錄,則進入下一步。若沒有,則直接進入結束。如果購買,看購買圖書的大類別是否在FAVOR-X中是否有記錄,如果沒有記錄,表明客戶還沒有購買過這種類型的書籍,系統將自動購買書籍的精細類別加入FAVOR中,以便于以后精細的需求預測,并將該類記錄的喜愛度的值Favor設為Value(Base-x)+MIN_FAVOR,此處Favor的值是在可信度的基礎上加MIN_FAVOR而得,若該類書的可信度越高,則代表客戶對該大類的關注程度越高,那么對該書的喜愛度評定也應越高,也就是說此處喜愛度的評定值取決于此類書可信度值的高低。
(2) 系統判斷客戶是不是N次(N次是指第2次或第2次以上,如果是第1次購買則不算N次)購買圖書,如果客戶多次購買某類圖書則表明他一定對此類圖書很感興趣,那么該類圖書的類別的可信度應成倍的加值。比如,當客戶第二次購買時Value(Favor-x)+B*2,當客戶第三次購買時則Value(Favor-x)+B*3,當客戶連續第四次購買時則Value(Favor-x)+B*4,這種成倍增加可信度的方法可以更好地體現出客戶對某類書和關注。
(3) 若不是N次購買,則將Value(Favor-x)+B
(4) 判斷Value(Favor-x)>MAX_FAVOR是否成立,如果成立,將Value(Favor-x)的值設為MAX_FAVOR,否則繼續。
(5)將記錄在FAVOR-X中其他類別書籍的可信度均減B(購買書籍類別除外)。
(6)判斷是否在FAVOR-X記錄中存在任一項Value(Favor-y)<0(表示客戶對此類書的喜愛度已降至最低),若是,則刪除該記錄,然后進入下一步,若沒有,直接進入下一步。
(1)動態的預測客戶的需求
該算法使用可信度和喜愛度值的大小來表示客戶對某類書籍的關注程度,可信度為粗度的預測,而喜愛度為細度的預測。它們的值會隨著客戶瀏覽圖書的行為而增加,也會隨著客戶購買的行為而增加或減少。當客戶在網絡書店中多次瀏覽某種類別的書籍時,該書籍的可信度值也就越高,而當客戶多次購買同類型的書籍時,它的喜愛度值也會隨之增加,若某一客戶多次購買同一種類別的書籍時,表明他一定對這種類別的書籍很感興趣,此時,可信度和喜歡度的值也是成倍增加以體現出客戶對該種類型書籍的喜愛。相反,若客戶從不瀏覽或購買某種類型的書籍,那么該書籍的可信度和喜愛度的值也會隨之減少,表明客戶對此類書籍并不感興趣。通過對可信度和喜愛度的增加與減少能夠反映出客戶動態需求。
(2)先“粗”后“細”的預測方式
算法首先從客戶的注冊信息中獲取客戶的粗度需求進行粗度預測,當客戶購買一本書時,系統會記錄下該書籍的詳細分類標識,作為細度預測需求的依據。細度預測是建立在客戶粗度預測的基礎之上。比如,當客戶首次購買某書籍時,對其喜愛度值的評價是建立在粗度需求上的,即喜愛度值為可信度的值加上喜愛度的初值,也就是說,如果某類書的可信度值越高,那么它的喜愛度值就會越高。
(3)自動修正客戶的需求
系統能夠根據可信度及喜愛度的值來自動刪除客戶不感興趣的書籍類型。比如,客戶在注冊時隨便選擇了一種可能感興趣的書籍類別(計算機—數據庫類),但客戶每次購買書籍時并沒有購買此類書籍。系統首先會給粗度預測的可信度賦初值為MIN_BASE,如果客戶在購書過程中沒有購買此類別的書籍時,每次將自動扣除B,當其初值MIN_BASE被扣得小于0時,系統會自動刪除客戶對此類書籍的關注記錄。而當客戶購買了一本并沒有在注冊時填寫的所喜歡的書籍類別時,系統會自動添加至數據庫。對喜愛度值的評定也是同樣的道理,當喜愛度的值小于0時,系統也會自動刪除該記錄。
(4)對可信度和喜愛度的值進行了合理的范圍限定
默認時可信度的初值為MIN_BASE,喜愛度的初值為MIN_FAVOR。可信度的最高值為MAX_BASE,喜愛度的最高值為MAX_FAVOR。MIN_BASE、MIN_FAVOR、MAX_BASE和MZA_FAVOR的值設計者可以根據實際情況而定。比如說,將MIN_BASE=2,MIN_FAVOR=3,那么將初值賦2和3是考慮到若客戶連續N次沒有購買和瀏覽該類別的書時,可信度的值每次扣B(B的取值也可由設計者根據實際情況而定),喜愛度的值每次扣B,它們的值將分別下降至小于0,這樣可以斷定客戶對此類別的書籍不感興趣,從而將其從數據庫記錄中刪除。
[1]張饒學.主動服務概念、結構與實現[M].科學出版社,2015.
[2]Benatallah B.Casati F,ToumaniF.2004.Web service conversion modeling:a cornerstone for e-business automation[J].IEEE Internet Computing,8(1):46-54.
[3]Vinoski S.2004.More Web services notifications[J].IEEE Internet Computing,8(3):90-93.
[4]Angela Yochem, David Carlson, Tad Stephens著.謝俊譯. J2EE應用與BEA WEBLOGIC SERVER[M].電子工業出版社,2013.
[5]徐慧慧.JBuilder編程技術與實例[M].人民郵電出版社,2016.