Các khó khăn khi xây dựng một module hỗ trợ khách hàng chọn sản

Một phần của tài liệu Tối ưu đa mục tiêu sử dụng giải thuật di truyền với bài toán hỗ trợ người mua hàng trực tuyến lựa chọn sản phẩm (Trang 44)

III. Các luận điểm cơ bản và đóng góp mới của luận văn

2.8.Các khó khăn khi xây dựng một module hỗ trợ khách hàng chọn sản

Đề tài này em muốn sử dụng bài toán tối ưu đa mục tiêu dùng giải thuật di truyền để giải quyết khâu chọn lựa sản phẩm. Em quyết định xây dựng trang web hỗ trợ người mua lựa chọn sản phẩm Máy tính xách tay, một mặt hàng mà người dùng rất muốn và rất cần được ―tư vấn‖ trước khi quyết định. Chương trình thiết thực vì hỗ trợ người mua chọn hàng trong thời gian ngắn và luôn cho kết quả.

Vậy trang web cần xây dựng phải có nhiệm vụ như một người bán hàng chuyên nghiệp, đó là nắm bắt các nhu cầu của người mua và khuyến cáo cho người mua một số sản phẩm mà mình cho là thích hợp. Mặc dù quyết định cuối cùng vẫn thuộc về người ra quyết định, (ở đây là người mua hàng), tuy nhiên một lời khuyên cho người dùng vẫn rất quan trọng.

2.8. Các khó khăn khi xây dựng một module hỗ trợ khách hàng chọn sản phẩm phẩm

Các khó khăn phi kỹ thuật:

• Không giống như một người bán hàng thực, một người bán hàng có thể qua cách ứng xử, ăn mặc, thái độ v.v của người mua mà có thể chọn ra các mặt hàng cho phù hợp. Trang web bán hàng hoàn toàn không biết gì về các thông tin trên của khách hàng.

• Người mua có thể tự do tương tác, trao đổi với người bán để nói lên nhu cầu, sở thích của mình. Trong khi mua hàng trên mạng thì yếu tố thời gian là rất quan trọng, cần phải dung hòa giữa lượng thông tin cần thu thập và thời gian tiêu tốn của người dùng.

• Trao đổi bằng ngôn ngữ tự nhiên sẽ dễ dàng và hiệu quả hơn. Trong khi đó người mua chỉ có thể trao đổi với trang web qua một số cách nhất định (thường được số hóa).

Các khó khăn về kỹ thuật:

• Không gian tìm kiếm sản phẩm rất lớn, không thể tìm tuyến tính vì sẽ bắt khách hàng đợi lâu.

• Cần tạo một kịch bản để thu thập thông tin khách hàng sao cho hợp lý, tránh gây nhàm chán và làm mất nhiều thời gian.

• Vấn đề ―đa mục tiêu‖, các sở thích của người dùng đôi khi xung đột hoặc không hợp lý dẫn đên kết quả tìm kiếm thường là ―Không tìm thấy mặt hàng nào phù hợp‖. Đây là một trong những điều cấm kỵ nhất của người bán hàng, để người khách hàng ra về tay không, không những không bán được hàng mà còn để lại ấn tượng không tốt nơi khách hàng.

2.9. Cách tiếp cận để giải bài toán “Tối ƣu đa mục tiêu” khi chọn sản phẩm

Nội dung của luận văn này là tìm hiểu bài toán tối ưu hóa đa mục tiêu và cách tiếp cận dùng giải thuật di truyền (Genetic Algorithm - GA). Và áp dụng cách tiếp cận trên để giải bài toán tối ưu hóa đa mục tiêu khi hỗ trợ khách hàng chọn sản phẩm. Luận văn này chọn cách tiếp cận trên với các lý do sau:

• Đây là một cách tiếp cận mới mẻ và đang được nhiều người quan tâm, phát triển và ứng dụng vào nhiều lĩnh vực khác nhau.

• Giải thuật di truyền (GA) dựa trên ý tưởng quần thể tự nhiên, chọn lọc ngẫu nhiên sẽ làm cho giải thuật có khả năng mạnh mẽ trong việc tìm kiếm một cách song song. Trong đó tất cả các cá thể trong quẩn thể sẽ được cố gắng tìm kiếm ở tất cả các hướng trong không gian tìm kiếm qua đó cho phép GA tránh được tối ưu hóa cục bộ.

• Một thế mạnh của GA trong nhiệm vụ tìm kiếm đó là không lo sợ khả năng bùng nổ của tổ hợp tìm kiếm. GA đặc biệt tỏ ra hữu hiệu với các không gian tìm kiếm lớn. Với các không gian tìm kiếm lớn GA không những bảo đảm được tối ưu hóa toàn cục mà còn bảo đảm được thời gian tìm kiếm, một trong những yêu cầu quan trọng của bài toán.

• Và do đặc trưng của bài toán, chúng ta cần trả về cho người mua một danh sách các mặt hàng mà theo hệ thống là phù hợp nhất (thông thường từ 3 đến 5 giải pháp) nên việc sử dụng GA lại càng hợp lý. GA khác các phương pháp tìm kiếm tuyến tính khác là trong một lần chạy có thể cho ta một tập các giải pháp thuộc miền Pareto trong quần thể của nó.

2.10. Chuyển bài toán chọn sản phẩm thành bài toán tối ƣu đa mục tiêu

Chúng ta sẽ mô tả bài toán mua hàng thành các khái niệm trong bài toán tối ưu hóa đa mục tiêu.

2.10.1 Lời giải cho bài toán

Trong bài toán tìm kiếm sản phẩm, người dùng mong muốn chọn ra một mặt hàng thích hợp do đó sản phẩm tối ưu đối với sở thích người mua chính là lời giải của bài toán.

Nhưng chọn ra chỉ một sản phẩm cho người dùng có vẻ không phù hợp cho lắm, đôi khi tạo cho người dùng cảm giác bị ép buộc. Do đó giải pháp phù hợp đó là một tập các lời giải tối ưu, tập hợp này tương tự như những sản phẩm mà một người bán hàng sẽ gợi ý cho chúng ta khi đã nắm bắt được nhu cầu của khách hàng.

2.10.2 Các biến quyết định

Ở đây các biến quyết định chính là các thuộc tính cấu thành nên sản phẩm.

Ví dụ (sản phẩm là máy tính xách tay).

X (Giá, trọng lượng, tốc độ, thời gian sử dụng pin)

X là một điểm trong vùng khả thi. Trong ví dụ trên có 4 biến quyết định.

2.10.3. Các ràng buộc

Trong bài toán ―tối ưu đa mục tiêu‖ các ràng buộc chính là các điều kiện giữa các biến quyết định. Nhưng trong bài toán này không gian tìm kiếm là rời rạc, các điểm trong không gian tìm kiếm chính là ràng buộc của các biến quyết định. Hay nói cách khác nếu các giá trị của các biến quyết định cùng tồn tại trong một lời giải thì đó là một ràng buộc đúng đắn.

Các ràng buộc được mô tả bằng 1 vector:

Trong đó hk(x) = xk = Nk (adsbygoogle = window.adsbygoogle || []).push({});

Khi đó ràng buộc H thỏa khi  Xi F, Xi=(N1,N2,….,Nn)

F là vùng khả thi, không gian lời giải và trong bài toán này là không gian các sản phẩm.

2.10.4 Các mục tiêu

Có thể dễ dàng nhận thấy 2 mục tiêu (objective) mà người mua luôn nhắm tới là giá cả (cost) và chất lượng của sản phẩm (performance). Người mua luôn muốn mua được sản phẩm đáp ứng đầy đủ các yêu cầu với một giá rẻ nhất .Và điều khó khăn ở đây đó là 2 mục tiêu này luôn xung đột với nhau. Một sản phẩm với các tính năng nổi trội luôn có một cái giá cao hơn một sản phẩm khác và ngược lại do đó thường đi ngược lại với mong muốn của người mua. Do đó nhiệm vụ của bài toán đa mục tiêu đó là phải dung hòa cả 2 mục tiêu đó.

Mô tả tổng quát:

Min/max F = (fp(x),fc(x))

Từ đây ta thống nhất là sẽ dùng min, tức là mục tiêu của ta là làm tối thiểu hóa vector mục tiêu.

Trong đó F là một vector mô tả 2 mục tiêu chính là giá (cost) và performance ( chất lượng)

Một ví dụ đơn giản về vector mục tiêu trên một sản phẩm gồm 2 thuộc tính.

Sản phẩm X =(weight, cost) với tính chất giá (cost) càng cao trọng lượng (weight) càng thấp và người mua muốn một sản phẩm với giá (cost) thấp và trọng lượng (weight) cũng thấp.

Vector mục tiêu được định nghĩa như sau: F = (fp(X),fc(X))

Hình 2.1 - Vector mục tiêu của sản phẩm có 2 thuộc tính.

Trên đây chỉ là trường hợp đơn giản performance (chất lượng) của ta chỉ có một thuộc tính. Đối với trường hợp tổng quát thì sao? Bây giờ hàm mục tiêu về chất lượng (performance) sản phẩm sẽ trở thành:

fp(x)=(fp1(x)+fp2(x)+…+fp(n-1)(x))

với n là số thuộc tính của sản phẩm (n-1 vì đã bỏ qua thuộc tính giá cả) Nhưng khó khăn đặt ra là các thuộc tính lại không có đơn vị tính giống nhau do đó ta cần có một số tinh chỉnh để hàm mục tiêu có thể thực hiện được. Một cách đơn giản mà ta có thể áp dụng đó là tinh chỉnh (normalize) các thuộc tính để các thuộc tính đều có giá trị là một số thực từ 0 đến 1. Bây giờ hàm mục tiêu về performance (chất lượng) sẽ có dạng:

Fp(x)=(fp1(x)/ X01+fp2(x)/ X02+…..+ f p(N-1)(x)/ X0n-1)

trong đó X0k là giá trị lớn nhất mà thuộc tính Xk có thể có được.

2.10.5 Hƣớng đến một lời giải “tối ƣu”

Để có được một lời giải tối ưu (hoặc gần tối ưu) chúng ta cần qua 2 giai đoạn:

• Hướng các lời giải của chúng ta về miền tối ưu Pareto Xu hướng người mua

Vùng khả thi hay không gian tìm kiếm Vùng yêu thích

fc(X) fp(X)

• Chọn trên miền Pareto một lời giải phù hợp nhất.

2.10.5.1 Điều hƣớng lời giải về miền tối ƣu Pareto

Cũng như với cách mua hàng truyền thống, để người bán hàng có thể chọn ra các sản phẩm phù hợp thì người mua phải cung cấp các tiêu chí (sở thích) về sản phẩm mà mình định mua. Cũng tương tự như vậy để giải quyết bài toán này chúng ta cũng phải thu thập một số thông tin về sản phẩm mà người dùng mong đợi, đây chính là mục tiêu của người dùng.

Chúng ta có thể mô tả một mục tiêu của người dùng bằng một vector như sau: Pref = (P1,P2,…,Pk) (Pref- Preference)

Trong đó Pi là một hằng số, mô tả giá trị mà người mua mong muốn có được ở thuộc tính xi . Và k là số thuộc tính mà người dùng mô tả về sản phẩm. Trong đó 1≤k ≤ n (n là số thuộc tính của sản phẩm) vì không nhất thiết người dùng phải mô tả tất cả các thuộc tính.

Và mục tiêu của chúng ta là đưa giá trị của các thuộc tính được mô tả về càng gần với giá trị Pi càng tốt. Đây chính là nơi ta áp dụng hướng tiếp cận hướng mục đích, mỗi Pi là một mục đích của chúng ta.

Một mục đích trên thuộc tính xi có thể được mô tả một cách đơn giản là: min | fpi(x) – xi | Và hàm mục tiêu về chất lượng sản phẩm sẽ có dạng: f p(x)= min( 1 k i  | fpi(x) – xi | ) (adsbygoogle = window.adsbygoogle || []).push({});

Khi tối ưu từng mục đích (goal) chúng ta hi vọng rằng các sản phẩm trong không gian tìm kiếm của thuật toán di truyền sẽ điều hướng về miền tối ưu Pareto.

Hình 2.2 - Điều hướng về miền tối ưu Pareto.

2.9.5.2 Chọn trên miền tối ƣu Pareto lời giải tối ƣu nhất

Theo định nghĩa của miền tối ưu Pareto thì những lời giải trên miền này không thể so sánh với nhau được nữa vì trên miền này không có lời giải nào hoàn toàn thống trị lời giải khác. Khi chúng ta đã chọn lọc được các lời giải trên miền Pareto (ở bước trên) thì việc tiếp theo đó là chọn ra trên miền đó 1 hoặc nhiều lời giải mà ta cho là tốt hơn những lời giải khác (cũng thuộc miền Pareto). Chúng ta phải làm việc này vì trên miền Pareto không đảm bảo chỉ tồn tại 1 lời giải.

Để chọn ra lời giải tốt hơn trên miền này chúng ta sẽ áp dụng cách tiếp cận Weighting Objective. Khi đó ta cần thêm các thông tin về mức độ quan trọng của các mục tiêu (đây là các đánh giá khách quan của người ra quyết định-người mua hàng).Đây chính là mối tương quan về độ trội của các mục tiêu.

Lúc này vector mô tả sở thích của người mua có dạng: Pref = ((wp1,P1),(wp2,P2),…..,(wpk,Pk))

Trong đó w i chính là độ quan trọng của mục tiêu thứ i trong mục tiêu về chất lượng của sản phẩm f pi(x).

Miền tối ưu

Khi đó trọng số quan trọng của mục tiêu về chất lượng sản phẩm (performance) sẽ là : wp = 1 k i  wpi

Và độ quan trọng của mục tiêu về giá cả wc Với các ràng buộc:

wc+wp=1

Khi người dùng thay đổi các trọng số độ quan trọng của các mục tiêu thì các lời giải ―tối ưu‖ sẽ di chuyển trên miền Pareto. Người ra quyết định có thể thay đổi trọng số này để có thể chọn ra các lời giải ―tối ưu‖.

Hình 2.3. Di chuyển trên miền Pareto bằng cách thay đổi trọng số

2.10.6 Các cải tiến để phù hợp với bài toán.

2.10.6.1 Mô tả cấu trúc gene của thuật giải di truyền

Do nhu cầu của bài toán (cần trả về một tập lớn hơn 1 lời giải tối ưu) nên mỗi gen sẽ được biễu diễn bằng một mảng các định danh của các lời giải trong không gian tìm kiếm (trong trường hợp cụ thể đó là các id của các sản phẩm trong cơ sở dữ liệu). Số lời giải trả về có thể phụ thuộc vào mong muốn của người dùng (nhưng phải lớn hơn 1, không ai lại muốn không tìm thấy sản phẩm nào).

Mô tả một gen:

ID1 ID2 … IDN

Trong đó n là số kết quả mà người dùng mong đợi được trả về.

Kết quả tốt nhất mà ta mong đợi để chọn đó là gen mà tất cả các ID trong gen đều nằm trên miền tối ưu Pareto hoặc tồi hơn có thể có một số ID thuộc Pareto và một số ít hơn nằm gần miền Pareto. Trường hợp không thành công là không có ID nào thuộc miền Pareto lúc này thuật giải chưa được hội tụ, hoặc hội tụ quá sớm gây ra tối ưu cục bộ.

Hình 2.4 - Các trạng thái gen trong quần thể.

2.10.6.2 Vai trò của các thao tác chọn lọc, lai ghép, đột biến trên quần thể

Chọn lọc: Quá trình này nhằm mục đích loại bỏ khỏi quần thể những gen chứa các lời giải xấu (những lời giải nằm xa miền tối ưu Pareto) (xem hình trên). Tuy nhiên vấn đề cần quan tâm ở đây đó là bảo toán tính tốt và tính đa dạng của quần thể. Khi loại bỏ các gen xấu chúng ta có thể loại bỏ luôn cả các lời giải tốt (hoặc tương đối tốt) tồn tại trong gen.

Lai ghép: Đây là một quá trình tự nhiên trong đó các nhiễm sắc thể giữa 2 gen sẽ được hoán đổi cho nhau. Nhiệm vụ chính của nó là làm tăng tính đa dạng của quần thể, với hi vọng các gen tốt hơn sẽ được tạo ra.

Gen xấu

Gen tương đối tốt Loại gen tốt

Chúng ta cần một số cải tiến để bảo đảm rằng các gen đời sau sẽ tốt hơn đời trước. Bởi vì độ tốt của một gen được xác định bằng tổng độ tốt của mỗi nhiễm sắc thể (gen nào có nhiều nhiễm sắc thể (NST) trên miền Pareto, hoặc gần miền Pareto hơn thì gen đó tốt hơn). Nên khi lai ghép ta sẽ chuyển các NST tốt của một gen (bố hoặc mẹ) vào gen của người còn lại. Như vậy sau khi lai ghép sẽ tạo ra một gen hoàn toàn trội hơn 2 gen bố mẹ và một gen sẽ chứa toàn những tính xấu. Khi đó trong quá trình chọn lọc ta chỉ giữ lại một gen con tốt vừa được tạo ra và một gen (bố hoặc mẹ) tốt hơn. Khi đó ta sẽ vừa bảo đảm các nhiễm sắc thể tốt sẽ không bị ―vô tình‖ loại bỏ và tính đa dạng của quần thể cũng vẫn được bảo tồn qua các đời.

Hình 2.5 - Lai ghép. (adsbygoogle = window.adsbygoogle || []).push({});

Đột biến: Vai trò của thao tác đột biến là để tránh tối ưu hóa cục bộ (các gen chưa tiến đến được miền Pareto). Qua thao tác đột biến chúng ta sẽ đưa các lời giải tốt hơn vào không gian quần thể của thuật giải di truyền.

Đột biến Hình 2.6 : Đột biến fp(x) fc(x) Gen bố

Gen con xấu Gen con tốt

Gen mẹ fp(x)

2.10.6.3. Hàm thích nghi

Hàm thích nghi của mỗi sản phẩm sẽ có dạng như sau: F =

1

k

i

 fpi(x)+ fc(x)

trong đó fpi(x) là hàm mục tiêu của thuộc tính về chất lượng thứ i (người mua quan tâm đến k thuộc tính-ngoài giá).

fc(x) hàm mục tiêu về giá

Một sản phẩm tốt khi có giá trị hàm thích nghi lớn hơn. Khi thuật giải cố gắng tối đại hóa hàm thích nghi, thực chất là đang điều hướng các sản phẩm về miền tối ưu Pareto.

Để kết hợp cả 2 giai đoạn điều hướng chúng ta có thể kết hợp cả 2 cách dùng hướng mục đích và trọng số vào cùng một hàm mục tiêu như sau:

fpi(x)= wi(1- | pi-xi | /x*i) và fc(x) = wc (1- | pc- c | /c*) trong đó wi là độ quan trọng của thuộc tính i.

pi là giá trị mà người dùng mong đợi ở thuộc tính i. xi là giá trị của thuộc tính i

x *i là giá trị tối đa mà thuộc tính i có thể có được. c* là giá tiền tối đa mà một sản phẩm có thể có.

2.11. Các bƣớc thực hiện giải thuật trong khâu lựa chọn sản phẩm của bài toán bán hàng qua mạng máy tính xách tay.

2.11.1. Khởi tạo.

Khởi tạo ngẫu nhiên 1 quần thể gồm có m cá thể ( giả sử là 10). Mỗi cá thể là 1 nhiễm sắc thể gồm n máy tính. Nếu ta muốn kết quả trả về 3 máy, chọn n =3. Thành phần của các chính là ID của các máy.

……… 2.11.2. Tính độ thích nghi.

Một phần của tài liệu Tối ưu đa mục tiêu sử dụng giải thuật di truyền với bài toán hỗ trợ người mua hàng trực tuyến lựa chọn sản phẩm (Trang 44)