Senaryo 5 · Vector + Graph
Hibrit kişiselleştirilmiş ürün önerisi
Müşterinin son siparişlerindeki ürünlerin vector centroid'ine
en yakın ürünleri çekiyor, ardından graph.purchased'tan
social proof (kaç farklı sipariş alındı) ekliyor.
Tek SELECT'te VECTOR_SEARCH + GRAPH MATCH bir arada.
Provider: ollama / bge-m3
1024 dim centroid
Arkada calisan T-SQL 24-personalized.sql
Tek SELECT icinde VECTOR_SEARCH ve GRAPH MATCH birlikte: anlamsal yakinlik ile birlikte alinma sayisi ayni skorda birlesiyor.
DECLARE @centroid VECTOR(1024) = CAST(@centroid_json AS VECTOR(1024));
-- ----------------------------------------------------------------------------
-- 2-5) VECTOR_SEARCH + filter + graph social score + hibrit skor
-- ----------------------------------------------------------------------------
WITH hits AS (
SELECT * FROM VECTOR_SEARCH(
TABLE = vector.product_embedding,
COLUMN = embedding_bge_1024,
SIMILAR_TO = @centroid,
METRIC = 'cosine',
TOP_N = 30)
),
unowned AS (
SELECT h.product_id, h.distance
FROM hits h
WHERE NOT EXISTS (
SELECT 1
FROM shop.[order] o
JOIN shop.order_line ol ON ol.order_id = o.order_id
WHERE o.customer_id = @customer_id AND ol.product_id = h.product_id
)
),
social AS (
SELECT
u.product_id, u.distance,
(SELECT COUNT(DISTINCT pur.order_id)
FROM graph.product_node pn,
graph.purchased pur,
graph.customer_node c
WHERE MATCH(c-(pur)->pn)
AND pn.product_id = u.product_id) AS social_count
FROM unowned u
)
SELECT TOP (@top_k)
s.product_id,
p.name,
cat.name AS category,
p.price,
CAST(s.distance AS DECIMAL(6, 4)) AS vector_distance,
s.social_count,
CAST(s.distance + 1.0 / (1.0 + s.social_count) AS DECIMAL(6, 4)) AS hybrid_score
FROM social s
JOIN shop.product p ON p.product_id = s.product_id
JOIN shop.product_category cat ON cat.category_id = p.category_id
ORDER BY hybrid_score ASC;
GO
PRINT N'> Senaryo 5: vector + graph hibrit öneriler';
GOTam betik: sql/24-personalized.sql
Hibrit skorla sıralı öneriler
HB-015
Hobi
Mandala Boyama Kitabı
120.00 ₺
vec 0.3165
12 sipariş
GY-013
Giyim
Şort Pamuklu Yaz
385.00 ₺
vec 0.3352
13 sipariş
GY-003
Giyim
Klasik Kot Pantolon Slim
720.00 ₺
vec 0.3528
17 sipariş
HB-009
Hobi
Resim Tuali Hazır
380.00 ₺
vec 0.3292
11 sipariş
HB-002
Hobi
Akustik Gitar Üçgen Pena
85.00 ₺
vec 0.3465
13 sipariş
GY-001
Giyim
Slim-Fit Pamuklu Beyaz Gömlek
650.00 ₺
vec 0.3277
10 sipariş
HB-003
Hobi
Yapboz 1000 Parça
220.00 ₺
vec 0.3351
10 sipariş
GY-020
Giyim
Pijama Takımı Pamuklu
580.00 ₺
vec 0.3180
7 sipariş
EV-008
Ev
Havlu Seti Bambu
680.00 ₺
vec 0.3450
9 sipariş
GY-004
Giyim
Yağmurluk Su Geçirmez
1,850.00 ₺
vec 0.3564
10 sipariş
Centroid'i oluşturan ürünler
