发明内容
本申请实施例提供一种图文发布的方法、装置及存储介质,用以提高图文阅览效果。
第一方面,本申请提供一种图文发布的方法,该方法包括:
获取待发布图文的标题图片;
获取待发布图文的标题图片的语义向量;
基于待发布图文的标题图片的语义向量,对待发布图文的标题图片进行相似度检测;
根据相似度检测结果和预设的发布策略,发布待发布图文。
在一种可能的实现方式中,获取待发布图文的标题图片的语义向量时:
若标题图片为特殊类型图片,则获取标题图片中局部图片的局部语义向量,其中特殊类型图片为目标对象在标题图片中的占比大于设定比值,局部图片为目标对象在标题图片中的位置对应的图片。
在一种可能的实现方式中,获取待发布图文的标题图片的语义向量,具体包括:
基于已训练的孪生网络模型,获取待发布图文的标题图片的语义向量,其中已训练的孪生网络模型是基于多对样本对对孪生网络模型进行训练生成的,多对样本对中包括正样本对和负样本对,每个正样本对为带相似图片标签的样本,每个负样本对为带非相似图片标签的样本。
在一种可能的实现方式中,孪生网络模型的训练过程为:
在多对样本对中选取任一样本对,多对样本对中包括正样本对和负样本对,每个正样本对包括带有相似图片标签的两张图片,每个负样本对包括带有非相似图片标签的两张图片;
针对选取的任一样本对,获取样本对中的第一图片和第二图片;
将第一图片和第二图片,分别输入到孪生网络模型的第一子网络和第二子网络中,获取第一图片的第一语义向量以及第二图片的第二语义向量;
根据第一语义向量和第二语义向量,确定第一图片与第二图片的相似度检测结果;
根据相似度检测结果与样本对的相似性标签,确定损失值;
根据损失值对孪生网络模型的网络参数进行调整,直至损失值收敛至预设的期望值为止,得到已训练的孪生网络模型。
在一种可能的实现方式中,已训练的孪生网络模型包括第一子网络和第二子网络,且每个子网络中包括卷积层、池化层以及全连接层,基于已训练的孪生网络模型获取待发布图文的标题图片的语义向量时:
基于已训练的孪生网络模型中的任一子网络获取待发布图文的标题图片的语义向量;
具体包括:
将标题图片的参数信息输入到卷积层中进行卷积处理,获得标题图片的第一特征图,其中参数信息包括像素数据以及通道数;
将第一特征图输入到池化层中进行下采样处理,获得第二特征图;
将第二特征图输入到全连接层进行特征分类,确定标题图片中包含的语义信息,并将语义信息转换成语义向量。
在一种可能的实现方式中,获取待发布图文的标题图片的语义向量后,生成语义向量的索引信息,将语义向量与索引信息对应存储在到向量存储系统中,以更新向量存储系统;
其中,索引信息用于指示语义向量对应的标题图片及标题图片所在的图文。
在一种可能的实现方式中,将语义向量存储到向量存储系统中:
基于已训练的降维网络模型对语义向量进行降维处理,并将降维处理后的语义向量存储到向量存储系统中。
在一种可能的实现方式中,降维网络模型的训练过程为:
从训练数据集中选取训练样本图片;
将训练样本图片输入降维网络模型,得到训练样本图片的输出值;
将输出值输入损失函数,并通过反向传播优化降维网络模型的网络参数,直至输出值近似离散值为止,得到已训练的降维网络模型。
在一种可能的实现方式中,基于待发布图文的标题图片的语义向量对标题图片进行相似度检测时:
若待发布图文包括多张标题图片,则基于待发布图文的每张标题图片的语义向量,对多张标题图片之间的相似度进行相似度检测;和/或
基于待发布图文的每张标题图片的语义向量,和历史标题图片的历史语义向量,分别对待发布图文的每张标题图片和历史标题图片之间的相似性进行相似度检测。
在一种可能的实现方式中,通过如下方式获取历史标题图片的历史语义向量:
将待发布图文的每张标题图片的语义向量发送给向量存储系统,其中向量存储系统中存储有历史标题图片的历史语义向量信息,历史语义向量信息包括:历史语义向量,和用于指示历史标题图片和历史标题图片对应的历史图文的索引信息;
接收向量存储系统返回的历史语义向量信息,其中历史语义向量信息是根据语义向量对应的向量召回区间确定的。
在一种可能的实现方式中,若待发布图文的多张标题图片中包括相似图片,根据相似度检测结果和预设的发布策略,发布待发布图文时:
若待发布图文中除标题图片外包含有其他图片,则基于已训练的孪生网络模型获取其他图片的语义向量;
基于其他图片的语义向量与相似图片中任一标题图片的语义向量,对其他图片与标题图片的相似性进行检测;
若确定其他图片与标题图片不相似,则使用其他图片替换相似图片中任一标题图片,并发布替换标题图片后的待发布图文。
在一种可能的实现方式中,若待发布图文的标题图片和历史标题图片相似,根据相似度检测结果和预设的发布策略,发布待发布图文时:
发布待发布图文时,设置待发布图文与历史标题图片的历史图文之间的发布距离大于设定距离,其中历史图文是根据历史标题图片的历史语义向量对应的索引信息确定的。
在一种可能的实现方式中,若标题图片为特殊类型图片,基于待发布图文的标题图片的语义向量,对待发布图文的标题图片进行相似度检测时:
基于标题图片的局部语义向量确定第一检测结果,以及基于标题图片的语义向量确定第二检测结果;
基于第一检测结果和第二检测结果,对待发布图文的标题图片进行相似度检测;
若第一检测结果和第二检测结果中存在图片相似的检测结果,则确定图片相似。
第二方面,本申请实施例提供一种孪生网络模型训练的方法,孪生网络模型应用于图文发布的方法,该方法包括:
构建孪生网络模型,其中孪生网络模型中包含两个相同的子网络,每个子网络包括卷积层、池化层、全连接层,孪生网络模型中还包括损失函数;
获取训练过程中的多对样本对,其中多对样本对中包括正样本对和负样本对,每个正样本对包括带有相似图片标签的两张图片,每个负样本对包括带有非相似图片标签的两张图片;
针对任一样本对,将样本对中的第一图片和第二图片分别输入到孪生网络模型的第一子网络和第二子网络中,获取第一图片的第一语义向量以及第二图片的第二语义向量;
根据第一语义向量和第二语义向量,确定第一图片与第二图片的相似度检测结果;
根据相似度检测结果与样本对的相似性标签,确定损失值;
根据损失值对孪生网络模型的网络参数进行调整,直至损失值收敛至预设的期望值为止,得到已训练的孪生网络模型。
在一种可能的实现方式中,带相似图片标签的正样本包括下列之一或组合:
原图片以及原图片修改后的图片;同一视频中的两帧图片,两帧图片的时间间隔小于阈值;召回阈值区间内的两张图片;
带非相似图片标签的负样本对包括下列之一或组合:
完全不同的两张图片、基于孪生网络模型训练后被错误分类的图片。
第三方面,本申请实施例提供一种降维网络模型训练的方法,降维网络模型应用于图文发布的方法,该方法包括:
构建降维网络模型,其中降维网络模型中包括卷积层、池化层、全连接层以及损失函数;
获取训练数据集,其中训练数据集中包括有多张样本图片;
针对训练数据集中的样本图片,将样本图片输入降维网络模型,得到样本图片对应的输出值;
将输出值输入损失函数,并通过反向传播优化降维网络模型的网络参数,直至输出值近似离散值为止,得到已训练的降维网络模型。
第四方面,本申请实施例提供一种图文发布的装置,该装置包括:
第一获取单元,用于获取待发布图文的标题图片;
第二获取单元,用于获取待发布图文的标题图片的语义向量;
检测单元,用于基于待发布图文的标题图片的语义向量,对待发布图文的标题图片进行相似度检测;
发布单元,用于根据相似度检测结果和预设的发布策略,发布待发布图文。
在一种可能的实现方式中,第二获取单元具有用于:
若标题图片为特殊类型图片,则获取标题图片中局部图片的局部语义向量,其中特殊类型图片为目标对象在标题图片中的占比大于设定比值,局部图片为目标对象在标题图片中的位置对应的图片。
在一种可能的实现方式中,第二获取单元具有用于:
基于已训练的孪生网络模型,获取待发布图文的标题图片的语义向量,其中已训练的孪生网络模型是基于多对样本对对孪生网络模型进行训练生成的,多对样本对中包括正样本对和负样本对,每个正样本对为带相似图片标签的样本,每个负样本对为带非相似图片标签的样本。
在一种可能的实现方式中,第二获取单元中的孪生网络模型是通过如下方式训练生成的:
在多对样本对中选取任一样本对,多对样本对中包括正样本对和负样本对,每个正样本对包括带有相似图片标签的两张图片,每个负样本对包括带有非相似图片标签的两张图片;
针对选取的任一样本对,获取样本对中的第一图片和第二图片;
将第一图片和第二图片,分别输入到孪生网络模型的第一子网络和第二子网络中,获取第一图片的第一语义向量以及第二图片的第二语义向量;
根据第一语义向量和第二语义向量,确定第一图片与第二图片的相似度检测结果;
根据相似度检测结果与样本对的相似性标签,确定损失值;
根据损失值对孪生网络模型的网络参数进行调整,直至损失值收敛至预设的期望值为止,得到已训练的孪生网络模型。
在一种可能的实现方式中,已训练的孪生网络模型包括第一子网络和第二子网络,且每个子网络中包括卷积层、池化层以及全连接层;
第二获取单元具有用于:基于已训练的孪生网络模型中的任一子网络获取待发布图文的标题图片的语义向量;
第二获取单元具有用于:
将标题图片的参数信息输入到卷积层中进行卷积处理,获得标题图片的第一特征图,其中参数信息包括像素数据以及通道数;
将第一特征图输入到池化层中进行下采样处理,获得第二特征图;
将第二特征图输入到全连接层进行特征分类,确定标题图片中包含的语义信息,并将语义信息转换成语义向量。
在一种可能的实现方式中,第二获取单元具有用于:
生成语义向量的索引信息,将语义向量与索引信息对应存储在到向量存储系统中,以更新向量存储系统;
其中,索引信息用于指示语义向量对应的标题图片及标题图片所在的图文。
在一种可能的实现方式中,第二获取单元具有用于:
基于已训练的降维网络模型对语义向量进行降维处理,并将降维处理后的语义向量存储到向量存储系统中。
在一种可能的实现方式中,第二获取单元中的降维网络模型是通过下列方式训练生成的:
从训练数据集中选取训练样本图片;
将训练样本图片输入降维网络模型,得到训练样本图片的输出值;
将输出值输入损失函数,并通过反向传播优化降维网络模型的网络参数,直至输出值近似离散值为止,得到已训练的降维网络模型。
在一种可能的实现方式中,检测单元具体用于:
若待发布图文包括多张标题图片,则基于待发布图文的每张标题图片的语义向量,对多张标题图片之间的相似度进行相似度检测;和/或
基于待发布图文的每张标题图片的语义向量,和历史标题图片的历史语义向量,分别对待发布图文的每张标题图片和历史标题图片之间的相似性进行相似度检测。
在一种可能的实现方式中,检测单元通过如下方式获取历史标题图片的历史语义向量:
将待发布图文的每张标题图片的语义向量发送给向量存储系统,其中向量存储系统中存储有历史标题图片的历史语义向量信息,历史语义向量信息包括:历史语义向量,和用于指示历史标题图片和历史标题图片对应的历史图文的索引信息;
接收向量存储系统返回的历史语义向量信息,其中历史语义向量信息是根据语义向量对应的向量召回区间确定的。
在一种可能的实现方式中,若待发布图文的多张标题图片中包括相似图片,发布单元具体用于:
若待发布图文中除标题图片外包含有其他图片,则基于已训练的孪生网络模型获取其他图片的语义向量;
基于其他图片的语义向量与相似图片中任一标题图片的语义向量,对其他图片与标题图片的相似性进行检测;
若确定其他图片与标题图片不相似,则使用其他图片替换相似图片中任一标题图片,并发布替换标题图片后的待发布图文。
在一种可能的实现方式中,若待发布图文的标题图片和历史标题图片相似,发布单元具体用于:
发布待发布图文时,设置待发布图文与历史标题图片的历史图文之间的发布距离大于设定距离,其中历史图文是根据历史标题图片的历史语义向量对应的索引信息确定的。
在一种可能的实现方式中,若标题图片为特殊类型图片,检测单元具体用于:
基于标题图片的局部语义向量确定第一检测结果,以及基于标题图片的语义向量确定第二检测结果;
基于第一检测结果和第二检测结果,对待发布图文的标题图片进行相似度检测;
若第一检测结果和第二检测结果中存在图片相似的检测结果,则确定图片相似。
第五方面,本申请实施例提供一种孪生网络模型的训练装置,孪生网络模型应用于图文发布的方法,训练装置包括:
第一构建单元,用于构建孪生网络模型,其中孪生网络模型中包含两个相同的子网络,每个子网络包括卷积层、池化层、全连接层,孪生网络模型中还包括损失函数;
第三获取单元,用于获取训练过程中的多对样本对,其中多对样本对中包括正样本对和负样本对,每个正样本对包括带有相似图片标签的两张图片,每个负样本对包括带有非相似图片标签的两张图片;
第一训练单元,用于针对任一样本对,将样本对中的第一图片和第二图片分别输入到孪生网络模型的第一子网络和第二子网络中,获取第一图片的第一语义向量以及第二图片的第二语义向量;根据第一语义向量和第二语义向量,确定第一图片与第二图片的相似度检测结果;根据相似度检测结果与样本对的相似性标签,确定损失值;
参数调整单元,用于根据损失值对孪生网络模型的网络参数进行调整,直至损失值收敛至预设的期望值为止,得到已训练的孪生网络模型。
在一种可能的实现方式中,带相似图片标签的正样本包括下列之一或组合:
原图片以及原图片修改后的图片;同一视频中的两帧图片,两帧图片的时间间隔小于阈值;召回阈值区间内的两张图片;
带非相似图片标签的负样本对包括下列之一或组合:
完全不同的两张图片、基于孪生网络模型训练后被错误分类的图片。
第六方面,本申请实施例提供一种降维网络模型的训练装置,降维网络模型应用于图文发布的方法,训练装置包括:
第二构建单元,用于构建降维网络模型,其中降维网络模型中包括卷积层、池化层、全连接层以及损失函数;
第四获取单元,用于获取训练数据集,其中训练数据集中包括有多张样本图片;
第二训练单元,用于针对训练数据集中的样本图片,将样本图片输入降维网络模型,得到样本图片对应的输出值;
参数优化单元,用于将输出值输入损失函数,并通过反向传播优化降维网络模型的网络参数,直至输出值近似离散值为止,得到已训练的降维网络模型。
第七方面,本申请实施例提供一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现本申请第一方面的图文发布的方法,或第二方面的孪生网络模型的训练方法,或第三面的降维网络模型的训练方法。
第八方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被处理器执行时实现本申请实现第一方面的图文发布的方法,或第二方面的孪生网络模型的训练方法,或第三面的降维网络模型的训练方法。
本申请有益效果如下:
本申请实施例的图文发布的方法、模型训练的方法、装置和存储介质,获取待发布图文的标题图片的语义向量,语义向量对应标题图片中包含的各种隐藏的语义信息,因此根据语义信息确定出标题图片中包含的多个对象;基于待发布图文的标题图片的语义向量,对待发布图文的标题图片进行相似度检测,由于语义向量指示出图片中包含的对象,将两张图片的语义向量进行比较,确定出两张图片中是否包含有相同的对象,准确的确定出两张图片的相似度检测结果;最后根据相似度检测结果和预设的发布策略,发布待发布的图文,避免相似图片同时出现的情况,因此在图文阅览过程中不会出现包含有相似的标题图片的图文,提高图文阅览效果。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
图文:推荐给用户阅读的文章,包括视频、图片以及文字等,文章通常是自媒体者开一个公众号后,主动编辑发布的。
标题图片:在进行图文发布时,将发布的图文内容使用图片作封面进行发布,图片包括图文的单图或者三图,短视频的封面图或小视频的封面图;标题图片为图文内容的封面图;如图1所示,为终端的显示页面上显示图文的示意图,从图1中,可知在终端的显示页面中显示有多个图文,每个图文在显示页面中仅显示封面图片和标题,以“张三与李四爬山时发现古文化石”为例,此时在显示页面中展示带有山的图片1、古文化石的图片2、专家宣布化石鉴定结果时的图片3,此时“张三与李四爬山时发现古文化石”是标题,显示的图片1、图片2和图片3是标题图片。
孪生网络:又称为连体网络,网络中的连体是通过共享权值来实现,是一种特殊类型的神经网络架构。
汉明距离:是使用在数据传输差错控制编码里面的,汉明距离是一个概念,表示两个字对应为不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离,对两个字符串进行异或运算,并统计结果为1的个数,个数就是汉明距离。
欧几里得距离:是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。
下面对本申请实施例的设计思想进行简要介绍。
阅览者可以通过阅读软件或通过即时通讯系统中的图文推荐功能阅览图文。在终端的显示界面上为阅览者推荐多个图文,推荐的图文在显示界面中通常包括图片和标题,如图1所示,为图文显示的示意图。
图片是图文中非常重要的一部分,从图片中可以大致了解到图文的内容。因此一个图文的标题图片直接影响了阅览者的点击转化数据。
比如,在一个显示界面显示了5个图文,若显示的5个图文的内容都是关于某个电视剧中的某个角色做的某件事,且显示的封面图片相似,此时阅览者仅会对5个图文中的任一图文进行阅览,导致其他图文的点击数据量少。
因此,若在发布图文时对图文的标题图片进行相似度检测,并针对相似的图片进行处理,避免在同一个显示页面中出现相似图片的情况上述问题的有效方法。
目前图片相似度检测的方法,包括平均哈希算法、感知哈希算法和差异哈希算法,三种哈希算法都是通过获取图片的哈希值,再比较两张图片哈希值的汉明距离来度量两张图片是否相似。
以感知哈希算法进行举例说明:
感知哈希算法(pHash),感知哈希算法是三种Hash算法中较为复杂的一种,它是基于DCT(离散余弦变换)来得到图片的hash值,其算法几个步骤分别是缩放图片;转灰度图;计算DCT;缩小DCT;算平均值;计算指纹,如表1所示,为感知哈希算法确定两张图片是否相似的过程。
表1
得到图片的phash值后,比较两张图片phash值的汉明距离,通常认为汉明距离小于10的一组图片为相似图片。
但是通过哈希算法对于从其他平台搬运文章和图片裁剪后造成与已存储的图文重复的问题无法解决,同时对于图片有水印或裁剪的变形也无法识别,另外对于视频内容,如果库内相同视频的不同版本(比如分辨率,压缩比不一样等)对于图片识别效果也不够。
显然,目前基于哈希算法获取图片的哈希值,比较两张图片哈希值的汉明距离来度量两张图片是否相似的方式,并不能有效的检测两张图片的相似性,因此在发布图文时不能有效的将包含有相似标题图片的图文打散,最终导致终端屏幕上出现多个标题图片相似的图文,影响阅览者的预览效果,降低图文的点击数据。
有鉴于此,针对上述存在的问题,本申请实施例提供了一种图文发布的方法、装置及存储介质。本申请实施例涉及人工智能(Artificial Intelligence,AI)和机器学习技术,基于人工智能中的计算机视觉(Computer Vision,CV)技术和机器学习(MachineLearning,ML)而设计。
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术主要包括计算机视觉技术、语音处理技术、以及机器学习/深度学习等几大方向。
随着人工智能技术研究和进步,人工智能在多个领域展开研究和应用,例如常见的智能家居、图片检索、视频监控、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗等,相信随着技术的发展,人工智能将在更多的领域得到应用,并发挥越来越重要的价值。
计算机视觉技术是人工智能的重要应用,其研究相关的理论和技术,试图建立能够从图片、视频或者多维数据中获取信息,以代替人的视觉判读的人工智能系统。典型的计算机视觉技术通常包括图片处理和视频分析。本申请实施例提供的图文发布方法涉及图片处理。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。本申请实施例在图文发布过程中,采用了基于机器学习或深度学习的孪生网络模型确定图片的语义向量。
在该方法中:获取待发布图文的标题图片,并获取待发布图文的标题图片的语义向量;在获取语义向量后,基于语义向量对待发布图文的标题图片进行相似度检测,根据相似度检测结果和预测的发布策略,发布待发布图文。
上述方法,基于待发布图文的标题图片的语义向量对待发布图文的标题图片进行相似度检测,并根据相似度检测结果和预测发布策略,发布待发布图文,将包含有相似标题图片的图文按照预设的发布策略发布,提高阅览者的阅览效果和点击转化数据。
在该方法中,基于已训练的孪生网络模型获取待发布图文的标题图片的语义向量,其中已训练的孪生网络模型是基于多对带有相似标签的正样本对,及多对带有非相似标签的负样本对对孪生网络模型进行训练生成的;
其中,带有相似标签的正样本对包括:原始图片和原始图片对应的修改后的图片,如图2所示,为本申请实施例提供的一种相似样本对的示意图,图2中左侧表示的是原始图片,右侧表示的是原始图片经过裁剪并增加水印后的修改图片;视频短时间隔帧,即对视频文件进行抽帧,相邻两次抽取的视频帧的时间间隔不能大于设定的阈值;人工标签过的去重模型召回阈值区间内的图片。
其中,带有非相似标签的负样本对包括:简单不同且完全不相似的图片,难负例挖掘过程中被错误分类的负例。
因为,已训练的孪生网络模型是基于多对带有相似标签的正样本对和带有非相似标签的负样本对进行训练得到的,因此在使用已训练的孪生网络模型对于有水印或通过修改手段进行修改后的图片可以有效识别图片之间的相似性,或对于相同视频不同版本之间的视频封面图可以有效识别,提高图片相似度检测的准确率,进一步在根据相似度检测结果和预设的发布策略,发布待发布图文,保证相似图片不同时显示,提高阅览者的阅览效果和点击转化数据。
在介绍完本申请实施例的设计思想之后,下面对本申请设置的应用场景进行简要说明。需要说明的是,以下场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
如图3所示,为本申请提供的一种图文发布的应用场景图。在该场景中包括发布终端30,阅览终端31,服务器32;其中发布终端31和阅览终端可以为同一个终端。
发布者在发布终端30上制作编辑图文并发布,发布的图文到服务器32中,服务器32还通过网络与安装有阅读程序或具有阅读功能的应用程序的阅览终端31进行通信连接,该网络可以是但不限于局域网、城域网或广域网等。发布终端30和阅览终端31可以是个人电脑(Personal Computer,PC)、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、笔记本和手机等设备,也可以是具有移动终端设备的计算机,包括各种便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们能够向用户提供语音、数据或语音和数据连通性的设备,以及与无线接入网交换语音、数据或语音和数据。发布终端30和阅览终端31均为包括IOS、Android等智能操作系统且可以接收消息的终端设备。
服务器32可以是任何能够提供互联网服务,用于管理存储数据的后台运行设备,专门为终端设备中的应用程序提供远程网络服务的服务器。
在一种可能的应用场景中,为了便于降低通信时延,可以在各个地区部署服务器32,或者为了负载均衡,可以由不同的服务器32分别去服务各个发布终端30和阅览终端31对应的图文发布过程。多个服务器32,可以通过区块链实现数据的共享,多个服务器32相当于多个服务器32构成的数据共享系统。例如发布终端30位于地点a,与服务器32之间进行通信连接,发布终端30位于地点b,与其他服务器32之间通信连接。
对于数据共享系统中的每个服务器32,均具有与该服务器32对应的节点标识,数据共享系统中的每个服务器32均可以存储有数据共享系统中其他服务器32的节点标识,以便后续根据其他服务器32的节点标识,将生成的区块广播至数据共享系统中的其他服务器32。每个服务器32中可维护一个如下表所示的节点标识列表,将服务器32名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表2中仅以IP地址为例进行说明。
表2
后台服务器名称 |
节点标识 |
节点1 |
119.115.151.173 |
节点2 |
118.116.189.135 |
… |
… |
节点N |
119.123.789.258 |
在本申请中,发布者在发布终端30制作编辑图文,并上传发布制作编辑的图文,服务器32将发布终端30上传的图文作为待发布图文,发布到阅览终端31中供阅览者阅览。在接收到待发布图文时获取待发布图文的标题图片,基于已训练的孪生网络模型获取待发布图文的标题图片的语义向量,基于待发布图片的语义向量,对待发布图文的标题图片进行相似度检测,并根据相似度检测结果和预设的发布策略,发布待发布图文,以使阅览终端31中显示的图文是根据图文的标题图片进行相似度检测后,并根据检测结果和预设的发布策略进行显示的,此时同一个显示页面中不会出现包含有相似图片的图文,提升阅览者的阅览和图文的点击数据量。
基于图3论述的应用场景,下面对本申请实施例提供的图文发布的方法进行介绍。
如图4所示,为本申请实施例提供的一种图文发布的方法流程图,包括如下步骤:
步骤400,获取待发布图文的标题图片。
图文发布者将自身制作编辑的图文上传发布,将发布者上传发布的图文作为待发布图文,以通过Feeds信息流将待发布图文传播给阅览者。
在Feeds信息流将待发布图文传播给阅览者时,Feeds信息流中携带有多个图文,若携带的多个图文中的标题图片为相似图片,且包含有相似的标题图片的图文同时显示,则降低阅览效果。
因此,需要对待发布图文的标题图片进行相似度检测,并根据相似度检测的结果确定如何发布待发布图文。因为是对标题图片进行相似度检测,所以首先要获取待发图文的标题图片,其中,标题图片为图文的封面图片,即为阅览者阅览图文的显示界面中显示的图片。
在本申请中,是基于标题图片的语义向量进行相似度检测,即根据语义向量之间的距离,确定图片之间是否相似,因此在获取标题图片之后,需要获取标题图片的语义向量。
步骤410,获取待发布图文的标题图片的语义向量。
在一种可能的实现方式中,基于已训练的孪生网络模型获得待发布图文的标题图片的语义向量。
其中,已训练的孪生网络模型是基于多对样本对对孪生网络模型进行训练生成的,其中样本对包括有带相似图片标签的正样本对和带非相似图片标签的负样本对。
在一种可能的实现方式中,通过如下方式获取带相似图片标签的正样本对:
将原始图片与采用修改方式进行修改后的图片作为一对正样本对,其中图片的修改方式包括但不限于:裁剪、旋转、滤镜、水印、字幕;
视频短时间隔帧作为一对正样本对,即对视频文件进行抽帧,在抽帧过程中抽取的两个视频帧的图片的时间间隔不能大于设定时间;比如设定时间为4秒,抽取的两个视频帧的时间间隔要小于4秒。
在人工标签过的去重模型召回阈值区间内包含的图片中任选两张图片作为一对正样本对,其中人工标签过的去重模型召回阈值区间内的图片是经过孪生网络迭代训练得到语义向量,并根据语义向量进行人工标签的。
在一种可能的实现方式中,通过如下方式获取带非相似图片标签的负样本对:
选取两张没有任何相似地方的图片作为一对负样本对,选取负样本对可以通过爬虫从互联网上收集,也可以从实际业务当中选取不同分类类目下的图片;
难负例挖掘,使用正例和负例的一个子集去训练模型,然后用这个模型预测并收集那些被错误分类的负例,即正确的分类应该是正例,但是被错误分到负例中。
在确定样本对后,通过如下方式训练孪生网络模型:
首先构建孪生网络模型,构建的孪生网络模型中包括有两个结构相同的子网络,即第一子网络和第二子网络,且两个子网络的网络参数相同;每个子网络中都包含有卷积层、池化层、和全连接层,最后连接同一损失函数,如图5所示,为本申请实施例提供的一种孪生网络模型训练示意图。
在训练的过程中,将确定的样本对输入到孪生网络模型中。具体的,针对一对样本对进行孪生网络模型训练时,将选取的一对样本对中的两张图片分别输入到孪生网络模型的两个子网络中,依次经过子网络的卷积层、池化层和全连接层得到每个图片的语义向量。
具体过程如下:
针对样本对中的某一样本图片,获取样本图片的参数信息,比如像素数据、RGB通道数;
将获取的参数信息输入到卷积层中进行卷积处理,获得输入样本图片的第一特征图,并输出第一特征图,其中卷积处理过程为特征提取的过程;
将获取的第一特征图输入到池化层中进行池化处理,获得第二特征图,其中池化处理过程为下采样的过程,主要进行特征选择和信息过滤,池化处理过程可以是平均池化或最大池化;
将获得的第二特征图输入到全连接层,在全连接层中对第二特征对进行分类,确定第二特征图中的语义特征,并输出语义向量;
假设样本对中的第一图片经过孪生网络模型中的第一子网络输出第一语义向量,样本对中的第二图片经过孪生网络模型中的第二子网络输出第二语义向量;
将第一语义向量和第二语义向量输入到损失函数中,首先确定根据第一语义向量和第二语义向量,确定第一图片与第二图片的实际相似度,并根据实际相似度与样本对的标签,确定损失值;
根据损失值对孪生网络模型中的网络参数进行调整,直至损失值收敛至预设的期望值为止,得到已训练的孪生网络模型。
在根据第一语义向量和第二语义向量确定相似度时,计算第一语义向量和第一语义向量之间的距离。
在通过大量的正样本对和负样本对对孪生网络模型进行训练后,可以得到适用于本申请中进行图片相似度检测的孪生网络模型。
在孪生网络模型训练结束后,基于已训练的孪生网络模型获取标题图片的语义向量。
在基于已训练的孪生网络模型获取标题图片的语义向量时,使用已训练的孪生网络模型中的任一子网络获取标题图片的语义向量,其中每个子网络包括有卷积层、池化层和全连接层;具体过程如下:
获取标题图片的参数信息,比如像素数据、RGB通道数;
将获取的标题图片的参数信息输入到卷积层中进行卷积处理,获得标题图片的第一特征图,并输出标题图片的第一特征图,其中卷积处理过程为特征提取的过程;
将获取的标题图片的第一特征图输入到池化层中进行池化处理,获得标题图片的第二特征图,其中池化处理过程为下采样的过程,主要进行特征选择和信息过滤,池化处理过程可以是平均池化或最大池化;
将获得的标题图片的第二特征图输入到全连接层,在全连接层中对第二特征图对进行特征分类,确定标题图片中包含的语义特征,并将语义特征转换成语义向量,并输出语义向量。
在一种可能的实现方式中,在获取待发布图文的标题图片的语义向量时,若待发布图文的标题图片属于特殊类型图片,则获取标题图片中局部图片的局部语义向量,其中特殊类型图片为目标对象在标题图片中的占比大于设定值或为目标对象属于预设类别,局部语义向量为标题图片中局部图片的语义向量,局部图片为目标对象在标题图片中的位置对应的图片。
如图6所示,为本申请实施例提供的一种特殊类型图片的示意图,以目标对象为人脸进行举例,计算人脸所占区域与标题图片全部区域的比值,假设比值为80%,设定值为50%,此时人脸在标题图片中的占比大于设定值,该标题图片属于特殊类型图片。
或当目标对象为人脸、车辆、建筑等类别时,此标题图片也属于特殊类型图片。
在确定标题图片为特殊类型图片后,获取标题图片中人脸所在位置的局部图片,并获取局部图片的语义向量称为局部语义向量。
需要说明的是,获取标题图片的局部语义向量的方式,与获取标题图片的语义向量的方式一致,仅是输入到已训练的孪生网络模型中的图片为标题图片中的目标对象所在位置对应的图片。
步骤420,基于待发布图文的标题图片的语义向量,对待发布图文的标题图片进行相似度检测。
在一种可能的实现方式中,基于待发布图文的标题图片的语义向量,对待发布图文的标题图片进行相似度检测时:
若待发布图文中包含有多个标题图片,则对待发布图文中的多个标题图片进行相似度检测,同时将待发布图文中的标题图片与历史图文中的历史标题图片进行相似度检测;
若待发布图文中仅包含有一个标题图片,则仅将待发布图文中的标题图片与历史图文中的历史标题图片进行相似度检测。
即对标题图片进行相似度检测存在两种情况:
情况一:在待发布图文内部进行标题图片的相似度检测;
情况二:将待发布图文的标题图片与历史图文的历史标题图片进行相似度检测。
情况一:在待发布图文内部进行标题图片的相似度检测。
当待发布图文中包含有多个标题图片时,基于已训练的孪生网络模型获取每个待发布图文的标题图片的语义向量;
基于每张待发布图文的标题图片的语义向量,对多张标题图片之间的相似度进行相似度检测。
对多张标题图片之间的相似度进行检测时,将多张标题图片的语义向量全部输入到预先构建的HashMap中进行向量匹配,确定任一两个语义向量之间的目标距离;
将目标距离与预设距离阈值进行比较,若确定目标距离小预设距离阈值,则确定这两个语义向量对应的两个标题图片为相似图片,否则确定这两个语义向量对应的标题图片为非相似图片。
假设,待发布图文中包括有三张标题图片,将三张标题图片分别输入到已训练的孪生网络模型中,获取每个标题图片的语义向量,此时将获取三个语义向量。标题图片1对应语义向量1,标题图片2对应语义向量2,标题图片3对应语义向量3;
将三个语义向量输入到预先构建的HashMap中进行向量匹配,确定三个语义向量中任一两个之间的目标距离;若语义向量1和语义向量2之间的目标距离小预设距离阈值,则确定标题图片1与标题图片2为相似图片。
情况二:将待发布图文的标题图片与历史图文的历史标题图片进行相似度检测。
基于待发布图文的每张标题图片的语义向量,和历史标题图片的历史语义向量,分别对待发布图文的每张标题图片和历史标题图片之间的相似性进行相似度检测。
在对待发布图文的每张标题图片和历史标题图片之间的相似性进行相似度检测时,将待发布图文的每张标题图片的语义向量和历史标题图片的历史语义向量输入到预先构建的HashMap中进行向量匹配,确定标题图片的语义向量与任一历史标题图片的历史语义向量之间的目标距离;
将目标距离与预设距离阈值进行比较,若确定目标距离小预设距离阈值,则确定语义向量对应的标题图片与历史语义向量对应的历史标题图片为相似图片,否则确定标题图片与历史标题图片为非相似图片。
其中,历史标题图片的历史语义向量是通过下列方式获取的:
针对待发布图文的每张标题图片,将待发布图文的每张标题图片的语义向量发送给向量存储系统,以在向量存储系统中获取在向量召回区间内的历史语义向量信息,其中向量存储系统中存储有历史语义向量信息,历史语义向量信息包括有历史语义向量和用于指示历史标题图片和历史标题图片对应的历史图文的索引信息。
在一种可能的实现方式中,在获取历史语义向量信息时,将待发布图文的每张标题图片的语义向量发送给向量存储系统,以便向量存储系统根据每张标题的语义向量确定向量召回区间,并确定向量召回区间内的历史语义向量信息;或
在一种可能的实现方式中,在获取历史语义向量信息时,将待发布图文的每张标题图片的语义向量,以及标题图片的语义向量对应的向量召回区间发送给向量存储系统,以便向量存储系统确定向量召回区间内的历史语义向量信息;
接收向量存储系统根据向量召回区间确定的历史语义向量信息,历史语义向量信息中包括有历史语义向量和用于指示历史标题图片和历史标题图片对应的历史图文的索引信息。
在本申请中,向量存储系统中存储有大量的历史语义向量信息,向量存储系统中存储的历史语义向量信息可以通过如下方式确定:
方式一:在每次确定待发布图文的语义向量后,将待发布图文的语义向量存储到向量存储系统中。
在将待发布图文的语义向量存储到向量存储中时,由于向量的长度占用一定的内存空间,且在存储大量的向量时,需要占用大量的存储空间,为了减少空间的占用,对语义向量进行降维处理。
在本申请中,基于已训练的降维网络模型对语义向量进行降维处理,并将降维处理后的语义向量存储到向量存储系统中。
且由于每个标题图片不一定仅出现在一个图文中,一个标题图片可能在多个图文中使用,若将每个相同的标题图片都进行存储,则将占用大量的空间,同时若不将每个图文的标题图片进行存储,则将不能确定包含与待发布图文标题图片相似的全部历史图文,导致在发布图文时会出现重复的情况,因此为了降低向量存储系统的占用空间,且能确定所有历史图文的历史标题图片时,生成待发布图文的标题图片的语义向量的索引信息,索引信息用于指示语义向量对应的标题图片及标题图片所在的图文;并将索引信息和语义向量对应存储到向量存储中,以更新向量存储系统。
可见在更新向量存储系统是时,包括若向量存储系统中存储有与待发布图文的标题图片的语义向量相同的历史语义向量,则仅更新该历史语义向量对应的索引信息;若向量存储系统中未存储有与待发布图文的标题图片的语义向量相同的历史语义向量,则将待发布图文的标题图片的语义向量与对应的索引信息存储到向量存储系统中,以更新向量存储系统。
方式二:每次上传的图文都会存储在图文存储服务器中,当有新的图文上传时,确定需要对新上传的图文中的标题图片进行相似度检测;获取图文存储服务器中存储的历史图文的历史标题图片,并基于已训练的孪生网络模型获取历史标题图片的历史语义向量,将历史语义向量存储到向量存储系统中。
在将历史标题图片的历史语义向量存储到向量存储系统中时,也需要对历史语义向量进行降维处理,并生成索引信息,具体详见方式一,在此不再赘述。
需要说明的是,本申请的降维网络模型是通过如下方式训练生成的:
首先构建降维网络模型,构建的降维网络模型中包括中多个卷积层、多个池化层、全连接层以及损失函数,如图7所示,为本申请实施例提供的一种降维网络模型训练示意图。
获取训练数据集,训练数据集中包含有多张相似或非相似的样本图片;
从训练数据集中选取样本图片;
将样本图片输入降维网络模型,得到样本图片的输出值;
将输出值输入损失函数,并通过反向传播优化降维网络模型的网络参数,直至输出值近似离散值为止,得到已训练的降维网络模型。
在本申请中,降维网络模型的损失函数可以为:
其中,b1和b2是图片经过神经网络后得到的特征表示,y是是否相似或相同的标签,m是margin差值。
要求不相似图片特征达到一个距离阈值后不惩罚,只保留一定类间可分性,不要求类间越离散越好,1是全1的向量,维数同特征向量维数,要求特征向量每一位尽量接近1或-1,减少量化误差。
在一种可能的实现方式中,若本申请待发布图文的标题图片中包含有特殊类型图片,如图6所示,在获取语义向量时,不仅要获取待发布图文的标题图片的语义向量,还要获取待发布图文的标题图片中局部图片的局部语义向量;因此在基于待发布图文的标题图片的语义向量,对待发布图文的标题图片进行相似度检测时:不仅要基于待发布图文的标题图片的语义向量进行相似度检测,也要基于局部语义向量进行相似度检测,并融合语义向量的相似度检测结果和局部语义向量的相似度检测结果确定最终的相似度检测结果。
如图8所示,为本申请实施例提供的一种待发布图文中包含有特殊类型图片时进行相似度检测的示意图。
在本申请中,当待发布图文中包括多张标题图片,且多张标题图片中包含有特殊类型图片时,不仅要获取标题图片的语义向量,还要获取标题图片的局部语义向量;因此在进行相似度检测时,不仅要对语义向量进行检测,还要对局部语义向量进行检测,并根据针对语义向量进行检测的检测结果和针对局部语义向量进行检测的检测结果确定图片之间的相似性。
假设,待发布图文中包括有三张标题图片,分别为标题图片1、标题图片2和标题图片3,其中标题图片1和标题图片2均为特殊类型图片,则在获取标题图片1的语义向量时,获取标题图片1的语义向量1和局部语义向量1;在获取图片2的语义向量时,获取标题图片2的语义向量2和局部语义向量2;
因此,在基于待发布图文的每张标题图片的语义向量,对标题图片1和标题图片2之间的相似度进行相似度检测时,针对标题图片1的语义向量1和标题图片2的语义向量2确定目标距离,根据目标距离和预设距离确定第二检测结果;针对标题图片1的局部语义向量1和标题图片的局部语义向量2确定目标局部距离,根据目标局部距离和预设局部距离确定第一检测结果;
进一步,将第一检测结果和第二检测结果进行融合,确定标题图片1和标题图片2的相似性检测结果。
在本申请中,若第一检测结果和第二检测结果中存在用于指示标题图片1和标题图片2为相似图片的结果,则确定标题图片1和标题图片2相似。
同理,在基于待发布图文的每张标题图片的语义向量,和历史标题图片的历史语义向量,分别对待发布图文的每张标题图片和历史标题图片之间的相似性进行相似度检测时:若标题图片为特殊类图片,则基于标题图片的语义向量和历史标题图片的语义向量确定第二检测结果,基于标题图片的局部语义向量和历史标题图片的局部语义向量确定第一检测结果,将第一检测结果和第二检测结果进行融合,确定标题图片与历史标题图片是否相似,具体同上述对多张标题图片之间的相似度进行相似度检测的过程,在此不再赘述。
步骤430,根据相似度检测结果和预设的发布策略,发布待发布图文。
在一种可能的实现方式中,若待发布图文中包含有多个标题图片,在对多张标题图片之间的相似度进行相似度检测;并在确定待发布图文中的标题图片之间相似后,则对待发布图文中的标题图片进行调整。
在本申请中,对待发布图文的标题图片进行调整时,首选确定待发布图文中除标题图片外是否包含有其他图片,若有其他图片则基于已训练的孪生网络模型确定其他图片的语义向量,并基于其他图片的语义向量与标题图片的语义向量,对其他图片和标题图片之间的相似度进行相似度检测;
若确定其他图片与标题图片为相似图片,则继续使用当前的标题图片作为待发布图文的标题图片;
若确定其他图片与标题图片为非相似图片,则使用其他图片替换掉相似的标题图片,并将其他图文作为新的标题图片。
如图9所示,为本申请实施例提供的一种更换待发布图文的标题图片的示意图;从图9(a)可知,待发布图文中包含有3张标题图片,且3张标题图片为相似图片,若是待发布图文在发布时采用相似的3张标题图片,则会影响用户的阅览效果,则需要将相似的3张标题图片替换掉。
此时,确定待发布图文中除标题图片外还包括有3张其他图片,此时获取其他图片的语义向量,并基于语义向量对其他图片和标题图片之间的相似度进行相似度检测;若确定3张其他图片与标题图片均不相似,则从3张其他图片中任选两张图片,并替换到3张标题图片中的任一两张,如图9(b)所示,为替换掉标题图片后的待发布图文在显示页面中的示意图。
在本申请中,若不存在其他图片,则继续使用当前的标题图片。
在标题图片替换成功后,根据替换成功后的标题图片与历史图文的历史标题图片之间的相似度进行相似度检测,并在确定标题图片与历史图文的历史标题图片为相似图片后,将待发布图文与历史图文打散显示,其中打散显示为设置待发布图文与历史图文之间的发布距离大于设定的距离阈值;或将待发布图文与历史图文分屏显示;若确定标题图片与历史标题图片为非相似图片后,按照设定顺序或设定优先级或根据用户浏览数据确定发布顺序。
在一种可能的实现方式中,若待发布图文中的标题图片之间不相似,则直接基于标题图片的语义向量和历史标题图片的语义向量,对待发布图文的标题图片和历史标题图片之间的相似度进行相似度检测,并根据相似度检测结果,以及预设的发布策略,对待发布图文和历史图文进行发布。
如图10所示,为本申请实施例提供的一种调整待发布图文顺序的示意图;从图10(a)可知,显示屏中连续显示两个包含有相似的标题图片的图文,此时用户可能仅对其中一篇图文进行点击,而另一篇图文的点击数据将会减少,此时将两个包含有相似的标题图片的图文分屏显示,如图10(b)所示,在当前的显示屏中仅显示两个包含有相似的标题图片的图文中的任一图文。
在一种可能的实现方式中,若待发布图文中包含有一个标题图片,则可以则将直接基于标题图片的语义向量和历史标题图片的历史语义向量,对标题图片和历史标题图片之间进行相似度检测,并在确定标题图片与历史标题图片相似后,将待分布图文和历史标题图片对应的图文打散显示;在确定标题图片和历史标题图片不相似后,按照设定顺序,或设定优先级等方式进行发布;在确定标题图片和历史标题图片相似后,替换待发布图文的标题图片并发布。
在本申请中,若待发布图文中包含有一个标题图片,待发布内容为视频时,替换标题图片时使用的视频中的视频帧。
需要说明的是,上述场景仅对本申请的发布策略进行举例说明,本申请的发布策略不限于上述场景,且发布策略可以根据实际情况进行设置,在此不再赘述。
如图11所示,为本申请实施例提供的一种图文发布的整体方法流程图,包括如下步骤:
步骤1100,接收图文发布者上传的图文,并将图文发布者上传的图文作为待发布图文;
步骤1101,获取待发布图文的标题图片;
步骤1102,获取待发布图文的标题图片的语义向量;
步骤1103,判断待发布图文中是否仅包含有一个标题图片,若是则执行步骤1107,否则执行步骤1104;
步骤1104,基于待发布图文的每张标题图片的语义向量,对多张标题图片之间的相似度进行相似度检测,若确定多张标题图片之间相似,则执行步骤1105;
步骤1105,确定多张标题图片之间相似,且待发布图文中除标题图片外包含有其他图片,获取其他图片的语义向量,基于其他图片的语义向量与标题图片的语义向量,对其他图片和标题图片之间的相似度进行相似度检测;
步骤1106,确定其他图片与标题图片之间不相似后,使用其他图片替换当前的标题图片;
步骤1107,基于待发布图文的每张标题图片的语义向量,和历史标题图片的历史语义向量,分别对待发布图文的每张标题图片和历史标题图片之间的相似性进行相似度检测,若相似则执行步骤1108,否则执行步骤1109;
步骤1108,设置待发布图文与历史图文之间的发布距离大于设定的距离阈值,并发布待发布图文和历史图文;
步骤1109,按照设定顺序发布待发布图文和历史图文。
如图12所示,为本申请实施例提供的一种图文发布的系统结构图,该系统包括:
图文发布端1200、上下行内容接口服务单元1201、调度中心服务单元1202、图片排重调度服务单元1203、图文内容存储服务单元1204、向量生成服务单元1205、向量存储系统1206、召回检索服务单元1207、人工审核系统1208、内容分发出口服务单元1209、图文阅览端1210;
其中,图文发布端1200为发布者的终端,发布者在图文发布端制作编辑图文,主要用于:PUC或者UGC,MCN或者PUGC的内容生产者,通过移动端或者后端接口API系统提供内容,这些都是分发内容的主要内容来源;
通过和上下行内容接口服务单元的通讯,先获取上传服务器接口地址,然后在上传图文内容;
作为消费者,和上下行内容接口服务器通讯,获取访问图文的索引信息,然后和图文内容存储服务器通讯,获取对应的图文内容;
同时将上传和浏览过程当中用户阅读的行为数据,加载时间,点击,滑动,分享,收藏,转发等上报给服务器;
消费端通常通过Feeds流方式浏览图文或者图集数据,所以图文或者图集内容重复对用户体验会有很大影响。
上下行内容接口服务单元1201主要用于:
和内容生产端直接通讯,从前端提交的内容,通常是内容的标题,发布者,摘要,封面图,发布时间,把文件存入图文内容存储服务;
将图文内容的元信息,比如文件大小,封面图链接,标题,发布时间,作者等信息写入内容数据库;
将上传的文件提交给调度中心服务器,进行后续的内容处理和流转。
图文发布的系统还包括内容数据库,内容数据库主要用于:
图文内容的核心数据库,所有生产者发布内容的元信息都保存在这个业务数据库当中,重点是图文内容本身的元信息频文件大小,封面图链接,码率,文件格式,标题,发布时间,作者,是否原创或者首发还包括人工审核过程中对内容的分类(包括一,二,三级别分类和标签信息,比如一个将华为手机的文章,一级分类是手机二级分类是智能手机三级分类是国内手机,标签可能是华为mate);
人工审核过程当中会读取内容数据库当中的信息,同时人工审核的结果和状态也会回传进入内容数据库;
调度中心对内容处理主要包括机器处理和人工审核处理,这里机器处理核心就是调用排重服务,排重的结果会写入内容数据库,完全重复一样的内容不会给人工进行重复的二次处理。
调度中心服务单元1202,主要用于:
负责图文内容流转的整个调度过程,通过上下行内容接口服务器接收入库的图文内容,然后从内容数据库中获取图文的元信息;
调度人工审核系统和机器处理系统,控制调度的顺序和优先级;
对于图文内容,先和图文召回检索服务通讯,然后和判重服务通讯,过滤掉不必要的重复相似图片内容。
人工审核系统1208主要用于:
需要读取内容数据库中图文内容本身的原始信息,通常是一个业务复杂的基于web数据库开发的系统,通过人工来对图文内容是否涉及政治敏感的特性进行一轮初步过滤。
图文内容存储服务单元1204主要用于:
通常是一组分布范围很广,离C侧用户很久的就近接入的存储服务器通常外围还有CDN加速服务器进行分布式缓存加速,通过上下行内容接口服务器将内容生产者上传的图文内容保存起来;
向量生成服务单元1205和向量存储系统1206主要用于:
如同上面的说明,主要是指通过孪生网络模型对向量化对图片包括视频封面图的抽帧内容进行语义向量化;
生成的向量写入索引系统,方便后续的召回检索和进行匹配比较;
召回检索服务单元1207主要用于:
与图片语义向量索引系统单独通讯;
按照上文描述的方法,通过向量的比较,召回相似的图片集合,然后依照不同业务场景的不同距离策略,实现不同的图片相似排重方法;
接受图片排重调度服务的单独调度,完成具体的图片相似的排重过程。
图片排重调度服务单元1203主要用于:
内容处理链路上的核心服务,接受调度中心服务的调度;
同时调用召回检索服务,完成图片的相似判断。
基于同一发明构思,本申请实施例还提供了一种图文发布的装置1300,如图13所示,该装置1300包括:第一获取单元1301、第二获取单元1302、检测单元1303以及发布单元1304;其中:
第一获取单元1301,用于获取待发布图文的标题图片;
第二获取单元1302,用于获取待发布图文的标题图片的语义向量;
检测单元1303,用于基于待发布图文的标题图片的语义向量,对待发布图文的标题图片进行相似度检测;
发布单元1304,用于根据相似度检测结果和预设的发布策略,发布待发布图文。
在一种可能的实现方式中,第二获取单元1302具有用于:
若标题图片为特殊类型图片,则获取标题图片中局部图片的局部语义向量,其中特殊类型图片为目标对象在标题图片中的占比大于设定值,局部图片为目标对象在标题图片中的位置对应的图片。
在一种可能的实现方式中,第二获取单元1302具有用于:
基于已训练的孪生网络模型,获取待发布图文的标题图片的语义向量,其中已训练的孪生网络模型是基于多对样本对对孪生网络模型进行训练生成的,多对样本对中包括正样本对和负样本对,正样本对为带相似图片标签的样本,负样本对为带非相似图片标签的样本。
在一种可能的实现方式中,第二获取单元1302中的孪生网络模型是通过如下方式训练生成的:
在多对样本对中选取任一样本对,多对样本对中包括正样本对和负样本对,正样本对包括带有相似图片标签的两张图片,负样本对包括带有非相似图片标签的两张图片;
针对选取的样本对,获取样本对中的第一图片和第二图片;
将第一图片和第二图片,分别输入到孪生网络模型的第一子网络和第二子网络中,获取第一图片的第一语义向量以及第二图片的第二语义向量;
根据第一语义向量和第二语义向量,确定第一图片与第二图片的相似度检测结果;
根据相似度检测结果与样本对的相似性标签,确定损失值;
根据损失值对孪生网络模型的网络参数进行调整,直至损失值收敛至预设的期望值为止,得到已训练的孪生网络模型。
在一种可能的实现方式中,已训练的孪生网络模型包括第一子网络和第二子网络,且每个子网络中包括卷积层、池化层以及全连接层;
第二获取单元1302具有用于:基于已训练的孪生网络模型中的任一子网络获取待发布图文的标题图片的语义向量;
第二获取单元1302具有用于:
将标题图片的像素数据输入到卷积层中进行卷积处理,获得标题图片的第一特征图;
将第一特征图片输入到池化层中进行下采样处理,获得第二特征图;
将第二特征图输入到全连接层进行特征分类,确定标题图片中包含的语义特征,并将语义特征转换成语义向量。
在一种可能的实现方式中,第二获取单元1302具有用于:
生成语义向量的索引信息,将语义向量与索引信息对应存储在到向量存储系统中,以更新向量存储系统;
其中,索引信息用于指示语义向量对应的标题图片及标题图片所在的图文。
在一种可能的实现方式中,第二获取单元1302具有用于:
基于已训练的降维网络模型对语义向量进行降维处理,并将降维处理后的语义向量存储到向量存储系统中。
在一种可能的实现方式中,第二获取单元1302中的降维网络模型是通过下列方式训练生成的:
从训练数据集中选取训练样本图片;
将训练样本图片输入降维网络模型,得到训练样本图片的输出值;
将输出值输入损失函数,并通过反向传播优化降维网络模型的网络参数,直至输出值近似离散值为止,得到已训练的降维网络模型。
在一种可能的实现方式中,检测单元1303具体用于:
若待发布图文包括多张标题图片,则基于待发布图文的每张标题图片的语义向量,对多张标题图片之间的相似度进行相似度检测;和/或
基于待发布图文的每张标题图片的语义向量,和历史标题图片的历史语义向量,分别对待发布图文的每张标题图片和历史标题图片之间的相似性进行相似度检测。
在一种可能的实现方式中,检测单元1303通过如下方式获取历史标题图片的历史语义向量:
将待发布图文的每张标题图片的语义向量发送给向量存储系统,其中向量存储系统中存储有历史标题图片的历史语义向量信息,历史语义向量信息包括:历史语义向量,和用于指示历史标题图片和历史标题图片对应的历史图文的索引信息;
接收向量存储系统返回的历史语义向量信息,其中历史语义向量信息是根据语义向量对应的向量召回区间确定的。
在一种可能的实现方式中,若待发布图文的多张标题图片中包括相似图片,发布单元1304具体用于:
检测待发布图文中除标题图片外是否包含有其他图片,若包含有其他图片,则基于已训练的孪生网络模型获取其他图片的语义向量;
基于其他图片的语义向量与相似图片中任一标题图片的语义向量,对其他图片与标题图片的相似性进行检测;
若确定其他图片与标题图片不相似,则使用其他图片替换相似图片中任一标题图片,并发布替换标题图片后的待发布图文。
在一种可能的实现方式中,若待发布图文的标题图片和历史标题图片相似,发布单元1304具体用于:
针对待发布图文发布时,设置待发布图文与历史图文之间的发布距离大于设定的距离阈值,其中历史图文是根据历史标题图片的历史语义向量对应的索引信息确定的。
在一种可能的实现方式中,若标题图片为特殊类型图片,检测单元1303具体用于:
基于标题图片的局部语义向量确定第一检测结果,以及基于标题图片的语义向量确定第二检测结果;
基于第一检测结果和第二检测结果,对待发布图文的标题图片进行相似度检测;
若第一检测结果和第二检测结果中存在图片相似的检测结果,则确定图片相似。
基于同一发明构思,本申请实施例还提供了一种孪生网络模型的训练装置1400,该孪生网络模型应用于上述图文发布的方法;如图14所示,该训练装置1400包括:第一构建单元1401、第三获取单元1402、第一训练单元1403以及参数调整单元1404,其中:
第一构建单元1401,用于构建孪生网络模型,其中孪生网络模型中包含两个相同的子网络,每个子网络包括卷积层、池化层、全连接层和损失函数;
第三获取单元1402,用于获取训练过程中的多对样本对,其中多对样本对中包括正样本对和负样本对,正样本对包括带有相似图片标签的两张图片,负样本对包括带有非相似图片标签的两张图片;
第一训练单元1403,用于针对任一样本对,将样本对中的第一图片和第二图片分别输入到孪生网络模型的第一子网络和第二子网络中,获取第一图片的第一语义向量以及第二图片的第二语义向量;根据第一语义向量和第二语义向量,确定第一图片与第二图片的相似度检测结果;根据相似度检测结果与样本对的相似性标签,确定损失值;
参数调整单元1404,用于根据损失值对孪生网络模型的网络参数进行调整,直至损失值收敛至预设的期望值为止,得到已训练的孪生网络模型。
在一种可能的实现方式中:带相似图片标签的正样本包括下列之一或组合:
原图片以及原图片修改后的图片;同一视频中的两帧图片,两帧图片的时间间隔小于阈值;召回阈值区间内的两张图片;
带非相似图片标签的负样本对包括下列之一或组合:
完全不同的两张图片、基于孪生网络模型训练后被错误分类的图片。
基于同一发明构思,本申请实施例还提供了一种降维网络模型的训练装置1500,该降维网络模型应用于上述图文发布的方法;如图15所示,该训练装置1500包括:第二构建单元1501、第四获取单元1502、第二训练单元1503以及参数优化单元1504,其中:
第二构建单元1501,用于构建降维网络模型,其中降维网络模型中包括卷积层、池化层、全连接层以及损失函数;
第四获取单元1502,用于获取训练数据集,其中训练数据集中包括有多张样本图片;
第二训练单元1503,用于针对训练数据集中的训练样本图片,将训练样本图片输入降维网络模型,得到训练样本图片的输出值;
参数优化单元1504,用于将输出值输入损失函数,并通过反向传播优化降维网络模型的网络参数,直至输出值近似离散值为止,得到已训练的降维网络模型。
为了描述的方便,以上各部分按照功能划分为各单元(或模块)分别描述。当然,在实施本申请时可以把各单元(或模块)的功能在同一个或多个软件或硬件中实现。
在介绍了本申请示例性实施方式的图文发布以及模型训练的方法及装置后,接下来介绍本申请的另一示例性实施方式计算设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一种可能的实现方式中,本申请实施例提供的计算设备可以至少包括处理器和存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本申请中各种示例性实施方式的图文发布以及模型训练方法中的任一步骤。
下面参照图16来描述根据本申请的这种实施方式的计算设备1600。如图16的计算设备1600仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图16所示,计算设备1600的组件可以包括但不限于:上述至少一个处理器1601、上述至少一个存储器1602、连接不同系统组件(包括存储器1602和处理器1601)的总线1603。
总线1603表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器1602可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)16021和/或高速缓存存储器16022,还可以进一步包括只读存储器(ROM)16023。
存储器1602还可以包括具有一组(至少一个)程序模块16024的程序/实用工具16025,这样的程序模块16024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备1600也可以与一个或多个外部设备1604(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算设备1600交互的设备通信,和/或与使得该计算设备1600能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1605进行。并且,计算设备1600还可以通过网络适配器1606与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图16所示,网络适配器1606通过总线1603与用于计算设备1600的其它模块通信。应当理解,尽管图16中未示出,可以结合计算设备1600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的图文发布以及模型训练方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的图文发布以及模型训练方法中的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的图文发布的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序命令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序命令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的命令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序命令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的命令产生包括命令装置的制造品,该命令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序命令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的命令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。