Duy trì: cách chúng tôi viết các công cụ nguồn mở để phân tích sản phẩm bằng Python và Pandas

Xin chào, Habr. Bài viết này trình bày kết quả của bốn năm phát triển một bộ phương pháp và công cụ để xử lý quỹ đạo chuyển động của người dùng trong một ứng dụng hoặc trang web. Tác giả của sự phát triển - Maxim Godzi, người đứng đầu nhóm tạo ra sản phẩm và cũng là tác giả của bài báo. Bản thân sản phẩm này có tên là Retentioneering; hiện nó đã được chuyển đổi thành thư viện nguồn mở và đăng trên Github để bất kỳ ai cũng có thể sử dụng. Tất cả điều này có thể được những người tham gia phân tích sản phẩm và tiếp thị, quảng bá và phát triển sản phẩm quan tâm. Nhân tiện, ở Habré một bài báo đã được xuất bản về một trong những trường hợp làm việc với Retentioneering. Vật liệu mới giải thích những gì sản phẩm có thể làm và cách sử dụng nó.

Sau khi đọc bài viết, bản thân bạn sẽ có thể viết phần Giữ chân của riêng mình; nó có thể là bất kỳ phương pháp tiêu chuẩn nào để xử lý quỹ đạo của người dùng trong ứng dụng và hơn thế nữa, cho phép bạn xem chi tiết các đặc điểm của hành vi và rút ra những hiểu biết sâu sắc từ điều này để phát triển của các chỉ số kinh doanh.

Retentioneering là gì và tại sao cần thiết?

Mục tiêu ban đầu của chúng tôi là chuyển Growth Hacking từ thế giới “phù thủy kỹ thuật số” sang thế giới của những con số, phân tích và dự báo. Do đó, phân tích sản phẩm bị giảm xuống thành toán học và lập trình thuần túy dành cho những người thích những con số thay vì những câu chuyện tuyệt vời và các công thức cho các từ thông dụng như “đổi thương hiệu”, “tái định vị”, v.v., nghe có vẻ hay nhưng trên thực tế lại giúp ích rất ít.

Để giải quyết những vấn đề này, chúng tôi cần một khung phân tích thông qua biểu đồ và quỹ đạo, đồng thời một thư viện giúp đơn giản hóa các quy trình phân tích điển hình, như một cách để mô tả các nhiệm vụ phân tích sản phẩm thông thường mà cả con người và robot đều có thể hiểu được. Thư viện cung cấp khả năng mô tả hành vi của người dùng và liên kết nó với các số liệu kinh doanh sản phẩm bằng ngôn ngữ chính thức và rõ ràng để đơn giản hóa và tự động hóa các công việc thường ngày của nhà phát triển và nhà phân tích, đồng thời tạo điều kiện thuận lợi cho họ giao tiếp với doanh nghiệp.

Giữ chân là một phương pháp và công cụ phần mềm phân tích có thể được điều chỉnh và tích hợp vào bất kỳ sản phẩm kỹ thuật số nào (và không chỉ).

Chúng tôi bắt đầu nghiên cứu sản phẩm này vào năm 2015. Hiện tại, đây là bộ công cụ được tạo sẵn, mặc dù chưa lý tưởng, trong Python và Pandas để làm việc với dữ liệu, các mô hình học máy với api giống sklearn, các công cụ để diễn giải kết quả của các mô hình học máy eli5 và shap.

Tất cả đã được gói lại đến thư viện mã nguồn mở thuận tiện trong kho lưu trữ Github mở - công cụ duy trì. Sử dụng thư viện không khó; hầu hết những người yêu thích phân tích sản phẩm nhưng chưa từng viết mã trước đây đều có thể áp dụng các phương pháp phân tích của chúng tôi cho dữ liệu của họ một cách độc lập và không cần đầu tư nhiều thời gian.

Chà, một lập trình viên, người tạo ứng dụng hoặc thành viên của nhóm phát triển hoặc thử nghiệm chưa từng thực hiện phân tích trước đây có thể bắt đầu chơi với mã này và xem mô hình sử dụng ứng dụng của họ mà không cần trợ giúp từ bên ngoài.

Quỹ đạo của người dùng như một yếu tố cơ bản của phân tích và phương pháp xử lý nó

Quỹ đạo của người dùng là một chuỗi các trạng thái của người dùng tại các thời điểm nhất định. Hơn nữa, các sự kiện có thể đến từ nhiều nguồn dữ liệu khác nhau, cả trực tuyến và ngoại tuyến. Các sự kiện xảy ra với người dùng là một phần trong quỹ đạo của anh ta. Ví dụ:
• đã nhấn nút
• nhìn thấy bức tranh
• chạm vào màn hình
• đã nhận được một email
• đã giới thiệu sản phẩm cho bạn bè
• điền vào mẫu đơn
• chạm vào màn hình
• đã cuộn
• đi tới quầy thu ngân
• gọi món burrito
• ăn bánh burrito
• bị ngộ độc do ăn bánh burrito
• vào quán cà phê từ cửa sau
• vào từ lối vào phía trước
• thu nhỏ ứng dụng
• đã nhận được thông báo đẩy
• bị kẹt trên màn hình lâu hơn X
• đã thanh toán đơn hàng
• đã mua đơn hàng
• bị từ chối cho vay

Nếu bạn lấy dữ liệu quỹ đạo của một nhóm người dùng và nghiên cứu cách cấu trúc các chuyển đổi, bạn có thể theo dõi chính xác hành vi của họ trong ứng dụng được cấu trúc như thế nào. Thật thuận tiện để thực hiện điều này thông qua biểu đồ trong đó các trạng thái là các nút và chuyển tiếp giữa các trạng thái là các cạnh:

Duy trì: cách chúng tôi viết các công cụ nguồn mở để phân tích sản phẩm bằng Python và Pandas

“Quỹ đạo” là một khái niệm rất tiện lợi - nó chứa thông tin chi tiết về tất cả hành động của người dùng, với khả năng thêm bất kỳ dữ liệu bổ sung nào vào mô tả về những hành động này. Điều này làm cho nó trở thành một đối tượng phổ quát. Nếu bạn có các công cụ đẹp và tiện lợi cho phép bạn làm việc với quỹ đạo, thì bạn có thể tìm thấy những điểm tương đồng và phân đoạn chúng.

Phân đoạn quỹ đạo lúc đầu có vẻ rất phức tạp. Trong trường hợp bình thường, đây là trường hợp - bạn cần sử dụng so sánh ma trận kết nối hoặc căn chỉnh trình tự. Chúng tôi đã tìm ra một cách đơn giản hơn - nghiên cứu một số lượng lớn các quỹ đạo và phân đoạn chúng thông qua việc phân cụm.

Hóa ra, có thể biến một quỹ đạo thành một điểm bằng cách sử dụng các biểu diễn liên tục, ví dụ: TF-IDF. Sau khi biến đổi, quỹ đạo trở thành một điểm trong không gian, tại đó sự xuất hiện chuẩn hóa của các sự kiện khác nhau và sự chuyển tiếp giữa chúng trong quỹ đạo được vẽ dọc theo các trục. Thứ này từ một không gian rộng nghìn chiều trở lên (dimS=sum(event styles)+sum(ngrams_2 styles)) có thể được chiếu lên một mặt phẳng bằng cách sử dụng TSNE. TSNE là một phép biến đổi làm giảm kích thước của không gian xuống còn 2 trục và nếu có thể sẽ bảo toàn khoảng cách tương đối giữa các điểm. Theo đó, trên một bản đồ phẳng, một bản đồ hình chiếu các quỹ đạo, có thể nghiên cứu cách các điểm của các quỹ đạo khác nhau được đặt giữa chúng. Nó phân tích mức độ gần gũi hay khác biệt của chúng với nhau, liệu chúng tạo thành cụm hay nằm rải rác trên bản đồ, v.v.:

Duy trì: cách chúng tôi viết các công cụ nguồn mở để phân tích sản phẩm bằng Python và Pandas

Các công cụ phân tích lưu giữ cung cấp khả năng biến dữ liệu và quỹ đạo phức tạp thành một chế độ xem có thể so sánh với nhau, sau đó có thể kiểm tra và diễn giải kết quả của quá trình chuyển đổi.

Nói về các phương pháp tiêu chuẩn để xử lý quỹ đạo, chúng tôi muốn nói đến ba công cụ chính mà chúng tôi đã triển khai trong Lưu giữ - đồ thị, ma trận bước và bản đồ chiếu quỹ đạo.

Làm việc với Google Analytics, Firebase và các hệ thống phân tích tương tự khá phức tạp và không hiệu quả 100%. Vấn đề là có một số hạn chế đối với người dùng, do đó công việc của nhà phân tích trong các hệ thống như vậy phụ thuộc vào việc nhấp chuột và lựa chọn các lát cắt. Tính năng giữ chân giúp bạn có thể làm việc với quỹ đạo của người dùng chứ không chỉ với các kênh, như trong Google Analytics, nơi mức độ chi tiết thường được giảm xuống một kênh, mặc dù được xây dựng cho một phân khúc nhất định.

Việc lưu giữ và các trường hợp

Để làm ví dụ về việc sử dụng công cụ đã phát triển, chúng ta có thể lấy trường hợp của một dịch vụ thích hợp lớn ở Nga. Công ty này có một ứng dụng di động Android được khách hàng ưa chuộng. Doanh thu hàng năm từ ứng dụng di động là khoảng 7 triệu rúp, biến động theo mùa dao động từ 60-130 nghìn. Công ty tương tự cũng có ứng dụng dành cho iOS và hóa đơn trung bình của một người dùng ứng dụng Apple cao hơn hóa đơn trung bình của một khách hàng sử dụng ứng dụng Android - 1080 chà. so với 1300 chà.

Công ty đã quyết định tăng hiệu quả của ứng dụng Android và đã tiến hành phân tích kỹ lưỡng. Hàng chục giả thuyết đã được đưa ra về việc tăng hiệu quả của ứng dụng. Sau khi sử dụng Retentionneering, hóa ra vấn đề nằm ở các thông báo hiển thị cho người dùng mới. Họ nhận được thông tin về thương hiệu, lợi ích của công ty và giá cả. Tuy nhiên, hóa ra, các thông báo được cho là giúp người dùng tìm hiểu cách làm việc trong ứng dụng.

Duy trì: cách chúng tôi viết các công cụ nguồn mở để phân tích sản phẩm bằng Python và Pandas

Điều này đã được thực hiện, do đó ứng dụng ít bị gỡ cài đặt hơn và mức tăng chuyển đổi sang đơn hàng là 23%. Lúc đầu, 20% lưu lượng truy cập đến được đưa vào thử nghiệm, nhưng sau vài ngày, sau khi phân tích kết quả đầu tiên và đánh giá xu hướng, họ đã đảo ngược tỷ lệ và ngược lại, để lại 20% cho nhóm kiểm soát, và tám mươi phần trăm đã được đưa vào bài kiểm tra. Một tuần sau, người ta quyết định tuần tự bổ sung thêm thử nghiệm cho hai giả thuyết nữa. Chỉ trong bảy tuần, doanh thu từ ứng dụng Android đã tăng gấp rưỡi so với mức trước đó.

Làm thế nào để làm việc với Retentioneering?

Các bước đầu tiên khá đơn giản - tải xuống thư viện bằng lệnh lưu giữ cài đặt pip. Bản thân kho lưu trữ chứa các ví dụ và trường hợp xử lý dữ liệu làm sẵn cho một số nhiệm vụ phân tích sản phẩm. Bộ này được cập nhật liên tục cho đến khi đủ cho người mới làm quen lần đầu. Bất kỳ ai cũng có thể lấy các mô-đun làm sẵn và áp dụng ngay vào nhiệm vụ của mình - điều này cho phép họ thiết lập ngay quy trình phân tích chi tiết hơn và tối ưu hóa quỹ đạo của người dùng một cách nhanh chóng và hiệu quả nhất có thể. Tất cả điều này giúp bạn có thể tìm thấy các kiểu sử dụng ứng dụng thông qua mã rõ ràng và chia sẻ trải nghiệm này với đồng nghiệp.

Lưu giữ là một công cụ đáng sử dụng trong suốt vòng đời ứng dụng của bạn và đây là lý do:

  • Việc giữ chân có hiệu quả trong việc theo dõi và liên tục tối ưu hóa quỹ đạo của người dùng cũng như cải thiện hiệu quả kinh doanh. Do đó, các tính năng mới thường được thêm vào các ứng dụng thương mại điện tử, tác động của chúng đối với sản phẩm không phải lúc nào cũng được dự đoán chính xác. Trong một số trường hợp, vấn đề tương thích nảy sinh giữa các chức năng mới và cũ - ví dụ: các chức năng mới “ăn thịt” các chức năng hiện có. Và trong tình huống này, việc phân tích liên tục các quỹ đạo chính xác là điều cần thiết.
  • Tình huống tương tự khi làm việc với các kênh quảng cáo: nguồn lưu lượng truy cập mới và quảng cáo liên tục được thử nghiệm, cần theo dõi tính thời vụ, xu hướng và ảnh hưởng của các sự kiện khác, dẫn đến ngày càng xuất hiện nhiều loại vấn đề mới. Điều này cũng đòi hỏi phải theo dõi và giải thích liên tục cơ chế của người dùng.
  • Có một số yếu tố liên tục ảnh hưởng đến hiệu suất của một ứng dụng. Ví dụ: bản phát hành mới từ các nhà phát triển: đóng một vấn đề hiện tại, họ vô tình trả lại vấn đề cũ hoặc tạo một vấn đề hoàn toàn mới. Theo thời gian, số lượng bản phát hành mới tăng lên và quá trình theo dõi lỗi cần phải được tự động hóa, bao gồm cả việc phân tích quỹ đạo của người dùng.

Nhìn chung, Giữ chân là một công cụ hiệu quả. Nhưng không có giới hạn cho sự hoàn hảo - nó có thể và cần được cải tiến, phát triển và xây dựng những sản phẩm mới thú vị trên cơ sở nó. Cộng đồng của dự án càng tích cực thì càng có nhiều nhánh và các tùy chọn thú vị mới để sử dụng nó sẽ xuất hiện.

Thông tin thêm về các công cụ Retentioneering:

Nguồn: www.habr.com

Thêm một lời nhận xét