Recommendation systems are among most widely preffered marketing strategies.

Overview

Recommendation_Systems-ARL-and-CF

Tavsiye sistemleri, pazarlama stratejileri için sıkça tercih edilen yöntemlerdendir. Bu yaygınlığın sebebi kullanıcı ve ürünlerin kendi içindeki ve birbirleri arasındaki ilişkilerini tahmin etmede elde ettiği başarıdır. Bu projede iki farklı veri seti üzerinde iki farklı tavsiye sistemi algoritması uygulanmıştır: "Birliktelik Kuralı Öğrenimi (Association Rule Learning)" ve "İş Birlikçi Filtreleme (Collaborative Filtering)". Bahsedilen algoritmalar hakkında detaylı bilgi yazının devamında sunulmuştur.

ARL-CF

Özellikle son zamanlarda talebi artan tutan e-ticaret sitelerinin ürün yelpazesi oldukça geniştir. Bir kullanıcının bütün siteyi tarayarak istediği ürüne ulaşması ya da kullanıcının geçmiş ve anlık tercihlerine uygun ürün önerisinde bulunmak tavsiye sistemleri olmadan mümkün değildir. Tavsiye sistemleri temelde kullanıcının geçmiş bilgilerini kullanarak tercih ettiği ürünlerin diğer ürünlerle ilişkisini tespit ederek satın alma ihtimali yüksek olan ürünleri karşısına çıkarmak için kullanılır.

Association Rule Learning:

Özellikle ürün çeşitliliğinin çok olduğu veri setleri içinde gizlenmiş ilişkileri bulmak için kullanılan bir kural tabanlı bir makine öğrenmesi yöntemidir. Örneğin: bir market veri setinin barındırdığı fişlerin değerlendirilmesi sonucu Süt -> Tereyağı, Süt -> Ekmek gibi birlikte alınan ürünlerin tespit edilmesi. Müşterilerin ortak olarak birlikte alma davranışı gösterdiği ürünleri bulmak önemlidir.

Bir müşterinin süt aldığında ekmek alma olasılığı nedir? Bir müşterinin cips aldığında gazlı içecek alma olasılığı kaç kat artar? Bu soruların cevaplarından elde edilen öngörü çeşitli aksiyonlar alınabilir. Birlikte tercih edilen ürünleri, biri alındığında diğeri de alınan ürünleri tespit etmek gerek e-ticarette ürün önerisi stratejisi, gerek fiziksel marketlerde ürünlerin raf sıralaması, market konumlandırması gibi strateji geliştirmek için önemlidir. Ayrıca, bu kurallar müşteri satın alma davranışlarını kavrayabilmeyi de sağlar.

Bu birliktelikleri tespit etmek için bir sepet analizi yöntemi olan Apriori Algoritması kullanılır. Tablo-1'de formülleri ve açıklamaları verilen Support, Confidence ve Lift değerleri bulunarak sonuca bağlı çeşitli pazarlama teknikleri kullanılabilir.

Tablo-1: ARL

Birliktelik kuralını bulabilmek için bir support değeri belirlendilten sonra sırasıyla iki adımlı süreç izlenir:

1- Tüm sık tekrarlanan çift ve üçlü kombinasyonlar arasından belirlenen eşik değerin altında kalanlar elenir. 3- Elde kalan kombinasyonların support, confidence ve lift değerleri hesaplanarak güçlü birliktelik sergileyen gruplar tespit edilir. Buna göre aksiyon alınır.

2- Sık tekrarlanan Öğelerden güçlü birliktelik kuralları oluşturulur: Bu kurallar minimum destek ve minimum güven değerlerini karşılamalıdır.

Colaborative Filtering:

İşbirlikçi filtreleme yöntemleri bir kullanıcının herhangi bir ürüne olan ilgi düzeyini tespit etmek ve buna bağlı ürün filtreleyerek öneride bulunmak için kullanılır. Bu amaç için temelde iki farklı yönteme başvurulur: Model Tabanlı İşbirlikçi Filtreleme ve Bellek Tabanlı İşbirlikçi Filtreleme Yöntemleri. Model Tabanlı İşbirlikçi Filtreleme yöntemleri ise Öğe Tabanlı İşbirlikçi Filtreleme ve Kullanıcı Tabanlı İşbirlikçi Filtreleme olarak ikiye ayrılır. Ancak, bu yöntemler birlikte kullanılarak hibrit bir model de oluşturulabilir.

Kullanıcı temelli filtrelemede amaç kullanıcı davranışları ile öneriler gerçekleştirmektir. Filtreleme yaparken bir kullanıcının bir ürüne olan muhtemel ilgisini bulmak için ilk önce söz konusu ürünü değerlendiren kullanıcılar arasındaki benzerlikler ve aktif kullanıcıya en çok benzeyen kullanıcılar bulunur. Örneğin Spotify'da kişinin tercih ettiği müzikler üzerinden diğer kullanıcılar ile benzerliği tespit edilerek kullanıcıya en çok benzeyen kullanıcıların dinlediği diğer müziklerin önerilmesi. İki kullanıcı arasındaki benzerliğini bulmak içinse kosinüs benzerliği ve pearson korelasyon katsayısı en çok tercih edilen yöntemlerdir.

Ürün temelli filtreleme ise kullanıcıların verdiği oylar üzerinden ürün benzerliklerini tespit eden bir yöntemdir. Yani örneğin kişi yöntemin bir nesnesi olmaktan çıkarılarak izlediği bir filmle benzer beğenilme yapısı gösteren filmler bulunur. Diğer izleyicilerin toplu olarak farklı filmlere verdiği benzer reaksiyonlar bulunarak benzer filmler de bulunmuş olur. Korelasyonu en yüksek filmler seçilerek kullanıcıya öneri olarak sunulur.

Bu çalışmada kişi ve öğe temelli (user-based, item-based) hibrit bir model çalışılmıştır.

Kaynakça:

  1. https://www.veribilimiokulu.com/
  2. M. Kaur ve S. Kang, “Market Basket Analysis: Identify the Changing Trends of Market Data Using Association Rule Mining”, Procedia Computer Science, c. 85, ss. 78-85, 2016, doi: 10.1016/j.procs.2016.05.180.
  3. Oğuzlar, A . (2004). VERİ MADENCİLİĞİNDE BİRLİKTELİK KURALLARI . Öneri Dergisi , 6 (22) , 315-321 . DOI: 10.14783/maruoneri.678958
  4. https://burakdogrul.medium.com/overview-of-recommender-systems-and-implementations-cae13088369
  5. H. Bulut ve M. Milli, “New prediction methods for collaborative filtering”, Pamukkale J Eng Sci, c. 22, sy 2, ss. 123-128, 2016, doi: 10.5505/pajes.2014.44227.
Owner
Sübeyte
Sübeyte
🧑‍💼 Python wrapper for the Seek API

seek-com-au-api 🧑‍💼 Python wrapper for the seek.com.au API (unofficial) Installation Using Python = 3.6: pip install -e git+https://github.com/tomq

Tom Quirk 1 Oct 24, 2021
A tool for exporting Telegram group chats into static websites, preserving chat history like mailing list archives.

tg-archive is a tool for exporting Telegram group chats into static websites, preserving chat history like mailing list archives. Preview The @fossuni

Kailash Nadh 400 Dec 27, 2022
Generate and Visualize Data Lineage from query history

Tokern Lineage Engine Tokern Lineage Engine is fast and easy to use application to collect, visualize and analyze column-level data lineage in databas

Tokern 237 Dec 29, 2022
OliviaV2: danger bot with python

🎶 OLIVIA V2 🎵 Requirements 📝 FFmpeg NodeJS nodesource.com Python 3.7 or higher PyTgCalls 🧪 Get SESSION_NAME from below: Pyrogram 🎖 History Featur

Alvaro Einstein 2 Nov 04, 2021
IdeasBot - Funny telegram bot to generate ideas for a project

Repository of PIdeas_bot About Funny telegram bot for generating projects ideas.

Just Koala 5 Oct 16, 2022
Python script using Twitter API to change user banner to see 100DaysOfCode process.

100DaysOfCode - Automatic Banners 👩‍💻 Adds a number to your twitter banner indicating the number of days you have in the #100DaysOfCode challenge Se

Ingrid Echeverri 10 Jul 06, 2022
fbchat - Facebook Messenger for Python

A powerful and efficient library to interact with Facebook's Messenger, using just your email and password.

1.1k Dec 23, 2022
Send to Telegram, Vk, Discord

Triple send Версия для русских: здесь Demo: Telegram: @Triple_project_bot Discord: Triple project#0877 Vkontakte: @dev.santaspeen How to run Install r

2 Sep 27, 2022
Python Wrapper for aztro - The Astrology API | Get Daily Horoscope 💫

PyAztro PyAztro is a client library for aztro written in Python. aztro provides horoscope info for sun signs such as Lucky Number, Lucky Color, Mood,

Sameer Kumar 30 Jan 08, 2023
Hassium Server Manager For Python

Hassium Server Manager This is meant to be a tool for mostly internal use. I decided that I would make it open souce in case anyone wanted to use it.

0 Nov 24, 2022
ClassesMD5-64 - Get whatsapp md5 code using python

Hello Installation Clone Repo & install bash $ git clone https://github.com/Pito

PitoDev 1 Jan 03, 2022
N3RP (the NFT Rental Protocol) allows users to trustlessly rent out their ERC721-based assets.

N3RP • N3RP - An NFT Rental Protocol (pronounced "nerp") Smart Contracts Passing Tests, Frontend Functional But Is Being Beautified. 🛠 Introduction T

Grant Stenger 56 Dec 07, 2022
A Discord Server Cloner With Lot Of New Features.

Technologies Screenshots Table of contents About Installation Links Deployed Features Website Score Contribution Need Help? Instagram Discord About A

NotSakshyam 25 Dec 31, 2022
An youtube videos thumbnail downloader telegram bot.

YouTube-Thumbnail-Downloader An youtube videos thumbnail downloader telegram bot. Made with Python3 (C) @FayasNoushad Copyright permission under MIT L

Fayas Noushad 40 Oct 21, 2022
A Discord Server Cloner Which Can Clone Any Discord Server In Just Few Minutes

A Discord Server Cloner Which Can Clone Any Discord Server In Just Few Minutes.

samet 4 Jul 23, 2022
stories-matiasucker created by GitHub Classroom

Stories do Instagram Este projeto tem como objetivo desenvolver uma pequena aplicação que simule os efeitos e funcionalidades ao estilo Instagram. A a

1 Dec 20, 2021
Telegram Bot for everyday raffles

SpinEverydayBot v2 Telegram bot for everyday raffles. HIGHLY EXPERIMENTAL! WORK IN PROGRESS! Setting up Requirements Python 3.9+ PostgreSQL 13+ Older

evgfilim1 18 Dec 20, 2022
基于nonebot2开发的群管机器人qbot,支持上传并运行python代码以及一些基础管理功能

nonebot2-Eleina 基于nonebot2开发的群管机器人qbot,支持上传并运行python代码以及一些基础管理功能 Readme 环境:python3.7.3+,go-cqhttp 安装及配置:参见(https://v2.nonebot.dev/guide/installation.h

1 Dec 06, 2022
BleachBit system cleaner for Windows and Linux

BleachBit BleachBit cleans files to free disk space and to maintain privacy. Running from source To run BleachBit without installation, unpack the tar

1.9k Jan 06, 2023
Integrating Amazon API Gateway private endpoints with on-premises networks

Integrating Amazon API Gateway private endpoints with on-premises networks Read the blog about this application: Integrating Amazon API Gateway privat

AWS Samples 12 Sep 09, 2022