<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Big Data ouTDo Archives - TantusData</title>
	<atom:link href="https://tantusdata.com/insights-categories/big-data-outdo/feed/" rel="self" type="application/rss+xml" />
	<link>https://tantusdata.com/insights-categories/big-data-outdo/</link>
	<description>That uncovers wisdom.</description>
	<lastBuildDate>Thu, 30 Jan 2025 13:35:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://tantusdata.com/app/uploads/2023/01/cropped-Favicon-32x32.png</url>
	<title>Big Data ouTDo Archives - TantusData</title>
	<link>https://tantusdata.com/insights-categories/big-data-outdo/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Navigating Big Data Solution Adoption: A Managerial Guide</title>
		<link>https://tantusdata.com/insights/navigating-big-data-solution-adoption-a-managerial-guide/</link>
		
		<dc:creator><![CDATA[Magdalena Majka]]></dc:creator>
		<pubDate>Tue, 21 May 2024 13:45:29 +0000</pubDate>
				<guid isPermaLink="false">https://tantusdata.com/?post_type=insights&#038;p=1942</guid>

					<description><![CDATA[<p>A strategic Overview for Decision Makers Entering the realm of big data solutions marks a transformative step for any organisation, demanding a blend of strategic foresight, meticulous planning, and a deep dive into technological possibilities. This guide is crafted for the astute manager and decision maker poised at the brink of this significant transition, often [&#8230;]</p>
<p>The post <a href="https://tantusdata.com/insights/navigating-big-data-solution-adoption-a-managerial-guide/">Navigating Big Data Solution Adoption: A Managerial Guide</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="727" src="https://tantusdata.com/app/uploads/2024/03/shutterstock_518041327-1024x727.jpg" alt="" class="wp-image-1963" srcset="https://tantusdata.com/app/uploads/2024/03/shutterstock_518041327-1024x727.jpg 1024w, https://tantusdata.com/app/uploads/2024/03/shutterstock_518041327-300x213.jpg 300w, https://tantusdata.com/app/uploads/2024/03/shutterstock_518041327-768x545.jpg 768w, https://tantusdata.com/app/uploads/2024/03/shutterstock_518041327-1536x1090.jpg 1536w, https://tantusdata.com/app/uploads/2024/03/shutterstock_518041327-2048x1453.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">A strategic Overview for Decision Makers</h2>



<p>Entering the realm of big data solutions marks a transformative step for any organisation, demanding a blend of strategic foresight, meticulous planning, and a deep dive into technological possibilities. This guide is crafted for the astute manager and decision maker poised at the brink of this significant transition, often navigating without extensive prior knowledge of big data technologies. You&#8217;re not just choosing a technological path; you&#8217;re setting the course for how data can redefine your organizational landscape. From preparation to engagement, this guide demystifies the journey, enabling you to chart a course that not only aligns with your organisational goals but propels them to new heights.</p>



<h2 class="wp-block-heading">Laying the Groundwork for Transformation</h2>



<p><strong>Deciphering Your Big Data Ambitions</strong></p>



<p>Understanding and articulating your needs and objectives is the cornerstone of a successful big data strategy. This clarity of purpose guides you through the myriad options and solutions available, ensuring that your choices resonate with the unique contours of your organizational goals. Dive into this analysis by considering two primary dimensions:</p>



<p><strong>Addressing Pains, Problems, and Bottlenecks 🛠️</strong></p>



<p>Your first beacon is the existing landscape of challenges that hinder your operational efficiency or strategic growth. Big data solutions offer a powerful lens to not only view these issues in high resolution but to navigate through them with precision. Whether it&#8217;s through enhancing decision-making capabilities, streamlining operations, or uncovering insights buried within your data, the aim here is to dismantle these barriers, paving the way for a smoother organizational journey.</p>



<ul class="wp-block-list">
<li><strong>Identify Specific Challenges:</strong> Begin with a granular analysis of operational pain points, inefficiencies, or data-related hurdles your organization faces.</li>



<li><strong>Blueprint for Resolution:</strong> Map out how big data technologies could potentially offer solutions, from predictive analytics to advanced data management systems.</li>
</ul>



<p><strong>Optimising Potential Use Cases 💡</strong></p>



<p>Beyond the immediate resolution of problems, big data opens a vista of opportunities to enhance, innovate, and lead. This proactive stance looks at not just where you are, but where you could be. It’s about leveraging data to its fullest potential, identifying areas where analytics, machine learning, and data-driven strategies can introduce efficiencies, innovations, and competitive advantages.</p>



<ul class="wp-block-list">
<li><strong>Innovation and Improvement:</strong> Pinpoint areas within your organization where data analytics could bring about transformative change or offer a competitive edge.</li>



<li><strong>Predictive and Prescriptive Analytics:</strong> Explore how utilizing big data for forecasting and strategic advice could streamline operations, enhance customer experience, or optimize resource allocation.</li>
</ul>



<p>By integrating these two approaches, you create a comprehensive picture of your big data aspirations, capturing both the remedial and the visionary. This dual lens not only addresses where you stand today but positions you to leap forward, turning potential into reality. Remember, the most effective big data solutions often serve a dual purpose: rectifying existing issues while unlocking new opportunities.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="726" src="https://tantusdata.com/app/uploads/2024/04/shutterstock_127197089-1024x726.jpg" alt="" class="wp-image-1968" srcset="https://tantusdata.com/app/uploads/2024/04/shutterstock_127197089-1024x726.jpg 1024w, https://tantusdata.com/app/uploads/2024/04/shutterstock_127197089-300x213.jpg 300w, https://tantusdata.com/app/uploads/2024/04/shutterstock_127197089-768x545.jpg 768w, https://tantusdata.com/app/uploads/2024/04/shutterstock_127197089-1536x1089.jpg 1536w, https://tantusdata.com/app/uploads/2024/04/shutterstock_127197089-2048x1452.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Enhance Your Understanding Through Our Complimentary Webinar</h2>



<p>We recognise the complexity of navigating big data solutions and are committed to empowering decision-makers. Our complimentary webinars delve into the wide-ranging applications of big data and the essential considerations for decision-makers, without promoting our services. These informative sessions are tailored to your organization&#8217;s specific interests and needs, aiming to bolster your big data strategy. <a href="https://tantusdata.com/contact-us/">Contact us</a> to arrange a webinar designed to empower your team with critical insights.</p>



<p><strong>Exclusive Video Resources</strong></p>



<p>In addition to our webinars, we offer concise, impactful video guides on crucial topics:</p>



<ul class="wp-block-list">
<li><strong>Mastering Machine Learning Projects:</strong> Explore the essentials of leading Machine Learning (ML) projects, designed for managers with minimal data backgrounds. This guide simplifies ML project management, covering team roles, goal setting, data quality, and more. <a href="https://www.youtube.com/watch?v=Udk5t0V3BcA">Watch the vid</a><a href="https://www.youtube.com/watch?v=HD1oZieF4pY">eo</a>.</li>



<li><strong>Understanding Data Quality:</strong> Dive into the significance of data quality, a critical factor in the success of any project. This Q&amp;A video addresses common questions, highlighting the risks, benefits, and responsibilities associated with data quality. <a href="https://www.youtube.com/watch?v=wj73Zgqlyic">Explore the video</a>.</li>
</ul>



<h2 class="wp-block-heading">Assessing Your Current Infrastructure</h2>



<p>Understanding your current technological landscape is crucial for identifying the need for big data solutions. This involves a thorough inventory and assessment of your existing data systems, technologies, and infrastructure. Here&#8217;s how to approach this step effectively:</p>



<ul class="wp-block-list">
<li><strong>Conduct an Inventory:</strong> Engage with your IT department or technology team to catalogue all current data systems, software, and technologies in use. If your organization lacks a dedicated IT team, consider consulting with external IT professionals or technology auditors.</li>



<li><strong>Identify Limitations:</strong> Work closely with your IT team to highlight any challenges or limitations in your current setup, including data processing capabilities, storage issues, or scalability concerns. This step is vital for understanding the gaps that big data solutions can fill.</li>



<li><strong>Consult Various Departments:</strong> Different departments may utilize distinct systems or have unique insights into the limitations of the current infrastructure. Ensure to gather input from across the organisation for a holistic view.</li>
</ul>



<h2 class="wp-block-heading">Establishing a Budget Framework</h2>



<p>Setting a realistic budget for big data solutions requires an understanding of both your financial capacity and the market costs of these technologies. Here&#8217;s how to navigate this:</p>



<ul class="wp-block-list">
<li><strong>Assess Financial Capabilities:</strong> Review your organization&#8217;s financial resources, considering both current budgets and potential future investments. Collaboration with your finance department is key to accurately determining your spending capacity.</li>



<li><strong>Research Market Costs:</strong> Given the variability and complexity of big data solution pricing, gathering reliable cost information can be challenging. To navigate this, consider:
<ul class="wp-block-list">
<li><strong>Consulting with Industry Peers:</strong> Reach out to your professional network or industry groups to gain insights into the costs they have encountered.</li>



<li><strong>Leverage Expert Guides: </strong>To receive our comprehensive budget guide detailing price ranges for various big data projects, simply send us an email with the subject &#8216;Budget Guide&#8217;. This indispensable resource is tailored to assist you in setting realistic expectations aligned with current market standards. By requesting this guide, you&#8217;ll gain insight into budgeting for your big data initiatives and will be automatically subscribed to our newsletter, keeping you informed on the latest trends and insights in big data solutions. Please note that subscribing to our newsletter is part of this process, offering you ongoing value beyond the guide.</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">Understanding Your Data</h2>



<p>A deep understanding of your organization&#8217;s data is fundamental to selecting the right big data solution. This involves:</p>



<ul class="wp-block-list">
<li><strong>Evaluating Data Characteristics:</strong> Work with your data management team or data scientists to assess the volume, variety, velocity, and veracity of the data your organization handles. If such expertise is not available in-house, consider engaging with data consultants.</li>



<li><strong>Considering Compliance and Privacy:</strong> Ensure you are aware of any industry-specific data privacy or regulatory compliance requirements. This might involve consulting with your legal department or external legal advisors specializing in data protection laws.</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="949" height="1024" src="https://tantusdata.com/app/uploads/2024/04/shrink-949x1024.jpg" alt="" class="wp-image-1965" srcset="https://tantusdata.com/app/uploads/2024/04/shrink-949x1024.jpg 949w, https://tantusdata.com/app/uploads/2024/04/shrink-278x300.jpg 278w, https://tantusdata.com/app/uploads/2024/04/shrink-768x829.jpg 768w, https://tantusdata.com/app/uploads/2024/04/shrink-1424x1536.jpg 1424w, https://tantusdata.com/app/uploads/2024/04/shrink-1898x2048.jpg 1898w, https://tantusdata.com/app/uploads/2024/04/shrink.jpg 2030w" sizes="(max-width: 949px) 100vw, 949px" /></figure>



<h2 class="wp-block-heading">Engaging Your Stakeholders</h2>



<p>Incorporating stakeholder input is crucial for ensuring alignment and support for big data initiatives. This step should be integrated with identifying your needs and objectives to ensure a cohesive strategy:</p>



<ul class="wp-block-list">
<li><strong>Gather Diverse Insights:</strong> Engage with stakeholders from various departments to compile a comprehensive list of needs, expectations, and concerns. This can include executives, department heads, and end-users who will interact with the big data solutions.</li>



<li><strong>Facilitate Collaborative Discussions:</strong> Organize workshops or meetings that bring together these stakeholders to discuss and refine the objectives and expectations for implementing big data solutions. This collaborative approach ensures that the project aligns with organizational goals and addresses key pain points effectively.</li>
</ul>



<p>By following these detailed steps, you&#8217;ll be well-equipped to prepare for engaging with big data solution providers, ensuring that your organisation&#8217;s needs are accurately identified and that you have a solid foundation for making informed decisions.</p>



<h2 class="wp-block-heading">Initiating Contact with Providers</h2>



<p>Engaging with the right big data solution providers is a critical step towards implementing a system that aligns with your organization&#8217;s needs. Here’s how to navigate this process effectively:</p>



<p><strong>Research and Shortlist Providers</strong></p>



<p>To find providers that not only offer big data solutions but also understand your industry&#8217;s unique challenges, follow these steps:</p>



<ul class="wp-block-list">
<li><strong>Utilize Industry Forums and Reviews:</strong> Platforms like Clutch are invaluable for identifying reputable providers, offering a wealth of user reviews and ratings. This firsthand feedback can give you insights into the providers’ strengths and weaknesses.</li>



<li><strong>Evaluate Expertise and Scalability:</strong> Look for providers that have demonstrated expertise in your industry. Those recognized as experts often contribute to the community by speaking at events, leading workshops, or publishing insightful case studies. This involvement can be a good indicator of their capability to scale solutions to meet your needs.</li>



<li><strong>Explore Provider Portfolios:</strong> Delve into the websites of potential providers to gather detailed information about their services, client success stories, and case studies. This exploration can offer a clearer picture of their capabilities and the types of solutions they&#8217;ve successfully implemented in the past.</li>



<li><strong>Network for Recommendations:</strong> Tap into your professional network for personal insights and recommendations. Firsthand accounts of experiences with big data solution providers can be invaluable in shortlisting candidates.</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="842" src="https://tantusdata.com/app/uploads/2024/04/shutterstock_98947580-1024x842.jpg" alt="" class="wp-image-1978" srcset="https://tantusdata.com/app/uploads/2024/04/shutterstock_98947580-1024x842.jpg 1024w, https://tantusdata.com/app/uploads/2024/04/shutterstock_98947580-300x247.jpg 300w, https://tantusdata.com/app/uploads/2024/04/shutterstock_98947580-768x632.jpg 768w, https://tantusdata.com/app/uploads/2024/04/shutterstock_98947580-1536x1263.jpg 1536w, https://tantusdata.com/app/uploads/2024/04/shutterstock_98947580-2048x1684.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>Reach Out</strong></p>



<p>Once you have a shortlist of potential providers, reaching out effectively is key:</p>



<ul class="wp-block-list">
<li><strong>Prepare a Brief:</strong> Compile a concise overview of your organization, including its needs, objectives, and any specific challenges you hope to address with big data solutions. This brief should summarize the critical information providers need to understand your project.</li>



<li><strong>Initiate Contact:</strong> Use the contact information on providers&#8217; websites to share your brief. This initial outreach is your opportunity to make a strong first impression and lay the groundwork for productive discussions. It’s efficient to send this brief to multiple providers to broaden your options.</li>
</ul>



<p><strong>Schedule Initial Consultations</strong></p>



<p>Engaging in consultations with several providers allows you to compare and contrast their approaches, expertise, and the solutions they offer:</p>



<ul class="wp-block-list">
<li><strong>Consult with Multiple Providers:</strong> Aim to schedule initial consultations with 3-5 providers. This range gives you a broad perspective while remaining manageable. Each provider may offer unique insights, benefits, or approaches that could be crucial for your project.</li>



<li><strong>Communicate Your Availability:</strong> Be clear about when you&#8217;re available for these discussions. Providing a range of dates and times can help expedite scheduling.</li>



<li><strong>Inquire About Scope and Involvement:</strong> During scheduling, ask providers to outline what will be covered during the initial consultation. Also, inquire about the estimated timeline for project completion and the level of involvement required from your team. Understanding these factors upfront can help you prepare for the consultations more effectively.</li>
</ul>



<p>By thoroughly researching potential providers, preparing a clear and concise brief, and strategically scheduling initial consultations, you&#8217;re setting the stage for productive engagements that will lead to identifying the best big data solution for your organization. This process ensures that you have all the information needed to make an informed decision, aligning with your strategic objectives and operational needs.</p>



<h2 class="wp-block-heading">Making Your Selection</h2>



<p>After engaging with potential providers and receiving their proposals, the next step is a critical analysis to determine the best fit for your organization. This phase involves careful consideration of how each proposal aligns with your strategic needs, budgetary constraints, and long-term objectives. Here’s a structured approach to making your selection:</p>



<p><strong>Compare Proposals Against Your Criteria</strong></p>



<ul class="wp-block-list">
<li><strong>Align with Needs and Objectives:</strong> Systematically compare each proposal&#8217;s offerings against the specific needs and objectives you&#8217;ve identified for your big data project. This includes considering how well each solution addresses your current challenges and facilitates your strategic goals.</li>



<li><strong>Budget Compatibility:</strong> Assess each proposal in the context of your budget framework. Consider not only the upfront costs but also any ongoing expenses associated with the solution, such as licensing fees, data storage costs, and additional services.</li>



<li><strong>Strategic Goals Alignment:</strong> Evaluate how each provider&#8217;s solution aligns with your broader strategic goals. This could involve considerations of innovation potential, market competitiveness, and the ability to adapt to future challenges.</li>
</ul>



<p><strong>Evaluate Long-term Benefits and Scalability</strong></p>



<ul class="wp-block-list">
<li><strong>Scalability:</strong> Ensure the proposed solution can grow and adapt as your organization&#8217;s needs evolve. This includes the ability to handle increasing volumes of data, integrate new data sources, and expand in functionality.</li>



<li><strong>Support and Maintenance:</strong> Consider the level and quality of support and maintenance services offered. Reliable post-implementation support is crucial for resolving any issues that arise and ensuring the longevity of your big data solution.</li>



<li><strong>Long-term Value:</strong> Beyond the immediate solution, assess the long-term benefits each provider offers. This could include ongoing updates, training opportunities for your team, and access to additional resources or community support.</li>
</ul>



<p><strong>Achieve Stakeholder Consensus</strong></p>



<ul class="wp-block-list">
<li><strong>Engage Stakeholders:</strong> Present the analyzed proposals to your key stakeholders, highlighting how each aligns with the organization&#8217;s needs and objectives. This presentation should be detailed and include your recommendations based on the evaluation criteria.</li>



<li><strong>Facilitate Discussion:</strong> Encourage open discussion among stakeholders to hear their perspectives, concerns, and preferences. This collaborative approach ensures that the decision-making process is inclusive and considers the insights and needs of different departments or teams.</li>



<li><strong>Consensus Building:</strong> Work towards building a consensus on the provider that best matches your organization&#8217;s vision, objectives, and budget. This may involve negotiating compromises or revisiting specific criteria to ensure alignment with organizational priorities.</li>
</ul>



<p><strong>Finalise Your Selection</strong></p>



<p>Once a consensus is achieved, proceed with finalizing your selection of the big data solution provider. This involves reaching out to the chosen provider to begin the negotiation of terms, finalizing the contract, and planning the implementation phase. Ensure that all legal and financial considerations are thoroughly reviewed and agreed upon before finalizing the agreement.</p>



<p>By following this structured approach, you ensure that your organization selects a big data solution provider that not only meets your current needs but also positions you for future success. This careful selection process paves the way for a fruitful partnership and a successful big data initiative.</p>



<h2 class="wp-block-heading">The Consultation Process</h2>



<p>Engaging with potential big data solution providers through consultations is a pivotal part of the selection process. Here’s what you should expect and how to navigate these meetings effectively:</p>



<p><strong>What to Expect:</strong></p>



<ul class="wp-block-list">
<li><strong>Initial Meeting:</strong> This first encounter is an opportunity to discuss your organization&#8217;s specific needs and objectives in detail and to receive an initial overview of the provider’s solutions. Approach this meeting as a chance to see how well the provider understands your challenges and whether they have the expertise to address them.</li>



<li><strong>Follow-Up Meetings:</strong> These sessions often delve deeper into the technical aspects of the proposed solutions. Expect to engage in discussions about customizing solutions to fit your needs, presentations from technical specialists, and possibly even demos of the solutions. This phase is crucial for assessing the provider&#8217;s capability to tailor their offerings to your requirements.</li>



<li><strong>Proposal Review:</strong> After these discussions, providers will present a formal proposal. This document should outline the solution in detail, including implementation timelines, costs, and the framework for how the solution will be integrated into your existing infrastructure.</li>
</ul>



<p><strong>Key Questions to Ask:</strong></p>



<p>To ensure you gather all the necessary information to make an informed decision, consider asking the following questions:</p>



<ul class="wp-block-list">
<li><strong>Industry Experience:</strong> &#8220;Can you share examples of your work with similar companies or within our industry?&#8221;</li>



<li><strong>Solution Alignment:</strong> &#8220;How do your solutions specifically address our needs and objectives?&#8221;</li>



<li><strong>Case Studies and References:</strong> &#8220;Could you provide case studies or references from past projects similar to ours?&#8221;</li>



<li><strong>Implementation Timeline:</strong> &#8220;What is the expected timeline for the full implementation of your solution?&#8221;</li>



<li><strong>Pricing Structure:</strong> &#8220;Can you provide a detailed explanation of your pricing structure, including any potential additional costs we should anticipate?&#8221;</li>



<li><strong>Data Security and Compliance:</strong> &#8220;How does your solution ensure data security and compliance with relevant regulations?&#8221;</li>



<li><strong>Support and Maintenance:</strong> &#8220;What kind of post-implementation support and maintenance services do you offer?&#8221;</li>
</ul>



<p><strong>Preparing Your Data for Consultation</strong></p>



<p>To effectively engage with big data solution providers, having a clear understanding of your data landscape is essential. Here’s how to prepare:</p>



<ul class="wp-block-list">
<li><strong>Data Inventory:</strong> Conduct a comprehensive review of the types of data your organization processes. This task is often best managed by your IT department or data management team. If such expertise is not readily available within your organization, consider hiring external data consultants to assist.
<ul class="wp-block-list">
<li><strong>Actionable Steps:</strong> Start by listing all data sources, types, and storage locations. Categorize data based on sensitivity, usage frequency, and format. This inventory will be crucial for providers to understand the scope of your data and how their solutions can be applied.</li>
</ul>
</li>



<li><strong>Identify Data Challenges:</strong> Clearly outline any issues your organization faces regarding data management, analysis, or security. This step is crucial for finding a solution that addresses these challenges effectively.
<ul class="wp-block-list">
<li><strong>Who to Consult:</strong> This information might be spread across various departments, such as IT for technical challenges, legal for compliance issues, and operational teams for workflow-related challenges. Consolidate this information to present a comprehensive view of the data challenges to the provider.</li>
</ul>
</li>



<li><strong>Growth Projections:</strong> Anticipate the future scale of your data needs to ensure the proposed solution can accommodate growth. This includes estimating increases in data volume, variety, and velocity.
<ul class="wp-block-list">
<li><strong>Collaboration is Key:</strong> Engage with strategic planning or business development teams to forecast future data growth based on business projections. This foresight ensures the solution remains viable as your organization grows.</li>
</ul>
</li>
</ul>



<p>By thoroughly preparing for the consultation process and clearly understanding your data landscape, you set the stage for productive discussions with potential providers. This preparation enables you to ask informed questions, accurately assess proposals, and ultimately choose a solution that best fits your organisation’s needs.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>By following this guide and leveraging the provided resources, you&#8217;ll be well-equipped to engage with big data solution providers effectively. The path to a successful partnership and implementation is paved with preparation, open communication, and a deep understanding of your organizational goals. Our webinars and video resources are here to further enhance your knowledge and confidence in navigating the big data landscape.</p>
<p>The post <a href="https://tantusdata.com/insights/navigating-big-data-solution-adoption-a-managerial-guide/">Navigating Big Data Solution Adoption: A Managerial Guide</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Amplify Your Corporate Green Initiatives: Triumph in Sustainability and Reporting</title>
		<link>https://tantusdata.com/insights/amplify-corporate-green-initiatives-digital-sustainability/</link>
		
		<dc:creator><![CDATA[Magdalena Majka]]></dc:creator>
		<pubDate>Fri, 29 Mar 2024 14:01:45 +0000</pubDate>
				<category><![CDATA[Corporate Responsibility]]></category>
		<category><![CDATA[Digital Sustainability]]></category>
		<category><![CDATA[Green Technology]]></category>
		<guid isPermaLink="false">https://tantusdata.com/?post_type=insights&#038;p=1930</guid>

					<description><![CDATA[<p>Dive into how your company can elevate its environmental responsibility through digital sustainability. Discover key strategies for optimising digital efficiency, the impact of our digital world on the environment, and how adopting green digital practices can transform your business. Explore actionable insights and partner with TantusData to lead in sustainability and reporting.</p>
<p>The post <a href="https://tantusdata.com/insights/amplify-corporate-green-initiatives-digital-sustainability/">Amplify Your Corporate Green Initiatives: Triumph in Sustainability and Reporting</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="585" src="https://tantusdata.com/app/uploads/2025/01/Triple_reporting_TantusData_DigitalSustainability-1024x585.jpg" alt="" class="wp-image-2172" srcset="https://tantusdata.com/app/uploads/2025/01/Triple_reporting_TantusData_DigitalSustainability-1024x585.jpg 1024w, https://tantusdata.com/app/uploads/2025/01/Triple_reporting_TantusData_DigitalSustainability-300x171.jpg 300w, https://tantusdata.com/app/uploads/2025/01/Triple_reporting_TantusData_DigitalSustainability-768x439.jpg 768w, https://tantusdata.com/app/uploads/2025/01/Triple_reporting_TantusData_DigitalSustainability-1536x878.jpg 1536w, https://tantusdata.com/app/uploads/2025/01/Triple_reporting_TantusData_DigitalSustainability.jpg 1792w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Optimising Digital Efficiency: A Corporate Imperative</h2>



<p>In today’s digital-driven corporate landscape, the environmental footprint of our online activities, which encompass cloud services, computing, and the broader internet infrastructure, often escapes scrutiny. These critical components of modern business operations are not merely sources of operational inefficiency and financial expenditure; they significantly contribute to environmental degradation. Therein lies a pivotal call to action for businesses globally: to reassess and refine their digital infrastructure, spanning from the intricacies of <a href="https://www.sciencedirect.com/science/article/abs/pii/S0308596123002124">cloud storage systems</a> to the depths&nbsp; of computing processes. By elevating digital cleanliness to a strategic priority, organisations stand to not only meet emerging standards of <a href="https://www.itu.int/hub/2023/11/cutting-industry-emissions-and-fighting-the-climate-crisis/">digital sustainability reporting</a>—an accolade in corporate environmental stewardship—but also unveil substantial avenues for cost savings. Diving deeper into the ethos of digital sustainability reveals its capacity to forge a future that is not only environmentally harmonious but also streamlined for greater efficiency and financial prudence.</p>



<p>It&#8217;s crucial to acknowledge that certain areas prone to digital wastefulness, including redundant data storage, inefficient computing practices, and overlooked aspects of cloud utilisation, may remain hidden beneath the surface of day-to-day operations. There are also those which are even less obvious such as less energy efficient programming languages. These undercurrents of inefficiency represent missed opportunities for optimisation and sustainability. Importantly, while digital sustainability reporting is not currently a mandated practice in triple reporting, it serves as a powerful testament to an organisation’s commitment to environmental stewardship and technological foresight. Embracing this proactive approach not only positions a company as a leader in ecological responsibility but also as a visionary in harnessing the potential for long-term cost-effectiveness through digital sustainability. Let&#8217;s explore how embedding these principles within your corporate ethos can catalyse a transition towards a more sustainable, efficient, and economically viable future.</p>



<h2 class="wp-block-heading">The Environmental Impact of Our Digital World</h2>



<p>In today&#8217;s interconnected landscape, every digital interaction—from a cloud storage retrieval to sophisticated computations and online streaming—plays a part in energy consumption and elevates CO2 emissions. Merely scaling back online activities is not a sufficient response; a comprehensive and strategic approach to <a href="https://www.statista.com/statistics/1112982/ai-adoption-worldwide-industry-function/">#DigitalSustainability</a> is essential. The surge in AI and ML technologies integration, such as ChatGPT, into the fabric of corporate strategies has underscored this urgency. Recent statistics reveal that as of 2023, approximately <a href="https://www.statista.com/statistics/1384323/industries-using-chatgpt-in-business/">49% of companies have already incorporated ChatGPT</a> into their operations, with an additional 30% planning to embrace it. This trend is reflective of a broader embrace of artificial intelligence across industries, where a significant number of companies have adopted or plan to adopt AI technologies. Moreover, the AI market is poised for substantial growth, with projections indicating an <a href="https://www.statista.com/outlook/tmo/artificial-intelligence/worldwide">annual growth rate (CAGR 2024-2030) of 15.83%</a>. These figures not only highlight the rapid integration of AI into business processes but also emphasise the growing need for solutions that prioritise energy efficiency and sustainability in the digital domain. As AI and digital technologies become increasingly central to corporate operations, the push for environmentally conscious and sustainable digital infrastructures becomes critically important, urging companies to adopt practices that mitigate their digital environmental footprint.</p>



<h2 class="wp-block-heading">Clarifying the Internet&#8217;s Broad Reach</h2>



<p>The term &#8220;internet&#8221; extends far beyond browsing and email; it encompasses cloud services and computing, pivotal components of our digital ecosystem&#8217;s environmental impact. This vast infrastructure in 2020 was notably accountable for <a href="https://www.sciencedirect.com/science/article/abs/pii/S0308596123002124">1.4% of global emissions</a> and <a href="https://dl.acm.org/doi/10.1145/3613207">consumes 4% of the world’s electricity</a>, standing shoulder to shoulder with the aviation industry in terms of environmental impact. As we delve deeper into the digital age, the situation grows more pressing with digitalisation&#8217;s energy consumption marked at <a href="https://dl.acm.org/doi/10.1145/3613207">10% of worldwide energy consumption in 2023</a>. This figure is on an upward trajectory, especially with the proliferation of language learning models like ChatGPT, highlighting a concerning trend towards increasing energy demand. Further insights from <a href="https://www.enerdata.net/publications/executive-briefing/world-energy-consumption-from-digitalization.pdf">a comprehensive analysis</a> echo these sentiments, projecting a continuous rise in energy consumption fuelled by digitalisation.</p>



<p>In light of these developments, aligning with the Paris Agreement&#8217;s ambitious goals becomes even more critical. Specifically, the global ICT industry faces the daunting task of reducing its greenhouse gas (GHG) emissions by <a href="https://www.itu.int/hub/2023/11/cutting-industry-emissions-and-fighting-the-climate-crisis/">45% from 2020 levels by 2030</a>, a target that underscores the urgent need for sustainable practices across all sectors of digital infrastructure. This challenge, while formidable, presents an opportunity for organisations to lead by example, not just in adhering to but also in surpassing triple reporting standards, thereby demonstrating an unwavering commitment to environmental stewardship and sustainable development in the digital age.</p>



<h2 class="wp-block-heading">Why Digital Sustainability Matters for Your Business</h2>



<p>In the past decade, sustainability has transformed from a niche interest into a core component of corporate strategy, reflecting not only business priorities but also growing consumer concerns. However, the swift pace at which technology evolves, alongside slow-moving regulatory frameworks, has left many businesses scrambling to keep up. The expanding environmental footprint of big data, cloud computing, and AI technologies has become impossible to ignore, compelling companies to proactively adopt sustainable digital practices.</p>



<p>Adding to the urgency is the heightened public and corporate awareness brought about by innovations like ChatGPT and most recently Gemini, which have thrust the topic of big data into mainstream discussions. This visibility is likely to attract increased scrutiny from regulatory bodies and could result in sustainability metrics being incorporated into triple reporting standards in the near future. By taking the initiative to audit and refine your data management practices now, your company can not only stay ahead of potential regulatory changes but also demonstrate leadership in digital sustainability.</p>



<p>With Earth Day approaching, there&#8217;s a timely and compelling opportunity to position your company at the forefront of sustainable digital operations. This moment serves as a reminder of the importance of integrating environmental considerations into every aspect of your business, especially in areas that are often out of the public eye, such as digital infrastructure. By committing to sustainable digital practices today, your company can lead by example, showing that a commitment to the planet is not just good ethics—it&#8217;s also good business.</p>



<h2 class="wp-block-heading">Identifying Opportunities for Digital Streamlining</h2>



<p>For companies dedicated to minimising their digital environmental impact, a thorough examination of digital operations is paramount. Identifying inefficiencies and areas for optimisation can significantly reduce digital waste and energy consumption. Here’s a deeper look into key areas for digital streamlining:</p>



<ul class="wp-block-list">
<li><strong>Evaluating Data Pipelines:</strong> Assess whether all data pipelines in use are essential or if some have become redundant. Redundant pipelines can lead to unnecessary energy consumption and complicate data management. For a practical example, explore our <a href="https://tantusdata.com/success-stories/failing-silently-case-study/">case study on a silently failing pipeline</a>, demonstrating the importance of vigilance in pipeline efficiency.</li>



<li><strong>Ensuring Infrastructure Efficiency:</strong> Verify that all cloud and computing infrastructures are functioning optimally. Inefficient infrastructures can increase energy usage and operational costs. Our <a href="https://tantusdata.com/success-stories/introducing-apache-airflow-telecom-data-migration/">case study on improving the orchestration of pipelines</a> highlights the benefits of streamlining infrastructure for enhanced efficiency.</li>



<li><strong>Addressing Computing Errors:</strong> Issues and errors in computing not only delay operations but also waste computational resources, leading to increased energy usage. The<a href="https://tantusdata.com/success-stories/sharing-the-magicians-toolkit/"> case of malfunctions</a> case study showcases strategies for addressing computing errors effectively.</li>



<li><strong>Optimising Job Execution:</strong> Examine if there are issues with running jobs inefficiently. Streamlining job execution can reduce processing time and energy expenditure. Our case study on <a href="https://tantusdata.com/success-stories/fixing-the-other-side-of-custom-made/">a non-efficient bespoke solution</a> illustrates the importance of optimising job execution.</li>



<li><strong>Purifying Data Storage:</strong> Identify and eliminate clean data repetitions or redundancies. This is most often the issue resulting from low data quality. Efficient data storage reduces the need for extensive computing power to manage and access data. You can find more on ensuring data quality in <a href="https://www.youtube.com/watch?v=wj73Zgqlyic">our video guide.</a></li>



<li><strong>Decluttering Cloud Space:</strong> Remove unnecessary items from cloud storage. Very often, even the most organised companies leave old documents even after they have become entirely obsolete. Compared to physical copies cluttering the office, the cloud versions are easier to forget. Make sure that you are not paying for the storage of unnecessary items. This practice frees up space and reduces the energy required for data retrieval and maintenance.</li>



<li><strong>Avoiding Data Duplication:</strong> Ensure data is not duplicated across departments. Quite often, organisations are divided based on their functions. In those cases, various departments collect the same data instead of using one database. This duplicates the storage with each team. Centralised data management enhances efficiency and reduces storage requirements.</li>



<li><strong>Streamlining User Journeys:</strong> Simplify user interfaces and processes to reduce the computational power required for navigating through systems.</li>



<li><strong>Enhance LLM Efficiency</strong>: To maximise digital sustainability and conserve computing resources while using energy-intensive LLMs like ChatGPT, consider a multifaceted approach that streamlines information retrieval and optimises query responses. By refining your system to deliver more relevant answers, you can significantly reduce the volume of queries. Implementing <a href="https://www.researchgate.net/publication/367543986_Improving_NoSQL_Spatial-Query_Processing_with_Server-Side_In-Memory_R-Tree_Indexes_for_Spatial_Vector_Data">advanced indexing techniques</a> and preprocessing data ensures that searches are both energy-efficient and produce contextually richer responses. This strategy not only accelerates access to information through efficient retrieval processes but also minimises unnecessary data processing. Furthermore, incorporating <a href="https://chat.openai.com/c/bc636887-b60f-4c70-b894-b78cdb809c21">covered queries</a> by leveraging indexed documents pre-answers common inquiries, thus enhancing performance and saving additional energy and resources. This holistic approach enhances LLM&#8217;s operational efficiency and contributes to a more sustainable digital environment.</li>



<li><strong>Choosing Efficient Programming Languages, Frameworks and Databases:</strong> Some programming languages are more energy-efficient than others. Selecting an efficient language can reduce the computational power needed for the same tasks.</li>



<li><strong>Removing Unused Code:</strong> Libraries often contain code that is no longer in use. Identifying and removing such code can decrease the amount of processing required during operations.</li>
</ul>



<p>By focusing on these areas, companies can take significant steps towards reducing their digital footprint. Each of these strategies not only contributes to a more sustainable digital environment but also enhances operational efficiency and cost-effectiveness. These are some key considerations, and many more aspects can be identified and analysed during a comprehensive digital audit to further streamline operations and minimise environmental impact.</p>



<h2 class="wp-block-heading">Partnering with TantusData for Enhanced Digital Sustainability</h2>



<p>TantusData is at the forefront of assisting companies in navigating the complexities of digital sustainability. Our focus on optimising data management, computing efficiency, and overall digital infrastructure supports not only your environmental objectives but also contributes to operational cost savings. By collaborating with TantusData, your organisation can achieve sustainability milestones and receive certification for your green digital practices, enhancing your corporate value in the process.</p>



<h2 class="wp-block-heading">Your Business’s Path Forward: A Sustainable Digital Future</h2>



<p>Adopting sustainable digital practices is more than an environmental responsibility—it’s a strategic advantage in today’s corporate world. As we continue to navigate the digital revolution, it’s imperative for companies to integrate sustainability into their digital operations. This is an invitation for your business to explore how TantusData can transform your digital footprint into an asset for both the planet and your bottom line. Reach out to us to discover how we can help you achieve a leading edge in digital sustainability.</p>



<p>Let’s <a href="https://tantusdata.com/contact-us/">get in touch.</a></p>
<p>The post <a href="https://tantusdata.com/insights/amplify-corporate-green-initiatives-digital-sustainability/">Amplify Your Corporate Green Initiatives: Triumph in Sustainability and Reporting</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>LLMs can make your business soar or sink, so tread carefully.</title>
		<link>https://tantusdata.com/insights/llms-can-make-your-business-soar-or-sink-so-tread-carefully/</link>
		
		<dc:creator><![CDATA[Marcin Szymaniuk]]></dc:creator>
		<pubDate>Tue, 05 Dec 2023 12:28:30 +0000</pubDate>
				<category><![CDATA[AI Implementation]]></category>
		<category><![CDATA[Business Strategy]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[ROI on AI]]></category>
		<guid isPermaLink="false">https://tantusdata.com/?post_type=insights&#038;p=1861</guid>

					<description><![CDATA[<p>Explore AI's impact on business; key steps for a strategic approach to LLMs, ensuring ROI &#038; privacy.</p>
<p>The post <a href="https://tantusdata.com/insights/llms-can-make-your-business-soar-or-sink-so-tread-carefully/">LLMs can make your business soar or sink, so tread carefully.</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="585" src="https://tantusdata.com/app/uploads/2023/12/DALL·E-2023-12-05-13.27.17-Edit-the-second-image-of-a-businessman-at-a-crossroads-transforming-it-into-a-horizontal-rectangular-format.-In-this-revised-image-the-businessman-s-1024x585.png" alt="" class="wp-image-1875" srcset="https://tantusdata.com/app/uploads/2023/12/DALL·E-2023-12-05-13.27.17-Edit-the-second-image-of-a-businessman-at-a-crossroads-transforming-it-into-a-horizontal-rectangular-format.-In-this-revised-image-the-businessman-s-1024x585.png 1024w, https://tantusdata.com/app/uploads/2023/12/DALL·E-2023-12-05-13.27.17-Edit-the-second-image-of-a-businessman-at-a-crossroads-transforming-it-into-a-horizontal-rectangular-format.-In-this-revised-image-the-businessman-s-300x171.png 300w, https://tantusdata.com/app/uploads/2023/12/DALL·E-2023-12-05-13.27.17-Edit-the-second-image-of-a-businessman-at-a-crossroads-transforming-it-into-a-horizontal-rectangular-format.-In-this-revised-image-the-businessman-s-768x439.png 768w, https://tantusdata.com/app/uploads/2023/12/DALL·E-2023-12-05-13.27.17-Edit-the-second-image-of-a-businessman-at-a-crossroads-transforming-it-into-a-horizontal-rectangular-format.-In-this-revised-image-the-businessman-s-1536x878.png 1536w, https://tantusdata.com/app/uploads/2023/12/DALL·E-2023-12-05-13.27.17-Edit-the-second-image-of-a-businessman-at-a-crossroads-transforming-it-into-a-horizontal-rectangular-format.-In-this-revised-image-the-businessman-s.png 1792w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">What should a Business Leader know before investing in AI?</h2>



<p>ChatGPT is everywhere. Chances are, you&#8217;re already using it for everyday tasks &#8211; its language skills are unmatched. Using it to fix spelling in your email is really easy, but let&#8217;s imagine transforming it into a frontline warrior – a chatbot that not only chats but also solves customer problems. We will use this business application of a chatbot as an example in this article.</p>



<p>Applying chatbots to more complex business processes is very tempting but can be full of pitfalls. There are many aspects to consider when building such an application. From the <strong>privacy</strong> of your data to the <strong>cost</strong> of implementation. And from the <strong>correctness</strong> of the responses provided by chat to the maintenance in the future. In this article, we will take all the challenges one by one, describe them and give a guideline on how to approach them pragmatically. This leads to building a successful project, providing a return on investment.</p>



<h3 class="wp-block-heading">What is a Large Language Model? What LLM is not?</h3>



<p>Remember the last time you chatted with ChatGPT? The conversation was smooth, and it even knew who the US president was. But pose a niche question about, say, <em>&#8216;how to change the invoice number in my system,&#8217;</em> and it might stumble. Even more, it might confidently tell you something off-base.&nbsp;</p>



<p>I bring that up because it&#8217;s essential to understand that ChatGPT or any other general <strong>LLM is not a general source of knowledge</strong>. Picture this: You wouldn&#8217;t ask a history professor about advanced rocket science, right? Similarly, out of the box, an LLM may not ace a deep dive into your specific business.</p>



<p>But it becomes a potent tool when you plug it with information about your domain and instruct it on what to do with that knowledge. A tool that might appear intelligent.</p>



<h2 class="wp-block-heading">Getting correct answers</h2>



<p>Imagine AI as a car and data as its fuel. Without the right fuel, it won&#8217;t take you where you want. Suppose you&#8217;ve set up your AI for customer support, and someone asks, &#8216;How do I get the invoice?&#8217;. Instead of the AI drawing a blank or guessing, it should know exactly where to fetch the answer &#8211; like a librarian who knows which shelf a book is on.</p>



<p><img loading="lazy" decoding="async" width="624" height="349" src="https://lh7-us.googleusercontent.com/pzmgT0fCH2t5onAzeymAR4E-zJ1X1A5bxvuiOkUfidyVZHbaBHI2eu0kzQStT0q5ggoM5UWILLVRxw-gEPDJaKhPhwzuB7xbOldhdLFWHke7dnLj8YgzafJZ2G8jUUf87T0nTb5QjBW7BMWuR8uGGcw"></p>



<p>Data is the fuel for AI. For the chat to answer questions specific to your organisation, you need to provide it with the relevant information. Let&#8217;s say you want it to serve customer support purposes. Let&#8217;s assume the user asks the system,&nbsp;<em>&#8216;How do I get the invoice?&#8217;&nbsp;</em></p>



<p>The most standard approach to this problem is building an application that searches for relevant information and provides it to the chat. In our case, the application seeks information about the invoicing process. All searching is done in vector databases, which are great tools for finding the appropriate information in text documents. No wonder they&#8217;re becoming more popular since the rise of LLMs. Once it finds the clue, it hands it over to our chat.&nbsp;</p>



<p>Let&#8217;s stop here and amplify the message &#8211; general purpose LLM&nbsp;<strong>does not know much about your business</strong>. Here&#8217;s the gist: While AI is great with words, it only knows the specifics of your business if you tell it. Feed it the correct details to transform it from a general chat buddy to a helpful assistant. Think of it as training a new employee.</p>



<p>In the simple case described above, most of the &#8216;magic&#8217; is done by vector databases. But in some cases, just providing the information &#8216;on the fly&#8217; is not good enough. For the LLM to perform better, you must fine-tune the vector embeddings or the LLM model itself. This is more advanced, so we will describe it in a separate article.</p>



<h2 class="wp-block-heading">Privacy concerns</h2>



<p>Imagine sending a personal letter and having someone else read it. That happens when you use ChatGPT or similar tools &#8211; the data goes to their home base. No worries if you&#8217;re chatting about the weather. But what if it&#8217;s confidential customer details? That&#8217;s where things get tricky.</p>



<p>Picture a customer sharing personal info on your support chat. Now, where does that data go? Outside your walls? And are you breaking any rules by letting it?</p>



<p>Confirming the legal aspects is the minimum you should do. But if you are not allowed to send the data to third parties, you need to consider&nbsp;<strong>privately hosted LLM</strong>&nbsp;so your data never goes outside your data centre. The selection of open-source LLMs available to use as privately hosted is broad. Broad selection means you have many options, but at the same time, you need expertise to make wise selections. Especially since the market is hot and keeping up with all the changes is challenging. The right decision requires careful consideration of aspects like the model&#8217;s performance on your hardware and the ability to scale up and down if needed.</p>



<p>A cherry on top? Going private means you aren&#8217;t tied down by vendor lock-in. You can move your infrastructure to your own data centre or cloud. It&#8217;s a critical point in the context of mitigating the risk of a vendor making drastic changes in the pricing or in the offered service itself.</p>



<h2 class="wp-block-heading">Cost and defining the scope of the project</h2>



<p>When building a house, you wouldn&#8217;t start with the roof or fancy decor, right? You&#8217;d plan the foundation and budget from day one. It&#8217;s the same with an AI. If your supplier changes the rules, you&#8217;ve got expenses like engineering time, hardware, cloud, and possible surprise fees.</p>



<p></p>



<p><img loading="lazy" decoding="async" width="624" height="349" src="https://lh7-us.googleusercontent.com/rQZ1lQUbLCYOT2aC1DzMtMrZaNsYbKSUcKRCF3Cx6HLM4aFVhRFBVxtc9fkPAflAK2aO-41mdSjrXhSB1OTS89vSHPRtSAuLKGCJ1uNpuNqO_YMqpTGO8hQ65HAijjU1Eq7PwbI4_BSIUwq_BOxpv7E"></p>



<p>When building an AI application based on Language models, it&#8217;s essential to control the project&#8217;s scope and expected costs from day one.&nbsp;</p>



<p>It&#8217;s easy to dream big. After all, you&#8217;ve got all the tools at your fingertips. But to deliver the business value, you need to analyse the problem you are solving and set realistic milestones for the AI project. And it&#8217;s essential to start with issues which are common and easy to solve. E.g. When building a customer support application, it makes sense to begin by addressing issues which are repeated over and over again. You&#8217;d know them if you chat with your support team or skim through past tickets. If you approach the problem correctly, it&#8217;s likely that after two or three iterations with your product, you realise that you have solved 80% of the issues. Suddenly, you&#8217;ve got a solid ROI and can decide if you want to add those fancy trims or if your house is good enough.</p>



<h2 class="wp-block-heading">Maintenance</h2>



<p>Keep in mind that the more complex the application you are building, not only the implementation cost but also the cost of using it in the future increases &#8211; the maintenance and the price you pay for hardware or API calls. The maintenance might include aspects such as deployment complexity, testing, reacting to changes introduced by third parties or feeding your application with newer data.</p>



<p>That&#8217;s another reason to think early about the scope and be flexible during the implementation. So, before diving in, sketch out your costs. Ask yourself: How much is each chatbot chat worth to you? How much would you pay to help one customer if it&#8217;s a support bot? What conversion rate justifies the effort and cost of maintaining a chatbot if it&#8217;s for shopping? Knowing your numbers helps you steer clear of unwanted surprises.</p>



<h2 class="wp-block-heading">Summary</h2>



<p>As outlined above, it&#8217;s critical to understand the challenges when selecting the scope of the LLM project. But with a clear understanding of potential roadblocks from the beginning, you&#8217;re paving the way to the ROI you expect. The spectrum of challenges in implementing LLM for solving business problems in your organisation is vast, and you should:</p>



<ul class="wp-block-list">
<li>Ensuring&nbsp;<strong>correct</strong>&nbsp;behaviour makes it essential to provide your LLM with correct, well-structured data.</li>
</ul>



<ul class="wp-block-list">
<li>Addressing&nbsp;<strong>privacy</strong>&nbsp;concerns means understanding the legal prerequisites. Remember that you have options of hosting LLM in your Data Center, which simplifies the legal aspects but introduces extra technical challenges.</li>
</ul>



<ul class="wp-block-list">
<li>Budgeting for a project means considering all&nbsp;<strong>costs</strong>: development, API charges, and maintenance. It&#8217;s important to verify the assumptions after every milestone of the project and make sure the scope and the cost are under control.</li>
</ul>



<ul class="wp-block-list">
<li>Thinking ahead is essential, so estimate&nbsp;<strong>maintenance</strong>&nbsp;efforts. Ensure these efforts align with the expected benefits of its integration into your organisation.</li>
</ul>
<p>The post <a href="https://tantusdata.com/insights/llms-can-make-your-business-soar-or-sink-so-tread-carefully/">LLMs can make your business soar or sink, so tread carefully.</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>GDPR, the forgotten done right</title>
		<link>https://tantusdata.com/insights/gdpr-the-forgotten-done-right/</link>
		
		<dc:creator><![CDATA[Marcin Szymaniuk]]></dc:creator>
		<pubDate>Mon, 03 Apr 2023 06:00:00 +0000</pubDate>
				<category><![CDATA[anonymisation]]></category>
		<category><![CDATA[data erasure]]></category>
		<category><![CDATA[GDPR]]></category>
		<category><![CDATA[right to be forgotten]]></category>
		<guid isPermaLink="false">https://tantusdata.com/?post_type=insights&#038;p=1439</guid>

					<description><![CDATA[<p>In the previous article, we covered anonymization and pseudonymization &#8211; techniques used in the context of ensuring data privacy, and more specifically, in the context of GDPR. While the basic idea and goal of anonymization are intuitive, GDPR introduces more subtle regulations, such as the Right to Be Forgotten. This concept is tricky because it [&#8230;]</p>
<p>The post <a href="https://tantusdata.com/insights/gdpr-the-forgotten-done-right/">GDPR, the forgotten done right</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://tantusdata.com/app/uploads/2023/03/watching-you-1024x576.jpg" alt="Big data and GDPR, user's right to be forgotten" class="wp-image-1440" srcset="https://tantusdata.com/app/uploads/2023/03/watching-you-1024x576.jpg 1024w, https://tantusdata.com/app/uploads/2023/03/watching-you-300x169.jpg 300w, https://tantusdata.com/app/uploads/2023/03/watching-you-768x432.jpg 768w, https://tantusdata.com/app/uploads/2023/03/watching-you-1536x863.jpg 1536w, https://tantusdata.com/app/uploads/2023/03/watching-you-2048x1151.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p style="font-size:18px">In the previous article, we covered anonymization and pseudonymization &#8211; techniques used in the context of ensuring data privacy, and more specifically, in the context of GDPR. While the basic idea and goal of anonymization are intuitive, GDPR introduces more subtle regulations, such as the Right to Be Forgotten. This concept is tricky because it is subject to interpretation. The complexity is further compounded by technical implementation details within a complex ecosystem that handles large datasets.</p>



<h2 class="wp-block-heading"><strong>Open to interpretation</strong></h2>



<p style="font-size:18px">If you possess customer data and the customer revokes their consent, requesting to be forgotten, you must take action. You need to ensure that you remove the data. What&#8217;s tricky about this? There are at least two aspects to consider:</p>



<p>1. If you decide to simply delete the data, ensure that the deletion actually occurs on a physical level. Modern data platforms excel at abstracting certain operations, so just because you think you deleted the data doesn&#8217;t mean it&#8217;s unrecoverable or that it&#8217;s no longer present in your systems.</p>



<p>2. Alternatively, you might not need to remove the data if you choose to anonymize it instead. In this case, you must ensure that you correctly identify all the Personally Identifiable Information (PII) fields and that the anonymization process is accurate. More on this topic follows below.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://tantusdata.com/app/uploads/2023/03/detail_abstract-1024x576.jpg" alt="The details count, you have to pay attention to the deletion behaviour in each tool you use." class="wp-image-1444" srcset="https://tantusdata.com/app/uploads/2023/03/detail_abstract-1024x576.jpg 1024w, https://tantusdata.com/app/uploads/2023/03/detail_abstract-300x169.jpg 300w, https://tantusdata.com/app/uploads/2023/03/detail_abstract-768x432.jpg 768w, https://tantusdata.com/app/uploads/2023/03/detail_abstract-1536x863.jpg 1536w, https://tantusdata.com/app/uploads/2023/03/detail_abstract-2048x1151.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><strong>The devil lies in the implementation</strong></h2>



<p style="font-size:18px">Deleting data when a customer revokes their consent may seem appealing from a security perspective. The assumption is that once the data is gone, you are safe, right? While this is true, the deletion process itself is not so straightforward. The complexity arises from the varied ways in which tools within the Data &amp; Analytics ecosystem handle data removal. The deletion behavior in these tools does not always align with the general intuition of &#8216;deletion.&#8217;</p>



<p style="font-size:18px">Most modern data processing tools are optimized for ingestion and analytics queries, and their ability to perform fine-grained data deletion is limited. Sometimes, this means that you cannot simply remove individual records. At other times, it means that the deletion is not immediate. Finally, it might be that the data is merely marked as unavailable, but not actually deleted.</p>



<p style="font-size:18px">Do you see how some of these options might not be acceptable from a regulatory perspective? Therefore, it is crucial to consider technical limitations when deciding on a strategy for the Right to Be Forgotten.</p>



<p>Below, we will explore some commonly used data processing tools:</p>



<p>1. Traditional relational databases &#8211; These databases are good at operations involving single rows at a time, making it easy and safe to delete specific rows.</p>



<p>2. Hadoop and HDFS &#8211; It is impossible to delete a single record. If you want to remove the data of a single user, you need to rewrite the entire dataset. The rewrite comes with its own considerations, but the main one is whether it&#8217;s acceptable from a performance and cost perspective to rewrite the entire dataset just to remove a single record.</p>



<p>3. Delta, Hudi, Iceberg &#8211; These systems allow for the deletion of individual records, but you need to understand that the &#8216;deletion&#8217; is merely creating another delete-marker record. If you want to ensure that the data physically disappears eventually, you need to carefully design the compaction strategy specific to the storage you are using.</p>



<p>4. NoSQL databases &#8211; Each NoSQL database has its own way of handling deletion. For instance, Cassandra uses tombstones &#8211; data-deletion markers &#8211; which lead to similar concerns as described in the previous point. A carefully designed compaction strategy is a must.</p>



<p>5. BigQuery &#8211; Large-scale deletion is not what BigQuery is optimized for, which is why the tool has quotas for these kinds of operations. You also need to be aware that the data does not disappear immediately. That&#8217;s why it&#8217;s worth considering a full rewrite or crypto shredding (please refer to the next point) in certain scenarios.</p>



<p><em>Does this cover all options? </em></p>



<p>Unfortunately, the variety of tools makes it impossible to mention them all in a single article. You have to carefully investigate your ecosystem in the context of the Right to Be Forgotten. I only mention some of the commonly used tools to illustrate the complexity of the problem.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://tantusdata.com/app/uploads/2023/03/left-behind-1024x576.jpg" alt="Anonymised data doe snot equal forgotten. The physical evidence remains like a forgotten luggage anyone can look through to de-anonymise the data again." class="wp-image-1442" srcset="https://tantusdata.com/app/uploads/2023/03/left-behind-1024x576.jpg 1024w, https://tantusdata.com/app/uploads/2023/03/left-behind-300x169.jpg 300w, https://tantusdata.com/app/uploads/2023/03/left-behind-768x432.jpg 768w, https://tantusdata.com/app/uploads/2023/03/left-behind-1536x863.jpg 1536w, https://tantusdata.com/app/uploads/2023/03/left-behind-2048x1151.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The right to be forgotten is not fulfilled if the data is not erased on a physical level. Then it&#8217;s simply hidden. Left behind till somebody finds it.</p>



<h2 class="wp-block-heading"><strong>Does anonymised = forgotten?</strong></h2>



<p>Deleting records is not the only option for forgetting a customer. You can consider anonymizing the records of customers who revoke their consent. Anonymizing the dataset has the obvious benefit of retaining some of the data (without PII) so it can be used for analytics purposes in the future.</p>



<p>However, remember that you need to be very careful when designing the architecture and procedures. Things to keep in mind:</p>



<p>1. Anonymization should be a non-reversible process.</p>



<p>2. You have to correctly identify and anonymize the PII fields.</p>



<p>3. Anonymizing just PII fields might not be enough. You have to ensure that you prevent indirect identification of the user&#8217;s data. More about this will be covered in the next article.</p>



<p>4. You must have a formal process in place and follow it when handling your datasets. Automate as much as possible to limit the chance of human errors and privacy breaches.</p>



<p>5. Naive anonymization of individual records comes with problems similar to deletion itself. You have to consider the properties of the analytics tools in your stack before deciding on this approach.</p>



<p>One of the specialized techniques for handling the Right to Be Forgotten is crypto-shredding. The basic idea is to encrypt customer records and remove the encryption key when the customer requests to be forgotten. Using this technique can free you from concerns related to the cost of reprocessing the entire dataset. At the same time, it must be carefully thought through, especially when it comes to storing, securing, and removing the encryption keys.</p>



<p>Look for a description of crypto-shredding in one of the upcoming articles.</p>



<h2 class="wp-block-heading"><strong>What Have You Missed?</strong></h2>



<p>Once you have determined the appropriate method for addressing the Right to Be Forgotten (RTBF), you are nearly prepared to begin the implementation process. Why nearly? A crucial aspect of this process is identifying all datasets containing sensitive information. It goes without saying that managing your master data is essential. However, are you fully aware of the life cycles of your datasets? Can you confidently say that you are handling all derived datasets? In other words, are you dealing with a data lake, data lakehouse, or perhaps a data swamp?</p>



<p>Maintaining control over data lineage is a critical component of Data Governance, and we will discuss its significance in the context of RTBF in an upcoming article.</p>
<p>The post <a href="https://tantusdata.com/insights/gdpr-the-forgotten-done-right/">GDPR, the forgotten done right</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>All about search</title>
		<link>https://tantusdata.com/insights/all-about-search/</link>
		
		<dc:creator><![CDATA[TantusData]]></dc:creator>
		<pubDate>Wed, 29 Mar 2023 11:15:48 +0000</pubDate>
				<category><![CDATA[effective and efficient search]]></category>
		<category><![CDATA[queries]]></category>
		<category><![CDATA[search engine]]></category>
		<category><![CDATA[types of search engines]]></category>
		<guid isPermaLink="false">https://tantusdata.com/?post_type=insights&#038;p=1432</guid>

					<description><![CDATA[<p>Sit back and relax as our experts tell you all there is to know about any search project. Whether you intend to set up a search engine or improve the one you have, there are a few matters, which are crucial to consider before you start. Benefits of search engines As you surely know many [&#8230;]</p>
<p>The post <a href="https://tantusdata.com/insights/all-about-search/">All about search</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="574" src="https://tantusdata.com/app/uploads/2023/03/All-you-need-is-search-1024x574.jpg" alt="Trie Data Structure and search engines, elements to consider." class="wp-image-1433" srcset="https://tantusdata.com/app/uploads/2023/03/All-you-need-is-search-1024x574.jpg 1024w, https://tantusdata.com/app/uploads/2023/03/All-you-need-is-search-300x168.jpg 300w, https://tantusdata.com/app/uploads/2023/03/All-you-need-is-search-768x431.jpg 768w, https://tantusdata.com/app/uploads/2023/03/All-you-need-is-search-1536x861.jpg 1536w, https://tantusdata.com/app/uploads/2023/03/All-you-need-is-search-2048x1148.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Sit back and relax as our experts tell you all there is to know about any search project. </p>



<p>Whether you intend to set up a search engine or improve the one you have, there are a few matters, which are crucial to consider before you start. </p>



<h2 class="wp-block-heading">Benefits of search engines</h2>



<p>As you surely know many websites and e-commerce sites benefit greatly from having search engines operating well. But how do they do that? Why do others fail to deliver such ROI? </p>



<p>Are there other needs than simply letting consumers find the products they are looking for faster?</p>



<p>What to prepare before you start to save money and improve ROI faster. </p>



<p>And, does the project really needs to be that expensive and long-term, or is there an alternate option.</p>



<p>Sounds interesting? Make sure to check out our video prepared by our top search experts Maryna and Jakub.</p>



<p><a href="https://youtu.be/XrBMH-cqrRc">Take me to the video!</a></p>
<p>The post <a href="https://tantusdata.com/insights/all-about-search/">All about search</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to convince AI to help us boost our profit</title>
		<link>https://tantusdata.com/insights/how-to-convince-ai-to-help-us-boost-our-profit/</link>
		
		<dc:creator><![CDATA[Marcin Szymaniuk]]></dc:creator>
		<pubDate>Mon, 12 Dec 2022 08:28:00 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[ML]]></category>
		<guid isPermaLink="false">https://tantusdata.com/?post_type=insights&#038;p=2108</guid>

					<description><![CDATA[<p>Recently, we have been challenged to build an ML model that will boost company revenue by increasing click-through and conversion rates. The company has a web page with properties that one can book. The current approaches they tried, even though very reasonable, weren’t able to produce the expected result. They needed a fresh look into [&#8230;]</p>
<p>The post <a href="https://tantusdata.com/insights/how-to-convince-ai-to-help-us-boost-our-profit/">How to convince AI to help us boost our profit</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://tantusdata.com/app/uploads/2024/06/shutterstock_1421945759-1024x683.jpg" alt="" class="wp-image-2109" srcset="https://tantusdata.com/app/uploads/2024/06/shutterstock_1421945759-1024x683.jpg 1024w, https://tantusdata.com/app/uploads/2024/06/shutterstock_1421945759-300x200.jpg 300w, https://tantusdata.com/app/uploads/2024/06/shutterstock_1421945759-768x512.jpg 768w, https://tantusdata.com/app/uploads/2024/06/shutterstock_1421945759-1536x1024.jpg 1536w, https://tantusdata.com/app/uploads/2024/06/shutterstock_1421945759-2048x1365.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Recently, we have been challenged to build an ML model that will boost company revenue by increasing click-through and conversion rates. The company has a web page with properties that one can book. The current approaches they tried, even though very reasonable, weren’t able to produce the expected result. They needed a fresh look into the problem, and this is how they found us.</p>



<h2 class="wp-block-heading">Picking the best image</h2>



<p>We started with a click-through rate problem. We needed to pick the best image of a property to present as a miniature. We needed to pick from two images. Let’s look at those examples:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="360" src="https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.43.42-1024x360.png" alt="" class="wp-image-2114" srcset="https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.43.42-1024x360.png 1024w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.43.42-300x105.png 300w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.43.42-768x270.png 768w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.43.42.png 1344w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>It is hard to tell by only looking at images which one would be more attractive to potential clients. This is precisely the challenge the AI should help us with!</p>



<p>Apart from images, we had additional information about the properties, such as price, region, type of property, max pets, Wi-Fi and parking availability, etc. In total, we had 49 columns.</p>



<p>To summarize the problem: We have two images and additional data about properties, and we need to decide which one will have higher click through rate. We are given historical CTRs for images from A/B testing. The graphic below presents the highest level view of the process:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="672" src="https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.13-1024x672.png" alt="" class="wp-image-2116" srcset="https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.13-1024x672.png 1024w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.13-300x197.png 300w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.13-768x504.png 768w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.13.png 1030w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Data preparation</h2>



<p>We have started with the analysis of additional data for properties to pick up the best features. We have picked 20 features (based on their correlation with the target metric) and did the following preprocessing:</p>



<ul class="wp-block-list">
<li>standardization for numerical features</li>



<li>one hot encoding for categorical features</li>



<li>mean imputation for numerical features</li>



<li>most frequent imputation for categorical data</li>
</ul>



<h2 class="wp-block-heading">Regression model</h2>



<p>In the first approach, we built a model that takes an image and additional data to predict the click-through rate (CTR). The data came from SnapTrip, which conducted A/B tests—showing different webpage versions to different user groups to measure which one performs better. Their previous models were likely ineffective, leading to inaccurate results.</p>



<p>For the images, we used a pre-trained EfficientNetB4 network and fine-tuned it. The categorical data was processed through a five-layer fully connected network. The outputs were concatenated at the end. We used mean squared error as the loss function and performed hyper-parameter tuning to optimize the model architecture. All images were processed through an augmentation layer with standard operations. Here is a code snippet:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="def augument(image):
    image = tf.image.random_flip_left_right(image)
    image = tf.image.random_hue(image, 0.08)
    image = tf.image.random_saturation(image, 0.6, 1.6)
    image = tf.image.random_brightness(image, 0.05)
    image = tf.image.random_contrast(image, 0.7, 1.3)
    return image" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">def</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">augument</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">image</span><span style="color: #D8DEE9FF">):</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">image</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">tf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">random_flip_left_right</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">image</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">image</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">tf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">random_hue</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.08</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">image</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">tf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">random_saturation</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.6</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1.6</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">image</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">tf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">random_brightness</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.05</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">image</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">tf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">random_contrast</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">image</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.7</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1.3</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">return</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">image</span></span></code></pre></div>



<p></p>



<p>Using this approach, we got the following result: The accuracy is calculated as a proportion of correctly selected images. The correct image is an image with a higher CTR. We run images through the model and pick the one with the highest accuracy.</p>



<figure class="wp-block-table"><table><tbody><tr><td>Model name</td><td>Accuracy</td></tr><tr><td>Regression model</td><td>0.9208</td></tr></tbody></table><figcaption class="wp-element-caption">Table 1</figcaption></figure>



<p>The visualization of this approach looks like this:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="985" src="https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.39-1024x985.png" alt="" class="wp-image-2118" srcset="https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.39-1024x985.png 1024w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.39-300x288.png 300w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.39-768x738.png 768w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.44.39.png 1196w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Classification model</h2>



<p>In the second approach, we used both images as input (together with additional data) as we expected that seeing both images could help the model make better decisions. The loss function wasn’t mean squared error, but it was standard cross entropy as we treated this as a classification problem where the model needed to decide whether the image first or second should be selected. We had two neurons as an output, and when the first neuron was activated them, the first image should be picked and vice versa.&nbsp; We performed the same image augmentation as in the previous approach, and additionally, we swapped image positions in every case. So, the same images were presented to the model twice in swapped order.</p>



<p>We created a dedicated Keras layer for the images that looks like this:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="class EfficientNetV2B1_TF(layers.Layer):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        image_size = 260
        self.base_model = keras.applications.EfficientNetV2B2(include_top=False,
                                                            weights='imagenet',
                                                            input_shape=(image_size, image_size, 3)
                                                            )
        self.base_model.trainable = False
        self.global_pooling = tf.keras.layers.GlobalAveragePooling2D()
        self.embedding_model = keras.Sequential(
            [
                layers.Input(shape=(2816)),
                tf.keras.layers.Dropout(0.25),
                layers.Dense(2),
            ]
        )
    def set_fine_tuning(self, fine_tune_at=3):
        self.base_model.trainable = True
        for layer in self.base_model.layers[:-fine_tune_at]:
            layer.trainable = False
    def call(self, image_1, image_2):
        image_1_base = self.base_model(image_1)
        image_2_base = self.base_model(image_2)
        embb_1 = self.global_pooling(image_1_base)
        embb_2 = self.global_pooling(image_2_base)
        images = tf.concat([embb_1, embb_2], axis=1)
        output = self.embedding_model(images)
        return output" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #81A1C1">class</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">EfficientNetV2B1_TF</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">layers</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">Layer</span><span style="color: #D8DEE9FF">):</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">def</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">__init__</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">, **</span><span style="color: #8FBCBB">kwargs</span><span style="color: #D8DEE9FF">):</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">super</span><span style="color: #D8DEE9FF">().</span><span style="color: #8FBCBB">__init__</span><span style="color: #D8DEE9FF">(**</span><span style="color: #8FBCBB">kwargs</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">image_size</span><span style="color: #D8DEE9FF"> = 260</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">base_model</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">keras</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">applications</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">EfficientNetV2B2</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">include_top</span><span style="color: #D8DEE9FF">=</span><span style="color: #8FBCBB">False</span><span style="color: #D8DEE9FF">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">                                                            </span><span style="color: #8FBCBB">weights</span><span style="color: #D8DEE9FF">=&#39;</span><span style="color: #8FBCBB">imagenet</span><span style="color: #D8DEE9FF">&#39;,</span></span>
<span class="line"><span style="color: #D8DEE9FF">                                                            </span><span style="color: #8FBCBB">input_shape</span><span style="color: #D8DEE9FF">=(</span><span style="color: #8FBCBB">image_size</span><span style="color: #D8DEE9FF">, </span><span style="color: #8FBCBB">image_size</span><span style="color: #D8DEE9FF">, 3)</span></span>
<span class="line"><span style="color: #D8DEE9FF">                                                            )</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">base_model</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">trainable</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">False</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">global_pooling</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">tf</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">keras</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">layers</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">GlobalAveragePooling2D</span><span style="color: #D8DEE9FF">()</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">embedding_model</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">keras</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">Sequential</span><span style="color: #D8DEE9FF">(</span></span>
<span class="line"><span style="color: #D8DEE9FF">            [</span></span>
<span class="line"><span style="color: #D8DEE9FF">                </span><span style="color: #8FBCBB">layers</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">Input</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">shape</span><span style="color: #D8DEE9FF">=(2816)),</span></span>
<span class="line"><span style="color: #D8DEE9FF">                </span><span style="color: #8FBCBB">tf</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">keras</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">layers</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">Dropout</span><span style="color: #D8DEE9FF">(0.25),</span></span>
<span class="line"><span style="color: #D8DEE9FF">                </span><span style="color: #8FBCBB">layers</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">Dense</span><span style="color: #D8DEE9FF">(2),</span></span>
<span class="line"><span style="color: #D8DEE9FF">            ]</span></span>
<span class="line"><span style="color: #D8DEE9FF">        )</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">def</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">set_fine_tuning</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">, </span><span style="color: #8FBCBB">fine_tune_at</span><span style="color: #D8DEE9FF">=3):</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">base_model</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">trainable</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">True</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">for</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">layer</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">in</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">base_model</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">layers</span><span style="color: #D8DEE9FF">[:-</span><span style="color: #8FBCBB">fine_tune_at</span><span style="color: #D8DEE9FF">]:</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #8FBCBB">layer</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">trainable</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">False</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #8FBCBB">def</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">call</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">, </span><span style="color: #8FBCBB">image_1</span><span style="color: #D8DEE9FF">, </span><span style="color: #8FBCBB">image_2</span><span style="color: #D8DEE9FF">):</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">image_1_base</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">base_model</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">image_1</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">image_2_base</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">base_model</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">image_2</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">embb_1</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">global_pooling</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">image_1_base</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">embb_2</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">global_pooling</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">image_2_base</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">images</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">tf</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">concat</span><span style="color: #D8DEE9FF">([</span><span style="color: #8FBCBB">embb_1</span><span style="color: #D8DEE9FF">, </span><span style="color: #8FBCBB">embb_2</span><span style="color: #D8DEE9FF">], </span><span style="color: #8FBCBB">axis</span><span style="color: #D8DEE9FF">=1)</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">output</span><span style="color: #D8DEE9FF"> = </span><span style="color: #8FBCBB">self</span><span style="color: #D8DEE9FF">.</span><span style="color: #8FBCBB">embedding_model</span><span style="color: #D8DEE9FF">(</span><span style="color: #8FBCBB">images</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #8FBCBB">return</span><span style="color: #D8DEE9FF"> </span><span style="color: #8FBCBB">output</span></span></code></pre></div>



<p></p>



<p>Using this approach, we got the following result. It is better, than the one from regression.</p>



<figure class="wp-block-table"><table><tbody><tr><td>Model name</td><td>Accuracy</td></tr><tr><td>Regression model</td><td>0.9411</td></tr></tbody></table><figcaption class="wp-element-caption">Table 2</figcaption></figure>



<p>The visualization of this approach looks like this:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="587" src="https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.45.00-1024x587.png" alt="Learn how we built an AI model to boost company revenue by increasing click-through and conversion rates on a property booking website. Discover our approach to selecting the best images, preprocessing data, and optimizing model performance to achieve better results. Understand the importance of considering user preferences and seasonal variations in data." class="wp-image-2120" srcset="https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.45.00-1024x587.png 1024w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.45.00-300x172.png 300w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.45.00-768x440.png 768w, https://tantusdata.com/app/uploads/2024/06/Screenshot-2024-06-11-at-09.45.00.png 1180w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Having developed those models, we decided to conduct an A/B test for the classification model. After deploying it to production and waiting a week for results, we observed that the CTR did not increase as much as we expected. Detailed investigation revealed that many images with higher CTRs in our training data now had lower CTRs. The issue was that we received an A/B test dataset from a specific time period, where certain images had higher CTRs and served as our reference. We trained the model to discover why some images were better than others, and it performed well on that dataset.</p>



<p>After conducting the A/B test again, we found that users often preferred different images than before, rendering our model ineffective. We are not entirely sure why user preferences changed suddenly, but it is likely due to seasonal variations that affected the A/B test data outcomes. Therefore, we recommend clients consider the time sensitivity and changing tastes of their potential customers.</p>



<p>To address this, one of the models we provided did not choose between two images but instead returned a specific CTR for each image. In theory, this model could process all images for a given property and select the one with the highest CTR. We decided to collect data over longer periods and try again in the future.&nbsp;</p>



<p>Not only A/B tests but also customer data would likely help, similar to how other sites operate by checking what users viewed or booked previously and basing recommendations on that.</p>



<p>Note: Access to comprehensive data is crucial for effective modeling and accurate predictions.</p>



<h2 class="wp-block-heading">Sorting search results</h2>



<p>The second problem we wanted to solve using AI was search result sorting. After the user specified what properties they were looking for, for what dates, and for how many people, we presented our offer. The problem is which properties we should show first, as usually users only open the first few so that there are maximum chances for a successful booking.</p>



<h2 class="wp-block-heading">Data preparation</h2>



<p>Here, the data was similar to the previous example. The images and property information were the same, with the new addition of textual data in the form of property descriptions. We investigated the tabular data with property information and selected 15 features that best correlated with the target value. These features were chosen based on statistical models that identify correlations between features. The preprocessing for this data was the same as in the previous problem.</p>



<p>We’ve pre-process description data using nltk. We carried out the following operations:</p>



<ul class="wp-block-list">
<li>lower casing</li>



<li>html tag removal</li>



<li>urls removal</li>



<li>word tokenization</li>



<li>punctuation removal</li>



<li>stop words removal</li>



<li>lemmatization</li>
</ul>



<p>The target value was the historical conversion rate for each property.</p>



<h2 class="wp-block-heading">Creating models</h2>



<h2 class="wp-block-heading">xgboost</h2>



<p>The first model we created was based on XGBoost. It received input consisting solely of tabular data from SnapTrip&#8217;s historical A/B tests. We performed hyper-parameter tuning to optimize the following parameters (the numbers represent the best parameters found):</p>



<ul class="wp-block-list">
<li>colsample_bytree=0.7</li>



<li>learning_rate=0.01</li>



<li>max_depth=3</li>



<li>n_estimators=1000</li>
</ul>



<p>Here is the result we got with this approach:</p>



<figure class="wp-block-table"><table><tbody><tr><td>Model name</td><td>Mean Squared Error</td></tr><tr><td>Neural network conversion rate</td><td>41</td></tr></tbody></table><figcaption class="wp-element-caption">Table 3</figcaption></figure>



<h2 class="wp-block-heading">Neural network</h2>



<p>We started creating a second model, the neural network model, by combining the tabular and textual data. We decided not to complicate it by including the images from the beginning. As we didn’t have that much data (something like 4000 rows), we started with shallow networks. We used hyperparameter tuning to find the best network architecture for us. Here is the code snipped with all configurable parameters.</p>



<p>def build_keras_hp_model(hp):</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" data-code="model = Sequential()
    kernel_regularizer = None
    kernel_regularizer_value = hp.Choice('kernel_regularizer', values=[0.01, 0.02, 0.04, 0.06, 0.08])
    type = hp.Choice('kernel_regularizer_type', values=[&quot;L1&quot;, &quot;L2&quot;, &quot;L1L2&quot;, &quot;None&quot;])
    if type == &quot;L1&quot;:
        kernel_regularizer = regularizers.L1(kernel_regularizer_value)
    elif type == &quot;L2&quot;:
        kernel_regularizer = regularizers.L2(kernel_regularizer_value)
    elif type == &quot;L1L2&quot;:
        kernel_regularizer = regularizers.L1L2(kernel_regularizer_value)
    activity_regularizer = None
    activity_regularizer_value = hp.Choice('activity_regularizer', values=[0.01, 0.02, 0.04, 0.06, 0.08])
    type = hp.Choice('activity_regularizer_type', values=[&quot;L1&quot;, &quot;L2&quot;, &quot;L1L2&quot;, &quot;None&quot;])
    if type == &quot;L1&quot;:
        activity_regularizer = regularizers.L1(activity_regularizer_value)
    elif type == &quot;L2&quot;:
        activity_regularizer = regularizers.L2(activity_regularizer_value)
    elif type == &quot;L1L2&quot;:
        activity_regularizer = regularizers.L1L2(activity_regularizer_value)
    for i in range(hp.Int('layers', 4, 12)):
        model.add(Dense(hp.Choice(
            'units', [50, 60, 70, 80 ,90, 100]),
            kernel_initializer=hp.Choice(
            'kernel_initializer', ['glorot_normal', 'glorot_uniform', 'he_normal', 'he_uniform', 'lecun_normal', 'lecun_uniform', 'random_normal']),
            kernel_regularizer = kernel_regularizer,
            activity_regularizer = activity_regularizer
        ))
        if not hp.Boolean(&quot;do_batch_norm_after_dropout&quot;) and hp.Boolean(&quot;do_batch_norm_before_dropout&quot;):
            model.add(BatchNormalization())
        model.add(Activation(hp.Choice('activation', ['elu', &quot;relu&quot;, 'selu', 'gelu', 'leaky_relu', 'swish'])))
        model.add(Dropout(hp.Choice('dropout', values=[0.0, 0.1, 0.15, 0.2, 0.25, 0.3])))
        if not hp.Boolean(&quot;do_batch_norm_before_dropout&quot;) and hp.Boolean(&quot;do_batch_norm_after_dropout&quot;):
            model.add(BatchNormalization())
    model.add(Dense(1))
    model.compile(
        optimizer=tf.keras.optimizers.Adam(hp.Choice('learning_rate', values=[1e-2, 1e-4, 1e-5, 1e-6])),
        loss='mean_squared_error',
        metrics=[tf.keras.metrics.RootMeanSquaredError()])
    return model" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">model</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">Sequential</span><span style="color: #D8DEE9FF">()</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">kernel_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">None</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">kernel_regularizer_value</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">kernel_regularizer</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">values</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF">[</span><span style="color: #B48EAD">0.01</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.02</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.04</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.06</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.08</span><span style="color: #D8DEE9FF">])</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">type</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">kernel_regularizer_type</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">values</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF">[</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L1</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L2</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L1L2</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">None</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">])</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">if</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">type</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">==</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L1</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">kernel_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">regularizers</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">L1</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">kernel_regularizer_value</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">elif</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">type</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">==</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L2</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">kernel_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">regularizers</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">L2</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">kernel_regularizer_value</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">elif</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">type</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">==</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L1L2</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">kernel_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">regularizers</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">L1L2</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">kernel_regularizer_value</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">activity_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">None</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">activity_regularizer_value</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">activity_regularizer</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">values</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF">[</span><span style="color: #B48EAD">0.01</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.02</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.04</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.06</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.08</span><span style="color: #D8DEE9FF">])</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">type</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">activity_regularizer_type</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">values</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF">[</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L1</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L2</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L1L2</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">None</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">])</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">if</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">type</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">==</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L1</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">activity_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">regularizers</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">L1</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">activity_regularizer_value</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">elif</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">type</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">==</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L2</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">activity_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">regularizers</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">L2</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">activity_regularizer_value</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">elif</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">type</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">==</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">L1L2</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">:</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">activity_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">regularizers</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">L1L2</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">activity_regularizer_value</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">for</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">i</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">in</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">range</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Int</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">layers</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">4</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">12</span><span style="color: #D8DEE9FF">)):</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">model</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">add</span><span style="color: #D8DEE9FF">(</span><span style="color: #88C0D0">Dense</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">units</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> [</span><span style="color: #B48EAD">50</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">60</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">70</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">80</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">,</span><span style="color: #B48EAD">90</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">100</span><span style="color: #D8DEE9FF">])</span><span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #D8DEE9">kernel_initializer</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">kernel_initializer</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> [</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">glorot_normal</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">glorot_uniform</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">he_normal</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">he_uniform</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">lecun_normal</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">lecun_uniform</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">random_normal</span><span style="color: #ECEFF4">&#39;</span><span style="color: #D8DEE9FF">])</span><span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #D8DEE9">kernel_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">kernel_regularizer</span><span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #D8DEE9">activity_regularizer</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">activity_regularizer</span></span>
<span class="line"><span style="color: #D8DEE9FF">        ))</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #81A1C1">if</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">not</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Boolean</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">do_batch_norm_after_dropout</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">) </span><span style="color: #D8DEE9">and</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Boolean</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">do_batch_norm_before_dropout</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">):</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #D8DEE9">model</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">add</span><span style="color: #D8DEE9FF">(</span><span style="color: #88C0D0">BatchNormalization</span><span style="color: #D8DEE9FF">())</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">model</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">add</span><span style="color: #D8DEE9FF">(</span><span style="color: #88C0D0">Activation</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">activation</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> [</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">elu</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">relu</span><span style="color: #ECEFF4">&quot;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">selu</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">gelu</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">leaky_relu</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">swish</span><span style="color: #ECEFF4">&#39;</span><span style="color: #D8DEE9FF">])))</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">model</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">add</span><span style="color: #D8DEE9FF">(</span><span style="color: #88C0D0">Dropout</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">dropout</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">values</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF">[</span><span style="color: #B48EAD">0.0</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.1</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.15</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.2</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.25</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">0.3</span><span style="color: #D8DEE9FF">])))</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #81A1C1">if</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">not</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Boolean</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">do_batch_norm_before_dropout</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">) </span><span style="color: #D8DEE9">and</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Boolean</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&quot;</span><span style="color: #A3BE8C">do_batch_norm_after_dropout</span><span style="color: #ECEFF4">&quot;</span><span style="color: #D8DEE9FF">):</span></span>
<span class="line"><span style="color: #D8DEE9FF">            </span><span style="color: #D8DEE9">model</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">add</span><span style="color: #D8DEE9FF">(</span><span style="color: #88C0D0">BatchNormalization</span><span style="color: #D8DEE9FF">())</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">model</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">add</span><span style="color: #D8DEE9FF">(</span><span style="color: #88C0D0">Dense</span><span style="color: #D8DEE9FF">(</span><span style="color: #B48EAD">1</span><span style="color: #D8DEE9FF">))</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">model</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">compile</span><span style="color: #D8DEE9FF">(</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">optimizer</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9">tf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">keras</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">optimizers</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Adam</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">hp</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">Choice</span><span style="color: #D8DEE9FF">(</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">learning_rate</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">values</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF">[</span><span style="color: #B48EAD">1e-2</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1e-4</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1e-5</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #B48EAD">1e-6</span><span style="color: #D8DEE9FF">]))</span><span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">loss</span><span style="color: #81A1C1">=</span><span style="color: #ECEFF4">&#39;</span><span style="color: #A3BE8C">mean_squared_error</span><span style="color: #ECEFF4">&#39;</span><span style="color: #ECEFF4">,</span></span>
<span class="line"><span style="color: #D8DEE9FF">        </span><span style="color: #D8DEE9">metrics</span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF">[</span><span style="color: #D8DEE9">tf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">keras</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">metrics</span><span style="color: #ECEFF4">.</span><span style="color: #88C0D0">RootMeanSquaredError</span><span style="color: #D8DEE9FF">()])</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">return</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">model</span></span></code></pre></div>



<p></p>



<p>The best-performing number of layers was 8, and the number of neurons was 70. The model also liked a small dropout (0.1) and L1 regularization with a value of 0.01.</p>



<p>We used mean squared error as a target value.</p>



<p>Here are the results for this model:</p>



<figure class="wp-block-table"><table><tbody><tr><td>Model name</td><td>Mean Squared Error</td></tr><tr><td>Neural network conversion rate</td><td>38</td></tr></tbody></table><figcaption class="wp-element-caption">Table 4</figcaption></figure>



<h2 class="wp-block-heading">Ensemble model</h2>



<p>Finally, we decided to combine both models via a simple ensemble. We ran our data through both models and averaged the results. We got these results using this approach, which are slightly better than any of the individual ones.</p>



<figure class="wp-block-table"><table><tbody><tr><td>Model name</td><td>Mean Squared Error</td></tr><tr><td>Neural network conversion rate</td><td>36</td></tr></tbody></table><figcaption class="wp-element-caption">Table 5</figcaption></figure>



<h2 class="wp-block-heading">Results</h2>



<p>Our decision to push this model into production was not without its challenges. After a few weeks of A/B testing, we were thrilled to see a conversion rate increase of over 10% on several pages. However, we also encountered a roadblock on two pages, where the target customers had different tastes and needs. To address this, we had to find an alternative approach, which involved developing dedicated models for these pages.</p>



<p>Note: We initially received a single dataset without information on its collection process. For optimal results, it’s important to have separate datasets for different client pages, as preferences can vary significantly. Dedicated models for each page type can help achieve better conversion rates. Therefore, we delivered customized models to address these variations and improve overall performance.</p>
<p>The post <a href="https://tantusdata.com/insights/how-to-convince-ai-to-help-us-boost-our-profit/">How to convince AI to help us boost our profit</a> appeared first on <a href="https://tantusdata.com">TantusData</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
